Commit Graph

40 Commits

Author SHA1 Message Date
Roman Bapst
40e61d2429 feat(navigator): Geofence Aware RTL (#27145)
Plan RTL paths that route around geofence boundaries — both inclusion
and exclusion zones — instead of flying straight through them and
breaching. The planner builds a visibility graph over the margin-inflated
geofence polygons and circles and runs Dijkstra to find the shortest
legal return path, falling back to a straight line to the destination
when no valid path exists.

Highlights:
- New reusable libraries: src/lib/dijkstra (generic shortest path) and
  src/lib/geofence (fixed-point geometry, polygon inflation, bitangent
  visibility); the RTL planner lives in navigator/RTLPlanner.
- Visibility graph keeps only bitangent edges and skips edges that poke
  into a forbidden region, greatly reducing edge-cost computation.
- Corner splitting is limited to sharp convex corners.
- Geometry validation: reject self-intersecting polygons and vertices
  outside the fixed-point range; centimeter fixed-point scaling keeps
  orientation tests exact and avoids drift at large distances.
- Failure handling: a Status enum replaces silent bool returns, and
  failures (unbuildable fence, planner capacity overflow, dataman load
  errors, NaN waypoints, destinations that breach the fence) are
  surfaced to the operator via MAVLink warnings/criticals; the planner
  falls back to a straight-line RTL.
- Destination updates are centralized in RTL::setRtlTypeAndDestination;
  the path is replanned only when the destination or geometry changes.
- VTOLs always use the fixed-wing margin (FW loiter radius).
- kMaxNodes is exposed as a Kconfig option (default 100); the feature is
  disabled on flash-constrained boards (FMUv4 and older, various F4/F7).
- Tests: unit tests for the Dijkstra lib, geofence geometry utils, and
  the avoidance planner, plus a MAVSDK SITL test flying an RTL through a
  geofence.
- Documentation: new "Geofence Awareness" section in the RTL docs.

Co-authored-by: Balduin <balduin@auterion.com>
2026-07-09 15:08:27 +03:00
Andrew Brahim
f0453f5694 fix(temperature_compensation): remove temp compensation from enclosed autopilots (#27015)
* fix(temperature_compensation): remove temp compensation from enclosed autopilots

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* fix(temperature_compensation): remove from 3dr/mro

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* fix(temperature_compensation): remove manually from 6x default kconfig

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* fix(temperature_compensation): remove from modalai fc-vx boards

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* fix(temperature_compensation): remove from all other boards

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>

* Update boards/px4/sitl/default.px4board

---------

Signed-off-by: dirksavage88 <dirksavage88@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2026-04-13 12:46:00 -04:00
Jacob Dahl
06db25c078 boards: remove CONFIG_COMMON_OPTICAL_FLOW from all non-CANnode hardware (#26315) 2026-01-21 10:51:09 -05:00
Ramon Roche
0cddd3dfb0 drivers: disable INS by default (#25303)
* drivers: disable INS by default

With the growing number of INS drivers some targets are running out of flash
and its becoming challenge to keep them under the limit.

Signed-off-by: Ramon Roche <mrpollo@gmail.com>

* Update boards/nxp/tropic-community/default.px4board

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>

* Update boards/px4/fmu-v6xrt/default.px4board

Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>

---------

Signed-off-by: Ramon Roche <mrpollo@gmail.com>
Co-authored-by: Jacob Dahl <37091262+dakejahl@users.noreply.github.com>
2025-07-31 11:42:21 -08:00
chfriedrich98
e266d1f22f rover: remove deprecated module 2025-07-10 10:11:58 +02:00
Silvan
8c1f7ec7c0 rename FWPositionController to FWModeManager
Signed-off-by: Silvan <silvan@auterion.com>
2025-05-26 14:47:38 +02:00
RomanBapst
779a55c6dc FW Position Controller rework
- split up old module into two, one handling setpoint generation, one control
- add lateral and longitudinal control setpoints topics that can also be
injected from companion computer
- add configuration topics that (optionally) configure the controller
with limits and momentary settings

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2025-05-26 14:47:38 +02:00
Thomas Frans
cd4c495377 drivers/gps: extract Septentrio into new standalone drivers/gnss/septentrio module (#22904)
Having a generic interface over the GPS drivers makes dedicated
functionality for each driver harder. Move the Septentrio driver into
its own module under the `gnss` driver directory, and let it have its
own parameters for only the functionality it requires. This also helps
with adding new features because they only need to be implemented for
the driver that wants it, simplifying testing.
2024-06-17 12:25:24 -04:00
Jacob Dahl
70304fe715 [mavlink] Parameter to always start on USB (#22234)
* usb: Added parameter to enable always starting mavlink on USB.

    Refactored cdcacm_init into a module and added a paramter to allow always starting mavlink on
    USB, also added a paramter to choose the mode. The current default behavior is to wait and listen
    for data on USB and auto-detect the protocol (mavlink, nsh, ublox). This results in the mavlink
    stream not starting until something else on the mavlink network sends a packet first. The new
    default behavior is to always start mavlink.

    Added parameters
    MAV_USB_ENABLE -- default 1 (always start mavlink on USB)
    MAV_USE_MODE -- default 3 (onboard)

* added 3 retries for opening serial port in mavlink, removed sleep before sercon

* added DRIVERS_CDCACM_AUTOSTART to ark-v6x default.px4board

* added CONFIG_DRIVERS_CDCACM_AUTOSTART=y to default.px4board for boards with CONFIG_CDCACM in their nsh/defconfig

* format

* remove PGA460 from COMMON_DISTANCE_SENSOR to save flash

* remove LIS2MDL from COMMON_MAGNETOMETER to save flash

* disable CONFIG_DRIVERS_CDCACM_AUTOSTART for fmu-v5 protected.px4board

* moved and renamed parameters, removed mode logic in mavlink

* changed parameter names, added mode none

* remove parameters from mavlink
2024-05-20 12:35:29 -06:00
Silvan Fuhrer
2a48c1cb18 boards: disable gyro fft module for v4 to safe flash
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2023-06-19 16:22:42 -04:00
Beniamino Pozzan
9e5420bbbd microdds_client: rename to uxrce_dds_client
| | old version | new version (second proposal) |
|-|-|-|
| module name | `microdds_client` | **`uxrce_dds_client`** |
| strings / comments about the module | non consistent | **UXRCE-DDS Client** |
| menuconfig option | `MODULES_MICRODDS_CLIENT` | **`MODULES_UXRCE_DDS_CLIENT`** |
| module parameters group name | `Micro XRCE-DDS` | **UXRCE-DDS Client** |
| module parameters name prefix | `XRCE_DDS_` | `UXRCE_DDS_` |
| module class name | `MicroddsClient` | **`UxrceddsClient`** |
|`init.d/rcS` whenever the module is mentioned | `microdds` | **`uxrce_dds`** |
| main doc page name | XRCE-DDS (PX4-FastDDS Bridge) | **uXRCE-DDS (PX4-micro XRCE-DDS Bridge)**|
| environment variable to have custom namespace in simulation | PX4_MICRODDS_NS | **PX4_UXRCE_DDS_NS** |

Signed-off-by: Beniamino Pozzan <beniamino.pozzan@phd.unipd.it>
2023-05-03 11:51:53 -07:00
Thomas Stastny
82fd2987c9 fw pos control: revert name until we delineate this module a bit more (#21442) 2023-04-13 17:00:04 +02:00
Daniel Agar
cbc067f235 boards: include INS drivers by default on PX4 FMU (eg VectorNav VN-100, VN-200, VN-300) 2023-04-06 14:06:57 -04:00
PX4 BuildBot
efab9be488 update all px4board kconfig 2023-03-24 10:01:58 -04:00
Konrad
3e200bca0d fw_pos_control_l1: renaming to fw_path_navigation, l1 control is not used anymore, use a more generic naming. 2023-02-09 17:51:55 +01:00
PX4 BuildBot
e6c4416250 update all px4board kconfig 2023-01-07 21:53:01 -05:00
JaeyoungLim
21e88f64b4 Add new fixed wing rate control module (fw_rate_control)
* Fixedwing rate control into a separate module
* Start fw_rate_control for vtol
* Move over airspeed related parameters to fw_rate_control

Co-authored-by: Silvan Fuhrer <silvan@auterion.com>
2023-01-04 11:14:00 -05:00
Daniel Agar
c2f15f5957 boards: update all px4boards (make all_px4_savedefconfig) 2022-12-29 12:50:37 -05:00
Daniel Agar
f2cd7667dc systemcmds/bsondump: new command line utility (extracted from parameters) 2022-12-21 10:14:00 -05:00
Daniel Agar
8f25acd428 sih remove gps and use standalone sensor_gps_sim 2022-09-09 18:00:50 -04:00
Daniel Agar
bfe0d71a21 sih remove baro and use standalone sensor_baro_sim 2022-09-09 18:00:50 -04:00
Daniel Agar
c5336abba2 sih remove mag and use standalone sensor_mag_sim 2022-09-09 18:00:50 -04:00
Daniel Agar
bcdd2203d3 delete systemcmds/motor_test and msg/test_motor.msg 2022-09-09 09:14:09 -04:00
Daniel Agar
d3312f955f delete systemcmds/pwm 2022-09-09 09:14:09 -04:00
Daniel Agar
5dd1e5a018 delete systemcmds/mixer 2022-09-09 09:14:09 -04:00
Daniel Agar
4040e4cdf2 simulation organization and cleanup
- new modules/simulation directory to collect all simulators and related modules
 - new Tools/simulation directory to collect and organize scattered simulation submodules, scripts, etc
 - simulation module renamed to simulator_mavlink
 - sih renamed to simulator_sih (not a great name, but I wanted to be clear it was a simulator)
 - ignition_simulator renamed to simulator_ignition_bridge
 - large sitl_target.cmake split by simulation option and in some cases pushed to appropriate modules
 - sitl targets broken down to what's actually available (eg jmavsim only has 1 model and 1 world)
 - new Gazebo consistently referred to as Ignition for now (probably the least confusing thing until we fully drop Gazebo classic support someday)
2022-08-25 09:10:03 -04:00
Julian Oes
490a0c473b Rename vmount to gimbal 2022-02-07 19:21:15 -05:00
Daniel Agar
d077ca15fb delete PWM_SERVO_SET, PWM_SERVO_SET_MODE, systemcmds/motor_ramp, and pwm_out test 2022-01-10 09:51:11 -05:00
Daniel Agar
df44df2df6 delete systemcmds/esc_calib
- this is redundant with commander esc_calibration
2022-01-10 09:51:11 -05:00
Beat Küng
4c03def6e9 boards: add CONTROL_ALLOCATOR + ACTUATOR_TEST 2021-11-23 12:40:22 -05:00
Daniel Agar
2d816e0b3e [WIP] manual_control selector hacks 2021-11-09 16:05:25 +01:00
bresch
6ec9ab11f2 add fw auto-tune module to board configs 2021-10-25 13:41:31 +02:00
Peter van der Perk
6b7237aa3a Kconfig add WIFI serial port option 2021-10-07 10:09:01 -04:00
Peter van der Perk
ed5fee1a72 Backport #18311 mc atune 2021-10-07 10:09:01 -04:00
Peter van der Perk
454c907b7d Kconfig backport #18327 mag_bias 2021-10-07 10:09:01 -04:00
Peter van der Perk
36191e649a Kconfig backport #18289 and other flash size fixes 2021-10-07 10:09:01 -04:00
Peter van der Perk
33fd65e5fe [Kconfig] Fix regressions found by bloaty and cleanup unused cmake 2021-10-07 10:09:01 -04:00
Peter van der Perk
b3e799e277 [Kconfig] Add all distance sensors 2021-10-07 10:09:01 -04:00
Peter van der Perk
21e6547ac7 [Kconfig] Toolchain & platform fixes, SITL still broken 2021-10-07 10:09:01 -04:00
Peter van der Perk
6af0477733 [Kconfig] Gnerate px4board from old cmake
Added make updateconfig to update all config when default's have changed
Added cmake to px4board conversion script
2021-10-07 10:09:01 -04:00