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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

实验三 Gmapping建图

發(fā)布時(shí)間:2023/11/27 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实验三 Gmapping建图 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

體驗(yàn)內(nèi)容

使用gmapping方法利用turtlebot底盤移動(dòng)信息和激光雷達(dá)數(shù)據(jù)進(jìn)行建圖。

1. 安裝一些依賴包

sudo apt-get install ros-melodic-move-base*
sudo apt-get install ros-melodic-map-server*
sudo apt-get install ros-melodic-amcl*
sudo apt-get install ros-melodic-navigation*
sudo apt-get install ros-melodic-openslam-gmapping

2. 新建launch文件及其配置文件

(1)rplidar_gmapping.launch.xml

turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/launch/includes/gmapping/目錄下新建文件rplidar_gmapping.launch.xml

<launch><arg name="scan_topic"  default="scan" /><arg name="base_frame"  default="base_footprint"/><arg name="odom_frame"  default="odom"/><node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen"><param name="base_frame" value="$(arg base_frame)"/><param name="odom_frame" value="$(arg odom_frame)"/><param name="map_update_interval" value="0.01"/><param name="maxUrange" value="4.0"/><param name="maxRange" value="5.0"/><param name="sigma" value="0.05"/><param name="kernelSize" value="3"/><param name="lstep" value="0.05"/><param name="astep" value="0.05"/><param name="iterations" value="5"/><param name="lsigma" value="0.075"/><param name="ogain" value="3.0"/><param name="lskip" value="0"/><param name="minimumScore" value="30"/><param name="srr" value="0.01"/><param name="srt" value="0.02"/><param name="str" value="0.01"/><param name="stt" value="0.02"/><param name="linearUpdate" value="0.05"/><param name="angularUpdate" value="0.0436"/><param name="temporalUpdate" value="-1.0"/><param name="resampleThreshold" value="0.5"/><param name="particles" value="8"/><!--<param name="xmin" value="-50.0"/><param name="ymin" value="-50.0"/><param name="xmax" value="50.0"/><param name="ymax" value="50.0"/>make the starting size small for the benefit of the Android client's memory...--><param name="xmin" value="-1.0"/><param name="ymin" value="-1.0"/><param name="xmax" value="1.0"/><param name="ymax" value="1.0"/><param name="delta" value="0.05"/><param name="llsamplerange" value="0.01"/><param name="llsamplestep" value="0.01"/><param name="lasamplerange" value="0.005"/><param name="lasamplestep" value="0.005"/><remap from="scan" to="$(arg scan_topic)"/></node>
</launch>

(2)rplidar_gmapping_demo.launch

turtlebot_ws/src/turtlebot_apps/turtlebot_navigation/launch/目錄下新建文件rplidar_gmapping_demo.launch

<launch><!-- 2D_laser --><arg name="2D_laser" default="rplidar"/><include file="$(find rplidar_ros)/launch/rplidar.launch"></include><!-- Gmapping --><arg name="custom_gmapping_launch_file" default="$(find turtlebot_navigation)/launch/includes/gmapping/$(arg 2D_laser)_gmapping.launch.xml"/><include file="$(arg custom_gmapping_launch_file)"/><!-- Move base --><include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/></launch>

(3)修改rplidar.launch

對(duì)turtlebot_ws/src/rplidar_ros/launch目錄下的文件rplidar.launch進(jìn)行修改,添加一句

<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0  0.0  0.18  0.0  0.0  1.0  0.0 base_link laser 100"/>

注意要添加在前一個(gè)</node>后面,并且注意空格。

3. 運(yùn)行

roscore
roslaunch turtlebot_bringup minimal.launch
roslaunch turtlebot_navigation rplidar_gmapping_demo.launch
rviz

將map數(shù)據(jù)Add進(jìn)來,并選擇好話題。
啟動(dòng)鍵盤控制,可以看到rviz程序中顯示的地圖在發(fā)生變化。

roslaunch turtlebot_teleop keyboard_teleop.launch

查看tf樹和graph圖

rosrun rqt_tf_tree rqt_tf_tree
rqt_graph

得到一張如下圖所示的建圖結(jié)果。

此時(shí)分析一下工作中的節(jié)點(diǎn)和信息流


保存地圖的操作如下,將得到一張圖片和一個(gè)地圖配置文件。

rosrun map_server map_saver -f <path>

作業(yè)內(nèi)容

一、rosbag

自學(xué)rosbag,理解時(shí)間戳概念,寫出rosbag的相關(guān)指令,利用rosbag儲(chǔ)存的信息和gmapping,完成建圖。
在控制turtlebot執(zhí)行運(yùn)動(dòng)和建圖之前,首先打開一個(gè)終端運(yùn)行

rosbag record -a

錄制完成后,在該終端按Ctrl+C結(jié)束錄制,生成了數(shù)據(jù)包。
斷開turtlebot、激光雷達(dá)與計(jì)算機(jī)的連接,重新開啟終端,執(zhí)行

roscore
roslaunch turtlebot_navigation rplidar_gmapping_demo.launch
rviz
rosbag play <filename>.bag

二、在gazebo中實(shí)現(xiàn)gmapping

使用中國(guó)大學(xué)慕課網(wǎng)《機(jī)器人操作系統(tǒng)入門》課程的仿真環(huán)境,其代碼的位置為:
Kinetic:https://github.com/DroidAITech/ROS-Academy-for-Beginners/tree/kinetic
Melodic:https://github.com/DroidAITech/ROS-Academy-for-Beginners/tree/melodic
創(chuàng)建工作空間,將上面鏈接中下載的代碼放入src目錄中,進(jìn)行編譯即可。

可能會(huì)遇到cmake報(bào)錯(cuò),提示qt出現(xiàn)問題,需要安裝qt,參考:

  1. https://blog.csdn.net/x356982611/article/details/71169940
  2. https://blog.csdn.net/weixin_41477306/article/details/95743555

成功編譯后,運(yùn)行

roscore
roslaunch robot_sim_demo robot_spawn.launch
roslaunch slam_sim_demo gmapping_demo.launch
roslaunch slam_sim_demo view_slam.launch

可以使用rviz2D Nav Goal工具指定目標(biāo)位姿,使機(jī)器人運(yùn)動(dòng)起來。

總結(jié)

以上是生活随笔為你收集整理的实验三 Gmapping建图的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。