/ROS_NDT_Mapping

NDT Mapping in pure ROS (Melodic)

Primary LanguageC++

NDT Mapping

passing license

Demo.png

Environment

  • Ubuntu 18.04
  • ROS Melodic

Data

  • RosBag for offline testing

IO

  • input
    /points_raw (sensor_msgs::PointCloud2)
  • output
    /ndt_map (sensor_msgs::PointCloud2)
    /curent_pose (geometry_msgs::PoseStamped)

How to use

  • Move the project into the ROS workspace (e.g. ~/ros_ws/src/)

  • Build the project in the ROS workspace

    cd ros_ws/
    catkin_make
  • Setup the configuration in ndt_mapping.launch

    • NDT Parameters

      <!-- line 2 -->
      <arg name="max_iter" default="30" doc="max iteration for alignment"/>
      <arg name="step_size" default="0.1" doc="step_size maximum step length[m]"/>
      <arg name="ndt_res" default="5.0" doc="resolution side length of voxels[m]"/>
      <arg name="trans_eps" default="0.01" doc="transform epsilon to stop iteration"/>
      <arg name="voxel_leaf_size" default="2.0" doc="a down sample size of a input cloud[m]"/>
    • Mapping Parameters

      <!-- line 9 -->
      <arg name="scan_rate" default="10.0" doc="scan_rate"/>
      <arg name="min_scan_range" default="5.0" doc="min_scan_range"/>
      <arg name="max_scan_range" default="200.0" doc="max_scan_range"/>
      <arg name="min_add_scan_shift" default="1.0" doc="a moving distance of a map update[m]"/>
      <arg name="use_imu" default="false" doc="use imu or not"/>
    • Static Transform Parameters

      <!-- line 16 -->
      <arg name="x" default="1.3" doc="static_transform_x localizer_to_base_link"/>
      <arg name="y" default="0.0" doc="static_transform_y localizer_to_base_link"/>
      <arg name="z" default="1.4" doc="static_transform_z localizer_to_base_link"/>
      <arg name="roll" default="0.0" doc="static_transform_roll localizer_to_base_link"/>
      <arg name="pitch" default="0.0" doc="static_transform_pitch localizer_to_base_link"/>
      <arg name="yaw" default="0.0" doc="static_transform_yaw localizer_to_base_link"/>
  • Run the NDT-Mapping

    • Source the setup.bash

      cd ros_ws
      source devel/setup.bash
    • Launch the NDT-Mapping node

      roslaunch ndt_mapping ndt_mapping.launch
  • Play the rosbag for offline testing

    rosbag play offline_testing.bag

Acknowledgment

Part of the code refers to the open-sourced project Autoware

Related projects in pure ROS (Melodic)