ROS中阶笔记(七):机器人SLAM与自主导航 您所在的位置:网站首页 sla功能汽车 ROS中阶笔记(七):机器人SLAM与自主导航

ROS中阶笔记(七):机器人SLAM与自主导航

2024-07-08 11:46| 来源: 网络整理| 查看: 265

ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用

文章目录 1 机器人必备条件1.1 硬件要求1.2 深度信息1.2.1 激光雷达1.2.2 kinect 1.3 里程计信息1.4 仿真环境 2 SLAM功能包的使用方法2.1 gmapping2.1.1 gmapping 功能包2.1.2 栅格地图取值原理2.1.3 gmapping安装2.1.4 配置gmapping节点2.1.5 启动gmapping演示(激光雷达)2.1.6 启动gmapping(kinect) 2.2 hector_slam2.2.1 hector_slam功能包2.2.2 安装hector_slam2.2.3 配置hector_mapping节点2.2.4 启动hector_slam演示 2.3 cartographer2.3.1 cartographer功能包2.3.2 cartographer安装2.3.3 启动2D、3D 演示2.3.4 把cartographer功能包运行到自己的机器人上2.3.5 启动cartographer仿真 2.4 ORB_SLAM2.4.1 ORB_SLAM功能包2.4.2 ORB_SLAM2安装2.4.3 启动单目SLAM示例(基于数据包)2.4.4 启动AR示例(基于数据包)2.4.5 启动ORB_SLAM示例(真实摄像头)2.4.6 启动AR示例(真实摄像头) 3 参考资料

1 机器人必备条件 1.1 硬件要求

(1)差分轮式机器人,可使用twist速度指令控制

$ rosmsg show geometry_msgs/Twist geometry_msgs/Vector3 linear # linear:xyz方向上的线速度,单位是m/s; float64 x float64 y float64 z geometry_msgs/Vector3 angular # angular:xyz方向上的角速度,单位是rad/s。 float64 x float64 y float64 z

(2)机器人必须安装激光雷达等测距设备,可以获取环境深度信息。 (3)最好使用正方形和圆形的机器人,其他外形的机器人虽然可以使用但是效果可能不佳。

1.2 深度信息 1.2.1 激光雷达 $ rosmsg show sensor_msgs/LaserScan # 查看激光雷达消息结构 std_msgs/Header header uint32 seq time stamp string frame_id float32 angle_min float32 angle_max float32 angle_increment float32 time_increment float32 scan_time float32 range_min float32 range_max float32[] ranges float32[] intensities angle_min:可检测范围的起始角度; (—180——180度 ) angle_max:可检测范围的终止角度,与angle_min组成激光雷达的可检测范围; angle_increment:相邻数据帧之间的角度步长; time_incremen:采集到相邻数据帧之间的时间步长,当传感器处于相对运动状态时进行补偿使用。 scan_time:采集一帧数据所需要的视觉; rang_min:最近可检测深度的阈值; rang_max:最远可检测深度的阈值; ranges:一帧深度数据的存储数组。 intensities:每个激光点的强度 1.2.2 kinect

Kinect等GRB-D摄像头,也可以通过红外摄像头获取周围环境的深度信息。 depthimage_to_laserscan功能包:将三维点云数据转换为二维激光雷达数据;



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有