• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

在ROS中开始自主机器人仿真 – 2 让turtlebot自主导航

人工智能 旧人赋荒年 2255次浏览 0个评论

我们已经在gazebo中实现了机器人的仿真,而且能够控制机器人的运动, 查看机器人所感知到的信息, 包括lasercan, 图像信息, 深度信息, 点云, 也包括没有提到的速度信息. 这里,我们建立用ROS navigation stack 导航功能包ROS navigation stack 导航功能包 , 进行机器人地图构建与导航.  

Part 2.1: 让turtlebot自主导航

 

1 创建地图

  使用下面的命令,借助键盘遥控机器人创建精确详尽的地图.  

加载Gazebo仿真环境

 

<span style="font-size: 16px;"><code class="hljs avrasm has-numbering">roslaunch turtlebot_gazebo turtlebot_world<span class="hljs-preprocessor">.launch
</span></code></span>

  在ROS中开始自主机器人仿真 - 2 让turtlebot自主导航  

开始构建地图

 

<span style="font-size: 16px;"><code class="hljs avrasm has-numbering">roslaunch turtlebot_gazebo gmapping_demo<span class="hljs-preprocessor">.launch
</span></code></span>

 

rviz可视化

 

<span style="font-size: 16px;"><code class="hljs avrasm has-numbering">roslaunch turtlebot_rviz_launchers view_navigation<span class="hljs-preprocessor">.launch
</span></code></span>

 

键盘遥控

 

<span style="font-size: 16px;"><code class="hljs avrasm has-numbering">roslaunch turtlebot_teleop keyboard_teleop<span class="hljs-preprocessor">.launch
</span></code></span>

  通过不断地让机器人在环境中游走, 就可以得到一个grid 地图.   在ROS中开始自主机器人仿真 - 2 让turtlebot自主导航  

2 保存地图

  保存地图到本地文件夹  

<span style="font-size: 16px;"><code class="hljs bash has-numbering">rosrun map_server map_saver <span class="hljs-operator">-f</span> ~/file_folder/test_map
</code></span>

 

3 加载地图

  关闭之前的节点, 重新打开gezebo仿真环境, 加载地图, 进行导航.  

加载Gazebo仿真环境

 

<span style="font-size: 16px;"><code class="hljs avrasm has-numbering">roslaunch turtlebot_gazebo turtlebot_world<span class="hljs-preprocessor">.launch
</span></code></span>

 

加载地图

 

<span style="font-size: 16px;"><code class="hljs avrasm has-numbering">roslaunch turtlebot_gazebo amcl_demo<span class="hljs-preprocessor">.launch</span> map_file:=~/file_folder/test_map<span class="hljs-preprocessor">.yaml
</span></code></span>

 

rviz可视化

 

<span style="font-size: 16px;"><code class="hljs avrasm has-numbering">roslaunch turtlebot_rviz_launchers view_navigation<span class="hljs-preprocessor">.launch
</span></code></span>

 

part 2.2: 解释与扩展

  对于仿真环境,显示以及配置文件已经在之前详细说明.  

gmapping

  上文采用gmapping进行地图构建, gmapping是一个ros自带的地图构建工具包。slam_gmapping采用激光数据(topic:sensor_msgs/LaserScan)生成二维地图(topic:nav_msgs/OccupancyGrid). 在gmappingtutorial中 ,可以发现, 订阅的主题,发布的主题,以及调用的服务。  

订阅主题

  tf (tf/tfMessage) 坐标系转换 scan (sensor_msgs/LaserScan) 激光数据  

发布主题

  map_metadata (nav_msgs/MapMetaData) map (nav_msgs/OccupancyGrid) 地图数据 entropy (std_msgs/Float64) 表示机器人位姿的不确定性  

服务

  dynamic_map (nav_msgs/GetMap) 调用获得地图数据  

amcl

  amcl全称adaptive Monte Carlo localization,是一个机器人二维环境的概率定位系统, 在已知地图的环境中, 利用粒子滤波跟踪机器人的位姿. ROS中的amcl节点订阅激光数据sensor_msgs/LaserScan和地图数据nav_msgs/OccupancyGrid, 得到机器人的估计位姿.  

订阅主题

  scan (sensor_msgs/LaserScan) 激光数据 tf (tf/tfMessage) initialpose (geometry_msgs/PoseWithCovarianceStamped) map (nav_msgs/OccupancyGrid)地图信息  

发布主题

  amcl_pose (geometry_msgs/PoseWithCovarianceStamped)机器人在地图中的估计位置及协方差 particlecloud (geometry_msgs/PoseArray) 粒子云位置估计 tf (tf/tfMessage)  


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明在ROS中开始自主机器人仿真 – 2 让turtlebot自主导航
喜欢 (0)

您必须 登录 才能发表评论!

加载中……