基于《ros机器人开发实践》的学习,ros建图,机器人导航

在这之前先仔细学习书中的内容,运行相关教学包,试一试这种感觉,培养自己的兴趣,觉得这个做起来还是挺有趣的,下面这些图是运行书中的展示效果:主要是ros建图,与机器人实现导航功能

#下面小编开始自己的乐趣了,利用书中源码,实现ros建图与机器人导航功能

首先打开gazebo建立一个房间模型,建立好后如图1所示

图1 创建房间模型

将创建好的房间模型,保存到自己的工作空间下,需要注意的是房间模型放在gazebo的坐标中间,因为等下要引入小车模型,小车定义的点是(0,0,0)点,所以放在中间的同时,还要将坐标原点留出来。然后需要在launch文件中链接自己所画的模型,需要进行相关的设置。另外launch文件中需要添加自己创建的四轮小车的模型,小车模型如图2所示,一切准备就绪后,使用以下指令启动gazebo仿真环境和gamapping节点

roslaunch mrobot_gazebo mrobot_laser_nav_gazebo.launch
roslaunch mrobot_navigation gmapping_demo.launch


运行成功后,可以在rviz中查看传感器和地图构建的实时信息,周围的红点是激光雷达传感器实时检测到的环境信息,并且根据这些信息建立了部分已知环境的地图,呈现浅灰色。
 


图2 四轮小车模型

 
我们可以让机器人动起来,在观察:

roslaunch mrobot_teleop mrobot_teleop.launch


这样通过机器人的不断运动,获取的环境信息也不断更新,这样地图也不断更新,并且gmapping会自动校正之前建立的地图和机器人的位置偏差。最终在rviz中生成map如图3所示。


图3 基于雷达的gmapping SLAM的最终仿真效果


地图建立完成后,使用指令保存该地图

rosrun map_sever map_saver


地图保存在当前终端的目录下,所以我们要用该地图实现自主导航,就需要把它和另外生成的map.yaml文件移到相应工作空间的map文件夹下,没有的话需要自己创建,然后在launch文件需要修改或者添加引用该map对应的yaml文件的语句。
然后运行以下指令,就可以实现自己创建的小车模型与地图下的导航功能,具体效果如图4、图5所示。

roslaunch mrobot_bringup fake_mrobot_with_laser.launch
roslaunch mrobot_navigation fake_nav_demo.launch


图4 rviz视野中的导航


图5 gazebo中机器人导航与rviz中同步

#总结一下过程中遇到的问题

过程中,遇到的问题,gazebo文件打开后,一直黑屏,寻找了很多解决方法,也进行了重装gazebo,还是没有解决,最后猛地发现不是gazebo的问题,而是因为电脑配置的问题,需要耐心等待,相关模型才显示出来(我的电脑等了6min左右,在这里我真的哭了呀,不过幸好黄天不负有心人)。另外还遇到了一个问题,相似的问题在此实验中前前后后遇到3次,需要安装不同的包,在这里举其中一个例子总结一下——

在实现导航功能过程中,

首先更新一下工作空间 ros_exploring与arbotix

再运行——

roslaunch mrobot_bringup fake_mrobot_with_laser.launch

出现下面的报错:
 

ERROR: cannot launch node of type[arbotix_python/arbotix_driver]:arbotix_python

ROS path [0]=/opt/ros/kinetic/share/ros

ROS path [1]=/home/yukun/ros_exploring/src

ROS path [2]=/opt/ros/kinetic/share

用以下语句检查有无arbotix_python package

roscd arbotix_python

没有则用下面的指令安装arbotix_python,问题便得到解决

sudo apt-get install ros-kinetic-arbotix

需要注意的是,Ubuntu18.04与Ubuntu16.04中不同,不是用“ros-kinetic-”,而是用“ros-melodic-”。

好啦,这次就说到这里啦~

注:相关源码出自胡春旭老师的《ros机器人开发实践》,GitHub中也有托管,感兴趣的同学可以入手一波

git clone https://github.com/huchunxu/ros_exploring.git

  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值