• 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的建图效果了。

  • 相关阅读:
    Symfony框架实战学习
    学习Symfony之环境的搭建
    js的学习 (数组)
    js的学习 (对象)
    js的学习 (语句)
    Django 应用开发(3)
    Django 应用开发(2)
    Django 学习搭建博客
    2-4.通用选择器
    2-3.class选择器
  • 原文地址:https://www.cnblogs.com/wenhust/p/6047258.html
Copyright © 2020-2023  润新知