镭神智能C16调试及其适配Autoware1.14

news/2025/1/8 20:10:16/

一、将硬件连通,确定数据通讯成功

二、下载好传感器的驱动并编译完成

mkdir -p ~/lslidar_ws/src
cd ~/lslidar_ws/src
git clone https://github.com/tongsky723/lslidar_C16.git
cd ~/lslidar_ws
catkin_make
source devel/setup.bash
roslaunch lslidar_c16_decoder  lslidar_c16.launch

三、开始查看雷达参数

3.1 rviz效果图

在这里插入图片描述

3.2 查看启动了哪些话题和节点

3.2.1 列出正在运行的话题,终端输入:

rostopic list -v 

在这里插入图片描述

3.2.2 列出正在运行的节点,终端输入:

rosnode list

在这里插入图片描述

3.2.3 查看某一节点的具体参数和通讯话题,终端输入命令:

rosnode info 节点名

在这里插入图片描述

3.3 查看雷达的扫描频率

通过rviz可以看到,点云的话题名为 /lslidar_point_cloud,因此终端输入命令:

rostopic hz /lslidar_point_cloud

在这里插入图片描述
注:红框内为消息接发收时间参数,频率大概在10hz左右,与厂家说明书参数基本一致。

3.4 查看点云的具体参数

查看雷达扫描过程中,某一行的点云的坐标系名称、点云数等参数。

rostopic echo --noarr  /lslidar_point_cloud    #一定要加--noarr,排除话题数据中的数组信息,否则会出现乱码

在这里插入图片描述

注:红框内的数据为一组完整数据,雷达的坐标系frame_id名称为laser_link;每一行激光的总点云数大概为30000。

常见三维点云的具体格式如下,header类类型包括stamp时间戳,frame_id 坐标系名称(该参数是一个字符串类型,可以选择的地图类型),seq是一个记录消息序号的整型变量:

//头文件
header: seq: 18664stamp: secs: 1551087603nsecs: 700827000frame_id: "velodyne"
//height可视为点云数据的行数;
//如果为1,则表示无序;
//否则为有组织点云数据集的高度/行数
height: 1
//width为一行的总点数
//对于无序数据集而言,width即为点云总数
width: 22998
//看到fields,可以先跳过看完point_step和row_step之后再回来
//field格式包括name,offset,datatype,count,具体定义见sensor_msgs/PointField.msg
//该点云所包括的信息有点云的xyz信息(即点云在激光雷达坐标系的位姿)以及强度信息
//offset此处的含义不是很明白,我的理解是对于name“x”而言,它的信息包含在第0字节-第3字节中;name“y”而言,包含在第4字节-第7字节;依次类推。欢迎有大佬帮我在此处解疑下
fields: - name: "x"offset: 0datatype: 7count: 1- name: "y"offset: 4datatype: 7count: 1- name: "z"offset: 8datatype: 7count: 1- name: "intensity"offset: 16datatype: 7count: 1- name: "ring"offset: 20datatype: 4count: 1
//数据存储方式,包括大端与小端,具体解释见后文参考链接
is_bigendian: False
//存储一个点云所需的字节长度,单位为byte
point_step: 32
//存储一行点云所需的字节长度,单位为byte
//row_step = point_step * width
row_step: 735936
//点云数据信息,该数组解析方式由field进行定义
//data数组的大小为row_step * height
data: [51, 81, 165, 64, 127, 62, 141, 192, 255, ......]

3.5 将点云的数据信息进行录包

rosbag record  -a  -O  lslidar_bagfiles
#  -a表示所有发布的话题都应该积累在一个bag文件中;-o表示所有数据记录名为subset.bag的文件中。

在这里插入图片描述

rosbag  info  lslidar_bagfiles_2022-08-08-09-26-25.bag

在这里插入图片描述

rosbag play  lslidar_bagfiles_2022-08-08-09-26-25.bag

在这里插入图片描述

四、查看建图效果

4.1 下载和编译A-LOAM

cd catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/A-LOAM.git
cd ..
catkin_make
source ~/catkin_ws/devel/setup.bash

4.2 安装A-LOAM所需的依赖ceres-solver-1.14.0

在这里插入图片描述

下载链接:http://ceres-solver.org/installation.html

# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev
tar zxf ceres-solver-1.14.0.tar.gz
mkdir build
cd build
cmake ../ceres-solver-1.14.0
make -j4
make test
# Optionally install Ceres, it can also be exported using CMake which
# allows Ceres to be used without requiring installation, see the documentation
# for the EXPORT_BUILD_DIR option for more information.
sudo make install

4.3 修改A-LOAM的配置文件

~/catkin_ws/src/A-LOAM/src

打开scanRegistration.cpp文件:
将ros::Subscriber subLaserCloud = nh.subscribe<sensor_msgs::PointCloud2>(“/velodyne_point_cloud”, 100, laserCloudHandler);
改为:
ros::Subscriber subLaserCloud = nh.subscribe<sensor_msgs::PointCloud2>(“/lslidar_point_cloud”, 100, laserCloudHandler);

