您的位置:首页 > 移动开发

rplidar使用hector_slam的hector_mapping geotiff创建地图方法

2016-09-01 09:40 621 查看
1.下载RPLIDAR包到catkin_ws/src
$ git clone https://github.com/robopeak/rplidar_ros
$ cd ~/catkin_ws

$ catkin_make

 

 

2. 安装hector_slam

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

 

 

3.安装map_server

$  sudoapt-get install ros-indigo-map-server

 

 

4.编辑linux 启动的rules ,使其他用户自动连接到 lplidar 的连接 /dev/ttyUSB0 口

$ sudo nano/etc/udev/rules.d/50-usb-seial.rules

 

添加:

SUBSYSTEMS=="usb",KERNEL=="ttyUSB0", MODE="0666"

 

 

5.在hector_slam_launch 包 launch 目录 ,增加三个launch文件 如下:

Slam.launch:

<launch>

 

<paramname="/use_sim_time" value="false"/>

  <node pkg="rviz"type="rviz" name="rviz" args="-d $(findhector_slam_launch)/rviz_cfg/mapping_demo.rviz"/>

<includefile="$(find hector_slam_launch)/launch/hector_mapping.launch"/>

 

<includefile="$(find hector_slam_launch)/launch/geotiff_mapper.launch">

  <argname="trajectory_source_frame_name"value="scanmatcher_frame"/>

</include>

 

</launch>

 

 

Hector_mapping.launch:

<launch>

 

<nodepkg="hector_mapping" type="hector_mapping" name="hector_mapping"   output="screen">

  <paramname="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" />

 

  <!-- Map size / start point -->

    <param name="map_resolution"value="0.050"/>

    <param name="map_size"value="1048"/>

    <param name="map_start_x"value="0.5"/>

    <param name="map_start_y"value="0.5" />

    <paramname="map_multi_res_levels" value="2" />

   

    <!-- Map update parameters -->

    <paramname="update_factor_free" value="0.4"/>

    <paramname="update_factor_occupied" value="0.9" />   

    <paramname="map_update_distance_thresh" value="0.4"/>

    <paramname="map_update_angle_thresh" value="0.06" />

    <paramname="laser_z_min_value" value = "-1.0" />

    <paramname="laser_z_max_value" value = "1.0" />

 

</node>

 

<nodepkg="tf" type="static_transform_publisher"name="base_to_laser_broadcaster" args="0 0 0 0 0 0 /base_link /laser 100" /> 

 

</launch>

 

 

Geotiff_mapper.launch:

<launch>

<argname="trajectory_source_frame_name"default="/base_link"/>

<argname="trajectory_update_rate" default="4"/>

<argname="trajectory_publish_rate" default="0.25"/>

 

<node pkg="hector_trajectory_server"type="hector_trajectory_server"name="hector_trajectory_server" output="screen">

<paramname="target_frame_name" type="string"value="/map" />

<paramname="source_frame_name" type="string" value="$(argtrajectory_source_frame_name)" />

<paramname="trajectory_update_rate" type="double"value="$(arg trajectory_update_rate)" />

<paramname="trajectory_publish_rate" type="double"value="$(arg trajectory_publish_rate)" />

</node>

 

<nodepkg="hector_geotiff" type="geotiff_node"name="hector_geotiff_node" output="screen"launch-prefix="nice -n 15">

<remapfrom="map" to="/dynamic_map" />

<paramname="map_file_path" type="string" value="$(findhector_geotiff)/maps" />

<paramname="map_file_base_name" type="string"value="uprobotics" />

<paramname="geotiff_save_period" type="double"value="0" />

<paramname="draw_background_checkerboard" type="bool"value="true" />

<paramname="draw_free_space_grid" type="bool"value="true" />

</node>

</launch>

 

6.启动Lidar节点

$ source ~/catkin_ws/devel/setup.bash

$ roslaunch rplidar_ros rplidar.launch

 

7.启动rviz 和 hector_mapping

$ roslaunch hector_slam_launch slam.launch

 

地图开始生成,如下图:



 

8.扫描完成后 保存地图

打开一新终端窗口输入:

Rosrun map_server map_saver –f /tmp/my_map

 

就会在  系统 /t
4000
mp/目录下生成 my_map的地图文件

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息