* Creating a base for grf lidar * Serial Drive is working, need to work out distance publish * WIP Getting Range Data in cm * Working Rand Distance Values for GRF 250 and GRF500 * Review Changes * Compiler fixes * Update to date * small update * Fix typo and remover unused libs * removing unused enum * Update to the Documentation * Fiving scaling issue * update to the logic * [Feature] Adding I2C driver for the GRF250 and GRF500 models (#26425) * Adding the GRF I2C driver * I2C Driver Working * Removing a lot of unnecessary code * fixing names * Changing the i2c Driver to be in the lightware laser * remove the old driver * formatting fix * Adding Ligthware GRF to documentation * Update to the Documentation * Ensuring sample_perf ends * Updating Docs * uavcannode: implement hardpoint commands (#26334) * implement cannode hardpoint commands Signed-off-by: dirksavage88 <dirksavage88@gmail.com> * Update src/drivers/uavcannode/Subscribers/HardpointCommand.hpp Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com> * Update src/drivers/uavcannode/Subscribers/HardpointCommand.hpp Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com> * add hardpoint sub to ark cannode, simplify handling of hardpoint broadcast Signed-off-by: dirksavage88 <dirksavage88@gmail.com> --------- Signed-off-by: dirksavage88 <dirksavage88@gmail.com> Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com> * voxl_esc: Limit frequency of UART passthru writes to 20Hz * voxl2_io: Added UART passthru * docs: update link for px4 ros2 interface lib python api docs * estimator_interface: remove unused getter * gnss_checks: always run strict checks on ground With the goal to never take off if the GNSS solution is not fullfilling the configured requirements still not stopping to use it in case it degrades mid air. * ekf2 unit-tests: adapt to strict GNSS checks on ground * escCheck: rework online check to properly report offline ESCs previous to this 09d79b221f274523349a029e63ab4462e41d0c1c set `esc_online_flags` e.g. for UAVCAN ESCs which specific one is online and that then got compared to a mask where the first `esc_count` bits were set. So if only ESC 5 is mapped and online you get the message "ESC 156 offline" because `esc_online_flags = 0b1000` gets compared to `online_bitmask = 0b1` based on `esc_count = 1` and the motor index is `esc[0].actuator_function = 0` wrapped using `0 - actuator_motors_s::ACTUATOR_FUNCTION_MOTOR1 + 1 = 156`. * FailureDetector: consistent timestamp naming * FailureDetector: rework motor status check * FailureDetector: implement upper and lower current limit with offset * Update src/modules/commander/failure_detector/FailureDetector.cpp Prevent Buffer overflow * Update Format * Subedit * Shrink and rename image * Apply suggestion from @hamishwillee Sounds good Co-authored-by: Hamish Willee <hamishwillee@gmail.com> * Apply suggestion from @hamishwillee More universal approach Co-authored-by: Hamish Willee <hamishwillee@gmail.com> * Update to the Documentation * FailureDetector: rework motor status check * FailureDetector: implement upper and lower current limit with offset * Subedit * docs: update parameter reference metadata * Remove pregenerated files - that should all be tidied up next time this runs * remover GRF parameters * Documentation updates * Fixing Merge Conflicts * remove @ * Undo Changes to parameter_reference * remove the code that will be autogen-ed * Update the Camake File --------- Signed-off-by: dirksavage88 <dirksavage88@gmail.com> Co-authored-by: Andrew Brahim <35986980+dirksavage88@users.noreply.github.com> Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com> Co-authored-by: Eric Katzfey <eric.katzfey@modalai.com> Co-authored-by: Beat Küng <beat-kueng@gmx.net> Co-authored-by: Matthias Grob <maetugr@gmail.com> Co-authored-by: Marco Hauswirth <marco.hauswirth@auterion.com> Co-authored-by: Nick <145654544+ttechnick@users.noreply.github.com> Co-authored-by: Hamish Willee <hamishwillee@gmail.com> Co-authored-by: Ramon Roche <mrpollo@gmail.com>
6.5 KiB
LightWare Lidar (SF1X/SF02/LW20/SF45/GRF250/GRF500)
LightWare develops a range of light-weight, general purpose, laser altimeters ("Lidar") suitable for mounting on UAVs. These are useful for applications including terrain following, precision hovering (e.g. for photography), warning of regulatory height limits, anti-collision sensing etc.
Supported Models
The following models are supported by PX4, and can be connected to either the I2C or Serial bus (the tables below indicates what bus can be used for each model).
| Model | Range (m) | Bus | Description |
|---|---|---|---|
| SF11/C | 100 | Serial or I2C bus | |
| LW20/C | 100 | I2C bus | Waterproofed (IP67) with servo for sense-and-avoid applications |
| SF30/D | 200 | I2C bus | Waterproofed (IP67) |
| SF45/B | 50 | Serial | Rotary Lidar (Used for Collision Prevention) |
| GRF250 | 250 | Serial or I2C | Gimbal Range Finder |
| GRF500 | 500 | Serial or I2C | Gimbal Range Finder |
::: details Discontinued
The following models are supported by PX4 but are no longer available from the manufacturer.
| Model | Range | Bus | |
|---|---|---|---|
| SF02 | 50 | Serial | |
| SF10/A | 25 | Serial or I2C | |
| SF10/B | 50 | Serial or I2C | |
| SF10/C | 100m | Serial or I2C | |
| LW20/B | 50 | I2C bus | Waterproofed (IP67) with servo for sense-and-avoid applications |
:::
I2C Setup
Check the tables above to confirm that which models can be connected to the I2C port.
Lidar Configuration (SF11/C)
The SF11/C hardware (only) does not ship with Pixhawk I2C compatibility enabled by default. To enable support, you have to download LightWare Studio and got to Parameters > Communication and tick mark I2C compatibility mode (Pixhawk)
This step is not required for the other supported Lightware rangefinders.
Hardware
Connect the Lidar the autopilot I2C port as shown below (in this case, for the Pixhawk 1).
::: info
Some older revisions cannot be used with PX4.
Specifically they may be miss-configured to have an I2C address equal to 0x55, which conflicts with rgbled module.
On Linux systems you may be able to determine the address using i2cdetect.
If the I2C address is equal to 0x66 the sensor can be used with PX4.
:::
Parameter Setup
Set the SENS_EN_SF1XX parameter to match the rangefinder model and then reboot.
VTOL vehicles may choose to also set SF1XX_MODE to 2: Disabled during VTOL fast forward flight.
Serial Setup
::: tip SF45/B setup is covered in the linked document. ::: ::: tip GRF250/GRF500 setup is covered in the linked document. :::
Hardware
The lidar can be connected to any unused serial port (UART), e.g.: TELEM2, TELEM3, GPS2 etc.
Parameter Setup
Configure the serial port on which the lidar will run using SENS_SF0X_CFG. There is no need to set the baud rate for the port, as this is configured by the driver.
::: info If the configuration parameter is not available in QGroundControl then you may need to add the driver to the firmware. :::
Then set the SENS_EN_SF0X parameter to match the rangefinder model and reboot.
VTOL vehicles may choose to also set SF1XX_MODE to 2: Disabled during VTOL fast forward flight.



