ROS高效进阶第七章 -- 机器人综合应用之迷宫寻宝

2023-12-18 06:03:21

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

文章来源:https://blog.csdn.net/cy1641395022/article/details/134979998
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。