日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用自己的雷达进行Cartographer建图或仿真

發布時間:2023/12/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用自己的雷达进行Cartographer建图或仿真 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先需要進行Cartographer安裝以及雷達驅動安裝等準備工作, 直至我們能夠在雷達運行時找到發布LaserScan的Topic并獲取數據, 以開始下一步的建圖.

基本信息獲取

啟動雷達或gazebo, 在終端使用以下語句查看雷達輸出的Topic:
rostopic list;

此處本天河雷達的輸出topic為 /radar_real
使用以下語句打印當前雷達輸出:
rostopic echo /radar_real;

在打印信息中找到坐標系名字frame_id: “base_laser”,此處坐標系名字為 base_laser

lua文件修改

在(cartographer工作空間)/src/cartographer_ros/cartographer_ros/configuration_files中找到revo_lds.lua 文件, 復制一份, 改名為my_revo_lds.lua.
打開my_revo_lds.lua, 修改以下兩行為我們自己的坐標系名字:

//兩行"horizontal_laser_link"均改為我們當前的"base_laser" tracking_frame = "horizontal_laser_link", published_frame = "horizontal_laser_link",

launch文件修改

在(cartographer工作空間)/src/cartographer_ros/cartographer_ros/launch中找到demo_revo_lds.launch, 復制一份, 改名為my_demo_revo_lds.launch
修改以下內容:

//因為非bag仿真,將以下true改為false <param name="/use_sim_time" value="true" />//使用我們的配置文件,將revo_lds.lua改為my_revo_lds.lua <node name="cartographer_node" pkg="cartographer_ros"type="cartographer_node" args="-configuration_directory $(find cartographer_ros)/configuration_files-configuration_basename revo_lds.lua"//將horizontal_laser_2d改為我們的輸出話題radar_real <remap from="scan" to="horizontal_laser_2d" />//不使用bag,刪去以下內容 <node name="playbag" pkg="rosbag" type="play"args="--clock $(arg bag_filename)" />

運行與建圖

對修改后的工作空間, 在終端執行以下語句以重編譯:

//編譯cartographer工作空間
catkin_make_isolated --install --use-ninja

//刷新環境
source devel_isolated/setup.bash

運行時, 先運行雷達的相關topic, 保證雷達已有有效數據通過topic輸出后, 運行我們的新launch文件:
roslaunch cartographer_ros my_demo_revo_lds.launch

即可開始建圖.

地圖保存

打開另一個終端, 輸入以下語句:

//結束第一條軌跡,之后的數據不再添加.
rosservice call /finish_trajectory 0

//cartographer序列化當前狀態,形成pbstream文件
rosservice call /write_state "{filename: '${HOME}/Downloads/mymap.pbstream'}"

//transform pbstream to pgm and yaml

rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/kai/Downloads/mymap -pbstream_filename=/home/kai/Downloads/mymap.pbstream -resolution=0.05

地址和文件名根據實際進行修改.

運行結果

純雷達建圖.

  • 天河
    在天河10Hz 2880點的雷達上, 建圖極易漂移, 無法完成建圖. 期間頻繁報 "Dropped 2770 earlier points."的警告, 該warning來自于:
    range_data_collator.cc:76 LOG(WARNING) << “Dropped " << std::distance(ranges.begin(), overlap_begin) << " earlier points.”;
    丟點數值常在2700左右變動, 接近于一幀.

  • 倍加福
    在倍加福20Hz 3600點的雷達上, 無警告提示, 建圖順滑, 匹配準確, 旋轉魯棒性好, 建圖質量佳, 僅在特征不明顯的長走廊出現建圖尺度失真的共性問題.

  • 思嵐rplidar a2
    在思嵐科技RPLIDAR-a2(10Hz 800點)上, 建圖順滑, 但限于雷達硬件, 旋轉速度不宜過快, 建圖過程應當盡量保持雷達速度平穩. [Topic Name: /scan; Frame Name: laser]
    (a2驅動安裝傳送門: 只需關注其中rplida相關步驟)(鏈接教程勘誤: echo source時刪去那對雙引號)

  • gazebo仿真
    因為依然不是bag仿真, 上述設置/use_sim_time依然應該是false.

總結

以上是生活随笔為你收集整理的用自己的雷达进行Cartographer建图或仿真的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。