09年参加微软ImagineCup的作品,想起来相当的怀念啊!
比赛项目叫火星漫游者比赛,从09年4月20开始到5月20号结束。火星漫游者模型由美国航空航天局(NASA)提供,与真实的火星漫游者一致,在微软robotic studio上进行模拟操控。参赛选手要按要求,操控火星漫游者完成在火上口检测、采集石头样本以及寻找掩体的任务。document里的pdf是整个比试的说明。

#完成的主要功能:
##避障和安全
使用前端的黑白摄像头探测障碍物,标示出安全区域。使用罗盘控制姿态防止翻到。示意图:
##图像识别和立体视觉
通过剃度模版来识别边界,根据边界形状来判断是否是石头。通过比对头上两个摄像头图像的偏差,来计算图像中每个像素的3D位置,结合自身姿态将3D位置转化为全局3D位置。如图(颜色的深浅标示远近):
##机械臂控制
将目标的3D位置转化到机器人为中心的坐标系统中,建立一个5元1次(因为机械臂有5个关节)方程组,求解一个可行解,简化求解固定探测器垂直石头表面,从而得到唯一解。
时间太久有些都记不清了,其他的还尝试过建立全局地图。其中分层的控制系统是自己比较满意的部分。将机器人的控制命令分层,从低到高分别是:寻路逻辑、壁障逻辑、完成任务逻辑、安全控制逻辑。各逻辑独立发送命令,并可以将当前控制级别调整为所有权限级别,低于该级别的命令将被忽略。例如,寻路逻辑持续发送直线全速到达目标地的命令,当壁障逻辑探测到前方有障碍物时变将控制级别调整为2,这样寻路逻辑发出的命令就会被忽略,当绕过障碍物后,重新将控制级别调整为1.