Skip to content

[ROS2][feat][fix] Add interface for saturation with ext poses

Julia Sanchez requested to merge ROS2/feat/AddPoseSaturation into feat/ROS2

Goal

The goal is to add a saturation interface to reject outlier external poses during optimization.

Changes

Feat

  • ROS interface is updated (param files + LidarSlamNode)

Fixes

  • Fix the link break between IMU and external poses when resetting external pose manager. The specific parameters of the external pose sensor were forgotten during link break.
  • Allow the lever arm to be 0. This was not handled, the constraint was not taken into account.
  • Fix frame ID in PV. This was avoiding the LiDAR calibration to be properly set.

fact

  • Refact the constructors of the external sensors to only keep the common parameters. Specific sensors' parameters must be set with relative setters.

Results

Reproduce

Data

Any velodyne data

Build

colcon build --symlink-install --base-paths src/slam/ros2_wrapping src/ouster --cmake-args -DCMAKE_BUILD_TYPE=Release

Parameters

To test:

lever_arm:= 10.

lever_arm:= 0.

saturation_distance:= 10000.

Run

  • ros2 launch lidar_slam slam_velodyne.py
  • ros2 bag play --clock -d 2 path/to/velodyne_data
  • Run a first shot and save the trajectory as CSV file.
  • Run a second time approximately the same number of frames
  • Click on "Calibrate button"
  • Choose the CSV file

Output

  • With lever_arm to 10000, you should see that the resulting calibration translation is really increased.
  • With lever_arm to 0, you should see that the calibration is (or really close to) identity.
Edited by Julia Sanchez

Merge request reports

Loading