Autoware 培訓筆記 No. 3——錄制航跡點


1.前言

航跡點用於知道汽車運行,autoware的每個航跡點包含x, y, z, yaw, velocity信息。

航跡點錄制有兩種方式,可以開車錄制航跡點,也可以采集數據包,線下錄制航跡點,我分開介紹(分開介紹的原因——如果有實車跑你就知道了^_^)。

錄制航跡點非常考驗老司機的車技,車要開的穩,尤其是彎道,盡量要開成圓弧,而且要盡量遠離馬路牙,我們的老司機開車還是很穩的。

本章內容有和No. 1與No. 2重復的內容,為了方便自己調試,我將重復的內容也貼出來。

注意:所有需要在 [Simulation] 菜單下加載的數據,都需要在所有操作之前操作,否則在RViz顯示時,會出現frame_id錯誤。

 

2. 仿真數據錄制航跡點

在我們的項目中,航跡點是車在運動過程中,車載lidar與地圖匹配形成的一系列的位置信息構成的。所以定位就是錄制航跡點的基礎。

 

2.1 打開runtime manager

 

2.2 打開地圖要定位的數據(在百度網盤中有,這是我們錄制的用於定位的數據)(No. 2重復)

進入 [Simulaton] 頁面,點擊界面右上方 [Ref] 按鈕,加載錄制用於定位的 bag 文件。

點擊 [Play] 然后點擊 [Pause]暫停。

注意:請一定要先做這一步,這是因為要同步時間。如果在后面做,會產生關於stamped的錯誤。

 

2.3 加載地圖,加載world到map以及base_link到velodyne的TF變化(No. 2重復)

 

(1) 設置從base_link到velodyne坐標系的TF(與No. 1重復)

在 [Setup] 菜單中,確保 [Localizer] 下選項為 [Velodyne],在 [Baselink to Localizer] 中設置好各個參數之后點擊 TF 按鈕,其中x、y、z、yaw、pitch、roll表示真車雷達中心點與車身后軸中心點的相對位置關系(右手坐標系,真車后車軸為原點),此時可以點擊[Vehicle Model],如果[Vehicle Model]為空,那么會加載一個默認模型(在rviz顯示時,如果有激光雷達數據,車輛會顯示為黑色)。如下所示。

 

(2)設置從world到map轉換(與No. 1重復)

點擊 [Map] 頁面,點擊 [TF] 的 [ref] 選擇 autoware/ros/src/.config/tf/tf_local.launch 文件,這是加載默認world到map的坐標轉換,打開tf_local.launch文件如下: 

<launch>

    <node pkg="tf" type="static_transform_publisher" name="world_to_map" args="0 0 0 0 0 0 /world /map 10" />

</launch>

 args的參數“0 0 0 0 0 0 /world /map 10”表示:從/world坐標系轉換到/map坐標系的x, y, z, roll, pitch, yaw轉換,且頻率為10Hz。

點擊 [TF] 按鈕,如下圖:

 

(2)加載地圖

選擇runtime manager的 [Map] 菜單,點擊 [Point Cloud] 按鈕的 [ref],加載培訓筆記 No. 1產生的.pcd文件(點雲地圖),並點擊 [Point Cloud] 按鈕,進度條顯示OK,則加載完畢,如下所示:

 

2.4 設置相關濾波器(No. 2重復)

選擇 [Sensing] 頁面,點擊 [Points Downsampler] 下 [voxel_grid_filter] 的 app,設置一些參數,[voxel_grid_filter] 是一種將采樣方法,將點雲數據用質心近似(用於降采用),如下圖:

 

這里,[Voxel Leaf Size] 參數值為2,意義是2米的立方體內的全部點近似用1個質心代替。[Measurement Range]的參數值為2,意義是點雲的有效的距離為200米。

[Points Downsampler] 下的四個濾波器都可以選,但我只看了 [voxel_grid_filter] 濾波器,其他三個暫時沒看,后續會陸續補充。

 

2.5 設置從map到base_link的轉換(NDT_MATCHING)(No. 2重復)

找到 [Computing] 左菜單欄下的 [ndt_matching] 選項,打開 [app] ,如下所示:

 

確保 [topic:/config/ndt] 選項處於 [Initial_Pose] 處,勾選 [Initial Pos],x,y,z,roll,pitch,yaw的值表示激光的初始位置,我們這里用默認的0,0,0,0,0,0。如果有GPU(還是一定有),那么[Method Type]可以選擇pcl_anh_gpu用GPU幫助運算。其他參數用默認值。 

我們用的車只有16線激光雷達與攝像頭,所以沒有勾選Odom與IMU等選項。

如果有GNSS設備可以選擇GNSS(后面會講,先挖個坑)。

 

2.6 啟動[vel_pose_connect](No. 2重復)

