2014年Robot杯全国机器人公开赛

来源:互联网 发布:centos 指令 编辑:程序博客网 时间:2024/04/25 03:22


这是大一暑假留校参加的一个比赛。2014年Robot杯全国机器人公开赛。做的是搬运机器人。属于光电组的。

大概有一个月都在准备这个比赛。我和仪器与电子学院的培松同学。信息与通信工程学院的彦宗同学遍历了从硬件设计。到软件编写。过程艰辛。

时隔一年半载。重新把当初的资料整理出来:

比赛规则链接:http://download.csdn.net/detail/linkerist/9406066

硬件:

芯片用的是STM-32。加上机器人的一个框架。

搬运用的手臂是两个舵机加上两个铁片。这虽然有点简陋。但是确实可以将物块有效的搬运。

动力是两个步进电机对应后面两个轮胎。前面只有一个轮胎。没有设计让前面轮胎转向。而是通过后面两个电机的速度差产生角度。

机器人的感官用的是前面一排四个激光传感器。场地上的线是黑色的。其余地方是白色的。这样可以激光循迹。

还有机器人最前面的一个颜色传感器。要搬运的物块颜色不同。五个物块是比赛现场抽签决定的。通过颜色传感器返回值可以判断她们。

硬件的大概样子就是这样了。说机器人有点高大上了。

因为她其实就是一个小车。可以根据地上的线激光循迹。可以检测物块的颜色。把物块搬运到目的地。满足比赛的所有要求。

我们甚至弄了一个用户界面。是搭载在机器上的一块12864,

主要显示当前识别的颜色。还有一些提示信息。后来因为要保存信息还引入了一个E2PROM。用的是IIC协议。

原谅我没有贴出他的原理图。因为沧海桑田。世事变迁。静静躺在我硬盘里面的只有当时写的软件部分了。

软件:

代码在附件中也有。虽然现在看以前写过的代码。感觉目不忍视。耳不忍闻。但还是原样贴了出来。

工程代码链接:http://download.csdn.net/detail/linkerist/9406061

在学校创新创业基地的数控机床上。培松实现了机器人的框架。和搬运用的手臂。和步进电机的驱动

彦宗同学主要负责激光传感器的驱动编写和激光循迹部分的程序调试。

我主要负责颜色传感器、舵机和E2PROM的驱动编写还有主程序搬运算法的实现。

机器人的拼装和程序的调试由三个人共同完成。在五院的一个实验室里。


各种驱动在工程代码的HARDWARE下。各个文件夹的名字就说明了他的作用。(比如IIC协议的实现在IIC目录下,颜色传感器的驱动实现在COLOR目录下)代码中都有详细的注释。

在start目录下。放的是Cortex-m3的启动引导代码。当然我们当时的知识水平不足以写出这样的代码。这个用的是Cortex-m3自带的。

在track_jg目录下。放的是主驱动函数main_test。可以看到其中只有两行代码。step0(); 还有 step1()。

当时把整个搬运流程分成了两个部分。还亲切的称为南半球和北半球。(因为比赛的场地图形怎么看都是一个地球!哈哈)

关于具体代码就不再展开了。我写了很详细的注释。


到比赛现场之后。我们才发现我们的硬件设计的真是不太对得起观众。

旁边复旦大学的同学甚至将五个物块堆叠在一起。这节省很多时间。但是成功率比较低。

再旁边一点的解放军理工的同学都穿着军装。神情严肃。一丝不苟的调试这他们的机器。

赛场最南的一支队伍让我映像最深。因为他们的机器人跑的实在是太快了。(导致他们调试都是把程序写死。在一定时间内系统自动挂起。不然根本抓不住机器人。)

从外观上看他们用的是灰度传感器。电机不知道是啥。反正快的是一塌糊涂。

如此种种。。

不得不说。他们设计的硬件很系统。当然造价也很高。

后来交流知道。他们学校有多年的参赛经验。很多东西得到了传承。甚至有专门的实验室负责此类赛事。基本不需要考虑预算。

当他们拿到比赛题目的时候。设计硬件时候很自然的自底而上。很多东西都有。

而不是像我们发现缺少什么就在淘宝上买。(而且还要价格从低到高排一下。。呵呵)。有点像OS中当不得不分配子进程内存空间时,才拷贝数据那种意思在里面。


后来在洛阳玩了两天。


今天整理硬盘的时候发现这些。写下来。算作回忆。


1 0