在这里插入图片描述注:这样和录制的bag包的话题才可以对应上。

4.3 查看建图效果

先运行A-LOAM算法:

cd ~/catkin_ws
catkin_make
roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch 

注意功能包的名称,在cmake.list中寻找:
在这里插入图片描述

然后在打开bag包:

cd ~/ws/lidar_bag
rosbag play lslidar_bagfiles_2022-08-08-09-26-25.bag

在这里插入图片描述

五、适配Autoware1.14

由于Autoware默认使用velodyne激光雷达,参考系使用velodyne;点云话题为points_raw。因此,如果要在autoware1.14上使用lslidar,需将雷达的格式转化为velodyne的格式。即,需要将/lslidar/src/lslidar_C16/lslidar_c16_decoder/launch/lslidar_c16.launch文件中的frame id由laser_link修改为velodyne,将原话题lslidar_point_cloud转化为points_raw,添加一行:

<remap from="lslidar_point_cloud" to="/points_raw" />

由:

在这里插入图片描述
改为:

在这里插入图片描述

参考资料:
(1)[ROS常用组件] — rqt工具箱
(2)详细的Rostopic命令系列(包括消息发布等实例操作)


http://www.ppmy.cn/news/400204.html

相关文章

金属表面缺陷检测类的实践项目

【说明】&#xff1a;下面仅以Pytorch CNN Transfer Learning: Image Classifier 关于金属表面缺陷检测类的实践项目为例介绍如何创建虚拟环境以及在JuypterLab中使用对应的内核 项目已开源在https://github.com/astudent2020/Metal_Surface_Defects 提供数据集及相关代码 …

新方案登场!“软硬兼施”让光伏组件焊接检测更高效

焊接是光伏组件生产中重要的工艺流程&#xff0c;就拿光伏组件中常见的组成部分——接线盒来举例&#xff0c;作为完成组件电力传输的关键器件&#xff0c;在组件的自动化生产过程中&#xff0c;接线盒的电极焊接质量直接关乎组件的性能&#xff0c;焊接质量检测的重要性不言而…

台电 平板电脑 html,匠心新旗舰 台电T20平板电脑正式发布

经过三百个日夜的匠心锻造&#xff0c;台电新一代旗舰平板T20终于面世。择一事终一生&#xff0c;台电对于“匠心”二字的探索还在继续。此次发布的T20&#xff0c;仍以制造更快更好的平板电脑为最终理念&#xff0c;并更好地满足用户观看视频、玩游戏和阅读需求。 怪兽级性能的…

学校购买了若干台电计算机,某学校计划购买若干台电.doc

某学校计划购买若干台电 某学校计划购买若干台电 篇一&#xff1a; 广东省东莞市2017-2017学年七年级下期末考试数学试题 东莞市2017-2017学年度第二学期教学质量自查 七年级数学 一、选择题(每小题2分&#xff0c;共20分) 1、下列实数中&#xff0c;属于无理数的是() 1 A、 B、…

深圳台电:联合国的“沟通”之道

深圳台电的故事&#xff0c;让我很感慨&#xff0c;“数字化”确实给我们打开了一扇门。这家企业一直按照传统的思路和模式来做硬件&#xff0c;有了远程的云的支持、人工智能的支持&#xff0c;产品就有了“软硬一体”的科技含量。以前不能提供的服务&#xff0c;现在能提供了…

台电平板时不了android,台电平板电脑a11开不了机怎么办 手把手教你如何进行刷机【图解】...

台电的产品在隔一段时间后需要进行更新系统固件来提高设备的稳定&#xff0c;一些用户们也是希望能够定时的进行更新升级&#xff0c;可是台电 平板电脑 的系统升级方法是比较奇怪的&#xff0c;用户们在官网上下载了升级的固件之后都会有种无从下手的感觉&#xff0c;那么今天…

Hadoop(CentOS)安装及MapReduce实现数据去重

Hadoop&#xff08;CentOS&#xff09;安装及MapReduce实现数据去重 1. JDK安装 1.1 资源下载&#xff1a; 下载地址&#xff1a;https://pan.quark.cn/s/17d7266205f9 hadoop的安装 包 java jdk安装包 eclipse连接hadoop工具 所学其他工具可自行在官网下载 centos下载地…

Java企业开发学习笔记(1.5.1)采用配置方式使用AOP

一、采用配置方式使用AOP 1.1 创建所需子包 在cn.kox.spring包里创建day05.aop_xml子包 1.2 创建杀龙任务类 在aop_xml子包里创建杀龙任务类 - SlayDragonQuest package cn.kox.spring.day05.aop_xml; import org.springframework.stereotype.Component; /* 杀龙任务类*/ …