找到 [Computing] 左菜單欄下的 [vel_pose_connect] ,打開 [app] 並確保選項 [Simulation_Mode] 沒有被勾選(默認不勾選),退出並勾選 [vel_pose_connect]。

 

2.7 記錄航跡點

 在菜單欄 [Computing] 右邊的 [waypoint_maker] 下的 [waypoint_saver]。點擊 [app] 按鈕,在打開的界面中點擊 [Ref] 指定保存路徑和文件名后點擊 [OK] 。如下所示:

     

[app]在勾選框 [Save/current_velocity],可以保存waypoint的速度,參數[Interval]中的值表示采點間隔,默認1m,可以修改為不同的值,我們用默認值效果還不錯。退出並勾選 [waypoint_saver], 如上圖片右側所示。

 

2.8 顯示數據

打開 [Rviz], 在 [file] 菜單中的 [open config] 選擇路徑:autoware/ros/src/.config/rviz/default.rviz 的文件。這是回到runtime manager,進入 [Simulaton] 頁面,點擊 [Pause]開始。這時可以從RViz中看到一輛黑色的帶有激光雷達數據的汽車停在地圖的右下方,如下圖所示:

如果車子不在預想的位置上,那么點擊RViz的工具 [2D Pose Estimate] 重新為車子選擇上圖的位置和方向。

 

2.9 在RViz顯示waypoints記錄過程

打開 [Rviz] ,在 Rviz 左下方找到 [Add]。彈出的顯示框中找到圖示 [By topic] 下 話題 /waypoint_saver_marker 的 [MakerArray] 並添加。如下所示:

 

2.10 保存記錄數據

返回 runtime manager 的 [Simulation] 菜單,點擊 [Pause] 按鈕,這時可以看到車子在地圖中開始運動,車子停止后,回到 runtime manager的 [Computing] 菜單欄下,取消 [waypoint_saver] 勾選(自動保存waypoint)。

注意:確保在此之前更改了文件名和保存路徑,在指定的路徑下將會看到對應文件。

 

如果一切正常,會看到如下效果:

 

3. 實車錄制航跡點

既然可以數據仿真定位,下面試試真車測試。

 

3.1 啟動runtime_manager 

 

3.2 啟動激光雷達(與No.1 重復內容)

(1)針對velodyne 多線lidar

如果你有velodyne激光可以啟動默認配置:[Sensing] 頁面下 [Lidars] 選項下針對你的velodyne選擇,velodyne激光對應的發布的點雲topic:/velodyne_packets,frame_id:velodyne,topic會被重映射成為/points_raw。

例如:假如你有16線激光,點選 [velodyne VLP-16] 的 [config],點選[ref],加載/home/pix/Autoware/ros/src/sensing/drivers/lid ar/packages/velodyne/velodyne_pointcloud/param s/VLP16db.yaml路徑下的配置文件(自己多線激光雷達可以針對這個配置改寫),退出 [config],勾選 [velodyne VLP-16] 選項(一般的操作都是先修改config或者app下的配置或參數文件,然后勾選選項)。

                

查看點雲輸出。

 

(2)針對其他品牌多線lidar

如果你有其他品牌的激光,他們發布的topic不是/velodyne_packets,且frame_id同樣不對應,這時可以自己寫個程序轉一下,參照:https://www.cnblogs.com/hgl0417/p/11067660.html。然后單獨運行你的lidar driver node,將你的點雲數據模擬成velodyne數據。此時,不需要點選runtime manager上的lidar配置文件(每個配置文件對應一個package或者node,意義在於將對應的topic發布,此時你已經發布了topic,所以不需要在點選上述配置文件)。

 

3.3 加載、設置參數

重復本節

 

 

3.2 啟動航跡點記錄

運行本節2.2~2.6的內容

 

3.3 發動汽車到要錄制航跡點的起點

 

3.4 開啟記錄航跡點

運行本節2.7的內容

 

3.5 打開RViz,查看定位

打開 [Rviz], 在 [file] 菜單中的 [open config] 選擇路徑:autoware/ros/src/.config/rviz/default.rviz 的文件。此時在地圖上會顯示真車在地圖上的實際位置。如下所示:

與上一節定位顯示類似,但是有時候由於初始位置與 map TF 有一定的距離,所以導致定位晃動無法准確與地圖綁定,這時需要借助 Rviz 中上菜單欄里的 [2D Pose Estimate] 箭頭進行輔助定位。

 

3.6 在RViz顯示waypoints記錄過程

執行本節2.9的操作。

 

3.7 保存記錄數據

老司機開車,到達目標后,回到 runtime manager的 [Computing] 菜單欄下,取消 [waypoint_saver] 勾選(自動保存waypoint)。

在老司機看車的過程中,可以同時看到航跡點在地圖上逐漸顯示出來。

注意:確保在此之前更改了文件名和保存路徑,在指定的路徑下將會看到對應文件。

 

 

引用:

autoware.ai

dowson.live

 

 原創文章,轉載請引用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM