Autoware笔记1:使用autoware构建点云地图


前言

本文是在arm架构的工控机上操作的。

1.工控机搭建autoware环境参考链接

工控机(arm + ubuntu18.04)搭建Autoware 1.14环境以及源码编译(GPU版)详细步骤外加官方demo运行

2.本文参考链接

参考链接1:Autoware 培训笔记 No. 1——构建点云地图
参考链接2:镭神16线激光雷达使用

一、前期工作

1.修改镭神16线激光雷达launch文件

打开leishen_ws/src/Lslidar_ROS1_driver/lslidar_c16_decoder/launch/lslidar_c16.launch文件

在这里插入图片描述按照上图所示修改,将第1,2处改成

<arg name="device_ip" default="192.168.4.201" />
<param name="frame_id" value="velodyne"/>

在第3处添加

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

2.将网络IP与设备IP放在同一网段下

从上面的launch文件设备IP是192.168.4.201,插上网线与设备连接后,打开有线网络设置,仿照下图修改:
在这里插入图片描述可以下载一个网络抓包工具查看:打开终端输入sudo apt-get install wireshark下载,然后输入sudo wireshark使用。如下图所示,查看IP是否设置好。

在这里插入图片描述


二、autoware查看激光雷达点云

1.运行autoware

在autoware.ai文件夹下打开一个终端:

source install/setup.bash
roslaunch runtime_manager runtime_manager.launch

2. 启动激光雷达

Sensing页面下Lidars点选velodyne VLP-16config,点选ref,加载/opt/ros/melodic/share/velodyne_pointcloud/params/VLP16db.yaml路径下的配置文件
在这里插入图片描述
之后勾选velodyne VLP-16选项(一般的操作都是先修改config或者app下的配置或参数文件,然后勾选选项)。
在这里插入图片描述
这时你可以通过下面命令查看是否有点云数据输出。

rostopic echo /points_raw 

打开终端输入命令后,可以看到点云数据
在这里插入图片描述
当然也可以通过autoware提供的Topics工具进行查看。点击Topics,接着点击1处的Refresh,会刷新Topic;接着会出现2处的/points_raw topic,点一下它,最后勾选3处的echo,对话框中会显示topic中的内容
在这里插入图片描述

3. 录制点云数据

点击runtime manager右下角ROSBAG按钮,在弹出的对话框中点击下方点击Refresh按钮刷新话题列表,找到/points_raw 并勾选,如下图
在这里插入图片描述点击Start按钮,等数据录完,点击Stop,此时数据会保存在autoware.ai/install/runtime_manager/share/runtime_manager/scripts/目录下。此时,数据录制完毕。

4. 回放点云数据

为了查看数据录制效果,需要数据回放数据。
(1)点击进入Simulaton页面,点击界面右上方Ref按钮,加载之前录制的bag文件。
(2)修改Start Time(s)为1(因为总共录制时间才138s,从140s开始的话,还没开始就结束了),点击Play按钮播放数据,然后再点击Pause暂停播放。此时你会发现右边进度条有数值出现,如下所示。
在这里插入图片描述
注意:在进行此步骤的时候确保之前启动的Sensing下的传感器驱动关闭,或者关闭自己的lidar driver
(3)右下方的Rviz按钮,启动Rviz可视化窗口。在Rviz界面中左菜单栏中找到Fixed Frame,在该栏目中修改worldvelodyne。点击左下角Add按钮,加载By Topic/points_raw话题的 PointCloud2选项。

在这里插入图片描述

点击runtime manager下的Simulation菜单的Pause按钮,此时在Rviz中可以看到之前记录的数据被显示出来。如上所示。

5. 建图

(1)设置从base_link到velodyne坐标系的TF。在Setup菜单中,确保Localizer下选项为 Velodyne,在Baselink to Localizer中设置好各个参数之后点击TF按钮,其中x、y、z、yaw、pitch、roll表示真车雷达中心点与车身后轴中心点的相对位置关系(右手坐标系,真车后车轴为原点),此时可以点击Vehicle Model,如果Vehicle Model为空,那么会加载一个默认模型(在rviz显示时,如果有激光雷达数据,车辆会显示为黑色)。如下所示。

在这里插入图片描述
(2)设置map到base_link转换。在Compulting菜单栏中找到lidar_localizer下的Ndt_Mapping 选项,设置app,并勾选。Ndt_Mapping会有一些设置需要注意一下,如下图:
在这里插入图片描述
参数用默认,如果有GPU(一定有,因为没有CUDA不能安装autoware),可以选择pcl_anh_gpu

(3)设置从world到map转换。点击Map页面,点击TFref 选择
autoware.ai/src/autoware/documentation/autoware_quickstart_examples/launch/tf_local.launch文件,这是加载默认world到map的坐标转换,然后点击TF按钮

(4)制作点云地图。和回放点云数据一样,点击进入Simulaton页面,点击界面右上方Ref按钮,加载之前录制的bag文件,点击Play按钮播放数据,然后再点击Pause暂停播放。点击runtime manager右下方的Rviz按钮,启动Rviz可视化窗口。加载Rviz的配置文件,路径为autoware.ai/src/autoware/documentation/autoware_quickstart_examples/config/default.rviz。加载后rviz的配置文件后,回到runtime managerSimulaton页面,再次点击Pause开始播放,这时可以看到终端显示如下(由于rviz会占用大量的系统资源,所以在建图过程中不需要打开rviz的显示,只需要查看terminal上的显示即可):
在这里插入图片描述注意:上图的最下面的(Process/Input): (1508 / 1508),这两个数字前一个数字表示正在处理的点云帧数,后一个表示加载的点云帧数。如果两个数字相差过大,会出现运行错误。 如果前后两个数字相差过大,就要按Simulaton页面的Pause按键,暂停加载,等待一下正在处理的数字,两个数字重新接近之后,可以再次按 [Pause] 按键运行。运行停止,表示地图生成完毕。

(5)保存点云地图。打开Compulting下的ndt_Mapping选项的app,如下所示:
在这里插入图片描述

点击ref选择保存地图的路径,将Filter Resolution参数设置为0.2,点击PCD OUTPUT按钮,开始保存pcd文件。此时,可以在保存的路径里看到一个.pcd文件,该文件就是地图文件。

(6)查看地图文件

选择runtime managerMap菜单,点击Point Cloud按钮的ref,加载刚才保存.pcd文件,并点击Point Cloud按钮,进度条显示OK,则加载完毕,如下所示:
在这里插入图片描述
点击runtime manager 右下角的RViz ,在RViz显示界面点击左下角的Add按钮,通过By Topic找到/points_map并打开,在rviz中显示如下:
在这里插入图片描述

这里点云地图出现问题,待解决。

猜你喜欢

转载自blog.csdn.net/m0_60355964/article/details/126404191