机器人综合应用之迷宫寻宝

1 背景和资料2 正文2.1 作业引入和解题思路2.2 robot_hunt_maze

3 总结

1 背景和资料

本文是机器人高效进阶系列的收尾篇,我们将综合运用前面所学,完成机器人迷宫寻宝的作业。由于迷宫寻宝作业是基于之前很多样例,需要安装很多依赖库,请参考下面的高效进阶系列。 本文参考资料: (1)ROS高效进阶系列

2 正文

2.1 作业引入和解题思路

(1)有一个10m * 10m小迷宫,里面有一个宝物(红色球),在迷宫右小角有一个机器人小车。机器人不知道宝物的位置,也不知道迷宫的情况,他需要自己去找到宝物。 (2)解决这个问题,需要一个拓扑图和系统时序图 gazebo+robot:使用gazebo创建了一个仿真迷宫环境,里面添加了一个轮式机器人,机器人有laser和camera两个传感器,并且支持通过 /cmd_vel 控制机器人移动 gmapping+move_base :实现了机器人自主导航和建图 exploring_maze:系统启动时,exploring_maz 控制机器人自主随机探索迷宫 object_detect:使用opencv图像算法,实时检查机器人前后camera图像,一旦检测到红球,则发出红球的在图像内的位置和大小。 move_to_target:一旦接收到 object_detect 传来的红球在图像内的位置信息,说明机器人溜达时遇到了宝物,则向 exploring_maze 发送停止探索的指令,并接管机器人的控制,通过 /cmd_vel 控制机器人向宝物进发。 在机器人向宝物进发的过程中,object_detec t实时发送宝物在图像内的大小,一旦超过某个值,则视为拿到宝物,此时 move_to_target 向 exploring_maze 发送回家指令。 tts_subscribe:接收 move_to_target 传来的文字指令,然后语音播报。

2.2 robot_hunt_maze

(1)创建 robot_hunt_maze 包

cd ~/catkin_ws/src

catkin_create_pkg robot_hunt_maze std_msgs geometry_msgs move_base_msgs actionlib message_generation rospy roscpp

// 创建各个文件。。。

所有的文件托管在本人的github上:robot_hunt_maze,由于文件众多,这里不再详细赘述,代码自说明一切。 (2)编译并运行 robot_hunt_maze

cd ~/catkin_ws/src

catkin_make --source src/robot_hunt_maze

// 启动gazebo仿真环境

roslaunch robot_hunt_maze mbot_gazebo.launch

// 启动gmapping+move_base

roslaunch robot_hunt_maze navigation_with_gmapping.launch

// 启动自制模块

roslaunch robot_hunt_maze go_maze.launch

在溜达的路上碰到了红球,然后去拿(撞一下),拿到了,然后回家

3 总结

本文样例托管在本人的github上:robot_hunt_maze

相关链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: