目录
前言
本文是在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-16
的config
,点选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
,在该栏目中修改world
为velodyne
。点击左下角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
页面,点击TF
的ref
选择
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 manager
的Simulaton
页面,再次点击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 manager
的Map
菜单,点击Point Cloud
按钮的ref
,加载刚才保存.pcd
文件,并点击Point Cloud
按钮,进度条显示OK,则加载完毕,如下所示:
点击runtime manager
右下角的RViz
,在RViz
显示界面点击左下角的Add
按钮,通过By Topic
找到/points_map
并打开,在rviz
中显示如下:
这里点云地图出现问题,待解决。