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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

激光雷达学习笔记-------Ubuntu 18.04 + 思岚科技 A1M8+ ROS 上手使用及基于hector_slam 建图

發布時間:2023/12/14 Ubuntu 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 激光雷达学习笔记-------Ubuntu 18.04 + 思岚科技 A1M8+ ROS 上手使用及基于hector_slam 建图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,在虛擬機環境上搭建環境

  • 官方提供了純?C++和ROS節點兩種形式的SDK,ROS版SDK中已經包含了C++的SDK(版本稍晚),不需要單獨下載C++版本的SDK。

  • 這里我們主要使用ROS來測試,從官網的github克隆倉庫到我們的ROS工作空間的src下,然后編譯工作空間:

$ cd ~/catkin_ws/src $ git clone https://github.com/robopeak/rplidar_ros.git $ cd .. $ catkin_make 編譯通過后,加入環境變量 $ source devel/setup.bash

編譯成功后的顯示為:

?測試是否成功:

利用rosrun或者roslaunch的時候,可能出現tab鍵按下沒有提示出我們新增的節點或launch文件的情況,比如上述SDK編譯完,輸入roslaunch rp然后按tab應該會自動補全剩下的lidar_ros,可是系統沒有補全。原因可能有三個:

1,沒有source setup
2,沒有加入ros環境變量
3,沒有更新目錄

解決方法:

前兩個原因的解決方法為:

通過編輯 ~/.zshrc(對應zsh)或者 ~/.bashrc (對應bash) 在后面添加如下兩條語句來解決,不需要每次在命令行下source,注意工作空間的名字換成你自己的。

方法一: source ~/catkin_ws/devel/setup.sh 方法二: export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/catkin_ws/src 方法三(和方法二的效果等同): echo “source ~/turtlebot_ws/devel/setup.bash” >> ~/.bashrc source ~/.bashrc

如果上述已經完成,仍然不能自動補全,使用下面的命令來更新目錄:
?

$ rospack profile

再次測試,就可以成功了:

二、在虛擬機上的使用

查看rplidar串口的權限:

ls -l /dev |grep ttyUSB

添加寫入權限:(如/dev/ttyUSB0)

sudo chmod 666 /dev/ttyUSB0

有兩種方法可以運行 rplidar ros 包

2.1 運行rplidar節點,在rviz中查看

roslaunch rplidar_ros view_rplidar.launch

您應該在 rviz 中看到 rplidar 的掃描結果。

2.2 運行 rplidar 節點并使用測試應用程序查看

開兩個端口 roslaunch rplidar_ros rplidar.launch rosrun rplidar_ros rplidarNodeClient

?運行的結果為:

?運行過程中,重新插入激光雷達的時候報錯誤:

解決辦法:

ls -l /dev |grep ttyUSB sudo chmod 666 /dev/ttyUSB0

如果不想每次這么麻煩,需要更改rplidar串口的權限,可以重新映射USB串口,操作方法為:

在rplidar_ros功能包路徑下,安裝 USB 端口重映射,在激光雷達的根目錄下,執行下面的語句:

./scripts/create_udev_rules.sh

使用以下命令修改重映射:

ls -l /dev | grep ttyUSB

更改 USB 端口重新映射后,更改有關 serial_port 值的啟動文件。即將所有launch文件中的和serial_port 相關的,usb的串口信息更改為:rplidar,

更改了文件之后需要進行重新編譯,這樣下次啟動激光雷達就不需要再執行上面的命令了:

$ catkin_make 編譯通過后,加入環境變量 $ source devel/setup.bash

三、基于hector_slam 建圖

第一步:安裝hector_slam

$ sudo apt-get install ros-melodic-hector-slam

備注:如果想看源碼使用源碼包編譯的方法為:

git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git

?注意:只能使用一個。源碼和代碼安裝,否則會出問題,我這里直接使用命令安裝的

第二步:在思嵐激光的ros包的launch文件包中創建新的launch文件,命名slam.launch

<launch><node pkg="hector_mapping" type="hector_mapping" name="hector_mapping" output="screen"> <!-- Frame names --> <param name="pub_map_odom_transform" value="true"/> <param name="map_frame" value="map" /> <param name="base_frame" value="base_link" /> <param name="odom_frame" value="base_link" /><!-- Tf use --> <param name="use_tf_scan_transformation" value="true"/> <param name="use_tf_pose_start_estimate" value="false"/><!-- Map size / start point --> <param name="map_resolution" value="0.05"/> <param name="map_size" value="2048"/> <param name="map_start_x" value="0.5"/> <param name="map_start_y" value="0.5" /> <param name="laser_z_min_value" value = "-1.0" /> <param name="laser_z_max_value" value = "1.0" /> <param name="map_multi_res_levels" value="2" /><param name="map_pub_period" value="2" /> <param name="laser_min_dist" value="0.4" /> <param name="laser_max_dist" value="5.5" /> <param name="output_timing" value="false" /> <param name="pub_map_scanmatch_transform" value="true" /> <!--<param name="tf_map_scanmatch_transform_frame_name" value="scanmatcher_frame" />--><!-- Map update parameters --> <param name="update_factor_free" value="0.4"/> <param name="update_factor_occupied" value="0.7" /> <param name="map_update_distance_thresh" value="0.2"/> <param name="map_update_angle_thresh" value="0.06" /><!-- Advertising config --> <param name="advertise_map_service" value="true"/> <param name="scan_subscriber_queue_size" value="5"/> <param name="scan_topic" value="scan"/> </node><node pkg="tf" type="static_transform_publisher" name="base_to_laser_broadcaster" args="0 0 0 0 0 0 /base_link /laser 100"/><node pkg="rviz" type="rviz" name="rviz"args="-d $(find hector_slam_launch)/rviz_cfg/mapping_demo.rviz"/></launch>

$ cd ~/catkin_ws/src/rplidar_ros/launch/ $ touch slam.launch

第三步編譯:

$ catkin_make 編譯通過后,加入環境變量 $ source devel/setup.bash

第四步運行:

$ roslaunch rplidar_ros rplidar.launch $ roslaunch rplidar_ros slam.launch

執行的結果為:?

?第五步:保存地圖

首先安裝:

sudo apt-get install ros-kinetic-map-server

執行;

rosrun map_server map_saver -f ~/my_map

總結

以上是生活随笔為你收集整理的激光雷达学习笔记-------Ubuntu 18.04 + 思岚科技 A1M8+ ROS 上手使用及基于hector_slam 建图的全部內容,希望文章能夠幫你解決所遇到的問題。

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