国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Turtlebot(Kuboki)+Kinect+Huyoko建立gmapping地圖,實現自主避障導航

2019-11-09 15:07:33
字體:
來源:轉載
供稿:網友

這篇文章主要介紹如何使用Turtlebot(Kuboki) + Kinect + Hokuyo建立gmapping地圖,并且實現邊建圖編導航,最后使用ros map命令保存生成的地圖。

設備清單:

1、Turtlebot(Kuboki)

2、Microsoft Kinect 1代

3、Hokuyo UTM-30LX

環境配置:

這里假設你已經在Turtlebot的工作本上安裝了Ubuntu 14.04 + ROS Indigo,我也是用的這個環境,如果還沒有安裝,參考ROS Indigo的wiki:Ubuntu install of ROS Indigo。

安裝Turtlebot的驅動:

sudo apt-get updatesudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon ros-indigo-rocon-qt-library ros-indigo-ar-track-alvar-msgs如果你的底盤是kuboki,那么再多加兩條:

sudo apt-get install ros-indigo-kobuki ros-indigo-kobuki-corerosrun kobuki_ftdi create_udev_rules接下來需要安裝kinect驅動,推薦使用freenect:

sudo apt-get install libfreenect-devsudo apt-get install ros-indigo-freenect-launch

設置你的3D sensor為kinect,設置完需要關閉當前窗口,打開新的terminal使之生效。

echo "export TURTLEBOT_3D_SENSOR=kinect" >> .bashrc

下載雷達驅動包和導航包,并編譯:

mkdir -p  ~/turtlebot_ws/srccd   ~/turtlebot_ws/srcgit clone https://github.com/ncnynl/hokuyo_node.gitgit clone https://github.com/turtlebot/turtlebot_apps cd  ~/turtlebot_wscatkin_make在~/.bashrc最后一行添加(可以使用命令 sudo vi ~/.bashrc, vi的使用方法得自己百度了):

source /home/ubu/turtlebot_ws/devel/setup.bash

使剛才的修改生效:

source ~/.bashrc下面需要配置你的激光雷達Hokuyo,運行命令:

lsusb找到一條類似于這個的反饋結果:

Bus 001 Device 006: ID 15d1:0000新建/etc/udev/rules.d/hokuyo.rules文件,內容如下:

KERNEL=="ttyACM[0-9]*", ACTION=="add", ATTRS{idVendor}=="15d1", MODE="0000", GROUP="dialout", SYMLINK+="hokuyo"增加當前用戶對串口的默認訪問權限:

sudo usermod -a -G dialout 用戶名使UDEV配置生效:(使串口的默認訪問權限生效,需要重啟機器)

sudo service udev reloadsudo service udev restart創建launch文件:復制hokuyo_node的hokuyo_test.launch到hokuyo_laser.launch,并增加TF定義

roscd turtlebot_navigationmkdir -p laser/driversudo cp ~/turtlebot_ws/src/hokuyo_node/hokuyo_test.launch laser/driver/hokuyo_laser.launch打開hokuyo_laser.launch,并修改
rosed turtlebot_navigation hokuyo_laser.launch內容如下:

<launch>  <node name="hokuyo" pkg="hokuyo_node" type="hokuyo_node" respawn="false" output="screen">  <!-- Starts up faster, but timestamps will be inaccurate. -->   <param name="calibrate_time" type="bool" value="false"/>   <!-- Set the port to connect to here -->  <param name="port" type="string" value="/dev/hokuyo"/>   <param name="frame_id"  type="string" value="laser"/>  <param name="intensity" type="bool" value="false"/>  </node>  <node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.18 0 0.0 0.0 base_link laser 100"/></launch>增加hokuyo_gmapping_demo.launch文件,用于啟動gmapping.

roscd  turtlebot_navigationtouch  launch/hokuyo_gmapping_demo.launchrosed  launch/hokuyo_gmapping_demo.launch內容如下:
<launch>  <!-- 3D sensor -->  <arg name="3d_sensor" default="$(env TURTLEBOT_3D_SENSOR)"/>  <!-- r200, kinect, asus_xtion_PRo -->  <include file="$(find turtlebot_bringup)/launch/3dsensor.launch">    <arg name="rgb_processing" value="false" />    <arg name="depth_registration" value="false" />    <arg name="depth_processing" value="false" />        <!-- We must specify an absolute topic name because if not it will be prefixed by "$(arg camera)".         Probably is a bug in the nodelet manager: https://github.com/ros/nodelet_core/issues/7 -->     <arg name="scan_topic" value="/scan" />  </include>  <!-- Define laser type-->  <arg name="laser_type" default="hokuyo" />  <!-- laser driver -->  <include file="$(find turtlebot_navigation)/laser/driver/$(arg laser_type)_laser.launch" />  <!-- Gmapping -->  <arg name="custom_gmapping_launch_file" default="$(find turtlebot_navigation)/launch/includes/gmapping/$(arg laser_type)_gmapping.launch.xml"/>  <include file="$(arg custom_gmapping_launch_file)"/>  <!-- Move base -->  <include file="$(find turtlebot_navigation)/launch/includes/move_base.launch.xml"/></launch>增加hokuyo_gmapping.launch.xml文件,執行gmapping建圖

roscd  turtlebot_navigationtouch  launch/includes/gmapping/hokuyo_gmapping.launch.xml rosed  launch/includes/gmapping/hokuyo_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="5.0"/>    <param name="maxUrange" value="6.0"/>    <param name="maxRange" value="8.0"/>    <param name="sigma" value="0.05"/>    <param name="kernelSize" value="1"/>    <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="200"/>    <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.5"/>    <param name="angularUpdate" value="0.436"/>    <param name="temporalUpdate" value="-1.0"/>    <param name="resampleThreshold" value="0.5"/>    <param name="particles" value="80"/>  <!--    <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>測試激光雷達gmapping構建地圖與導航喚醒Turtlebot底盤

roslaunch turtlebot_bringup minimal.launch啟動gmapping
roslaunch turtlebot_navigation hokuyo_gmapping_demo.launch打開rviz查看地圖

roslaunch turtlebot_rviz_launchers view_navigation.launch點擊rviz的2D Navigation按鈕,在建好的地圖上左鍵單擊并拖動,Turtlebot會自己進行導航,這時如果你突然出現在Turtlebot前面,它會重新規劃路線饒過你或者可以鍵盤控制Turtlebot建圖

roslaunch turtlebot_teleop keyboard_teleop.launch 保存地圖
mkdir -p ~/maprosrun map_server map_saver -f ~/map/hokuyo_gmappingls ~/map   #查看內容,包含hokuyo_gmapping.pgm  hokuyo_gmapping.yaml建立的實驗室平面圖

References

http://wiki.ros.org/kobuki/Tutorials/Installation

http://wiki.ros.org/indigo/Installation/Ubuntu

http://www.ncnynl.com/archives/201611/1097.html

http://www.ncnynl.com/archives/201609/794.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 敦化市| 廊坊市| 成都市| 澎湖县| 朝阳市| 镇远县| 喀喇沁旗| 梧州市| 耿马| 贵港市| 宣武区| 临泉县| 通辽市| 万宁市| 沿河| 宜都市| 荆州市| 天等县| 扬中市| 高邑县| 习水县| 临武县| 尉氏县| 莱芜市| 万载县| 荆门市| 稷山县| 河北区| 德州市| 怀宁县| 商洛市| 白玉县| 铅山县| 彰化县| 卢龙县| 滨海县| 黄石市| 雅安市| 丰宁| 河西区| 纳雍县|