Simultanous Localization and Mapping

_images/a1_point_cloud.gif

Hardware Requirements

  1. 3D Lidar

  2. Inertial measurement unit(imu)

  3. Global positioning device(GPS)(optional)

Software Requirements

Software requirements for packages provided by MYBOTSHOP comes with everything configured (also bash scripts provided in case new installations are needed). We therefore recommend to check/install driver/packages required by third party providers.

3d SLAM Configurations

By default mbs_slam nodes requires /mbs/points(sensor_msgs/PointCloud2) to be published. All other sensor informations are optional. Indepth information on the configuration parameters can be found in koide3

GPS

enable_gps: True in case gps readings are provided. The mbs_slam node needs typically supports 3 types of GPS messages:

  • /mbs/geopoint (geographic_msgs/GeoPointStamped)

  • /mbs/navsat (sensor_msgs/NavSatFix)

  • /mbs/nmea_sentence (nmea_msgs/Sentence)

From all of the above mentioned topics only longitude, latitude, and altitude are used and rest of the fields in the messages are ignored.

IMU Acceleration

enable_imu_acc: By default acceleration resulting from sensor motion is ignored therefore it is useful to provide this paramter (Do not set bigger values for this constraint.)

IMU Orientation

enable_imu_ori: In case the provided IMU has a reliable magentic sensor, orientation can be added as a 3d orientation constraint. In case of external magentic disturbances this paramter should be set to false.

Floor detection

For largescale flat indoor environments, this constraints can be specified. It will reduce the effect of accumulated rotation error.

3D-Localization

The node first does sensor localization using the onboard imu on the lidar. Odomerty prediction based on external imu is optional, if not set constant velocity model is used internally.

mbs_localization provides 3d, real-time localization.

ROS Topics

  • /odom (nav_msgs/Odometry)

    • Estimated sensor pose in the map frame

  • /aligned\_points

    • Input point cloud aligned with the map

  • /status (hdl_localization/ScanMatchingStatus)

    • Scan matching result information (e.g., convergence, matching error, and inlier fraction)