Skip to content

Spatial

Jacob Allen edited this page Mar 31, 2020 · 4 revisions

IMU Server

This node is responsible for publishing data from the IMU on the Pi-puck extension board (an LSM9DS1).

Parameters

  • ~rate, float: the data publish rate in hertz (default: 10).
  • ~sample_rate, float: the data sample rate in hertz (default: 128). This should be set to the same as ~rate if ~calculate_full_orientation is false.
  • ~calculate_full_orientation, bool: whether to calculate the full 3D orientation using an AHRS system (default: true). This option can take up a lot of processing time on the Pi-puck so consider turning it off it you don't need the full 3D orientation, or switching to an external AHRS system.
  • tf_prefix, str: the transform prefix for the sensor frames of reference.

Published Topics

  • imu/imu, IMU: the IMU data, this will include orientation if ~calculate_full_orientation is true.
  • imu/temperature, Temperature: the internal temperature of the IMU, not representative of the outside temperature.
  • imu/magnetic, MagneticField: the magnetic field data from the IMU.

Subscribed Topics

None.

Dependencies

Python (Included)

  • lsm9ds1.
  • madgwick_py

NB: These are included as minor modifications are required to the lsm9ds1 library and madgwick_py is included via a submodule.

Transform Server

This node is responsible for publishing the transform from odom or map to base_link.

Parameters

  • ~rate, float: the data publish rate in hertz (default: 10).
  • ~use_imu, bool: whether to use IMU orientation data to calculate robot transform (default: true).
  • ~use_hybrid_position, bool: if true, both IMU and steps are used to calculate position estimate (default: true).
  • ~use_map_as_parent, bool: if true the frame map is used instead of odom for transforms to the robot (default: false).
  • ~publish_hybrid_position, bool: publish the current estimated position, only makes sense to enable when using hybrid position (default: true).
  • ~publish_static_transforms, bool: if true, this node will publish static transforms for the robot (default: true).
  • tf_prefix, str: the transform prefix for the sensor frames of reference.
  • robot_description, urdf: the robot model, only used if publishing static transforms.

Published Topics

  • tf_broadcaster/odometry, Odometry: the odometry

Subscribed Topics

  • navigation/spatial/imu/imu, Imu: the IMU data for input if ~use_imu is true.
  • navigation/motors/real_steps_left: the left step data for distance estimation.
  • navigation/motors/real_steps_right: the right step data for distance estimation.
  • navigation/spatial/imu/magnetic: the magnetic data for hybrid estimation.
  • navigation/motors/odometry: the motor odometry for fallback positioning.