Cartographer系列之二——hokuyo激光雷达跑cartographer


个人能力有限,若有错误请批评指正!
转载请标明出处: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

  1. 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.
  2. 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.
  3. 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. 创建相关文件

  1. 创建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>
  1. 创建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
  1. 创建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; 100; 100 Fixed Frame: map Frame Rate: 30  Name: root  Tools: - Class: rviz/Interact Hide Inactive Objects: true - Class: rviz/MoveCamera - Class: rviz/Select - Class: rviz/FocusCamera - Class: rviz/Measure - Class: rviz/SetInitialPose  Topic: /initialpose - Class: rviz/SetGoal  Topic: /move_base_simple/goal - Class: rviz/PublishPoint Single click: true  Topic: /clicked_point  Value: true  Views:  Current:  Angle: 0  Class: rviz/TopDownOrtho Enable Stereo Rendering: Stereo Eye Separation: 0.06 Stereo Focal Distance: 1 Swap Stereo Eyes: false  Value: false  Name: Current View Near Clip Distance: 0.01  Scale: 10 Target Frame: <Fixed Frame>  Value: TopDownOrtho (rviz)  X: 0  Y: 0  Saved: ~ Window Geometry:  Displays:  collapsed: false  Height: 1123 Hide Left Dock: false Hide Right Dock: false QMainWindow State: 000000ff00000000fd0000000400000000000001c5000003c0fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006400fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000041000003c0000000dd00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000003c0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000041000003c0000000b000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000077e0000003efc0100000002fb0000000800540069006d006501000000000000077e000002f600fffffffb0000000800540069006d006501000000000000045000000000000000000000049e000003c000000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000  Selection:  collapsed: false  Time:  collapsed: false Tool Properties:  collapsed: false  Views:  collapsed: false  Width: 1918  X: 0  Y: 24

3. 运行示例

  1. 启动ROS
    roscore
  2. 启动hokuyo UTM-30LX
    rosrun hokuyo_node hokuyo_node
    如果提示打开端口失败,则可能是端口操作权限不够。
    ls -l /dev/ttyACM0
    若显示为crw-rw----,则为其加权限使其显示为crw-rw-rw-
    sudo chmod a+rw /dev/ttyACM0
  3. 启动demo_hokuyo.launch
    roslaunch cartographer_ros demo_hokuyo.launch

接下来移动激光雷达去建图,就可以看到使用hokuyo激光雷达跑cartographer的建图效果了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM