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的地图文件
$ 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的地图文件
相关文章推荐
- rplidar使用hector_slam的hector_mapping geotiff创建地图方法(2)
- 移动机器人定位与地图创建(SLAM)方法
- UST-10LX使用hector_slam构建地图
- 基于优化方法的机器人同步定位与地图创建(SLAM)后端(Back-end)设计技术收集
- ROS导航-----slam_gmapping使用Log数据创建地图
- 移动机器人定位与地图创建(SLAM)方法
- Hokuyo URG-04LX用hector_slam创建地图(无IMU)
- 在slam_gmapping中使用Log数据创建地图
- Spring Bean工厂创建Bean实例的方法之使用静态工厂类
- 使用PHP 5.0创建图形的巧妙方法(一)
- 使用 PHP 5.0创建图形的巧妙方法(二)
- 解决IE在客户端使用ADODB.Stream不能创建对象成功的方法
- [原创]SQL Server 2005:一个使用新创建的User的问题和解决方法
- Spring Bean工厂创建Bean实例的方法之使用工厂类
- 使用js动态创建控件的方法
- [转]C# 2.0:使用匿名方法、迭代程序和局部类来创建优雅的代码
- 创建ORACLE数据库方法--摘自于ORACLE8使用指南(David Austin 著)
- 使用 XMLHttpRequest 创建方法的优缺点
- Spring Bean工厂创建Bean实例的方法之使用构造器
- 使用 PHP 5.0创建图形的巧妙方法(四)