仓储机器人 #
调试阶段 #
1.建图 #
slam建图(见开发手册9)
2.添加航点 #
有了航点就相当于告诉机器人下一个目标,它就会用amcl(蒙特卡洛自适应定位算法)自动导航到目标航点(见开发手册 10)
运行 #
我们修改了路径规划的代码,本来路径规划是给出航点的名字或者序号,让机器人走到航点处,再走到下一个节点。我们让它走到航点处停下来进行拍照识别。
比赛的要求是 机器人进入入口,走到裁判给出的三个航点,以及随机的障碍物,分别避过障碍物,到达航点,对桌子上的物品进行识别,框出带有五角星的饮料,桌子上摆着六瓶饮料。然后走出出口。
识别五角星过程 #
最主要的代码:OpenCV的模板匹配
OpenCV的目标匹配函数为matchTemplate,函数原型为:
matchTemplate(image, templ, method[, result[, mask]]) -> result
matchTemplate(image, templ, method[, result[, mask]]) -> result
image参数表示待搜索源图像,必须是8位整数或32位浮点。 templ参数表示模板图像,必须不大于源图像并具有相同的数据类型。 method参数表示计算匹配程度的方法。 result参数表示匹配结果图像,必须是单通道32位浮点。如果image的尺寸为W x H,templ的尺寸为w x h,则result的尺寸为(W-w+1)x(H-h+1)。
其实就是给出模板,选择匹配算法,这函数就返回与模板最匹配的区域。
模板匹配最重要的就是模板和匹配的算法,模板(也就是五角星)我们在比赛调试阶段就拍好了,匹配算法我们从给出的算法中选择识别率最高的
总结 #
这次比赛是比较简单的一次比赛,要自己写的代码只有识别五角星然后框图,模板匹配网上也都有比较详细的教程,当然,识别五角星还比较简单的,更难的比如人脸识别,网上也有代码,这个机器人的官方也给出了人脸识别的代码
这个网站(我发给过学姐),就是一些官方出的基本案例,源代码都在上面。
还有ROS这系统,还是比较复杂的,一时半会也学不来,我觉得我们实验室的人基本对它的了解还是很少的。
还有最重要的就是开发手册和github上那些案例了,关于机器人的技术,除了ROS大部分都在上面了。