phidgets_spatial
Driver for the Phidgets Spatial 3/3/3 devices
Links
README
Phidgets spatial ROS 2 driver
This is the ROS 2 driver for Phidgets spatial.
Usage
To run this driver standalone, do the following:
ros2 launch phidgets_spatial spatial-launch.py
Published Topics
/imu/data_raw
(sensor_msgs/Imu
) - The raw accelerometer and gyroscope data.imu/is_calibrated
(std_msgs/Bool
) - Whether the gyroscope has been calibrated; this will be done automatically at startup time, but can also be re-done at any time by calling theimu/calibrate
service./imu/mag
(sensor_msgs/MagneticField
) - The raw magnetometer data.
Services
imu/calibrate
(std_srvs/Empty
) - Run calibration on the gyroscope.
Parameters
serial
(int) - The serial number of the phidgets spatial to connect to. If -1 (the default), connects to any spatial phidget that can be found.hub_port
(int) - The phidgets VINT hub port to connect to. Only used if the spatial phidget is connected to a VINT hub. Defaults to 0.frame_id
(string) - The header frame ID to use when publishing the message. Defaults to REP-0145 compliantimu_link
.use_orientation
(bool) - Use the phidget spatials onboard orientation estimation; Just available on MOT0109 onwards. Set to false for older versions. Defaults to false.spatial_algorithm
(string) - Name of the spatial algorithm used for orientation estimation (one of “none”, “ahrs”, “imu”); Just used ifuse_orientation
is set to true. Defaults toahrs
.ahrs_angular_velocity_threshold
(double) - Parameter for AHRS orientation estimation; Just used ifuse_orientation
is set to true.ahrs_angular_velocity_delta_threshold
(double) - Parameter for AHRS orientation estimation; Just used ifuse_orientation
is set to true.ahrs_acceleration_threshold
(double) - Parameter for AHRS orientation estimation; Just used ifuse_orientation
is set to true.ahrs_mag_time
(double) - Parameter for AHRS orientation estimation; Just used ifuse_orientation
is set to true.ahrs_accel_time
(double) - Parameter for AHRS orientation estimation; Just used ifuse_orientation
is set to true.ahrs_bias_time
(double) - Parameter for AHRS orientation estimation; Just used ifuse_orientation
is set to true.algorithm_magnetometer_gain
(double) - Gain of magnetometer in orientation estimation algorithm; Just used ifuse_orientation
is set to true. Defaults to 0.005heating_enabled
(bool) - Use the internal heating element; Just available on MOT0109 onwards. Do not set this parameter for older versions.linear_acceleration_stdev
(double) - The standard deviation to use for the linear acceleration when publishing the message. Defaults to 280 ug.angular_velocity_stdev
(double) - The standard deviation to use for the angular velocity when publishing the message. Defaults to 0.095 deg/s.magnetic_field_stdev
(double) - The standard deviation to use for the magnetic field when publishing the message. Defaults to 1.1 milligauss.time_resynchronization_interval_ms
(int) - The number of milliseconds to wait between resynchronizing the time on the Phidgets spatial with the local time. Larger values have less “jumps”, but will have more timestamp drift. Setting this to 0 disables resynchronization. Defaults to 5000 ms.data_interval_ms
(int) - The number of milliseconds between acquisitions of data on the device (allowed values are dependent on the device). Defaults to 8 ms.callback_delta_epsilon_ms
(int) - The number of milliseconds epsilon allowed between callbacks when attempting to resynchronize the time. If this is set to 1, then a difference ofdata_interval_ms
plus or minus 1 millisecond will be considered viable for resynchronization. Higher values give the code more leeway to resynchronize, at the cost of potentially getting bad resynchronizations sometimes. Lower values can give better results, but can also result in never resynchronizing. Must be less thandata_interval_ms
. Defaults to 1 ms.publish_rate
(double) - How often the driver will publish data on the ROS topic. If 0 (the default), it will publish every time there is an update from the device (so at thedata_interval_ms
). If positive, it will publish the data at that rate regardless of the acquisition interval.cc_mag_field
(double) - Ambient magnetic field calibration value; see device’s user guide for information on how to calibrate.cc_offset0
(double) - Calibration offset value 0; see device’s user guide for information on how to calibrate.cc_offset1
(double) - Calibration offset value 1; see device’s user guide for information on how to calibrate.cc_offset2
(double) - Calibration offset value 2; see device’s user guide for information on how to calibrate.cc_gain0
(double) - Gain offset value 0; see device’s user guide for information on how to calibrate.cc_gain1
(double) - Gain offset value 1; see device’s user guide for information on how to calibrate.cc_gain2
(double) - Gain offset value 2; see device’s user guide for information on how to calibrate.cc_t0
(double) - T offset value 0; see device’s user guide for information on how to calibrate.cc_t1
(double) - T offset value 1; see device’s user guide for information on how to calibrate.cc_t2
(double) - T offset value 2; see device’s user guide for information on how to calibrate.cc_t3
(double) - T offset value 3; see device’s user guide for information on how to calibrate.cc_t4
(double) - T offset value 4; see device’s user guide for information on how to calibrate.cc_t5
(double) - T offset value 5; see device’s user guide for information on how to calibrate.