当前位置:   article > 正文

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

gazebo 迷宫

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

// 创建各个文件。。。
  • 1
  • 2
  • 3
  • 4

所有的文件托管在本人的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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在溜达的路上碰到了红球,然后去拿(撞一下),拿到了,然后回家
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 总结

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/473109
推荐阅读
相关标签
  

闽ICP备14008679号