个人能力有限,若有错误请批评指正!
转载请标明出处:http://www.cnblogs.com/wenhust/
一、相关说明
此实验使用hokuyo UTM-30LX激光雷达在Ubuntu 14.04及ROS indigo下进行实测Cartographer建图效果。
hokuyo激光雷达设备相关资料:https://sourceforge.net/p/urgnetwork/wiki/Home/
hokuyo_node相关资料:http://wiki.ros.org/hokuyo_node
二、安装hokuyo UTM-30LX
参见:http://wiki.ros.org/hokuyo_node/Tutorials
- How to use Hokuyo Laser Scanners with the hokuyo_node
This tutorial is an introduction to using a Hokuyo laser scanner connected to a desktop. After reading this tutorial, you should be able to bring up the hokuyo_node and display the laser data. - How to Dynamically Reconfigure the hokuyo_node
This tutorial covers using the reconfigure_gui to dynamically reconfigure the hokuyo_node to run with different parameters. After reading this tutorial, you should be able to bring up the reconfigure_gui and change the hokuyo_node parameters. - How to dynamically reconfigure the hokuyo_node from the command line or code
After completing this tutorial, you will be able to reconfigure the parameters of the hokuyo_node from the command line or python code.
将激光雷达连接进入ROS并给其配置好对应的参数后,即完成hokuyo UTM-30LX激光雷达的安装。
三、使用hokuyo UTM-30LX跑cartographer
1. 安装cartographer
参见之前的文章:http://www.cnblogs.com/wenhust/p/5961017.html
2. 创建相关文件
- 创建demo_hokuyo.launch 进入 catkin_ws/src/cartographer_ros/cartographer_ros/launch/,将 下列代码写入demo_hokuyo.launch:
<launch>
<param name="/use_sim_time" value="false" /> <node name="cartographer_node" pkg="cartographer_ros" type="cartographer_node" args=" -configuration_directory $(find cartographer_ros)/configuration_files -configuration_basename demo_hokuyo.lua" output="screen"> </node> <node name="rviz" pkg="rviz" type="rviz" required="true" args="-d $(find cartographer_ros)/configuration_files/demo_hokuyo.rviz" /> </launch>
- 创建demo_hokuyo.lua 进入 catkin_ws/src/cartographer_ros/cartographer_ros/configuration_files/,将下列代码写入demo_hokuyo.lua:
include "map_builder.lua" options = { map_builder = MAP_BUILDER, map_frame = "map", tracking_frame = "laser", published_frame = "laser", odom_frame = "odom", provide_odom_frame = true, use_odometry_data = false, use_constant_odometry_variance = false, constant_odometry_translational_variance = 0., constant_odometry_rotational_variance = 0., use_horizontal_laser = true, use_horizontal_multi_echo_laser = false, horizontal_laser_min_range = 0.3, horizontal_laser_max_range = 30., horizontal_laser_missing_echo_ray_length = 1., num_lasers_3d = 0, lookup_transform_timeout_sec = 0.2, submap_publish_period_sec = 0.3, pose_publish_period_sec = 5e-3, } MAP_BUILDER.use_trajectory_builder_2d = true TRAJECTORY_BUILDER_2D.use_imu_data = false TRAJECTORY_BUILDER_2D.use_online_correlative_scan_matching = true SPARSE_POSE_GRAPH.optimization_problem.huber_scale = 1e2 return options
- 创建demo_hokuyo.rviz 进入 catkin_ws/src/cartographer_ros/cartographer_ros/configuration_files/,将下列代码写入demo_hokuyo.rviz:
Panels: - Class: rviz/Displays Help Height: 78 Name: Displays Property Tree Widget: Expanded: - /Submaps1 - /PointCloud21 Splitter Ratio: 0.600671 Tree Height: 821 - Class: rviz/Selection Name: Selection - Class: rviz/Tool Properties Expanded: - /2D Pose Estimate1 - /2D Nav Goal1 - /Publish Point1 Name: Tool Properties Splitter Ratio: 0.588679 - Class: rviz/Views Expanded: - /Current View1 Name: Views Splitter Ratio: 0.5 - Class: rviz/Time Experimental: false Name: Time SyncMode: 0 SyncSource: PointCloud2 Visualization Manager: Class: "" Displays: - Alpha: 0.5 Cell Size: 1 Class: rviz/Grid Color: 160; 160; 164 Enabled: true Line Style: Line Width: 0.03 Value: Lines Name: Grid Normal Cell Count: 0 Offset: X: 0 Y: 0 Z: 0 Plane: XY Plane Cell Count: 100 Reference Frame: <Fixed Frame> Value: true - Class: rviz/TF Enabled: true Frame Timeout: 15 Frames: All Enabled: true base_link: Value: true horizontal_laser_link: Value: true imu_link: Value: true map: Value: true odom: Value: true vertical_laser_link: Value: true Marker Scale: 1 Name: TF Show Arrows: true Show Axes: true Show Names: true Tree: map: odom: base_link: horizontal_laser_link: {} imu_link: {} vertical_laser_link: {} Update Interval: 0 Value: true - Alpha: 1 Class: rviz/RobotModel Collision Enabled: false Enabled: true Links: All Links Enabled: true Expand Joint Details: false Expand Link Details: false Expand Tree: false Link Tree Style: Links in Alphabetic Order base_link: Alpha: 1 Show Axes: false Show Trail: false horizontal_laser_link: Alpha: 1 Show Axes: false Show Trail: false Value: true imu_link: Alpha: 1 Show Axes: false Show Trail: false Value: true vertical_laser_link: Alpha: 1 Show Axes: false Show Trail: false Value: true Name: RobotModel Robot Description: robot_description TF Prefix: "" Update Interval: 0 Value: true Visual Enabled: true - Class: Submaps Enabled: true Map frame: map Name: Submaps Submap query service: /submap_query Topic: /submap_list Tracking frame: base_link Unreliable: false Value: true - Alpha: 1 Autocompute Intensity Bounds: true Autocompute Value Bounds: Max Value: 10 Min Value: -10 Value: true Axis: Z Channel Name: intensity Class: rviz/PointCloud2 Color: 0; 255; 0 Color Transformer: FlatColor Decay Time: 0 Enabled: true Invert Rainbow: false Max Color: 255; 255; 255 Max Intensity: 4096 Min Color: 0; 0; 0 Min Intensity: 0 Name: PointCloud2 Position Transformer: XYZ Queue Size: 10 Selectable: true Size (Pixels): 3 Size (m): 0.05 Style: Flat Squares Topic: /scan_matched_points2 Unreliable: false Use Fixed Frame: true Use rainbow: true Value: true Enabled: true Global Options: Background Color: 100;