- 机器人必备条件
- ROS SLAM功能包应用方法
- ROS中的导航框架
- ROS机器人自主导航
机器人必备条件
硬件要求
(1)差分轮式机器人,可使用Twist速度指令控制
(2)机器人必须安装激光雷达等测距设备,可以获得环境深度信息
(3)最好使用正方形和方形机器人
深度信息
- angle_min:可检测范围的起始角度
- angle_max:可检测范围的终止角度
- angle_increment:相邻数据帧之间的角度步长
- time_increment:采集相邻数据帧之间的时间步长,当传感器处于相对运动状态时进行补偿使用
- scan_time:采集一帧数据所需要的时间
- range_min:最近可检测深度的阈值
- range_max:最远可检测深度的阈值
- ranges:一帧深度数据的存储数组
Kinect等RGB-D摄像头,也可以通过红外摄像头获取周围环境的深度信息
里程计信息
pose:机器人当前位置坐标,包括机器人的XYZ三轴位置与方向参数,以及用于校正误差的协方差矩阵
twist:机器人当前的运动状态,包括XYZ三轴的线速度与角速度,以及用于校正误差的协方差矩阵
仿真环境
创建仿真环境
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
ROS SLAM功能包应用方法
gmapping
安装gmapping
sudo apt-get install ros-kinetic-gmapping
启动gmapping演示(激光雷达)
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
roslaunch mbot_navigation gmapping_demo.launch
roslaunch mbot_teleop mbot_teleop.launch
启动gmapping演示(Kinect)
roslaunch mbot_gazebo mbot_kinect_nav_gazebo.launch
roslaunch mbot_navigation gmapping_demo.launch
roslaucnh mbot_teleop mbot_teleop
hector_slam
基于激光雷达
roslaunch mbot_gazebo mbot_laser_nav_gazebo.launch
roslaunch mbot_navigation hector_demo.launch
roslaucnh mbot_teleop mbot_teleop
cartographer
安装工具
sudo apt-get update
sudo apt-get install -y python-wstool python-rosdep ninja-build
初始化工作空间
mkdir google_ws
cd google_ws
wstool init src
设置下载地址
wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall
输入完第一个命令后需要改文件的下载地址,另起终端输入:
gedit carto_ws/src/.rosinstall
将最后一个git来源网址由https://ceres-solver.googlesource.com/ceres-solver.git改为https://github.com/ceres-solver/ceres-solver.git,如该果可以挂VPN可以不改。
wstool update -t src
下载功能包
rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
编译功能包