在ROS中开始自主机器人仿真 - 2 让turtlebot自主导航
2017-04-12 17:51
435 查看
我们已经在gazebo中实现了机器人的仿真,而且能够控制机器人的运动, 查看机器人所感知到的信息, 包括lasercan, 图像信息, 深度信息, 点云, 也包括没有提到的速度信息. 这里,我们建立用ROS navigation stack 导航功能包ROS navigation stack 导航功能包 , 进行机器人地图构建与导航.
通过不断地让机器人在环境中游走, 就可以得到一个grid 地图.
地图数据
表示机器人位姿的不确定性
调用获得地图数据
Part 2.1: 让turtlebot自主导航
1 创建地图
使用下面的命令,借助键盘遥控机器人创建精确详尽的地图.加载Gazebo仿真环境
roslaunch turtlebot_gazebo turtlebot_world.launch
开始构建地图
roslaunch turtlebot_gazebo gmapping_demo.launch
rviz可视化
roslaunch turtlebot_rviz_launchers view_navigation.launch
键盘遥控
roslaunch turtlebot_teleop keyboard_teleop.launch
通过不断地让机器人在环境中游走, 就可以得到一个grid 地图.
2 保存地图
保存地图到本地文件夹rosrun map_server map_saver -f ~/file_folder/test_map
3 加载地图
关闭之前的节点, 重新打开gezebo仿真环境, 加载地图, 进行导航.加载Gazebo仿真环境
roslaunch turtlebot_gazebo turtlebot_world.launch
加载地图
roslaunch turtlebot_gazebo amcl_demo.launch map_file:=~/file_folder/test_map.yaml
rviz可视化
roslaunch turtlebot_rviz_launchers view_navigation.launch
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中开始自主机器人仿真 - 1 让turtlebot跑起来
- 在ROS中开始自主机器人仿真 - 4 让自己的机器人自主导航
- 在ROS中开始自主机器人仿真 - 5 机器人环境探索与避障
- 在ROS中开始自主机器人仿真 - 3 建立自己的自主机器人URDF模型
- 在ROS中开始自主机器人仿真 - 0 概述
- 在Docker平台的ROS容器中构建Turtlebot机器人SLAM巡航地图
- ROS 的初步学习---turtlebot机器人平台的安装
- Turtlebot(Kuboki)+Kinect+Huyoko建立gmapping地图,实现自主避障导航
- ROS中给turtlebot加两个传感器:kinect+hokuyo,进行gazebo仿真 (二)
- ROS与VSLAM入门教程-rtabmap_ros-利用turtlebot实现建图和导航
- ROS(indigo)_turtlebot仿真示例包括stage和gazebo
- turtlebot实现在多个目标点之间自主导航
- ROS(indigo)_turtlebot仿真示例包括stage和gazebo
- ROS(indigo)_turtlebot仿真示例包括stage和gazebo
- ROS gazebo中仿真turtlebot,将kinect替换为rplidar后打不开
- ROS中给turtlebot加两个传感器:kinect+hokuyo,进行gazebo仿真(一)
- 对turtlebot机器人进行gazebo仿真时出现Failed to load nodelet [/depthimage_to_laserscan]
- ROS中PocketSphinx语音识别_安装arbotix simulator仿真环境_turtlebot的仿真语音控制
- ROS 环境下利用gazebo和Rviz进行Turtlebot仿真建图
- ROS的优势与不足(除了ROS 机器人自主定位导航还能怎么做?)