一、roscore
用于整个系统ros系统的信息交互。
roscore
二、地图数据发布节点
发布已经建立好的地图信息,给move_base节点使用,用于和实际的雷达数据匹配。
建立地图的教程参考本教程第五讲。
cd ~/catkin
rosrun map_server map_server my_map_name.yaml
在rviz中查看发布的地图信息。
三、点云数据发布节点
使用点云数据发布节点,可以采用录制好的bag包,也可以采用实时的雷达数据。因为手上用的是16线robesense,因此需要运行一个点云发布节点,同时运行一个3D转2D的节点。参考本系列第三讲和第四讲。
虚拟机设置网络采用桥接模式,修改IP固定。
启动雷达数据发布:
roslaunch rslidar_pointcloud rs_lidar_16.launch
启动3D转2D程序:
roslaunch pointcloud_to_laserscan point_to_scan.launch
在RVIZ中Fixed Frame 输入laser(第五讲中修改过),添加三维和二维点云数据显示。
打开map信息,可以发现laser坐标系和map坐标系偏差较远,需要其他的环节来进行定位。
四、定位算法节点
AMCL(adaptive Monte Carlo Localization)自适应蒙特卡洛定位,是机器人在二维移动过程中概率定位系统,采用粒子滤波器来跟踪已经知道的地图中机器人位姿,对于大范围的局部定位问题工作良好。
ROS系统启动AMCL节点,使用turtlebot的launch文件。
终端下,输入指令:
roslaunch turtlebot3_navigation amcl.launch
提示:没有监听到/scan topic
查看节点,amcl没有读到map信息。
五、路径规划节点
move_base是ROS系统自带的运动导航算法节点。
终端下,输入指令:
roslaunch turtlebot3_navigation move_base.launch