
基于单线激光雷达的SLAM建图与路径规划C++实现源码及项目说明(含SLAM建图、定位、路径规划).zip
5星
- 浏览量: 0
- 大小:None
- 文件类型:ZIP
简介:
本资源提供基于单线激光雷达的SLAM算法C++实现,包含地图构建、实时定位和自动路径规划代码及相关文档。
【资源说明】
基于单线激光雷达SLAM建图与路径规划的C++实现源码及项目文档(包含SLAM建图、定位、路径规划)。
### 硬件配置:
- 自动化小车Autolabor Pro1
- 小觅双目相机S1030标准版
- Intel NUC迷你主机
- 显示器
- 2D激光雷达Delta-1A
### 软件环境:
操作系统:Ubuntu 16.04 LTS
ROS版本:Kinetic
其他软件包:小觅驱动、Autolabor Pro1驱动程序、Delta-1A驱动程序,VINS-Fusion算法和ROS-navigation导航包,以及gmapping和cartographer_ros建图算法。
### TF变换
在SLAM系统中使用以下坐标系转换:
- map(地图坐标系)--> odom(里程计坐标系) --> base_link(小车基座坐标系) --> 传感器坐标系(lidar、camera)
#### 坐标变换细节:
1. **map与odom**:由建图算法提供
2. **odom与base_link**:通过Autolabor Pro1驱动程序获得
3. **base_link到传感器(如激光雷达和相机)的转换**:根据安装位置确定,使用static_transform_publisher静态坐标变换进行设置。
### 所需数据类型:
- 传感器消息中的LaserScan用于Delta-1A发布的雷达扫描话题,其名称为scan。
- nav_msgs/Odometry类型的里程计信息由Autolabor Pro1发布,话题名为wheel_odom。
## 建图
采用gmapping和cartographer_ros两种算法进行建图:
#### gmapping:
打开终端并执行以下命令:
```
$ cd ~catkin_ws_lidar_slam
$ source devel/setup.bash
$ roslaunch autolabor_box_launch create_map_gmapping.launch
```
通过键盘控制小车移动,开始构建地图。完成建图后,在新的终端中输入:
```
rosrun map_server map_saver -f map_name
```
#### cartographer_ros(雷达+小车):
执行以下命令:
```
$ cd ~catkin_ws_lidar_slam
$ source devel/setup.bash
$ roslaunch autolabor_box_launch create_map_cartographer.launch
```
通过键盘控制移动,开始构建地图。完成建图后,在新的终端中输入:
```
rosrun map_server map_saver -f map_name
```
#### cartographer_ros(雷达+小车+IMU):
执行以下命令:
```
$ cd ~catkin_ws_lidar_slam
$ roslaunch autolabor_box_launch create_map_cartographer_imu.launch
```
通过键盘控制移动,开始构建地图。完成建图后,在新的终端中输入:
```
rosrun map_server map_saver -f map_name
```
## 定位与路径规划
使用上述两种算法建立的地图进行定位和路径规划。
#### gmapping算法:
执行以下命令:
```
$ cd ~catkin_ws_lidar_slam
$ source devel/setup.bash
$ roslaunch autolabor_box_launch localization_gmapping.launch
```
通过键盘控制小车移动,开始进行定位与路径规划操作。
全部评论 (0)


