文章目录
- 前言
- 1 Robosence与Velodyne格式差异.
- 2 格式转换
- 2.1 rs_to_velodyne库
- 2.2 目前支持:
- 3 拉取工程并编译
- 2.1 安装robosence雷达驱动(类似第六章):
- 2.2 构建rs2vel工程:
- 3 运行robosence雷达,并转换格式
- 总结
前言
上文介绍使用自己的多线激光雷达来可视化、采数据,并使用港科大改进的A-Loam进行建图。有朋友问说自己用的是Robosence的雷达,A-Loam的库是只是velodyne雷达的格式的,这一篇讲一讲怎么做一个数据转接,实现使用Robosence进行建图。
前文链接如下-
SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04
-
SLAM实操入门(二):Ubuntu20.04安装ROS Noetic并运行“小乌龟”程序
-
SLAM实操入门(三):Ubuntu20.04安装Turtlebot3并运行SLAM例程仿真
-
SLAM实操入门(四):使用ROS连接自己的激光雷达并可视化扫描结果
-
SLAM实操入门(五):无里程计仅使用激光雷达建图(GMapping算法)
-
SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化
- SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM
1 Robosence与Velodyne格式差异.
rslidar和velodyne的格式有微小的区别
其中,rslidar的点云数据格式如下:
struct RsPointXYZIRT {PCL_ADD_POINT4D;uint8_t intensity;uint16_t ring = 0;double timestamp = 0;EIGEN_MAKE_ALIGNED_OPERATOR_NEW
} EIGEN_ALIGN16;
POINT_CLOUD_REGISTER_POINT_STRUCT(RsPointXYZIRT,(float, x, x)(float, y, y)(float, z, z)(uint8_t, intensity, intensity)(uint16_t, ring, ring)(double, timestamp, timestamp))
velodyne的点云数据格式如下:
struct RsPointXYZIRT {PCL_ADD_POINT4D;uint8_t intensity;uint16_t ring = 0;double timestamp = 0;EIGEN_MAKE_ALIGNED_OPERATOR_NEW
} EIGEN_ALIGN16;
POINT_CLOUD_REGISTER_POINT_STRUCT(RsPointXYZIRT,(float, x, x)(float, y, y)(float, z, z)(uint8_t, intensity, intensity)(uint16_t, ring, ring)(double, timestamp, timestamp))
2 格式转换
2.1 rs_to_velodyne库
使用一个将Robosense点云转换为Velodyne点云格式的ros工具,可直接用于下游算法,例如LOAM,LEGO-LOAM,LIO-SAM等。
rs_to_velodyne库安装的github参考地址:rs_to_velodyne
2.2 目前支持:
-
[robosense XYZIRT] 至 [velodyne XYZIRT / XYZIR / XYZI]:(推荐)
RS-16、RS-32、RS-Ruby、RS-BP 和 RS-Helios LiDAR 点云。 -
[robosense XYZI] 至 [velodyne XYZIR]:
RS-16 和 RS-Ruby LiDAR 点云,更多 LiDAR 模型支持即将推出。
注意:对于 rslidar_sdk v1.5+(2022),代码需要进行微小修改。
3 拉取工程并编译
2.1 安装robosence雷达驱动(类似第六章):
拉取驱动工程并编译:
cd
sudo mkdir -p rs_deiver/src
cd rs_deiver
catkin_make
cd src
git clone https://github.com/RoboSense-LiDAR/rslidar_sdk.git
cd ..
catkin_make
source devel/setup.bash
安装pcap依赖:
sudo apt-get install -y libpcap-dev
安装Yaml依赖(若已安装ROS desktop-full, 可跳过):
sudo apt-get install -y libyaml-cpp-dev
2.2 构建rs2vel工程:
- 回到主页,创建工程文件
cd
sudo mkdir -p catkin_rs2vel/src/
- 进入工程文件中
cd catkin_rs2vel/src/
- 拉取工程
sudo git clone https://github.com/HViktorTsoi/rs_to_velodyne.git
- 返回上级目录,编译
cd ..
catkin_make
source一下bash文件以配置环境变量
source devel/setup.bash
3 运行robosence雷达,并转换格式
与第六章、第七章的方式相同,但是这里需要运行三个launch文件:
- 1、robosence激光雷达驱动
roslaunch rslidar_sdk start.launch
- 2、robosence to velodyne代码
# 对于XYZI格式的点云来自/rslidar_points
rosrun rs_to_velodyne rs_to_velodyne XYZI XYZIR
也可能是下面其中某个,根据需求试一试
XYZIRT 输入:
对于来自 /rslidar_points 的 XYZIRT 格式点云,最新的 rslidar_sdk 驱动程序才能获取此类点云
rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZIRT
# or
rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZIR
# or
rosrun rs_to_velodyne rs_to_velodyne XYZIRT XYZI
- 3、A-Loam建图代码
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
结果如下
总结
本文介绍了使用Velodyne的16线激光雷达进行建图,算法是港科大2014年重构的A-Loam,希望能帮到大家。
-
SLAM实操入门(一):在已有WIN10的电脑上安装Ubuntu20.04
-
SLAM实操入门(二):Ubuntu20.04安装ROS Noetic并运行“小乌龟”程序
-
SLAM实操入门(三):Ubuntu20.04安装Turtlebot3并运行SLAM例程仿真
-
SLAM实操入门(四):使用ROS连接自己的激光雷达并可视化扫描结果
-
SLAM实操入门(五):无里程计仅使用激光雷达建图(GMapping算法)
-
SLAM实操入门(六):连接Velodyne的16线激光雷达并可视化
-
SLAM实操入门(七):使用Velodyne16线激光雷达与A-Loam进行三维SLAM