diff --git a/docs/assets/hardware/sensors/inertial/ilabs-ins-u.png b/docs/assets/hardware/sensors/inertial/ilabs-ins-u.png index 0fdfa6e8e0..f7e821d91f 100644 Binary files a/docs/assets/hardware/sensors/inertial/ilabs-ins-u.png and b/docs/assets/hardware/sensors/inertial/ilabs-ins-u.png differ diff --git a/docs/assets/hardware/sensors/inertial/vn-300-smd-rugged.png b/docs/assets/hardware/sensors/inertial/vn-300-smd-rugged.png index abdcca22ed..599bbd7d4c 100644 Binary files a/docs/assets/hardware/sensors/inertial/vn-300-smd-rugged.png and b/docs/assets/hardware/sensors/inertial/vn-300-smd-rugged.png differ diff --git a/docs/en/SUMMARY.md b/docs/en/SUMMARY.md index b7301ed721..55859ad30e 100644 --- a/docs/en/SUMMARY.md +++ b/docs/en/SUMMARY.md @@ -278,8 +278,8 @@ - [Trimble MB-Two](gps_compass/rtk_gps_trimble_mb_two.md) - [CubePilot Here+ (Discontined)](gps_compass/rtk_gps_hex_hereplus.md) - [INS (Inertial Navigation/GNSS)](sensor/inertial_navigation_systems.md) - - [VectorNav](sensor/vectornav.md) - [InertialLabs](sensor/inertiallabs.md) + - [VectorNav](sensor/vectornav.md) - [Optical Flow](sensor/optical_flow.md) - [ARK Flow](dronecan/ark_flow.md) - [ARK Flow MR](dronecan/ark_flow_mr.md) diff --git a/docs/en/sensor/inertial_navigation_systems.md b/docs/en/sensor/inertial_navigation_systems.md index 88899ea129..4082c51b80 100644 --- a/docs/en/sensor/inertial_navigation_systems.md +++ b/docs/en/sensor/inertial_navigation_systems.md @@ -6,6 +6,7 @@ However PX4 can also use some INS devices as either sources of raw data, or as a Systems that can be used in this way include: +- [InertialLabs](sensor/inertiallabs.md) - [VectorNav](../sensor/vectornav.md): IMU/AHRS, GNSS/INS, Dual GNSS/INS systems that can be used as an external INS or as a source of raw sensor data. ## Glossary @@ -20,7 +21,7 @@ The magnetometer, if present, provides sensor data that can be used to provide t An AHRS system that includes both an IMU and a processing system that can provide attitude and heading information from the IMUs raw data. -### Inertial Navigation System (INS) +### Inertial Navigation System (INS) An INS is a navigation device that uses accelerometers, gyroscopes, possibly magnetometers, and a computer to calculate the attitude, position, and velocity of a moving object without the need for external references. Essentially it is an AHRS that also includes position/velocity estimation. diff --git a/docs/en/sensor/inertiallabs.md b/docs/en/sensor/inertiallabs.md index 0e480c9cba..7e3cab8e2d 100644 --- a/docs/en/sensor/inertiallabs.md +++ b/docs/en/sensor/inertiallabs.md @@ -4,8 +4,9 @@ Inertial Labs designs and develops [IMU](https://inertiallabs.com/products/imu-i ![INS-U](../../assets/hardware/sensors/inertial/ilabs-ins-u.png) -Sensors connection is "plug-and-play" and it uses universal protocol for [all Inertial Labs sensors](https://inertiallabs.com/). -Benefits to PX4 users and can be integrated for: +Sensors connection is near plug-and-play, and a universal protocol is used for [all Inertial Labs sensors](https://inertiallabs.com/). + +Benefits to PX4 users: - Higher accuracy heading, pitch, and roll estimates - More robust and reliable GNSS positioning @@ -13,13 +14,10 @@ Benefits to PX4 users and can be integrated for: - Performance under challenging dynamic conditions (e.g. catapult launches, VTOL operations, high-g or high angular rate operations) - Work in different spoofing and jamming conditions -PX4 can use these as an [external INS](../sensor/inertial_navigation_systems.md). -Sensor outputs configuration: +PX4 can use these as in a mode that provides only raw sensor output (the default), or as an [external INS](../sensor/inertial_navigation_systems.md) that provides both sensor output and INS data such as position and velocity estimates. +The mode is configurable using a parameter. -- Only raw sensor output (the default). -- Sensor output and INS data such as position and velocity estimates proccessed by internal EKF algorithm. - -## Where to buy +## Where to Buy [Get technical support or send requests to sales team](https://inertiallabs.com/inertial-labs-inc/contact-inertial-labs-team/). Recommended sensors: @@ -35,7 +33,8 @@ Connect the sensor to any unused flight controller serial interface, such as a s ### Mounting -The Inertial Labs sensors can be mounted in any orientation. Coordinates rotation is configurable. +The Inertial Labs sensors can be mounted in any orientation. +Coordinates rotation is configurable. ## Firmware Configuration @@ -43,14 +42,21 @@ The Inertial Labs sensors can be mounted in any orientation. Coordinates rotatio To use the Inertial Labs driver: -1. Build the firmware with InertialLabs module. Include it in the [kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig): Drivers -> INS -> ilabs. -1. [Set the parameter](../advanced_config/parameters.md) [SENS_ILABS_CFG](../advanced_config/parameter_reference.md#SENS_ILABS_CFG) to the hardware port connected to the sensor, such as a spare `GPS` or `TELEM`. For more information see [Serial Port Configuration](../peripherals/serial_configuration.md). -1. Allow the driver to initialize by restarting PX4. +1. Build the firmware with the [ilabs](../modules/modules_driver_ins.md#ilabs) module. + + The module is included by default for many boards. + You can check by searching for the keys `CONFIG_COMMON_INS` (all INS drivers) and `CONFIG_DRIVERS_INS_ILABS` (ilabs driver) in the [default.px4board](https://github.com/PX4/PX4-Autopilot/blob/main/boards/px4/fmu-v6c/default.px4board#L25) configuration file for your target board. + + If it is not present, you can add the key to your `default.px4board` file, or include it using the [kconfig board configuration](../hardware/porting_guide_config.md#px4-board-configuration-kconfig): Drivers -> INS -> ilabs. + +1. [Set the parameter](../advanced_config/parameters.md) [SENS_ILABS_CFG](../advanced_config/parameter_reference.md#SENS_ILABS_CFG) to the hardware port connected to the sensor, such as a spare `GPS` or `TELEM`. + Make sure that nothing else is configured to use the port (for more information see [Serial Port Configuration](../peripherals/serial_configuration.md)). +1. Restart PX4. 1. Configure driver as either an external INS or to provide raw data: - For external INS, set [ILABS_MODE](../advanced_config/parameter_reference.md#ILABS_MODE) to `INS`. - - For raw inertial sensors data: - 1. Set [ILABS_MODE](../advanced_config/parameter_reference.md#ILABS_MODE) to `Sensors Only` - 1. If internal sensors are enabled, prioritize Inertial Labs sensors using [CAL_GYROn_PRIO](../advanced_config/parameter_reference.md#CAL_GYRO0_PRIO), [CAL_ACCn_PRIO](../advanced_config/parameter_reference.md#CAL_ACC0_PRIO), [CAL_BAROn_PRIO](../advanced_config/parameter_reference.md#CAL_BARO0_PRIO), [CAL_MAGn_PRIO](../advanced_config/parameter_reference.md#CAL_MAG0_PRIO), where _n_ is the instance number of the IMU component (0, 1, etc.). + - For raw inertial sensors, set [ILABS_MODE](../advanced_config/parameter_reference.md#ILABS_MODE) to `Sensors Only`. + + You can then prioritize inertial labs sensors using [CAL_GYROn_PRIO](../advanced_config/parameter_reference.md#CAL_GYRO0_PRIO), [CAL_ACCn_PRIO](../advanced_config/parameter_reference.md#CAL_ACC0_PRIO), [CAL_BAROn_PRIO](../advanced_config/parameter_reference.md#CAL_BARO0_PRIO), [CAL_MAGn_PRIO](../advanced_config/parameter_reference.md#CAL_MAG0_PRIO), where `n` is the instance number of the IMU component (0, 1, etc.). ::: tip In most cases the external IMU is the highest-numbered. @@ -61,26 +67,28 @@ To use the Inertial Labs driver: Once enabled, the module will be detected on boot. -## Inertial Labs sensor Configuration +## Inertial Labs Sensor Configuration You can find configuration details in the device ICD. This process is usually short and takes a few minutes, depending on the sensor and the installation conditions on the vehicle. ## Published Data +These uORB topics are published: + - [sensor_accel](../msg_docs/SensorAccel.md) - [sensor_gyro](../msg_docs/SensorGyro.md) - [sensor_mag](../msg_docs/SensorMag.md) - [sensor_baro](../msg_docs/SensorBaro.md) - [sensor_gps](../msg_docs/SensorGps.md) -and, if enabled as an external INS, publishes: +If enabled as an external INS, publishes: - [vehicle_local_position](../msg_docs/VehicleLocalPosition.md) - [vehicle_global_positon](../msg_docs/VehicleGlobalPosition.md) - [vehicle_attitude](../msg_docs/VehicleAttitude.md) -or, if enabled as external sensor only, publishes: +If enabled as external sensor only: - `external_ins_local_position` - `external_ins_global_position`