Compare commits

..

327 Commits

Author SHA1 Message Date
Daniel Agar d72d6ea28e WIP: in tree Dockerfile and github actions push to github registry 2021-05-06 15:08:03 -04:00
PX4 BuildBot e265ebabc5 Update submodule ecl to latest Thu May 6 12:39:12 UTC 2021
- ecl in PX4/Firmware (a300d32523e24df3f366a0d564b764261e1c1909): https://github.com/PX4/PX4-ECL/commit/a7b8afe420f438554ad90bcba0f1f4872325e75b
    - ecl current upstream: https://github.com/PX4/PX4-ECL/commit/29243ac5cbb5d27ac71744e88afcd786df6f748d
    - Changes: https://github.com/PX4/PX4-ECL/compare/a7b8afe420f438554ad90bcba0f1f4872325e75b...29243ac5cbb5d27ac71744e88afcd786df6f748d

    29243ac 2021-05-05 bresch - yaw_reset: reduce minimum vector length to compute yaw error
aad4840 2021-05-02 Kabir Mohammed - EKF: increase allowed difference between flow and gyro ODRs
2021-05-06 13:53:40 -04:00
Daniel Agar 9419f9c5e8 Update submodule mavlink v2.0 to latest Thu May 6 12:39:02 UTC 2021 2021-05-06 13:52:43 -04:00
Silvan Fuhrer 08dab18a8b vtol_type: in FW, set min PWM to PWM_DEFAULT_MIN instead of PWM_MOTOR_OFF
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-06 10:20:24 +02:00
benjinne 099c2d13f6 dshot: add 3D capability 2021-05-06 08:12:07 +02:00
Daniel Agar 177ee4cbca drivers/optical_flow/paw3902: properly discard samples after mode change
- respect mode 2 shutter requirements from datasheet (should not operate with Shutter < 0x01F4 in Mode 2)
 - sensor reset is handled by mode change
2021-05-05 21:48:01 -04:00
Daniel Agar b1ebd16c61 ekf2: improve selector reset handling
- handle reset count rollover (uint8_t)
 - compute full reset delta if primary estimator instance has changed or if we missed a reset
2021-05-05 21:45:13 -04:00
Alessandro Simovic d1d5eba320 follow-me: log follow_target msg 2021-05-05 16:13:50 -04:00
Alessandro Simovic 48f3bd4078 follow-me: formatting 2021-05-05 16:13:50 -04:00
Alessandro Simovic 5f19eeaaa5 follow_target: copy also velocity fields from uorb 2021-05-05 16:13:50 -04:00
Alessandro Simovic 2d6bc9b6e0 follow_target: use actual velocity measurement 2021-05-05 16:13:50 -04:00
Alessandro Simovic 5d9b3504f7 follow-target: correctly set "updated" flag 2021-05-05 16:13:50 -04:00
Alessandro Simovic f1fca0939f follow-target: name variable correctly 2021-05-05 16:13:50 -04:00
David Sidrane 3702140e24 PWMOut:Arm once all channels are initalized. 2021-05-05 20:48:06 +02:00
David Sidrane 3d166d3279 PWM:Add Channel mask to up_pwm_servo_arm & up_pwm_servo_deinit 2021-05-05 20:48:06 +02:00
David Sidrane 19fa5cfe25 px4_fmu-v6x: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane baa37c1143 px4_fmu-v5x: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane 0385245ae1 px4_fmu-v5: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane 1f61dcfb06 modalai_fc-v1: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane 3779ff3690 holybro_pix32v5: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane 21cf26a69f holybro_durandal-v1: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane a654c37306 cuav_x7pro: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane 07e38563ba cuav_nora: Disable OTG_ID_GPIO 2021-05-05 20:48:06 +02:00
David Sidrane d5b60f7002 NuttX with WIP OTG_ID 2021-05-05 20:48:06 +02:00
David Sidrane 923af2c65b spracing_h7extreme: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 2d3800fa25 px4_fmu-v6x: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 4f8c1ccfe8 px4_fmu-v6u: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 7dd57d55f6 px4_fmu-v5x: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 69bf437e9a px4_fmu-v5: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 633fbe147a nxp_fmuk66-v3: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 118839e75c nxp_fmuk66-e: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 3f5a0e49a4 mro_pixracerpro: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 86360d076c mro_ctrl-zero-h7: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 3820f761b1 mro_ctrl-zero-h7-oem: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 50d3af1ba1 mro_ctrl-zero-f7: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 867aa9d4bc mro_ctrl-zero-f7-oem: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 310d166899 modalai_fc-v1: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 9c761d9ae5 holybro_pix32v5: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane b3b74eaaf6 holybro_kakutef7: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 4c8dca738c holybro_durandal-v1: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 4da1ec1146 cubepilot_cubeyellow: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 1a5741f984 cubepilot_cubeorange: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 4d4d8ed887 cuav_x7pro: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane eae01a06e7 cuav_nora: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane d6a54910b4 av_x-v1: Initalize PWM as input with Pull Downs 2021-05-05 20:48:06 +02:00
David Sidrane 362db92515 Define PX4_MAKE_GPIO_INPUT_PULL_DOWN 2021-05-05 20:48:06 +02:00
David Sidrane dd4ffb3c0c PWMOut:Fix pwm status 2021-05-05 20:48:06 +02:00
David Sidrane 44cdc52ef8 PWMOut:Use rates from single instance & init all instances channels 2021-05-05 20:48:06 +02:00
David Sidrane dcbfc9de2d io_timer:Fixed imposible logic 2021-05-05 20:48:06 +02:00
Peter van der Perk 9a085126fd FMUK66 free up some RAM 2021-05-05 18:52:56 +02:00
Jukka Laitinen ac6e7a1c6c FlightTaskManualAltitude: Fix double->float conversion in initialization
This gives an error on some new compilers, e.g. riscv64-unknown-elf 10.2.0

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-05-05 09:31:07 +02:00
Jukka Laitinen 532f370e7d Fix implicit float to double conversions
The both results of ?: should be of same type, and some compilers give error
on this:
	" implicit conversion from 'float' to 'double' to match other result of conditional"

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-05-05 09:31:07 +02:00
Peter van der Perk 62dc926891 Add support for UCANS32K146B board revision 2021-05-04 22:13:24 -04:00
Daniel Agar c1d3be4258 Makefile: keep git clean for submodules to resolve incomplete dependency problems 2021-05-04 21:22:56 -04:00
Daniel Agar 68a9e981b1 boards: px4_fmu-v5_optimized disable temperature_compensation to save flash 2021-05-04 21:20:32 -04:00
Daniel Agar f5b6656a6c cmake: set MAX_CUSTOM_OPT_LEVEL to -O3 if Release 2021-05-04 21:20:32 -04:00
Daniel Agar 3b7ce61901 px4_work_queue: increase wq:rate_ctrl stack slightly 2021-05-04 17:40:56 -04:00
Daniel Agar 3ec40a5956 collision_prevention: fix CP_GO_NO_DATA parameter type 2021-05-04 16:41:32 -04:00
Peter van der Perk 24c2967511 legacy_data_types specify branch 2021-05-04 13:23:14 -04:00
Matthias Grob ee87257a8d FlightModeManager: move velocity control feedback into FlightTask
This was only handled outside because FlightTaks lived in the
multicopter position controller which produces the data that was
needed but now it doesn't make sense anymore to handle this
subscription separately.

It's better to have it inside the base task to have the data available
on task activation sucht that e.g. Altitude mode can take over smoothly
from Position mode.
2021-05-04 16:47:48 +02:00
Matthias Grob c28533677d MulticopterLandDetector: use setpoint generation to infer decend intent
For any normal use case where a downwards velocity setpoint is set
this works exactly the same as before.
E.g. autonomous landing, landing in Altitude or Position mode

The advantage is that the very common case where a vehicle tries
to hold a constant altitude but fails to do so e.g. during a hard brake
with too much lift the resulting downwards velocity was interpreted
as descend intent and since the vehicle already struggled to hold altitude
with low thrust and was not moving fast anymore because it was braking
this lead to a lot more false positives on certain vehicle types.

The disadvantage is that not setting a downwards velocity setpoint but
just moving the position setpoint into the ground does not result in
land detection anymore. We do not use this method of landing anymore for
quite a while. It's not recommended and I wonder if there's some rare use
case like offboard where this is done.

We could add an additional case for the specific case to land with a
position setpoint only.
2021-05-04 16:43:33 +02:00
Matthias Grob 2e292abfff MulticopterLandDetector: Make land detection time configurable
The tree stages used arbitrary 350, 250 300ms totally 900ms
So this changes it to each stage to a third of the parameter.
Default it is 1 second -> 333ms per stage.
2021-05-04 16:43:33 +02:00
RomanBapst 269ce07cb5 land detector: log more states in order to facilitate debugging ground contact state
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-05-04 16:43:33 +02:00
Daniel Agar 3348869ae1 Makefile: git clean properly preserve project files (.project, .cproject, etc) 2021-05-04 09:49:50 -04:00
Jari Nippula 04b7ee43bc protocol_splitter: Sp2Header defined as union (#17511)
Aligned with agent_protocol_splitter to make byte access easier
for checksum generation

Co-authored-by: Nuno Marques <n.marques21@hotmail.com>
2021-05-04 10:09:24 +02:00
Mikołaj Grzybek 4e69952ee4 arch.sh: Syntax error fix
Script failed for me with following error
PX4-Autopilot/Tools/setup/arch.sh: line 159: syntax error near unexpected token `else'
PX4-Autopilot/Tools/setup/arch.sh: line 159: `			else'
Seems like there is nothing to do in case of positive if case.
Changed code should maintain logic
2021-05-04 10:06:39 +02:00
RomanBapst cd4378b8c6 vtol: init boolean consistently
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-05-03 18:58:26 -04:00
Thomas ab10e68a40 update Quadchute trigger from mavlink PR 1569 2021-05-03 21:44:27 +03:00
Thomas bf9758247b add VEHICLE_VTOL_STATE_QC and remove hardcoding 2021-05-03 21:44:27 +03:00
Thomas d3ddbe8db5 Allow quadchute from external command 2021-05-03 21:44:27 +03:00
Peter van der Perk ecc5154a44 Reflect dynamically allocate block pointers instead of using heap 2021-05-03 14:04:02 -04:00
David Sidrane cd2aceb363 stm32_common:board_reset Fix reboot -b broke by canbootloader 2021-05-03 05:21:25 -07:00
Silvan Fuhrer 2c6b3eeb02 Navigator: NAV_CMD_DO_VTOL_TRANSITION: accept once in correct vtol state
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-03 08:40:54 +02:00
Silvan Fuhrer 5579a1d789 Navigator: remove WORK_ITEM_TYPE_CMD_BEFORE_MOVE
It was used to make the vehicle needing to accept the waypoint after a VTOL transition in the new VTOL mode

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-03 08:40:54 +02:00
Silvan Fuhrer 3c4b0c1b8c tiltrotor: only allow increasing tilt during first part of transition
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-05-02 21:51:09 -04:00
Jukka Laitinen fa9fdce6e6 sensors/vehicle_gps_position: Fix raw_dt and present_dt calculation in gps_blending
If the GPS data is passed from companion computer, there may be inaccuracies
with timesync. This may cause time deltas to overflow.

Make the time delta calculation using floats directly, wich results in negative
numbers in case there are such inaccuracies.

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-05-02 13:59:50 -04:00
Daniel Agar e78a4287f9 parameters: attempt import multiple times 2021-05-02 13:48:16 -04:00
Daniel Agar 3b24abaa1b Makefile: clean use git clean to delete all gitignore files recursively 2021-05-02 13:47:54 -04:00
Daniel Agar feebb24106 logger: skip multi-EKF logging if CONSTRAINED_MEMORY 2021-05-02 13:47:28 -04:00
Femtomes 783a780207 drivers/gps: add femtomes gps driver protocol 2021-05-02 13:46:39 -04:00
Julian Oes abee13df1a mavlink: improve rx stats printf 2021-05-02 13:45:39 -04:00
Julian Oes d96ba2d88a mavlink: use 4s for HITL
This is more inline with SITL.
2021-05-02 13:45:39 -04:00
Julian Oes e9a1599355 mavlink: clang-tidy fix 2021-05-02 13:45:39 -04:00
Julian Oes aa0752ad86 mavlink: fix pthread usage 2021-05-02 13:45:39 -04:00
Julian Oes 5784f1d951 mavlink: add detailed stats about rx messages 2021-05-02 13:45:39 -04:00
Julian Oes 370d9ee409 mavlink: use px4::atomic instead of volatile 2021-05-02 13:45:39 -04:00
Julian Oes 4498509426 mavlink: move thread handling into MavlinkReceiver
In my opinion this makes it much cleaner and will allow mavlink main to
directly call the receiver.
2021-05-02 13:45:39 -04:00
Julian Oes 71bd35fcaa mavlink: keep track of seq for any component
Instead of only keeping track of the sequence ID of specific "supported"
components, we now keep track of any sysid/compid of an incoming
message. Before this change, unknown components (such as jMAVSim) would
completely screw up the mavlink message stats and create confusion (at
least in my case).

With this change we currently keep track of up to 8 other components.
Once we reach the limit, we will print a warning.
2021-05-02 13:45:39 -04:00
Julian Oes 6ae23e7b7b mavlink: fix HITL battery status publication
Without these fields the pre-arm check would complain and fail.

Also, the voltage is adjusted to be at around 70% rather than 30% which
would almost start to trigger warnings.
2021-05-02 13:45:39 -04:00
Julian Oes cfcc074e9d mavlink: remove unused methods 2021-05-02 13:45:39 -04:00
Daniel Agar b4e0a8396e Tools/process_sensor_caldata.py - median filter sensor data
- this makes it a bit easier to see what's going on now that the raw sensor data (sensor_accel, sensor_gyro) is completely unfiltered
2021-05-02 13:42:09 -04:00
Daniel Agar 5ec5a12f5e Tools/setup: update ubuntu.sh with current NuttX dependencies 2021-05-02 13:10:47 -04:00
TSC21 18dc0e4900 update submodule micro-CDR 2021-05-02 13:05:16 -04:00
Daniel Agar 6e2343a485 Jenkins: fix new px4io/px4-dev-nuttx-focal container tag 2021-05-02 12:34:48 -04:00
SalimTerryLi 514d4fd57b drivers/distance_sensor: GY-SR04 sonar range finder driver 2021-05-02 12:09:35 -04:00
PX4 BuildBot 32d354e5fe Update submodule ecl to latest Sun May 2 12:39:08 UTC 2021
- ecl in PX4/Firmware (cb999f37d4891ebfbbc21b4ce9b3851888b39ad4): https://github.com/PX4/PX4-ECL/commit/5d34d7a24ef72b826c320a3259ee0ec68b1936df
    - ecl current upstream: https://github.com/PX4/PX4-ECL/commit/a7b8afe420f438554ad90bcba0f1f4872325e75b
    - Changes: https://github.com/PX4/PX4-ECL/compare/5d34d7a24ef72b826c320a3259ee0ec68b1936df...a7b8afe420f438554ad90bcba0f1f4872325e75b

    a7b8afe 2021-04-30 Eike - Allow rangefinder fusion in vision height mode (Fix for #994) (#999)
4ac57d3 2021-04-25 Daniel Agar - EKF: increase fault flags value size to fit current flag bits (> 16)
2021-05-02 11:47:36 -04:00
Daniel Agar 92dc1a71a6 github actions delete MAVROS avoidance tests
- these aren't currently running properly on github actions, but continue to use build resources
2021-05-02 11:44:06 -04:00
Daniel Agar 165420598e Update submodule mavlink v2.0 to latest Sat May 1 00:38:27 UTC 2021 2021-05-01 19:17:28 -04:00
PX4 BuildBot 8ef10c9b38 Update submodule public_regulated_data_types to latest Sat May 1 12:41:36 UTC 2021
- public_regulated_data_types in PX4/Firmware (bb5225ddae32f3a85f6c01fa5957f1b30cb73a14): https://github.com/UAVCAN/public_regulated_data_types/commit/309b251a7e8d713d6bf428e18e28d91d5f07b73e
    - public_regulated_data_types current upstream: https://github.com/UAVCAN/public_regulated_data_types/commit/1337b1c86fee5bd3f3c3c0f1027bcf19e5c08aae
    - Changes: https://github.com/UAVCAN/public_regulated_data_types/compare/309b251a7e8d713d6bf428e18e28d91d5f07b73e...1337b1c86fee5bd3f3c3c0f1027bcf19e5c08aae

    1337b1c 2021-04-23 Pavel Kirienko - Update the `nominal_voltage` in battery parameters (#114)
2021-05-01 19:17:02 -04:00
PX4 BuildBot 199db72d5f Update submodule public_regulated_data_types to latest Sat May 1 12:41:39 UTC 2021
- public_regulated_data_types in PX4/Firmware (d052cf4a6963d576e0e108b6c95b6fa4fab57584): https://github.com/UAVCAN/public_regulated_data_types/commit/309b251a7e8d713d6bf428e18e28d91d5f07b73e
    - public_regulated_data_types current upstream: https://github.com/UAVCAN/public_regulated_data_types/commit/1337b1c86fee5bd3f3c3c0f1027bcf19e5c08aae
    - Changes: https://github.com/UAVCAN/public_regulated_data_types/compare/309b251a7e8d713d6bf428e18e28d91d5f07b73e...1337b1c86fee5bd3f3c3c0f1027bcf19e5c08aae

    1337b1c 2021-04-23 Pavel Kirienko - Update the `nominal_voltage` in battery parameters (#114)
2021-05-01 19:16:42 -04:00
mcsauder 4eb758edf0 Alphabetize flight_mode_manager CMakeLists.txt list, and group/format types in FlightTask.cpp/hpp. 2021-05-01 10:46:27 -04:00
Yannick Fuhrer 759a60ac82 Update rc.vtol_defaults
based on our experience with VTOL it makes sense to change the yaw mode default. You always want your VTOL to yaw in transition direction before starting the transition.
2021-05-01 10:45:14 -04:00
PX4 BuildBot dd0465070c Update submodule jMAVSim to latest Sat May 1 12:41:22 UTC 2021
- jMAVSim in PX4/Firmware (d2a118ee86): https://github.com/PX4/jMAVSim/commit/358b6cca4093646eb96e0cb075e45efa8f4a0c48
    - jMAVSim current upstream: https://github.com/PX4/jMAVSim/commit/2b610caab81726ab79019de0f2fa8cff5e341bd5
    - Changes: https://github.com/PX4/jMAVSim/compare/358b6cca4093646eb96e0cb075e45efa8f4a0c48...2b610caab81726ab79019de0f2fa8cff5e341bd5

    2b610ca 2021-04-21 Julian Oes - Merge pull request #126 from PX4/pr-forwarding
75f2aa3 2021-04-21 Julian Oes - Serial/TCP/UDP ports: mark messages as forwarded
2021-05-01 10:31:43 -04:00
Daniel Agar 186bc2bda4 Update submodule GPSDrivers to latest Sat May 1 00:38:31 UTC 2021 2021-05-01 10:31:09 -04:00
PX4 BuildBot d2a118ee86 Update submodule sitl_gazebo to latest Sat May 1 00:38:24 UTC 2021
- sitl_gazebo in PX4/Firmware (283138e87d46e573ce101033e01a59b273430928): https://github.com/PX4/PX4-SITL_gazebo/commit/05e2cd9c03ffa77f0c0d5bd3e788d33e06480b25
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/4c27fc7dd659c262257abeea2308e2f1c54e9029
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/05e2cd9c03ffa77f0c0d5bd3e788d33e06480b25...4c27fc7dd659c262257abeea2308e2f1c54e9029

    4c27fc7 2021-04-20 JaeyoungLim - Update mavsdk versions for firmware SITL tests (#741)
2021-04-30 21:04:25 -04:00
David Sidrane 92344b96b3 CI Update to 2021-04-29 2021-04-30 14:32:40 -04:00
Julian Oes 4f52c0b6da mavsdk_tests: unused var and index fix 2021-04-29 21:08:33 -04:00
Julian Oes f16913c175 mavsdk_tests: fix timeout at 1x speed 2021-04-29 21:08:33 -04:00
Julian Oes e7fcfbf658 mavsdk_tests: use global position instead of local
We are currently not testing with flow only anyway, so we might as well
remove this for now.
2021-04-29 21:08:33 -04:00
Julian Oes 43fccece61 mavsdk_tests: check installed version
Starting with MAVSDK 0.39.0 we can specify the version required. This
way we can fail at configure time instead of later during compilation or
linking.
2021-04-29 21:08:33 -04:00
Julian Oes 14e51098e5 workflows: use MAVSDK_VERSION in sitl_tests 2021-04-29 21:08:33 -04:00
Julian Oes 7384bd2675 mavsdk_tests: specify required MAVSDK version
This way it can be better picked up by CI scripts.
2021-04-29 21:08:33 -04:00
Daniel Agar 64688b04d8 boards: mro pixracerpro set BOARD_SUPPORTS_RC_SERIAL_PORT_OUTPUT instead of RC_SERIAL_SINGLEWIRE 2021-04-29 21:06:39 -04:00
Peter van der Perk 96bc58f0eb CMake Bloaty add static ram usage breakout 2021-04-29 10:16:43 -04:00
TSC21 4f098a01bc drivers: protocol_splitter: some style updates 2021-04-29 11:57:35 +02:00
Jari Nippula 9980d2a556 Utilize header struct instead of control bytes directly 2021-04-29 09:37:48 +02:00
Jari Nippula 757f1df068 Protocol_splitter: 4-byte header with checksum 2021-04-29 09:37:48 +02:00
korotkoves d62204856c ROMFS/px4fmu_common/init.d-posix/rcS: split and source data from files in PATH 2021-04-28 09:00:47 +02:00
CUAVcaijie b898aabfed Fix the repeated configuration of PWM rate after initialization 2021-04-28 00:22:07 +02:00
Kalyan Sriram b2d73dca26 uavcan_v1: cmake: nunavut generation message 2021-04-27 10:30:33 -04:00
Kalyan Sriram 925213db8f requirements: bump nunavut minimum version 2021-04-27 10:30:33 -04:00
Beat Küng 38c1ec6a9c ekf2: check if ChangeInstance succeeded 2021-04-27 10:29:09 -04:00
Beat Küng 0a98c5a7f4 Subscription: fix ChangeInstance 2021-04-27 10:29:09 -04:00
Beat Küng 1a89f165fd fix bmi088: set correct accel scale
This affected the clipping limit, which was set too low
2021-04-27 10:27:57 -04:00
RomanBapst 171c26373b land_detector: robustify land detection by using distance to ground info
- if distance to the ground is available then hysteresis times will be increased
by a factor of 3 if vehicle is higher than 1m above ground

Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-04-27 08:19:19 +02:00
RomanBapst f6a34e1e80 vtol_type: reset accel to pitch integrator
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-04-27 07:43:38 +03:00
Alex Mikhalev cbf34109d1 paw3902: Default to using SENS_FLOW_ROT rotation
This restores the behavior to what it was previous to #16338 (74083d6).

Signed-off-by: Alex Mikhalev <alex@corvus-robotics.com>
2021-04-26 15:14:17 -04:00
Daniel Agar c266c3e43a parameters: remove unnecessary param_get_system_default_value() locking 2021-04-26 09:49:15 +02:00
benjinne 3664d9e4ce rover: publish actuator controls with rate of gyro
Some ESC's with DShot don't initialize otherwise (as the 200Hz of the vehicle attitude rate is too low).
2021-04-26 08:53:20 +02:00
JacobCrabill cc81c7d49e poor-mans-profiler: Add documentation
Now sets the GDB serial device to the path of a DroneCode Probe by
default, with option command-line option override.

A few usage instructions added to the top of the file.
2021-04-26 08:47:49 +02:00
Daniel Agar 6e9e503ee6 sensors/vehicle_imu: accel clipping warning minor improvements
- no warning if accel is disabled
 - threshold increased 100 -> 1000 (only warn if severe ongoing clipping)
 - more generic warning message (vehicle isn't necessarily in air flying)
2021-04-25 17:03:43 -04:00
Daniel Agar 8478d1ea37 sensors/vehicle_angular_velocity: properly handle filter reset on FIFO data scale changes
For the sake of efficiency (at 8 kHz) all filtering is performed on the raw data before the calibration and rotation is applied to only the final output. As a result we have to be a bit more careful when switching between sensors or in cases where the gyro scale factor changes (eg icm42688p 20 bit data rescaled to fit in int16 output).
2021-04-25 14:20:32 -04:00
Daniel Agar ed0fa99198 icm42688p: limit to 8 kHZ for now 2021-04-24 20:23:19 -04:00
Daniel Agar 59b70a881d commander: temporarily increase worker thread stack substantially 2021-04-23 22:13:12 -04:00
Matthias Grob 5416679735 check_code_style_all.sh: remove ignored xargs parameter
to suppress the warning message:
`xargs: warning: options --max-args and --replace/-I/-i are mutually exclusive, ignoring previous --max-args value`
when running make format.
2021-04-23 22:09:16 -04:00
Matthias Grob 6df299738e FlightTask: reactivate tasks on ground with empty setpoint
Such that they properly reset and don't try to take over smoothly from
their own setpoints generated in the last loop iteration.
2021-04-23 21:57:27 -04:00
Matthias Grob 9e2375ab91 FlightTaskManualAcceleration: change reset order, check all components for NAN
Just cleanup and completeness.
2021-04-23 21:57:27 -04:00
Matthias Grob 5e75f17680 StickAccelerationXY: fix acceleration reset using x component instead of y
This entire feature only has an impact if the last mode set
a huge acceleration and we have to take over as smooth as possible.
But it's stil lworth fixing.
2021-04-23 21:57:27 -04:00
Matthias Grob fee4728b1f StickAccelerationXY: change function name feasibility limit -> jerk limit
for clarity because it's more accurate.
2021-04-23 21:57:27 -04:00
Daniel Agar c71a228f15 Tools/setup: macos use pip as python3 module 2021-04-23 16:47:49 -04:00
bazooka joe 112fc5c9cd log battery status every 0.2sec instead of 0.3sec
Battery status is logged every 0.3Sec.
but BMS data published every 0.25Sec, so there are many drops of data.
2021-04-23 16:46:02 -04:00
Beat Küng 51f527d845 param: update 'param show-for-airframe' to use set-default 2021-04-23 16:44:55 -04:00
Beat Küng 1730cd1971 param: avoid warning for 'param show -c' or 'param show -a' 2021-04-23 16:44:55 -04:00
Igor Mišić d631a5d39f Commander: checking COM_ARM_CHK_ESCS param for ESCs telemetry
COM_ARM_CHK_ESCS set to 0. The user will need to enable it manually.
Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2021-04-22 13:46:08 +02:00
Claudio Micheli bff99f9794 Commander:esc_checks minor improvements
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2021-04-22 13:46:08 +02:00
Claudio Micheli 371fa98579 Commander/preflight checks: Add monitoring to ESC failures
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2021-04-22 13:46:08 +02:00
Thies Lennart Alff 1c624d20f5 srcparser support for vectored 6 dof uuv airframe added 2021-04-22 08:30:11 +02:00
Matthias Grob 789d91900d commander_params: lower COM_DISARM_PRFLT but disable for fixed-wing 2021-04-21 14:55:04 +02:00
Daniel Agar f9d8c613b0 px4_work_queue: increase nav_and_controllers stack 2021-04-21 07:34:13 +02:00
Peter van der Perk 8b3aa46c01 [UAVCANv1] Publisher default timeout, has to be tuned further for all publishers 2021-04-20 21:44:40 +02:00
Peter van der Perk 1804cea92c [UAVCANv1] TX deadline fix and other fixes 2021-04-20 21:44:40 +02:00
Peter van der Perk 02a4d93c74 [UAVCANv1] snprintf and cleanup ram usage ~4KB 2021-04-20 21:44:40 +02:00
Peter van der Perk 399815469f [UAVCANv1] Subscriber multi topic subscription
reg.drone.bms full support
legacy.equipment.bms support
2021-04-20 21:44:40 +02:00
Matthias Grob 5e7ebbe47c FlightTask: correct comment about setpoints 2021-04-20 18:18:21 +02:00
Matthias Grob 45ada2dd4c MulticopterLandDetector: remove unnecessary newline 2021-04-20 18:18:21 +02:00
Matthias Grob 4865d027f9 StickAccelerationXY: factor in stricter tilt limit on takeoff 2021-04-20 18:18:21 +02:00
Matthias Grob 29e07b1e52 MulticopterPositionControl: publish stricter tilt limit during takeoff 2021-04-20 18:18:21 +02:00
Matthias Grob ff67da1bb4 SlewRate: add getter for current state without update 2021-04-20 18:18:21 +02:00
Lorenz Meier 3d8a35288e Rename Snapdragon Spektrum RC
The previous name was confusing because it did not clarify that this driver was specific to the Snapdragon platform.
2021-04-18 18:35:03 +02:00
Daniel Agar 38bc46fd1a re-add RC_MAP_RATT_SW (unused) and mark active for QGC 2021-04-16 13:07:02 -04:00
mcsauder 3b72f3b641 Create publish_status() method in the heater driver, add a status field to indicate if the temperature setpoint has been met within 2.5C, breakout update_params() method from the Heater::Run() method and simplify logic. 2021-04-16 08:09:51 -04:00
benjinne 3dad16bc40 RTPS client remove redundant baudrate check 2021-04-16 14:01:27 +02:00
benjinne 42108eb4af Fix microRTPS_client_main.cpp format 2021-04-16 14:01:27 +02:00
benjinne 76e15b4a21 RTPS client get baudrate parameter if requested, and mark the device baud rate parameter as used so it shows up in QGC 2021-04-16 14:01:27 +02:00
Daniel Agar 2492fb35e4 rc_update: require consecutive valid input_rc before publishing 2021-04-15 16:40:54 -04:00
PX4 BuildBot 96c7fe4978 Update submodule matrix to latest Thu Apr 15 12:39:10 UTC 2021
- matrix in PX4/Firmware (501b463b36b07481181c15b734861704d9f27020): https://github.com/PX4/PX4-Matrix/commit/1d0e7f1ca1187c90c70a9dac92ca6294a320b1d3
    - matrix current upstream: https://github.com/PX4/PX4-Matrix/commit/b8568a89db8455d0ab2e2e391e2149ba2e5e10dd
    - Changes: https://github.com/PX4/PX4-Matrix/compare/1d0e7f1ca1187c90c70a9dac92ca6294a320b1d3...b8568a89db8455d0ab2e2e391e2149ba2e5e10dd

    b8568a8 2021-04-14 Daniel Agar - Euler: improve quaternion constructor
2021-04-15 13:27:07 -04:00
Daniel Agar 5c4582ccce rc: dsm allow full range 2021-04-15 18:27:33 +02:00
Igor Mišić bd4839e855 commander: changed msg "connection to GCS lost" from critical to info
update
2021-04-15 11:29:02 -04:00
Beat Küng 2219e096d7 cmake: embed param metadata if not CONSTRAINED_FLASH and not "test" LABEL 2021-04-15 08:16:51 +02:00
PX4 BuildBot 592dc65bae Update submodule matrix to latest Thu Apr 15 00:39:06 UTC 2021
- matrix in PX4/Firmware (d9ebf2a842f611976d7ba5078d3f31ad8cde55a7): https://github.com/PX4/PX4-Matrix/commit/3679f7fd5160c7d2a8271b1134ca1e601f1a4254
    - matrix current upstream: https://github.com/PX4/PX4-Matrix/commit/1d0e7f1ca1187c90c70a9dac92ca6294a320b1d3
    - Changes: https://github.com/PX4/PX4-Matrix/compare/3679f7fd5160c7d2a8271b1134ca1e601f1a4254...1d0e7f1ca1187c90c70a9dac92ca6294a320b1d3

    1d0e7f1 2021-04-14 Daniel Agar - Matrix: use naive per element copy instead of memcpy call
1344ce0 2021-04-14 Daniel Agar - Euler: simplify DCM constructor
2021-04-14 23:11:41 -04:00
Jukka Laitinen b99e597a73 flashparams: Fix a null-pointer dereference crash
Fix a potential crash caused by calling erase_sector with a null
sector_descriptor (current_sector == 0).

Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
2021-04-14 07:55:33 -07:00
Daniel Agar 58b40fbbb9 boards: move testing to dedicated test variants 2021-04-14 09:21:31 +02:00
Daniel Agar 047fb13922 IMU_GYRO_RATEMAX: enforce reasonable constraint and update metadata 2021-04-13 20:26:57 -04:00
Barcis, Michal 7053919a9f fixed micrortps_agent usage description 2021-04-13 21:28:27 +02:00
Daniel Agar 2d15c96b9b ekf2: Multi-EKF let new instance schedule itself immediately on successful init
- this is to minimize missed sensor data (and unnecessary error output) between EKF2 construction and once it actually starts running
2021-04-13 14:24:46 -04:00
Daniel Agar 6a4c589c62 examples/work_item: add ModuleParams and more uORB::Subscription example usage 2021-04-13 14:23:36 -04:00
Lorenz Meier bf09089a26 PWM out: Collect settings for all outputs
There are settings that have to be the same for a split output across multiple instances, like for example the PWM mask and rate configurations. This change collects them for all outputs of the same underlying driver structure and applies the complete set.
2021-04-13 18:39:27 +02:00
Lorenz Meier 6bc11596fe VTOL mixer: Correct alt rate channels
The baby shark config did mark main rate outputs (50 Hz) as alt rate, resulting in the alt rate being set to 50 Hz.
2021-04-13 18:39:27 +02:00
Daniel Agar aa22407d87 drivers/pwm_out: only print rates if changed 2021-04-13 09:55:21 +02:00
Daniel Agar a07bccc046 boards: modalai simplify defaults with new parameter defaults mechanism (AUTOCNF replacement) 2021-04-12 21:27:53 -04:00
Daniel Agar f44f497e3f parameters: better handle export failures and retry 2021-04-12 21:26:50 -04:00
Daniel Agar edc445a1b2 parameters: tinybson fill total document length for bson compatibility 2021-04-12 21:26:50 -04:00
PX4 BuildBot b9e0a16594 Update submodule public_regulated_data_types to latest Mon Apr 12 12:45:35 UTC 2021
- public_regulated_data_types in PX4/Firmware (9101f5707a251c33048289249bd565eba5d3a848): https://github.com/UAVCAN/public_regulated_data_types/commit/53a7dbbf85554e11517c13ad91b9efb871599ad1
    - public_regulated_data_types current upstream: https://github.com/UAVCAN/public_regulated_data_types/commit/309b251a7e8d713d6bf428e18e28d91d5f07b73e
    - Changes: https://github.com/UAVCAN/public_regulated_data_types/compare/53a7dbbf85554e11517c13ad91b9efb871599ad1...309b251a7e8d713d6bf428e18e28d91d5f07b73e

    309b251 2021-04-11 Peter van der Perk - reg.drone Battery parameters add nominal voltage (#113)
2021-04-12 19:51:35 -04:00
Lorenz Meier 991c07eef9 Global: Allow users to arm with USB
This change reflects the medium-term experience with users using USB as data link or power source in R&D setups. While we still discourage this for volume products, not allowing it seems like a major hurdle and blocker in R&D setups.
2021-04-12 19:11:22 -04:00
Lorenz Meier 3a004ffd68 PWM Out: Simplify startup logic
The simpler logic is more robust towards future refactoring.
2021-04-12 19:11:22 -04:00
PX4 BuildBot 5f6b8fcb9f Update submodule sitl_gazebo to latest Mon Apr 12 12:45:32 UTC 2021
- sitl_gazebo in PX4/Firmware (8acdb8ca3f): https://github.com/PX4/PX4-SITL_gazebo/commit/5761bd66cd36ded2d0dccf8127e30a1522fe1ac6
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/05e2cd9c03ffa77f0c0d5bd3e788d33e06480b25
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/5761bd66cd36ded2d0dccf8127e30a1522fe1ac6...05e2cd9c03ffa77f0c0d5bd3e788d33e06480b25

    05e2cd9 2021-04-10 Manuel Galliker - Removed unused computation of CoG (#737)
2021-04-12 14:22:14 -04:00
Daniel Agar f0f16b9cc5 mavlink: streams fix SCALED_IMU size reporting 2021-04-12 13:02:10 -04:00
Beat Küng faaee0f077 fix pwm_out: avoid race condition when setting mode
Bootup failed in some cases with:
ERROR [mixer] can't reset mixers on /dev/pwm_output1

The reason was the mode change was not applied yet.
2021-04-12 18:39:51 +02:00
PX4 BuildBot 18f17dcb96 Update submodule public_regulated_data_types to latest Mon Apr 12 12:45:37 UTC 2021
- public_regulated_data_types in PX4/Firmware (9f25ac4175fd81259b11cfe79f0f875a21562d3d): https://github.com/UAVCAN/public_regulated_data_types/commit/53a7dbbf85554e11517c13ad91b9efb871599ad1
    - public_regulated_data_types current upstream: https://github.com/UAVCAN/public_regulated_data_types/commit/309b251a7e8d713d6bf428e18e28d91d5f07b73e
    - Changes: https://github.com/UAVCAN/public_regulated_data_types/compare/53a7dbbf85554e11517c13ad91b9efb871599ad1...309b251a7e8d713d6bf428e18e28d91d5f07b73e

    309b251 2021-04-11 Peter van der Perk - reg.drone Battery parameters add nominal voltage (#113)
2021-04-12 09:58:48 -04:00
Silvan Fuhrer 381c97d3c6 Commander: baro check: only report failure of mandatory instances
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-04-12 09:27:12 -04:00
tututu123-tu 8acdb8ca3f Update .gitmodules 2021-04-12 08:18:16 -04:00
CUAVmengxiao 45b9e18195 UAVCANv0: add CUAV smart battery support 2021-04-11 21:27:31 -04:00
David Sidrane 96d0755afd NuttX with SDMMC Backport 2021-04-09 15:53:26 -04:00
Tarik Agcayazi 1520805a20 README: remove redundant autogyro, add High altitude balloons 2021-04-09 08:48:17 +02:00
Daniel Agar 39c96a8884 gps add device_id 2021-04-08 08:27:07 +02:00
Alex Mikhalev 1f4960d480 boards: cubeorange enable pwm_input
Signed-off-by: Alex Mikhalev <alex@corvus-robotics.com>
2021-04-07 21:34:44 -04:00
alexklimaj 0c3e64a7f5 Fix support for Cube Black Heater 2021-04-07 10:23:02 -04:00
benjinne 9b7eae4043 rc: enable crsf and ghst telemetry on supported boards
Co-authored-by: Benjamin Linne <benjamin.linne.civ@mail.mil>
2021-04-07 08:51:49 +02:00
Hamish Willee 6fbb409e43 Param markdown - fix sensor param table 2021-04-07 08:46:11 +02:00
alessandro b46e505b0d Handle velocity fields in follow_target message
The mavlink message FOLLOW_TARGET has additional
fields that are not being parsed here. See
https://mavlink.io/en/messages/common.html#FOLLOW_TARGET
for more details.
2021-04-06 22:11:23 -04:00
Hamish Willee aa94a60043 COM_ARM_WO_GPS - values round the wrong way 2021-04-06 22:10:02 -04:00
obicons a7e920d276 Updated MavlinkReceiver::handle_message_landing_target to warn users when they provide a landing target with an unsupported coordinate frame.
Updated Simulator::handle_message_landing_target to warn users when they provide a landing target that is not relative to a captured image.
2021-04-06 16:02:54 -04:00
Daniel Agar 31b9efdaeb sensors/vehicle_imu: increase threshold for clipping warning 2021-04-06 15:42:26 -04:00
Daniel Agar f33fee99c1 ROMFS: init.d-posix/airframes migrate EKF2_GPS_MASK -> SENS_GPS_MASK 2021-04-06 13:48:40 -04:00
Julian Oes bb0fe9ee61 mavsdk_tests: losen time limit for VTOL mission 2021-04-06 11:35:18 -04:00
Julian Oes 2eaf677de3 mavsdk_tests: correctly locate plan 2021-04-06 11:35:18 -04:00
Julian Oes cd66a79747 mavsdk_tests: move waypoints to vehicle position
This way it shouldn't matter where the test is run.
2021-04-06 11:35:18 -04:00
Julian Oes 9eadabcb02 sitl_tests: update MAVSDK to v0.38.0 2021-04-06 11:35:18 -04:00
Julian Oes d714c2faec mavsdk_tests: add VTOL mission tests
This adds VTOL mission tests to the CI integration tests.
This depends on MAVSDK v0.38.0.
2021-04-06 11:35:18 -04:00
Julian Oes 1e88939605 mavsdk_tests: report speed factor every second
This helps in debugging slow CI.
2021-04-06 11:35:18 -04:00
Daniel Agar e05a4badf8 ROMFS: rcS start uavcan earlier
- starting this earlier is a minor improvement for things like lights and buzzers on UAVCAN or parameter sync over mavlink
2021-04-06 09:48:11 -04:00
Daniel Agar 4189eb11f5 simulator: GPS populate all sensor_gps fields (alt_ellipsoid, etc) 2021-04-06 09:44:18 -04:00
Daniel Agar 015849b402 mathlib: LowPassFilter2p and NotchFilter add magnitude response getter 2021-04-05 22:47:30 -04:00
Daniel Agar f9460107d0 cleanup PWM param naming inconsistencies 2021-04-05 22:41:06 -04:00
PX4 BuildBot f741606c60 Update submodule sitl_gazebo to latest Tue Apr 6 00:39:03 UTC 2021
- sitl_gazebo in PX4/Firmware (2a0a747598): https://github.com/PX4/PX4-SITL_gazebo/commit/e703e2726a4cd82cf3c57614e9c33d6354310885
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/5761bd66cd36ded2d0dccf8127e30a1522fe1ac6
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/e703e2726a4cd82cf3c57614e9c33d6354310885...5761bd66cd36ded2d0dccf8127e30a1522fe1ac6

    5761bd6 2021-04-05 Jaeyoung-Lim - Switch tailsitter sdf version to 1.6
2021-04-05 22:28:47 -04:00
Daniel Agar 436a6fce38 Update submodule mavlink v2.0 to latest Tue Apr 6 00:39:07 UTC 2021 2021-04-05 22:28:10 -04:00
PX4 BuildBot 997abf382d Update submodule public_regulated_data_types to latest Tue Apr 6 00:39:10 UTC 2021
- public_regulated_data_types in PX4/Firmware (5e242d366f2e266e8226f7baa33e5973783e2045): https://github/commit/7f5489e6e916cc8b13db0582dcf9930e225594b9
    - public_regulated_data_types current upstream: https://github/commit/53a7dbbf85554e11517c13ad91b9efb871599ad1
    - Changes: https://github/compare/7f5489e6e916cc8b13db0582dcf9930e225594b9...53a7dbbf85554e11517c13ad91b9efb871599ad1

    53a7dbb 2021-03-31 Pavel Kirienko - Change wording in uavcan.pnp.NodeIDAllocationData to reflect the less static nature of UAVCAN v1 (#111)
c3aa82f 2021-03-23 Pavel Kirienko - Update Readiness as discussed at the DS-015 call
fcc1062 2021-03-16 Pavel Kirienko - Doc amendment for uavcan.register.Access: mapping between registers and environment variables (#109)
342f358 2021-02-22 Pavel Kirienko - Remove misleading comment in battery.Status.0.2
1baa9cb 2021-02-22 Pavel Kirienko - Add link to Nunaweb and synchronize the description with the front page (#108)
2021-04-05 21:23:06 -04:00
Benjamin Linne 2a0a747598 boards: modalai-fc-v1 add rtps.cmake add to ci 2021-04-05 17:01:35 -04:00
Benjamin Linne a1bc520df8 boards: modalai-fc-v1 add rtps.cmake add to ci 2021-04-05 17:01:35 -04:00
Benjamin Linne 3261118538 boards: modalai-fc-v1 add rtps.cmake 2021-04-05 17:01:35 -04:00
Daniel Agar 54438140e1 ROMFS: posix airframes update to new parameter defaults mechanism (AUTOCNF replacement) 2021-04-05 15:29:34 -04:00
Daniel Agar 565c644b2e boards: CUAV keep Nora and X7pro in sync 2021-04-05 12:54:41 -04:00
Daniel Agar 695adbc037 Jenkins: hardware skip AUTOCNF, don't force px4io update, show configured parameters 2021-04-05 12:30:55 -04:00
Daniel Agar 357b322eb5 ROMFS: tune_control stop if px4io update fails 2021-04-05 11:49:55 -04:00
PX4 BuildBot 74e848d57e Update submodule public_regulated_data_types to latest Mon Apr 5 12:40:16 UTC 2021
- public_regulated_data_types in PX4/Firmware (1557f3a23461a144dd75edae4595665e5684597d): https://github.com/UAVCAN/public_regulated_data_types/commit/7f5489e6e916cc8b13db0582dcf9930e225594b9
    - public_regulated_data_types current upstream: https://github.com/UAVCAN/public_regulated_data_types/commit/53a7dbbf85554e11517c13ad91b9efb871599ad1
    - Changes: https://github.com/UAVCAN/public_regulated_data_types/compare/7f5489e6e916cc8b13db0582dcf9930e225594b9...53a7dbbf85554e11517c13ad91b9efb871599ad1

    53a7dbb 2021-03-31 Pavel Kirienko - Change wording in uavcan.pnp.NodeIDAllocationData to reflect the less static nature of UAVCAN v1 (#111)
c3aa82f 2021-03-23 Pavel Kirienko - Update Readiness as discussed at the DS-015 call
fcc1062 2021-03-16 Pavel Kirienko - Doc amendment for uavcan.register.Access: mapping between registers and environment variables (#109)
342f358 2021-02-22 Pavel Kirienko - Remove misleading comment in battery.Status.0.2
1baa9cb 2021-02-22 Pavel Kirienko - Add link to Nunaweb and synchronize the description with the front page (#108)
2021-04-05 11:26:01 -04:00
Daniel Agar e8d98c1f8a uavcan: skip beep if CBRK_BUZZER circuit breaker set 2021-04-05 11:25:37 -04:00
Daniel Agar 8e8826c516 Makefile: uorb_graphs exclude src/lib from graph_full 2021-04-05 11:03:43 -04:00
Daniel Agar 186e987efb Jenkins: fetch all tags before generating Airframe & Parameter documentation (master only) 2021-04-05 09:51:18 -04:00
Daniel Agar 2e390009f0 Jenkins: fetch all tags before make documentation (master only) 2021-04-05 09:24:21 -04:00
Julian Oes 8720655683 sitl_gazebo: update submodule
This fixes the airspeed sensor orientation for tailsitter.
2021-04-05 14:14:31 +02:00
Silvan Fuhrer 8400f2c9bc FW attitude controller: add protection against division by zero in airspeed scaling
Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-04-04 21:22:28 -04:00
Beat Küng 436258c1c5 config: cleanup ethernet configuration 2021-04-04 21:20:36 -04:00
Daniel Agar ad934b4911 icm20948 i2c passthrough driver for ak09916 magnetometer (Here+ GPS/compass)
- include icm20948 on most boards by default
 - create more test variants for default boards near flash limit (cuav_nora_test, cuav_x7pro_test, holybro_durandal-v1_test)
2021-04-04 21:18:16 -04:00
Daniel Agar c6a0161047 commander: COM_PREARM_MODE disable by default 2021-04-03 20:15:05 +02:00
Daniel Agar bbf27d6960 boards: mro pixracerpro Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
Daniel Agar 43da43ddc6 boards: cubepilot cubeorange Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
Daniel Agar fffa10ade4 boards: px4_fmu-v6u sync with other stm32h7 boards 2021-04-03 14:13:23 -04:00
Daniel Agar 825d81dd57 boards: px4_fmu-v6x sync with other stm32h7 boards 2021-04-03 14:13:23 -04:00
David Sidrane dcfa3c97ba px4 fmu-v6x:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane 38485a5d41 px4 fmu-v6u:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane 961bac759a mro pixracerpro:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane 2f9a57c604 mro ctrl-zero-h7:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane 5c7a9204a2 mro ctrl-zero-h7-oem:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane f63f1f3969 holybro durandal-v1:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane 55ed76522e cuav x7pro:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane df201342bb cuav nora:Add remaining SRAM4 & DTCM to heap 2021-04-03 14:13:23 -04:00
David Sidrane 5e73fe588e NuttX with SRAM4-heap-bp 2021-04-03 14:13:23 -04:00
Jaeyoung-Lim 01083cecfc Enable adis16448 with parameter
This commit adds enabling adis16448 with a parameter
2021-04-03 13:58:25 -04:00
Nidhish Raj 01d8c3da3d vtol_att_control: occasional tailsitter forward transition failure issue solved
Tailsitter VTOLs very occasionally gets stuck with zero roll and pitch angle in multicopter mode after
a forward transition command is issued.
This very rare behavior is triggered by the following events:
1> a forward transition is triggered either in auto or manual mode.
2> in the vtol_att_control main loop, if multicopter and fixed wing attitude setpoints are not updated, transition state is not updated
3> the commander changes the vehicle status to transition mode.
4> multicopter pos controller initiated  Transition flight task. This results in zero roll and pitch setpoint due to zero acceleration setpoint
5> now vtol_att_control executes and updates the transition state. Specifically, _q_trans_start and _q_trans_sp are set with zero roll and pitch sp
6> tilt is evaluated to be NaN, despite _q_trans_sp being normalized. This happens for 25% of all yaw angles when using float datatype. This can be
   verified using the matrix library
7> once tilt is evaluated to be NaN, _q_trans_sp is never updated again and is stuck in this state for ever.

This has been fixed by constraining the cos(tilt) within +1 to -1 range
Further, _q_trans_start and _q_trans_sp are immedietly initialized after a transition event is triggered.
2021-04-03 19:19:48 +02:00
Daniel Agar b30f3917d3 sensors/vehicle_imu: periodically send mavlink critical message if clipping 2021-04-03 10:32:16 -04:00
Daniel Agar 588883f663 uavcan: quiet server output
- remove verbose UAVCAN command bridge prefix
 - disable many normal PX4_INFO messages entirely (kept as PX4_DEBUG)
 - properly exit when arming (silently)
2021-04-03 10:07:50 -04:00
David Sidrane 2fcdadfbd1 holybro_durandal-v1:Enable UAVCAN 2021-04-03 12:47:20 +02:00
David Sidrane 003ef59019 px4_fmu-v6x:Enable UAVCAN 2021-04-03 12:47:20 +02:00
Lorenz Meier c96ca0434e Update README.md
Sort autopilot generations according to relevance to potential users (latest first)
2021-04-03 12:21:02 +02:00
PX4 BuildBot 9a02141d0d Update submodule ecl to latest Fri Apr 2 12:39:10 UTC 2021
- ecl in PX4/Firmware (744cd1182e183b62a0ab4b2f3e4e3c4aa6f5c15f): https://github.com/PX4/PX4-ECL/commit/6f2dec726adeedcb53aad9a77a8fcdfc8f7b3054
    - ecl current upstream: https://github.com/PX4/PX4-ECL/commit/5d34d7a24ef72b826c320a3259ee0ec68b1936df
    - Changes: https://github.com/PX4/PX4-ECL/compare/6f2dec726adeedcb53aad9a77a8fcdfc8f7b3054...5d34d7a24ef72b826c320a3259ee0ec68b1936df

    5d34d7a 2021-03-31 Eike - Height source vision: Fallback to rangefinder if available (#994)
da06f25 2021-03-28 PX4BuildBot - [AUTO COMMIT] update change indication
85fcf93 2021-03-28 PX4 BuildBot - Update geo_lookup WMM  to latest Sun Mar 28 11:48:06 UTC 2021
2021-04-02 11:46:19 -04:00
Lorenz Meier 1ec8ce58c7 Commander: Increase auto-disarm timeout to 25 seconds after arming 2021-04-02 09:37:40 +02:00
Daniel Agar 278633c980 boards: cuav x7pro include correct adis IMU 2021-04-01 17:13:54 -04:00
Daniel Agar c017f76a36 github actions add all NuttX builds 2021-04-01 10:21:14 -04:00
Lorenz Meier 82f319a84a Commander: Add support for pairing via commandline 2021-04-01 09:56:09 -04:00
斯东Stone e789124bd9 Remove duplicated line in 50003_aion_robotics_r1_rover 2021-04-01 09:36:20 -04:00
Beat Küng 369d375417 holybro_can-gps-v1_debug: disable ekf & listener due to flash overflow 2021-04-01 08:35:36 -04:00
Daniel Agar 9171a84324 IMU_DGYRO_CUTOFF increase default 10 -> 20 Hz 2021-04-01 08:30:09 -04:00
Jaeyoung-Lim 19c4fdd7c5 Add support for 3D body thrust setpoint for offboard attitude control
This adds support for filling up the 3D thrust setpoint using SET_ATTITUDE_TARGET message
Update mavlink submodule
2021-04-01 13:58:04 +02:00
Nico van Duijn 8d3335906a v5x: use low bandwidth mavlink mode
This changes the default mavlink message set from onboard to
onboard_low_bandwidth, which drastically reduces the bandwidth required to get a
usable connection.
2021-04-01 07:28:43 +02:00
Daniel Agar 846695f986 ekf2: replace vehicle_imu lost error message with perf count 2021-03-31 22:07:32 -04:00
Daniel Agar 00f86eb895 drivers/uavcan: silence redundant exit message 2021-03-31 22:01:35 -04:00
Chris Lovett 292a66ce41 Add support for simulators running on a different host than the PX4 instance 2021-03-31 20:56:38 -04:00
RomanBapst b66ae5f2d4 tecs: use raw inertial acceleration for true airspeed complementary filter
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-03-31 20:12:40 -04:00
Beat Küng 9dd6bef7f9 autostart scripts: remove SYS_PARAM_VER
With the airframe defaults there's no use for that anymore
2021-03-31 20:12:05 -04:00
Beat Küng aec63eacbe mavlink_receiver: avoid spamming 'unsupported component id' 2021-03-31 20:10:15 -04:00
Matthias Grob 5f4802a239 SlewRate: add back dummy file for mac build 2021-03-31 15:50:16 +02:00
Matthias Grob 8fec39ad39 MulticopterPositionControl: readd takeoff ramp fix
added in #14821 and accidentally removed in #14665
2021-03-31 15:21:42 +02:00
Bastian Jäger 752bc9ebce startup scripts: fix rc.mavlink_override 2021-03-31 14:05:24 +02:00
Julian Kent 5c5ec1a0ea Receive telemetry_status, send vehicle_trajectory_waypoint_desired 2021-03-31 13:26:00 +02:00
Julian Kent b5a64f957e Update RTPS messages to match what is needed for PX4/Avoidance 2021-03-31 13:26:00 +02:00
Julian Kent c1cb964c2a RTPS timesync don't use MONOTONIC_RAW 2021-03-31 13:25:27 +02:00
Julian Kent 1011382098 Clamp RTPS -> uorb timestamps to system time 2021-03-31 13:25:27 +02:00
TSC21 eca4d90a91 init.d-posix: adjust COM_OBC_LOSS_T when using PX4_SIM_SPEED_FACTOR 2021-03-31 13:25:01 +02:00
TSC21 7abce87ae4 commander: add COM_OBC_LOSS_T for setting onboard computer loss time-out 2021-03-31 13:25:01 +02:00
Beat Küng e9370c658a nuttx cmake: include upload.cmake if it exists (same as on posix) 2021-03-31 11:25:11 +02:00
RomanBapst 5b08362ba3 position_controller_status message: added comments regarding NAN
Signed-off-by: RomanBapst <bapstroman@gmail.com>
2021-03-31 11:23:33 +02:00
Matthias Grob c06b5a1de9 MulticopterPositionControl: improve tilt limit readability and scope
according to @bresch's review comment.
2021-03-31 10:03:08 +02:00
Matthias Grob 94469d84ae MulticopterPositionControl: fix twitch on tilt limit relaxation 2021-03-31 10:03:08 +02:00
Matthias Grob 34a5948692 Adapt SlewRate includes to convention 2021-03-31 10:03:08 +02:00
Matthias Grob c16b937221 Takeoff: switch internally to use a ramp progress 2021-03-31 10:03:08 +02:00
Matthias Grob 8ca76feaba Takeoff: remove updateRamp() early return 2021-03-31 10:03:08 +02:00
Matthias Grob b7600f4e4d Commander: check_posvel_validity use return value 2021-03-30 22:33:01 -04:00
Matthias Grob 29e1e0905c Commander: switch main_state functions to pass by reference 2021-03-30 22:33:01 -04:00
Matthias Grob 531de5c588 Commander: switch all state_machine_helper functions to pass by reference 2021-03-30 22:33:01 -04:00
Matthias Grob d97fba67e5 Commander: switch helper functions to pass by reference 2021-03-30 22:33:01 -04:00
Daniel Agar 0fa91f7cb0 commander: centralize main_state strings and simplify main state change attempts
* commander: centralize main_state strings and simplify main state change attempts
2021-03-30 17:56:28 +02:00
Daniel Agar 18be1bacdc state_machine_helper: automatically initialize to assist mode if using mavlink manual control 2021-03-30 17:56:28 +02:00
Claudio Micheli b001865e5c Commander: clean up logic for flight mode transitions and add joystick mode initialization
Signed-off-by: Claudio Micheli <claudio@auterion.com>
2021-03-30 17:56:28 +02:00
Daniel Agar 9a35756cd1 ekf2: enable range aid by default
- this is to help more users get the benefit (by default) and perhaps circumvent the common mistake of setting EKF2_HGT_MODE to range sensor
 - this should be safe to enable as the range aid defaults are fairly conservative (max horizontal velocity 1 m/s, and range aid gate 1 SD)
2021-03-30 10:23:18 -04:00
Daniel Agar 6874e9fba0 boards: NuttX disable all NSH memory debug commands (mb, mh, mw) by default
- closes https://github.com/PX4/PX4-Autopilot/issues/17062
2021-03-30 09:23:43 -04:00
Michael Schaeuble f9af1bbe2d PreFlightCheck: Check if SD card is present only once and store the result
statfs accesses the file-system and can be blocking for an extended period. Since the SD card check is part of the preflight checks in the main thread of commander, it could block its execution and cause various issues. The SD card is only mounted in rcS during boot so the state will not change after the first check.
2021-03-30 08:20:49 +02:00
Daniel Agar c2350c06c1 commander: ManualControl avoid unnecessary copy 2021-03-30 08:19:07 +02:00
Beat Küng 416a663d11 params: add build dependency for *parameters.c
Makes sure changes to these files trigger metadata rebuild
2021-03-30 08:18:49 +02:00
Beat Küng 42a865f349 param json: ensure category is set to Standard if not set
For xml this was previously done on the QGC side.
2021-03-30 08:18:49 +02:00
Beat Küng 2d2799b739 IMU_GYRO_CUTOFF: add 800 (used by SITL) 2021-03-30 08:18:49 +02:00
Beat Küng 346f269d8f IMU_INTEG_RATE: add 250 (used by SITL) 2021-03-30 08:18:49 +02:00
Beat Küng 6a7688cbca component_information: rework to reflect mavlink message changes 2021-03-30 08:18:49 +02:00
Daniel Williams 0f29b87101 [uorb-graph][squash][refactor] Rework of uorb-graph script -- Greatly expands handled test cases
- Source processing now happens on original source files:
    - processing to line-by-line
    - required overhaul of regex match patterns + processing
    - pros:
        - enable tracing of ambiguous parsing sites -- reports (module, file, line-number, line-contents)
        - simplifies code
        - reduces computational complexity
    - cons:
        - certain declarations are harder to parse: multiline declarations
- refactors:
    - added specific subclasses for each: Publications, Subscriptions, Ambiguities
    - added a "Scope" class to represent either a module ('ModuleScope') or a library ('LibraryScope')
- regexes:
    - added cases for C++-style classes
    - expanded C++-style regex cases to accommodate templates
    - `ORB_ID::` is accepted wherever `ORB_ID(` is accepted
    - adds 'orb_copy' regex to the subscription cases
    - emit ambiguous-line warning for declarations with `ORB_ID` on the same line
    - emit ambiguous-line warning for `ORB_ID` with a declaration on the same line
- changed 'module whitelist' to 'scope-whitelist'
    - whitelist may now apply to libraries
    - libraries are optionally merged with their depending modules (but not by default)
    - may be merged with their depending modules with the `--merge-depends` cli flag
    - eliminates some redundant 'special-case' handling code
- debug output
    - raises exception and aborts if a topic is found outside of a scope
    - debug output is now printed & filtered with the python 'logging' standard module
    - alphabetizes topic output in debug logging
    - fixes debug output if package dependencies are missing
    - now warns on ambiguous matches
    - prints a list of ambiguous source sites (aka warnings) on completion
    - (still) emits a warning if we find ORB_ID outside of a scope
    - adds warnings if any of the source paths are invalid
    - do not emit debug output for modules outside of the module/scope whitelist
- Expand script's CLI parameters
    - added 'none' output options: undocumented debugging option to silence file output while debugging
    - added the `--merge-depends` cli flag -- merges output of modules & their dependee libraries
2021-03-29 09:36:34 +02:00
Daniel Agar 3d667b1675 delete unused drivers/lights/blinkm 2021-03-28 19:21:29 -04:00
Daniel Agar 631d1647d3 boards: minimize unnecessary differences in default variants 2021-03-28 14:46:47 -04:00
Daniel Agar fcc4153c26 drivers/gps: explicitly link libm
- needed on stripped down builds
2021-03-28 12:39:22 -04:00
Daniel Agar 7314b69adc cmake: fix jlink_flash_uavcan_bin helper 2021-03-28 12:39:22 -04:00
Daniel Agar f5c7f89a76 vscode add holybro can-gps-v1 variants 2021-03-28 12:39:22 -04:00
Daniel Agar e58af90bac boards: holybro can-gps-v1 create separate default and debug variants 2021-03-28 12:39:22 -04:00
Daniel Agar 86b831b019 Update submodule GPSDrivers to latest Sun Mar 28 12:39:06 UTC 2021 (#17253)
- devices in PX4/Firmware (22b74424d42fa89ebc4df84422ca7ea633843878): https://github.com/PX4/PX4-GPSDrivers/commit/e7f0b23f47d65490b72e9bacaff191bda2d99496
    - devices current upstream: https://github.com/PX4/PX4-GPSDrivers/commit/f2eb62c2c78a2ec47bccfe993ff59acc94155e7e
    - Changes: https://github.com/PX4/PX4-GPSDrivers/compare/e7f0b23f47d65490b72e9bacaff191bda2d99496...f2eb62c2c78a2ec47bccfe993ff59acc94155e7e

    f2eb62c 2021-02-21 chenhui.yu - sbf: fix #430 longitude judgement bug

Co-authored-by: PX4 BuildBot <bot@px4.io>
2021-03-28 11:13:58 -04:00
Daniel Agar f65781025e boards: mRo x21 enable mpu9250 mag (only internal)
- fixes #17244
2021-03-26 21:02:30 -04:00
Daniel Agar b1c913244f boards: CUAV X7pro restore lights 2021-03-26 18:25:39 -04:00
Daniel Agar e77bffe582 boards: STM32H7 remove CONFIG_MM_REGIONS=3 2021-03-26 17:40:44 -04:00
Daniel Agar a260ddd8ff posix-configs: rpi multi-EKF defaults
- the ekf2 frontend typically runs in the background for up to 30 seconds waiting for all instances to appear, but this isn't supported by the legacy posix launcher
2021-03-26 14:24:34 -04:00
Daniel Agar a9b47558b1 magnetometer/lsm9ds1_mag: fix register typo and refactor to new style with state machine and configuration monitoring 2021-03-26 14:23:25 -04:00
bresch a124426541 ecl: apply same GNSS speed accuracy for EKF2 and yaw estimator 2021-03-25 12:57:36 -04:00
bresch ace6f81c93 commander: report estimator mag fault detection to ground station 2021-03-25 12:57:36 -04:00
bresch 2c5342acd4 commander: increase nav_test_failed hysteresis time
This is to avoid race condition with the yaw emergency estimator having
the same trigger delay of 1 second. Commander will now give more time to
EKF2 to reset itself before switching to altitude mode.
2021-03-25 12:57:36 -04:00
Serhat Aksun beadae6dfc process_sensor_caldata.py: Fix 2nd barometer plot
fixed the figure numbers to avoid plot conflicts
2021-03-25 09:53:15 -04:00
Daniel Agar 5a1eb3f9ef Update submodule GPSDrivers to latest Thu Mar 25 00:41:54 UTC 2021 2021-03-25 00:25:29 -04:00
PX4 BuildBot 98e1e25d93 Update submodule sitl_gazebo to latest Thu Mar 25 00:41:48 UTC 2021
- sitl_gazebo in PX4/Firmware (7f2566dd8a): https://github.com/PX4/PX4-SITL_gazebo/commit/1f339cdf5c5da27097e58ec2beb2793bf6057c7d
    - sitl_gazebo current upstream: https://github.com/PX4/PX4-SITL_gazebo/commit/3e5fed04d8e574b10e17e446d2938346bc6152ca
    - Changes: https://github.com/PX4/PX4-SITL_gazebo/compare/1f339cdf5c5da27097e58ec2beb2793bf6057c7d...3e5fed04d8e574b10e17e446d2938346bc6152ca

    3e5fed0 2021-03-22 JaeyoungLim - Multiple airspeed sensors in SITL with multi HIL_SENSOR instances (#731)
2021-03-24 23:54:49 -04:00
David Sidrane 7f2566dd8a NuttX STM32H7 16 bit SPI fixes + ADIS16470 updates for proper 16 bit mode in burst 2021-03-24 19:29:40 -04:00
Daniel Agar 92910de81d gyro_fft: silence initial sensor selection attempt
- early in startup the selected gyro may not be published yet
2021-03-24 18:58:18 -04:00
David Sidrane d9d832c568 NuttX with BACKPORT libc/stdio: Preallocate the stdin, stdout and stderr 2021-03-24 18:27:30 -04:00
Daniel Agar 2d6deb4f1c drivers/rc_input: don't accept RX_PAIR cmd when armed 2021-03-24 15:13:38 -04:00
Lorenz Meier 435ef38eda RC Input: Reset lock state when switching to a new protocol 2021-03-24 15:13:38 -04:00
Daniel Agar 3502ba53ba Update submodule mavlink v2.0 to latest Wed Mar 24 12:38:18 UTC 2021 2021-03-24 11:25:00 -04:00
584 changed files with 10001 additions and 6423 deletions
+6 -9
View File
@@ -9,10 +9,10 @@ pipeline {
script {
def build_nodes = [:]
def docker_images = [
armhf: "px4io/px4-dev-armhf:2021-02-04",
arm64: "px4io/px4-dev-aarch64:2021-02-04",
base: "px4io/px4-dev-base-bionic:2021-02-04",
nuttx: "px4io/px4-dev-nuttx-focal:2021-02-04",
armhf: "px4io/px4-dev-armhf:2021-04-29",
arm64: "px4io/px4-dev-aarch64:2021-04-29",
base: "px4io/px4-dev-base-bionic:2021-04-29",
nuttx: "px4io/px4-dev-nuttx-focal:2021-04-29",
snapdragon: "lorenzmeier/px4-dev-snapdragon:2020-04-01"
]
@@ -46,9 +46,7 @@ pipeline {
"cuav_can-gps-v1_default",
"cuav_nora_default",
"cuav_x7pro_default",
"cubepilot_cubeorange_console",
"cubepilot_cubeorange_default",
"cubepilot_cubeyellow_console",
"cubepilot_cubeyellow_default",
"holybro_can-gps-v1_canbootloader",
"holybro_can-gps-v1_default",
@@ -56,6 +54,7 @@ pipeline {
"holybro_kakutef7_default",
"holybro_pix32v5_default",
"modalai_fc-v1_default",
"modalai_fc-v1_rtps",
"mro_ctrl-zero-f7_default",
"mro_ctrl-zero-f7-oem_default",
"mro_ctrl-zero-h7_default",
@@ -77,7 +76,6 @@ pipeline {
"px4_fmu-v2_fixedwing",
"px4_fmu-v2_multicopter",
"px4_fmu-v2_rover",
"px4_fmu-v2_test",
"px4_fmu-v3_default",
"px4_fmu-v4_cannode",
"px4_fmu-v4_default",
@@ -96,7 +94,6 @@ pipeline {
"px4_fmu-v5x_base_phy_DP83848C",
"px4_fmu-v5x_default",
"px4_fmu-v6u_default",
"px4_fmu-v6u_test",
"px4_fmu-v6x_default",
"px4_io-v2_default",
"spracing_h7extreme_default",
@@ -133,7 +130,7 @@ pipeline {
// TODO: actually upload artifacts to S3
// stage('S3 Upload') {
// agent {
// docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
// docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
// }
// options {
// skipDefaultCheckout()
+130 -177
View File
@@ -7,12 +7,12 @@ pipeline {
parallel {
stage("cubepilot_cubeorange_console") {
stage("cubepilot_cubeorange_test") {
stages {
stage("build cubepilot_cubeorange_console") {
stage("build cubepilot_cubeorange_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -22,10 +22,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make cubepilot_cubeorange_console'
sh 'make cubepilot_cubeorange_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cubepilot_cubeorange_console'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cubepilot_cubeorange_test'
}
post {
always {
@@ -42,9 +42,9 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'cubepilot_cubeorange_console'
unstash 'cubepilot_cubeorange_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_console/cubepilot_cubeorange_console.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cubepilot_cubeorange_test/cubepilot_cubeorange_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
@@ -52,12 +52,12 @@ pipeline {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 2000"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/cubepilot_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -84,12 +84,12 @@ pipeline {
}
}
stage("cuav_x7pro_default") {
stage("cuav_x7pro_test") {
stages {
stage("build cuav_x7pro_default") {
stage("build cuav_x7pro_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -99,10 +99,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make cuav_x7pro_default'
sh 'make cuav_x7pro_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cuav_x7pro_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'cuav_x7pro_test'
}
post {
always {
@@ -119,21 +119,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'cuav_x7pro_default'
unstash 'cuav_x7pro_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_default/cuav_x7pro_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/cuav_x7pro_test/cuav_x7pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 2000"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -160,64 +160,12 @@ pipeline {
}
}
// stage("px4_fmu-v2_test") {
// stages {
// stage("build px4_fmu-v2_test") {
// agent {
// docker {
// image 'px4io/px4-dev-nuttx-focal:2020-09-14'
// args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
// }
// }
// steps {
// sh 'export'
// sh 'make distclean'
// sh 'ccache -s'
// sh 'git fetch --tags'
// sh 'make px4_fmu-v2_test'
// sh 'make sizes'
// sh 'ccache -s'
// stash includes: 'build/px4_fmu-v2_test/px4_fmu-v2_test.elf', name: 'px4_fmu-v2_test'
// }
// post {
// always {
// sh 'make distclean'
// }
// }
// } // stage build
// stage("test") {
// agent {
// label 'px4_fmu-v2'
// }
// stages {
// stage("flash") {
// steps {
// sh 'export'
// sh 'find /dev/serial'
// unstash 'px4_fmu-v2_test'
// // flash board and watch bootup
// sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v2_test/px4_fmu-v2_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
// }
// }
// stage("reset") {
// steps {
// cleanupFTDI();
// }
// }
// }
// options {
// timeout(time: 90, unit: 'MINUTES')
// }
// }
// }
// }
stage("px4_fmu-v3_default") {
stage("px4_fmu-v3_test") {
stages {
stage("build px4_fmu-v3_default") {
stage("build px4_fmu-v3_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -227,10 +175,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make px4_fmu-v3_default'
sh 'make px4_fmu-v3_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v3_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v3_test'
}
post {
always {
@@ -247,21 +195,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v3_default'
unstash 'px4_fmu-v3_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_default/px4_fmu-v3_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v3_test/px4_fmu-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -288,12 +236,12 @@ pipeline {
}
}
stage("px4_fmu-v4_default") {
stage("px4_fmu-v4_test") {
stages {
stage("build px4_fmu-v4_default") {
stage("build px4_fmu-v4_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -303,10 +251,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make px4_fmu-v4_default'
sh 'make px4_fmu-v4_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4_test'
}
post {
always {
@@ -323,20 +271,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v4_default'
unstash 'px4_fmu-v4_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_default/px4_fmu-v4_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4_test/px4_fmu-v4_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -363,12 +312,12 @@ pipeline {
}
}
stage("px4_fmu-v4pro_default") {
stage("px4_fmu-v4pro_test") {
stages {
stage("build px4_fmu-v4pro_default") {
stage("build px4_fmu-v4pro_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -378,10 +327,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make px4_fmu-v4pro_default'
sh 'make px4_fmu-v4pro_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4pro_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v4pro_test'
}
post {
always {
@@ -398,21 +347,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v4pro_default'
unstash 'px4_fmu-v4pro_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_default/px4_fmu-v4pro_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v4pro_test/px4_fmu-v4pro_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 13000"' // generic vtol standard
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -439,12 +388,12 @@ pipeline {
}
}
stage("px4_fmu-v5_default") {
stage("px4_fmu-v5_test") {
stages {
stage("build px4_fmu-v5_default") {
stage("build px4_fmu-v5_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -454,10 +403,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make px4_fmu-v5_default'
sh 'make px4_fmu-v5_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'px4_fmu-v5_test'
}
post {
always {
@@ -474,21 +423,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'px4_fmu-v5_default'
unstash 'px4_fmu-v5_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_default/px4_fmu-v5_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/px4_fmu-v5_test/px4_fmu-v5_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -520,7 +469,7 @@ pipeline {
stage("build px4_fmu-v5_debug") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -561,13 +510,14 @@ pipeline {
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -599,7 +549,7 @@ pipeline {
stage("build px4_fmu-v5_optimized") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -637,12 +587,13 @@ pipeline {
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -674,7 +625,7 @@ pipeline {
stage("build px4_fmu-v5_stackcheck") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -715,13 +666,14 @@ pipeline {
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 250"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set MAV_0_CONFIG 0"' // limit cpu usage
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -748,12 +700,12 @@ pipeline {
}
}
stage("modalai_fc-v1_default") {
stage("modalai_fc-v1_test") {
stages {
stage("build modalai_fc-v1_default") {
stage("build modalai_fc-v1_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -763,10 +715,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make modalai_fc-v1_default'
sh 'make modalai_fc-v1_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'modalai_fc-v1_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'modalai_fc-v1_test'
}
post {
always {
@@ -783,20 +735,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'modalai_fc-v1_default'
unstash 'modalai_fc-v1_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_default/modalai_fc-v1_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/modalai_fc-v1_test/modalai_fc-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic vtol standardulticopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -823,12 +776,12 @@ pipeline {
}
}
stage("holybro_durandal-v1_default") {
stage("holybro_durandal-v1_test") {
stages {
stage("build holybro_durandal-v1_default") {
stage("build holybro_durandal-v1_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -838,10 +791,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make holybro_durandal-v1_default'
sh 'make holybro_durandal-v1_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'holybro_durandal-v1_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'holybro_durandal-v1_test'
}
post {
always {
@@ -858,24 +811,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'holybro_durandal-v1_default'
unstash 'holybro_durandal-v1_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/holybro_durandal-v1_default/holybro_durandal-v1_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/holybro_durandal-v1_test/holybro_durandal-v1_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set DSHOT_CONFIG 600"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set IMU_GYRO_RATEMAX 4000"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_USE_IO 0"' // for dshot
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "px4io forceupdate 14662 /etc/extras/px4_io-v2_default.bin" || true' // force px4io update
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -903,12 +853,12 @@ pipeline {
}
}
stage("nxp_fmuk66-v3_default") {
stage("nxp_fmuk66-v3_test") {
stages {
stage("build nxp_fmuk66-v3_default") {
stage("build nxp_fmuk66-v3_test") {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2020-09-14'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
@@ -918,10 +868,10 @@ pipeline {
sh 'make distclean'
sh 'ccache -s'
sh 'git fetch --tags'
sh 'make nxp_fmuk66-v3_default'
sh 'make nxp_fmuk66-v3_test'
sh 'make sizes'
sh 'ccache -s'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_default'
stash includes: 'build/*/*.elf, platforms/nuttx/Debug/upload_jlink_gdb.sh, Tools/HIL/*.py', name: 'nxp_fmuk66-v3_test'
}
post {
always {
@@ -938,20 +888,21 @@ pipeline {
steps {
sh 'export'
sh 'find /dev/serial'
unstash 'nxp_fmuk66-v3_default'
unstash 'nxp_fmuk66-v3_test'
// flash board and watch bootup
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_default/nxp_fmuk66-v3_default.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
sh './platforms/nuttx/Debug/upload_jlink_gdb.sh build/nxp_fmuk66-v3_test/nxp_fmuk66-v3_test.elf && ./Tools/HIL/monitor_firmware_upload.py --device `find /dev/serial -name *usb-*` --baudrate 57600'
}
}
stage("configure") {
steps {
// configure
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOCONFIG 2"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic multicopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set CBRK_BUZZER 782097"' // disable buzzer
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_AUTOSTART 4001"' // generic quadcopter
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param set SYS_BL_UPDATE 1"' // update bootloader
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param save"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "reboot" || true' // reboot to apply
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "param show"'
}
}
stage("status") {
@@ -1027,6 +978,7 @@ void statusFTDI() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_accel_fifo"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_baro"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_combined"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gps"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_gyro_fifo"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener sensor_mag"'
@@ -1038,6 +990,7 @@ void statusFTDI() {
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_acceleration"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_angular_velocity"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_attitude"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_gps_position"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_imu_status"'
sh './Tools/HIL/run_nsh_cmd.py --device `find /dev/serial -name *usb-*` --cmd "listener vehicle_local_position"'
+1 -1
View File
@@ -2,7 +2,7 @@
// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.0/containers/cpp
{
"name": "px4-dev-nuttx",
"image": "px4io/px4-dev-nuttx-focal:2021-02-04",
"image": "px4io/px4-dev-nuttx-focal:2021-04-29",
"runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ],
+1 -1
View File
@@ -28,7 +28,7 @@ jobs:
"parameters_metadata",
]
container:
image: px4io/px4-dev-nuttx-focal:2021-02-04
image: ghcr.io/px4/px4-dev:2021-05-06
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-clang:2021-02-04
container: px4io/px4-dev-clang:2021-04-29
steps:
- uses: actions/checkout@v1
with:
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-armhf:2021-02-04
container: px4io/px4-dev-armhf:2021-04-29
strategy:
matrix:
config: [
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-aarch64:2021-02-04
container: px4io/px4-dev-aarch64:2021-04-29
strategy:
matrix:
config: [
+16 -8
View File
@@ -4,6 +4,7 @@ on:
push:
branches:
- 'master'
- 'github-actions'
pull_request:
branches:
- '*'
@@ -11,34 +12,39 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-nuttx-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
strategy:
matrix:
config: [
airmind_mindpx-v2_default,
ark_can-flow_canbootloader,
ark_can-flow_debug,
ark_can-flow_default,
av_x-v1_default,
bitcraze_crazyflie21_default,
bitcraze_crazyflie_default,
cuav_can-gps-v1_canbootloader,
cuav_can-gps-v1_debug,
cuav_can-gps-v1_default,
cuav_nora_default,
cuav_x7pro_default,
cubepilot_cubeorange_console,
cubepilot_cubeorange_default,
cubepilot_cubeyellow_console,
cubepilot_cubeorange_test,
cubepilot_cubeyellow_default,
cubepilot_cubeyellow_test,
cubepilot_io-v2_default,
holybro_can-gps-v1_canbootloader,
holybro_can-gps-v1_debug,
holybro_can-gps-v1_default,
holybro_durandal-v1_default,
holybro_kakutef7_default,
holybro_pix32v5_default,
modalai_fc-v1_default,
mro_ctrl-zero-f7_default,
modalai_fc-v1_rtps,
mro_ctrl-zero-f7-oem_default,
mro_ctrl-zero-h7_default,
mro_ctrl-zero-f7_default,
mro_ctrl-zero-h7-oem_default,
mro_ctrl-zero-h7_default,
mro_pixracerpro_default,
mro_x21-777_default,
mro_x21_default,
@@ -49,31 +55,31 @@ jobs:
nxp_fmuk66-v3_rtps,
nxp_fmuk66-v3_socketcan,
nxp_fmurt1062-v1_default,
nxp_ucans32k146_default,
nxp_ucans32k146_canbootloader,
nxp_ucans32k146_default,
omnibus_f4sd_default,
px4_fmu-v2_default,
px4_fmu-v2_fixedwing,
px4_fmu-v2_multicopter,
px4_fmu-v2_rover,
px4_fmu-v2_test,
px4_fmu-v3_default,
px4_fmu-v4_cannode,
px4_fmu-v4_default,
px4_fmu-v4pro_default,
px4_fmu-v5_ctrlalloc,
px4_fmu-v5_debug,
px4_fmu-v5_default,
px4_fmu-v5_fixedwing,
px4_fmu-v5_multicopter,
px4_fmu-v5_optimized,
px4_fmu-v5_rover,
px4_fmu-v5_rtps,
px4_fmu-v5_stackcheck,
px4_fmu-v5_uavcanv0periph,
px4_fmu-v5_uavcanv1,
px4_fmu-v5x_base_phy_DP83848C,
px4_fmu-v5x_default,
px4_fmu-v6u_default,
px4_fmu-v6u_test,
px4_fmu-v6x_default,
px4_io-v2_default,
spracing_h7extreme_default,
@@ -118,6 +124,8 @@ jobs:
run: make ${{matrix.config}} bloaty_symbols || true
- name: make ${{matrix.config}} bloaty_templates
run: make ${{matrix.config}} bloaty_templates || true
- name: make ${{matrix.config}} bloaty_ram
run: make ${{matrix.config}} bloaty_ram || true
- name: make ${{matrix.config}} bloaty_compare_master
run: make ${{matrix.config}} bloaty_compare_master || true
- name: ccache post-run
+1 -1
View File
@@ -11,7 +11,7 @@ on:
jobs:
build:
runs-on: ubuntu-latest
container: px4io/px4-dev-nuttx-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
strategy:
matrix:
config: [
+31
View File
@@ -0,0 +1,31 @@
name: Build and publish Docker image
on:
push:
branches:
- 'master'
- 'github-actions'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64
push: true
tags: |
px4/px4-dev:latest
ghcr.io/px4/px4-dev:latest
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
+1 -1
View File
@@ -23,7 +23,7 @@ jobs:
needs: enumerate_targets
strategy:
matrix: ${{fromJson(needs.enumerate_targets.outputs.matrix)}}
container: px4io/px4-dev-${{ matrix.container }}:2021-02-04
container: px4io/px4-dev-${{ matrix.container }}:2021-04-29
steps:
- uses: actions/checkout@v1
with:
@@ -1,131 +0,0 @@
name: MAVROS Avoidance Tests
on:
push:
branches:
- 'master'
pull_request:
branches:
- '*'
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
config:
- {test_file: "mavros_posix_test_avoidance.test", vehicle: "iris_obs_avoid", mission: "avoidance", build_type: "RelWithDebInfo"}
- {test_file: "mavros_posix_test_safe_landing.test", vehicle: "iris_obs_avoid", mission: "MC_safe_landing", build_type: "RelWithDebInfo"}
container:
image: px4io/px4-dev-ros-melodic:2021-02-04
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
with:
token: ${{ secrets.ACCESS_TOKEN }}
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
shell: cmake -P {0}
run: |
string(TIMESTAMP current_date "%Y-%m-%d-%H;%M;%S" UTC)
message("::set-output name=timestamp::${current_date}")
- name: ccache cache files
uses: actions/cache@v2
with:
path: ~/.ccache
key: sitl_tests-${{matrix.config.build_type}}-ccache-${{steps.ccache_cache_timestamp.outputs.timestamp}}
restore-keys: sitl_tests-${{matrix.config.build_type}}-ccache-
- name: setup ccache
run: |
mkdir -p ~/.ccache
echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf
echo "compression = true" >> ~/.ccache/ccache.conf
echo "compression_level = 5" >> ~/.ccache/ccache.conf
echo "max_size = 100M" >> ~/.ccache/ccache.conf
ccache -s
ccache -z
- name: check environment
run: |
export
ulimit -a
- name: Build PX4 and sitl_gazebo
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
ccache -z
make px4_sitl_default
make px4_sitl_default sitl_gazebo
ccache -s
- name: Core dump settings
run: |
ulimit -c unlimited
echo "`pwd`/%e.core" > /proc/sys/kernel/core_pattern
- name: Run SITL tests
env:
PX4_CMAKE_BUILD_TYPE: ${{matrix.config.build_type}}
run: |
export
./test/rostest_avoidance_run.sh ${{matrix.config.test_file}} mission:=${{matrix.config.mission}} vehicle:=${{matrix.config.vehicle}} || true
- name: Look at core files
if: failure()
run: gdb build/px4_sitl_default/bin/px4 px4.core -ex "thread apply all bt" -ex "quit"
- name: Upload px4 coredump
if: failure()
uses: actions/upload-artifact@v2-preview
with:
name: coredump
path: px4.core
# - name: ecl EKF analysis
# if: always()
# run: ./Tools/ecl_ekf/process_logdata_ekf.py ~/.ros/log/*/*.ulg
- name: Upload logs to flight review
if: always()
run: ./Tools/upload_log.py -q --description "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID}" --feedback "${GITHUB_WORKFLOW} ${GITHUB_RUN_ID} ${GITHUB_REPOSITORY} ${GITHUB_REF}" --source CI ~/.ros/log/*/*.ulg
- name: Upload px4 binary
if: failure()
uses: actions/upload-artifact@v2
with:
name: binary
path: build/px4_sitl_default/bin/px4
- name: Store PX4 log
if: failure()
uses: actions/upload-artifact@v2
with:
name: px4_log
path: ~/.ros/log/*/*.ulg
- name: Store ROS log
if: failure()
uses: actions/upload-artifact@v2
with:
name: ros_log
path: ~/.ros/**/rostest-*.log
# Report test coverage
- name: Upload coverage
if: contains(matrix.config.build_type, 'Coverage')
run: |
git config --global credential.helper "" # disable the keychain credential helper
git config --global --add credential.helper store # enable the local store credential helper
echo "https://x-access-token:${{ secrets.ACCESS_TOKEN }}@github.com" >> ~/.git-credentials # add credential
git config --global url."https://github.com/".insteadof git@github.com: # credentials add credential
mkdir -p coverage
lcov --directory build/px4_sitl_default --base-directory build/px4_sitl_default --gcov-tool gcov --capture -o coverage/lcov.info
- name: Upload coverage information to Codecov
if: contains(matrix.config.build_type, 'Coverage')
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
flags: mavros_avoidance
file: coverage/lcov.info
+1 -1
View File
@@ -25,7 +25,7 @@ jobs:
#- {vehicle: "tiltrotor", mission: "VTOL_mission_1", build_type: "RelWithDebInfo"}
container:
image: px4io/px4-dev-ros-melodic:2021-02-04
image: px4io/px4-dev-ros-melodic:2021-04-29
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
+1 -1
View File
@@ -20,7 +20,7 @@ jobs:
#- {test_file: "mavros_posix_tests_offboard_rpyrt_ctl.test", vehicle: "iris", build_type: "RelWithDebInfo"}
container:
image: px4io/px4-dev-ros-melodic:2021-02-04
image: px4io/px4-dev-ros-melodic:2021-04-29
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
+7 -7
View File
@@ -11,7 +11,7 @@ jobs:
airframe:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
steps:
- uses: actions/checkout@v1
with:
@@ -26,7 +26,7 @@ jobs:
module:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
steps:
- uses: actions/checkout@v1
with:
@@ -41,7 +41,7 @@ jobs:
parameter:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
steps:
- uses: actions/checkout@v1
with:
@@ -65,7 +65,7 @@ jobs:
uorb_graph:
runs-on: ubuntu-latest
container: px4io/px4-dev-nuttx-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
steps:
- uses: actions/checkout@v1
with:
@@ -80,7 +80,7 @@ jobs:
micrortps_agent:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
steps:
- uses: actions/checkout@v1
with:
@@ -94,7 +94,7 @@ jobs:
ROS_msgs:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
steps:
- uses: actions/checkout@v1
with:
@@ -107,7 +107,7 @@ jobs:
ROS2_bridge:
runs-on: ubuntu-latest
container: px4io/px4-dev-base-focal:2021-02-04
container: ghcr.io/px4/px4-dev:2021-05-06
steps:
- uses: actions/checkout@v1
with:
+3 -3
View File
@@ -20,7 +20,7 @@ jobs:
- {latitude: "29.660316", longitude: "-82.316658", altitude: "30", build_type: "RelWithDebInfo", model: "tailsitter" } # Florida
- {latitude: "47.397742", longitude: "8.545594", altitude: "488", build_type: "Coverage", model: "standard_vtol" } # Zurich
container:
image: px4io/px4-dev-simulation-focal:2021-02-04
image: px4io/px4-dev-simulation-focal:2021-04-29
options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
steps:
- uses: actions/checkout@v1
@@ -28,9 +28,9 @@ jobs:
token: ${{ secrets.ACCESS_TOKEN }}
- name: Download MAVSDK
run: wget https://github.com/mavlink/MAVSDK/releases/download/v0.36.0/mavsdk_0.36.0_ubuntu20.04_amd64.deb
run: wget "https://github.com/mavlink/MAVSDK/releases/download/v$(cat test/mavsdk_tests/MAVSDK_VERSION)/mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
- name: Install MAVSDK
run: dpkg -i mavsdk_0.36.0_ubuntu20.04_amd64.deb
run: dpkg -i "mavsdk_$(cat test/mavsdk_tests/MAVSDK_VERSION)_ubuntu20.04_amd64.deb"
- name: Prepare ccache timestamp
id: ccache_cache_timestamp
+7 -3
View File
@@ -33,7 +33,7 @@
[submodule "src/modules/micrortps_bridge/micro-CDR"]
path = src/modules/micrortps_bridge/micro-CDR
url = https://github.com/PX4/Micro-CDR.git
branch = px4
branch = master
[submodule "platforms/nuttx/NuttX/nuttx"]
path = platforms/nuttx/NuttX/nuttx
url = https://github.com/PX4/NuttX.git
@@ -59,7 +59,11 @@
url = https://github.com/UAVCAN/public_regulated_data_types.git
[submodule "src/drivers/uavcannode_gps_demo/public_regulated_data_types"]
path = src/drivers/uavcannode_gps_demo/public_regulated_data_types
url = https://github.com/UAVCAN/public_regulated_data_types
url = https://github.com/UAVCAN/public_regulated_data_types.git
[submodule "src/drivers/uavcannode_gps_demo/libcanard"]
path = src/drivers/uavcannode_gps_demo/libcanard
url = https://github.com/UAVCAN/libcanard
url = https://github.com/UAVCAN/libcanard.git
[submodule "src/drivers/uavcan_v1/legacy_data_types"]
path = src/drivers/uavcan_v1/legacy_data_types
url = https://github.com/px4/public_regulated_data_types/
branch = legacy
+4 -10
View File
@@ -2,18 +2,12 @@
"configurations": [
{
"name": "PX4",
"configurationProvider": "ms-vscode.cmake-tools",
"compileCommands": "${workspaceFolder}/.vscode/compile_commands.json",
"includePath": [
".",
"${workspaceFolder}/platforms/common",
"${workspaceFolder}/platforms/common/include",
"${workspaceFolder}/src",
"${workspaceFolder}/src/include",
"${workspaceFolder}/src/lib",
"${workspaceFolder}/src/lib/matrix",
"${workspaceFolder}/src/modules"
"${workspaceFolder}/**"
],
"defines": [],
"macFrameworkPath": [],
"configurationProvider": "ms-vscode.cmake-tools",
"cppStandard": "c++14",
"cStandard": "c11"
}
+12 -17
View File
@@ -6,16 +6,6 @@ CONFIG:
buildType: RelWithDebInfo
settings:
CONFIG: px4_sitl_default
px4_sitl_asan:
short: px4_sitl (AddressSanitizer)
buildType: AddressSanitizer
settings:
CONFIG: px4_sitl_default
px4_sitl_ubsan:
short: px4_sitl (UndefinedBehaviorSanitizer)
buildType: UndefinedBehaviorSanitizer
settings:
CONFIG: px4_sitl_default
px4_sitl_replay:
short: px4_sitl_replay
buildType: RelWithDebInfo
@@ -106,21 +96,26 @@ CONFIG:
buildType: MinSizeRel
settings:
CONFIG: cuav_x7pro_default
cubepilot_cubeorange_default:
cubepilot_cubeorange_test:
short: cubepilot_cubeorange
buildType: MinSizeRel
settings:
CONFIG: cubepilot_orange_default
cubepilot_cubeyellow_default:
short: cubepilot_cubeyellow
buildType: MinSizeRel
settings:
CONFIG: cubepilot_cubeyellow_default
CONFIG: cubepilot_orange_test
emlid_navio2_default:
short: emlid_navio2
buildType: MinSizeRel
settings:
CONFIG: emlid_navio2_default
holybro_can-gps-v1_canbootloader:
short: holybro_can-gps-v1_canbootloader
buildType: MinSizeRel
settings:
CONFIG: holybro_can-gps-v1_canbootloader
holybro_can-gps-v1_default:
short: holybro_can-gps-v1_default
buildType: MinSizeRel
settings:
CONFIG: holybro_can-gps-v1_default
holybro_durandal-v1_default:
short: holybro_durandal-v1
buildType: MinSizeRel
+1 -5
View File
@@ -5,9 +5,7 @@
"breadcrumbs.enabled": true,
"C_Cpp.autoAddFileAssociations": false,
"C_Cpp.clang_format_fallbackStyle": "none",
"C_Cpp.configurationWarnings": "Disabled",
"C_Cpp.default.browse.limitSymbolsToIncludedHeaders": true,
"C_Cpp.default.compileCommands": "${workspaceFolder}/.vscode/compile_commands.json",
"C_Cpp.default.cppStandard": "c++14",
"C_Cpp.default.cStandard": "c11",
"C_Cpp.formatting": "Disabled",
@@ -18,10 +16,8 @@
"cmake.buildDirectory": "${workspaceFolder}/build/${variant:CONFIG}",
"cmake.buildTask": true,
"cmake.configureOnOpen": true,
"cmake.copyCompileCommands": "${workspaceFolder}/.vscode/compile_commands.json",
"cmake.ctest.parallelJobs": 1,
"cmake.ignoreKitEnv": true,
"cmake.skipConfigureIfCachePresent": false,
"cmake.skipConfigureIfCachePresent": true,
"cmakeExplorer.buildDir": "${workspaceFolder}/build/px4_sitl_test",
"cmakeExplorer.parallelJobs": 1,
"cmakeExplorer.suiteDelimiter": "-",
+2
View File
@@ -185,6 +185,8 @@ if((CMAKE_BUILD_TYPE STREQUAL "Debug") OR (CMAKE_BUILD_TYPE STREQUAL "Coverage")
set(MAX_CUSTOM_OPT_LEVEL -O0)
elseif(CMAKE_BUILD_TYPE MATCHES "Sanitizer")
set(MAX_CUSTOM_OPT_LEVEL -O1)
elseif(CMAKE_BUILD_TYPE MATCHES "Release")
set(MAX_CUSTOM_OPT_LEVEL -O3)
else()
if(px4_constrained_flash_build)
set(MAX_CUSTOM_OPT_LEVEL -Os)
+29
View File
@@ -0,0 +1,29 @@
#
# PX4 development environment
#
FROM ubuntu:20.04
LABEL maintainer="Daniel Agar <daniel@agar.ca>"
COPY Tools/setup/ubuntu.sh /tmp/ubuntu.sh
COPY Tools/setup/requirements.txt /tmp/requirements.txt
RUN DEBIAN_FRONTEND=noninteractive /tmp/ubuntu.sh --no-sim-tools \
&& apt-get -y autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*
# create user with id 1001 (jenkins docker workflow default)
RUN useradd --shell /bin/bash -u 1001 -c "" -m user && usermod -a -G dialout user
ENV CCACHE_UMASK=000
ENV PATH="/usr/lib/ccache:$PATH"
# SITL UDP PORTS
EXPOSE 14556/udp
EXPOSE 14557/udp
# create and start as LOCAL_USER_ID
COPY Tools/setup/entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["/bin/bash"]
Vendored
+19 -15
View File
@@ -15,7 +15,7 @@ pipeline {
// stage('Catkin build on ROS workspace') {
// agent {
// docker {
// image 'px4io/px4-dev-ros-melodic:2021-02-04'
// image 'px4io/px4-dev-ros-melodic:2021-04-29'
// args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
// }
// }
@@ -56,7 +56,7 @@ pipeline {
stage('Colcon build on ROS2 workspace') {
agent {
docker {
image 'px4io/px4-dev-ros2-foxy:2021-02-04'
image 'px4io/px4-dev-ros2-foxy:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw -e HOME=$WORKSPACE'
}
}
@@ -85,10 +85,11 @@ pipeline {
stage('Airframe') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make airframe_metadata'
dir('build/px4_sitl_default/docs') {
archiveArtifacts(artifacts: 'airframes.md, airframes.xml')
@@ -104,14 +105,15 @@ pipeline {
stage('Parameter') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make parameters_metadata'
dir('build/px4_sitl_default/docs') {
archiveArtifacts(artifacts: 'parameters.md, parameters.xml, params.json.xz')
stash includes: 'parameters.md, parameters.xml, params.json.xz', name: 'metadata_parameters'
archiveArtifacts(artifacts: 'parameters.md, parameters.xml, parameters.json.xz')
stash includes: 'parameters.md, parameters.xml, parameters.json.xz', name: 'metadata_parameters'
}
}
post {
@@ -123,10 +125,11 @@ pipeline {
stage('Module') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make module_documentation'
dir('build/px4_sitl_default/docs') {
archiveArtifacts(artifacts: 'modules/*.md')
@@ -143,13 +146,14 @@ pipeline {
stage('uORB graphs') {
agent {
docker {
image 'px4io/px4-dev-nuttx-focal:2021-02-04'
image 'px4io/px4-dev-nuttx-focal:2021-04-29'
args '-e CCACHE_BASEDIR=$WORKSPACE -v ${CCACHE_DIR}:${CCACHE_DIR}:rw'
}
}
steps {
sh 'export'
sh 'make distclean'
sh 'git fetch --all --tags'
sh 'make uorb_graphs'
dir('Tools/uorb_graph') {
archiveArtifacts(artifacts: 'graph_px4_sitl.json')
@@ -172,7 +176,7 @@ pipeline {
stage('Userguide') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh('export')
@@ -202,7 +206,7 @@ pipeline {
stage('QGroundControl') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh('export')
@@ -230,7 +234,7 @@ pipeline {
stage('microRTPS agent') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh('export')
@@ -260,7 +264,7 @@ pipeline {
stage('PX4 ROS msgs') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh('export')
@@ -289,7 +293,7 @@ pipeline {
stage('PX4 ROS2 bridge') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh('export')
@@ -332,7 +336,7 @@ pipeline {
stage('S3') {
agent {
docker { image 'px4io/px4-dev-base-focal:2021-02-04' }
docker { image 'ghcr.io/px4/px4-dev:2021-05-06' }
}
steps {
sh('export')
@@ -342,7 +346,7 @@ pipeline {
withAWS(credentials: 'px4_aws_s3_key', region: 'us-east-1') {
s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'airframes.xml', path: 'Firmware/master/')
s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'parameters.xml', path: 'Firmware/master/')
s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'params.json.xz', path: 'Firmware/master/')
s3Upload(acl: 'PublicRead', bucket: 'px4-travis', file: 'parameters.json.xz', path: 'Firmware/master/')
}
}
when {
+3 -2
View File
@@ -303,7 +303,7 @@ check_%:
@echo
uorb_graphs:
@./Tools/uorb_graph/create.py --src-path src --exclude-path src/examples --file Tools/uorb_graph/graph_full
@./Tools/uorb_graph/create.py --src-path src --exclude-path src/examples --exclude-path src/lib --file Tools/uorb_graph/graph_full
@$(MAKE) --no-print-directory px4_fmu-v2_default uorb_graph
@$(MAKE) --no-print-directory px4_fmu-v4_default uorb_graph
@$(MAKE) --no-print-directory px4_sitl_default uorb_graph
@@ -469,6 +469,7 @@ validate_module_configs:
clean:
@rm -rf "$(SRC_DIR)"/build
@git submodule foreach git clean -df
submodulesclean:
@git submodule foreach --quiet --recursive git clean -ff -x -d
@@ -486,7 +487,7 @@ gazeboclean:
distclean: gazeboclean
@git submodule deinit -f .
@git clean -ff -x -d -e ".project" -e ".cproject" -e ".idea" -e ".settings" -e ".vscode"
@git clean -ff -x -d -e ".cproject" -e ".idea" -e ".project" -e ".settings" -e ".vscode"
# Help / Error
# --------------------------------------------------------------------
+16 -15
View File
@@ -17,7 +17,7 @@ PX4 is highly portable, OS-independent and supports Linux, NuttX and QuRT out of
* [VTOL](https://docs.px4.io/master/en/frames_vtol/)
* [Autogyro](https://docs.px4.io/master/en/frames_autogyro/)
* [Rover](https://docs.px4.io/master/en/frames_rover/)
* many more experimental types (Blimps, Boats, Submarines, Autogyros, etc)
* many more experimental types (Blimps, Boats, Submarines, High altitude balloons, etc)
* Releases: [Downloads](https://github.com/PX4/PX4-Autopilot/releases)
@@ -85,23 +85,24 @@ See also [maintainers list](https://px4.io/community/maintainers/) (px4.io) and
This repository contains code supporting Pixhawk standard boards (best supported, best tested, recommended choice) and proprietary boards.
### Pixhawk Standard Boards
* FMUv2
* [Pixhawk](https://docs.px4.io/master/en/flight_controller/pixhawk.html)
* [Pixfalcon](https://docs.px4.io/master/en/flight_controller/pixfalcon.html)
* FMUv3
* FMUv6X and FMUv6U (STM32H7, 2021)
* Various vendors will provide FMUv6X and FMUv6U based designs Q3/2021
* FMUv5 and FMUv5X (STM32F7, 2019/20)
* [Pixhawk 4 (FMUv5)](https://docs.px4.io/master/en/flight_controller/pixhawk4.html)
* [Pixhawk 4 mini (FMUv5)](https://docs.px4.io/master/en/flight_controller/pixhawk4_mini.html)
* [CUAV V5+ (FMUv5)](https://docs.px4.io/master/en/flight_controller/cuav_v5_plus.html)
* [CUAV V5 nano (FMUv5)](https://docs.px4.io/master/en/flight_controller/cuav_v5_nano.html)
* [Auterion Skynode (FMUv5X)](https://docs.px4.io/master/en/flight_controller/auterion_skynode.html)
* FMUv4 (STM32F4, 2015)
* [Pixracer](https://docs.px4.io/master/en/flight_controller/pixracer.html)
* [Pixhawk 3 Pro](https://docs.px4.io/master/en/flight_controller/pixhawk3_pro.html)
* FMUv3 (STM32F4, 2014)
* [Pixhawk 2](https://docs.px4.io/master/en/flight_controller/pixhawk-2.html)
* [Pixhawk Mini](https://docs.px4.io/master/en/flight_controller/pixhawk_mini.html)
* [CUAV Pixhack v3](https://docs.px4.io/master/en/flight_controller/pixhack_v3.html)
* FMUv4 (STM32F4)
* [Pixracer](https://docs.px4.io/master/en/flight_controller/pixracer.html)
* [Pixhawk 3 Pro](https://docs.px4.io/master/en/flight_controller/pixhawk3_pro.html)
* FMUv5 (STM32F7)
* [Pixhawk 4](https://docs.px4.io/master/en/flight_controller/pixhawk4.html)
* [Pixhawk 4 mini](https://docs.px4.io/master/en/flight_controller/pixhawk4_mini.html)
* [CUAV V5+](https://docs.px4.io/master/en/flight_controller/cuav_v5_plus.html)
* [CUAV V5 nano](https://docs.px4.io/master/en/flight_controller/cuav_v5_nano.html)
* FMUv6X and FMUv6U (STM32H7)
* Various vendors will provide FMUv6X and FMUv6U based designs Q2/2021
* FMUv2 (STM32F4, 2013)
* [Pixhawk](https://docs.px4.io/master/en/flight_controller/pixhawk.html)
* [Pixfalcon](https://docs.px4.io/master/en/flight_controller/pixfalcon.html)
### Manufacturer and Community supported
* [Holybro Durandal](https://docs.px4.io/master/en/flight_controller/durandal.html)
-9
View File
@@ -76,15 +76,6 @@ unset BOARD_RC_DEFAULTS
#
rgbled start -X -q
rgbled_ncp5623c start -X -q
rgbled_pwm start
if param greater -s LIGHT_EN_BLINKM 0
then
if blinkm start -X
then
blinkm systemstate
fi
fi
#
# board sensors: rc.sensors
@@ -34,6 +34,9 @@
add_subdirectory(airframes)
px4_add_romfs_files(
px4-rc.params
px4-rc.simulator
px4-rc.mavlink
rc.replay
rcS
)
@@ -10,43 +10,39 @@
. ${R}etc/init.d/rc.mc_defaults
. ${R}etc/init.d/rc.ctrlalloc
if [ $AUTOCNF = yes ]
then
param set MPC_USE_HTE 0
param set-default MPC_USE_HTE 0
param set VM_MASS 1.5
param set VM_INERTIA_XX 0.03
param set VM_INERTIA_YY 0.03
param set VM_INERTIA_ZZ 0.05
param set-default VM_MASS 1.5
param set-default VM_INERTIA_XX 0.03
param set-default VM_INERTIA_YY 0.03
param set-default VM_INERTIA_ZZ 0.05
param set CA_AIRFRAME 0
param set CA_METHOD 1
param set CA_ACT0_MIN 0.0
param set CA_ACT1_MIN 0.0
param set CA_ACT2_MIN 0.0
param set CA_ACT3_MIN 0.0
param set CA_ACT0_MAX 1.0
param set CA_ACT1_MAX 1.0
param set CA_ACT2_MAX 1.0
param set CA_ACT3_MAX 1.0
param set-default CA_AIRFRAME 0
param set-default CA_METHOD 1
param set-default CA_ACT0_MIN 0.0
param set-default CA_ACT1_MIN 0.0
param set-default CA_ACT2_MIN 0.0
param set-default CA_ACT3_MIN 0.0
param set-default CA_ACT0_MAX 1.0
param set-default CA_ACT1_MAX 1.0
param set-default CA_ACT2_MAX 1.0
param set-default CA_ACT3_MAX 1.0
param set CA_MC_R0_PX 0.1515
param set CA_MC_R0_PY 0.245
param set CA_MC_R0_CT 6.5
param set CA_MC_R0_KM 0.05
param set CA_MC_R1_PX -0.1515
param set CA_MC_R1_PY -0.1875
param set CA_MC_R1_CT 6.5
param set CA_MC_R1_KM 0.05
param set CA_MC_R2_PX 0.1515
param set CA_MC_R2_PY -0.245
param set CA_MC_R2_CT 6.5
param set CA_MC_R2_KM -0.05
param set CA_MC_R3_PX -0.1515
param set CA_MC_R3_PY 0.1875
param set CA_MC_R3_CT 6.5
param set CA_MC_R3_KM -0.05
fi
param set-default CA_MC_R0_PX 0.1515
param set-default CA_MC_R0_PY 0.245
param set-default CA_MC_R0_CT 6.5
param set-default CA_MC_R0_KM 0.05
param set-default CA_MC_R1_PX -0.1515
param set-default CA_MC_R1_PY -0.1875
param set-default CA_MC_R1_CT 6.5
param set-default CA_MC_R1_KM 0.05
param set-default CA_MC_R2_PX 0.1515
param set-default CA_MC_R2_PY -0.245
param set-default CA_MC_R2_CT 6.5
param set-default CA_MC_R2_KM -0.05
param set-default CA_MC_R3_PX -0.1515
param set-default CA_MC_R3_PY 0.1875
param set-default CA_MC_R3_CT 6.5
param set-default CA_MC_R3_KM -0.05
set MIXER direct
@@ -7,8 +7,6 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
param set EKF2_RNG_AID 1
param set EKF2_RNG_A_HMAX 10
fi
param set-default EKF2_RNG_AID 1
param set-default EKF2_RNG_A_HMAX 10
@@ -8,15 +8,12 @@
. ${R}etc/init.d/rc.mc_defaults
if [ $AUTOCNF = yes ]
then
# EKF2: Multi GPS blending (as the model has 2 GPS's)
param set EKF2_GPS_MASK 7 # Uses speed, hpos and vpos accuracy
param set TRIG_INTERFACE 3
param set TRIG_MODE 4
param set MNT_MODE_IN 4
param set MNT_MODE_OUT 2
param set MNT_DO_STAB 2
fi
# EKF2: Multi GPS blending (as the model has 2 GPS's)
param set-default SENS_GPS_MASK 7
param set-default TRIG_INTERFACE 3
param set-default TRIG_MODE 4
param set-default MNT_MODE_IN 4
param set-default MNT_MODE_OUT 2
param set-default MNT_DO_STAB 2
set MIXER quad_x
@@ -7,16 +7,14 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
# EKF2
param set EKF2_AID_MASK 2
param set EKF2_EVP_NOISE 0.05
param set EKF2_EVA_NOISE 0.05
# EKF2
param set-default EKF2_AID_MASK 2
param set-default EKF2_EVP_NOISE 0.05
param set-default EKF2_EVA_NOISE 0.05
# LPE: Flow-only mode
param set LPE_FUSION 242
param set LPE_FAKE_ORIGIN 1
# LPE: Flow-only mode
param set-default LPE_FUSION 242
param set-default LPE_FAKE_ORIGIN 1
param set-default MPC_ALT_MODE 2
param set MPC_ALT_MODE 2
fi
@@ -7,12 +7,9 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
# enable fusion of landing target velocity
param set LTEST_MODE 1
param set PLD_HACC_RAD 0.1
fi
# enable fusion of landing target velocity
param set-default LTEST_MODE 1
param set-default PLD_HACC_RAD 0.1
# Start up Landing Target Estimator module
landing_target_estimator start
@@ -7,7 +7,5 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
param set LPE_FUSION 242
fi
param set-default LPE_FUSION 242
@@ -7,15 +7,13 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
# EKF2: Vision position and heading
param set EKF2_AID_MASK 24
param set EKF2_EV_DELAY 5
# EKF2: Vision position and heading
param set-default EKF2_AID_MASK 24
param set-default EKF2_EV_DELAY 5
# LPE: Vision + baro
param set LPE_FUSION 132
# LPE: Vision + baro
param set-default LPE_FUSION 132
# AEQ: External heading set to use vision input
param set-default ATT_EXT_HDG_M 1
# AEQ: External heading set to use vision input
param set ATT_EXT_HDG_M 1
fi
@@ -7,10 +7,7 @@
. ${R}etc/init.d/rc.mc_defaults
if [ $AUTOCNF = yes ]
then
param set MC_PITCHRATE_P 0.1
param set MC_ROLLRATE_P 0.1
fi
param set-default MC_PITCHRATE_P 0.1
param set-default MC_ROLLRATE_P 0.1
set MIXER quad_x
@@ -7,8 +7,6 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
param set COM_OBS_AVOID 1
param set MPC_XY_CRUISE 5.0
fi
param set-default COM_OBS_AVOID 1
param set-default MPC_XY_CRUISE 5.0
@@ -7,15 +7,12 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
# EKF2
param set EKF2_AID_MASK 2
param set SENS_FLOW_ROT 0
# EKF2
param set-default EKF2_AID_MASK 2
param set-default SENS_FLOW_ROT 0
# LPE: Flow-only mode
param set LPE_FUSION 242
param set LPE_FAKE_ORIGIN 1
# LPE: Flow-only mode
param set-default LPE_FUSION 242
param set-default LPE_FAKE_ORIGIN 1
param set MPC_ALT_MODE 2
fi
param set-default MPC_ALT_MODE 2
@@ -7,9 +7,6 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
# EKF2: Vision velocity and heading
param set EKF2_AID_MASK 272
param set EKF2_EV_DELAY 5
fi
# EKF2: Vision velocity and heading
param set-default EKF2_AID_MASK 272
param set-default EKF2_EV_DELAY 5
@@ -7,8 +7,5 @@
. ${R}etc/init.d-posix/airframes/10016_iris
if [ $AUTOCNF = yes ]
then
# EKF2: Multi GPS blending
param set EKF2_GPS_MASK 7 # Uses speed, hpos and vpos accuracy
fi
# EKF2: Multi GPS blending
param set-default SENS_GPS_MASK 7
@@ -5,16 +5,13 @@
. ${R}etc/init.d/rc.uuv_defaults
if [ $AUTOCNF = yes ]
then
#Set data link loss failsafe mode (0: disabled)
param set NAV_DLL_ACT 0
#Set data link loss failsafe mode (0: disabled)
param set-default NAV_DLL_ACT 0
# disable circuit breaker for airspeed sensor
param set CBRK_AIRSPD_CHK 162128
# disable circuit breaker for airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128
#param set CBRK_GPSFAIL 240024
fi
#param set CBRK_GPSFAIL 240024
set MAV_TYPE 12
param set MAV_TYPE ${MAV_TYPE}
@@ -5,16 +5,13 @@
. ${R}etc/init.d/rc.uuv_defaults
if [ $AUTOCNF = yes ]
then
#Set data link loss failsafe mode (0: disabled)
param set NAV_DLL_ACT 0
#Set data link loss failsafe mode (0: disabled)
param set-default NAV_DLL_ACT 0
# disable circuit breaker for airspeed sensor
param set CBRK_AIRSPD_CHK 162128
# disable circuit breaker for airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128
#param set CBRK_GPSFAIL 240024
fi
#param set CBRK_GPSFAIL 240024
set MAV_TYPE 12
param set MAV_TYPE ${MAV_TYPE}
@@ -5,15 +5,11 @@
. ${R}etc/init.d/rc.uuv_defaults
if [ $AUTOCNF = yes ]
then
#Set data link loss failsafe mode (0: disabled)
param set NAV_DLL_ACT 0
#Set data link loss failsafe mode (0: disabled)
param set-default NAV_DLL_ACT 0
# disable circuit breaker for airspeed sensor
param set CBRK_AIRSPD_CHK 162128
fi
# disable circuit breaker for airspeed sensor
param set-default CBRK_AIRSPD_CHK 162128
set PWM_OUT 12345678
set MIXER_FILE etc/mixers-sitl/vectored6dof_sitl.main.mix
@@ -5,54 +5,50 @@
. ${R}etc/init.d/rc.fw_defaults
if [ $AUTOCNF = yes ]
then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
param set EKF2_MAG_ACCLIM 0
param set EKF2_MAG_YAWLIM 0
param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1
param set-default EKF2_MAG_ACCLIM 0
param set-default EKF2_MAG_YAWLIM 0
param set FW_LND_AIRSPD_SC 1
param set FW_LND_ANG 8
param set FW_THR_LND_MAX 0
param set-default FW_LND_AIRSPD_SC 1
param set-default FW_LND_ANG 8
param set-default FW_THR_LND_MAX 0
param set FW_L1_PERIOD 12
param set-default FW_L1_PERIOD 12
param set FW_MAN_P_MAX 30
param set-default FW_MAN_P_MAX 30
param set FW_PR_I 0.4
param set FW_PR_P 0.9
param set FW_PR_FF 0.2
param set FW_PSP_OFF 2
param set FW_P_LIM_MAX 32
param set FW_P_LIM_MIN -15
param set-default FW_PR_I 0.4
param set-default FW_PR_P 0.9
param set-default FW_PR_FF 0.2
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MAX 32
param set-default FW_P_LIM_MIN -15
param set FW_RR_FF 0.1
param set FW_RR_P 0.3
param set-default FW_RR_FF 0.1
param set-default FW_RR_P 0.3
param set FW_THR_MAX 0.6
param set FW_THR_MIN 0.05
param set FW_THR_CRUISE 0.25
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_THR_CRUISE 0.25
param set FW_T_ALT_TC 2
param set FW_T_CLMB_MAX 8
param set FW_T_HRATE_FF 0.5
param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default FW_T_ALT_TC 2
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_HRATE_FF 0.5
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_T_TAS_TC 2
param set FW_W_EN 1
param set-default FW_W_EN 1
param set MIS_LTRMIN_ALT 30
param set MIS_TAKEOFF_ALT 30
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30
param set NAV_ACC_RAD 15
param set NAV_DLL_ACT 2
param set NAV_LOITER_RAD 50
param set-default NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50
param set RWTO_TKOFF 1
fi
param set-default RWTO_TKOFF 1
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom
@@ -5,10 +5,8 @@
. ${R}etc/init.d-posix/airframes/1030_plane
if [ $AUTOCNF = yes ]
then
# Camera trigger interface is MAVLink
param set TRIG_INTERFACE 3
# Distance trigger mode enabled
param set TRIG_MODE 4
fi
# Camera trigger interface is MAVLink
param set-default TRIG_INTERFACE 3
# Distance trigger mode enabled
param set-default TRIG_MODE 4
@@ -5,8 +5,5 @@
. ${R}etc/init.d-posix/airframes/1030_plane
if [ $AUTOCNF = yes ]
then
param set RWTO_TKOFF 0
param set-default RWTO_TKOFF 0
fi
@@ -5,8 +5,5 @@
. ${R}etc/init.d-posix/airframes/1030_plane
if [ $AUTOCNF = yes ]
then
param set FW_LND_USETER 1
param set-default FW_LND_USETER 1
fi
@@ -5,54 +5,55 @@
. ${R}etc/init.d/rc.fw_defaults
if [ $AUTOCNF = yes ]
then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
#param set EKF2_MAG_ACCLIM 0
#param set EKF2_MAG_YAWLIM 0
param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1
param set FW_LND_AIRSPD_SC 1.1
param set FW_LND_ANG 5
param set FW_THR_LND_MAX 0
param set FW_LND_HHDIST 30
param set FW_LND_FL_PMIN 9.5
param set FW_LND_FL_PMAX 20
param set FW_LND_FLALT 5
param set FW_LND_TLALT 15
param set-default FW_LND_AIRSPD_SC 1.1
param set-default FW_LND_ANG 5
param set-default FW_THR_LND_MAX 0
param set-default FW_LND_HHDIST 30
param set-default FW_LND_FL_PMIN 9.5
param set-default FW_LND_FL_PMAX 20
param set-default FW_LND_FLALT 5
param set-default FW_LND_TLALT 15
param set FW_L1_PERIOD 25
param set-default FW_L1_PERIOD 25
param set FW_P_TC 0.4
param set FW_PR_FF 0.40
param set FW_PR_I 0.05
param set FW_PR_P 0.05
param set-default FW_P_TC 0.4
param set-default FW_PR_FF 0.40
param set-default FW_PR_I 0.05
param set-default FW_PR_P 0.05
param set FW_R_TC 0.45
param set FW_RR_FF 0.40
param set FW_RR_I 0.132
param set FW_RR_P 0.085
param set-default FW_R_TC 0.45
param set-default FW_RR_FF 0.40
param set-default FW_RR_I 0.132
param set-default FW_RR_P 0.085
param set FW_W_EN 1
param set-default FW_W_EN 1
param set MIS_LTRMIN_ALT 30
param set MIS_TAKEOFF_ALT 20
param set MIS_DIST_1WP 2500
param set MIS_DIST_WPS 10000
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 20
param set-default MIS_DIST_1WP 2500
param set-default MIS_DIST_WPS 10000
param set NAV_ACC_RAD 15
param set NAV_DLL_ACT 2
param set NAV_LOITER_RAD 50
param set-default NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50
param set RWTO_TKOFF 1
#param set FW_THR_SLEW_MAX 0.3 # fix takeoff failure for JSBsim in autonomous mission mode.
param set RWTO_MAX_PITCH 20
param set RWTO_MAX_ROLL 10
#param set RWTO_MAX_THR 0.6 # fix takeoff failure for JSBsim in autonomous mission mode.
param set RWTO_PSP 8
param set RWTO_AIRSPD_SCL 1.8
param set-default RWTO_TKOFF 1
# fix takeoff failure for JSBsim in autonomous mission mode.
#param set FW_THR_SLEW_MAX 0.3
param set-default RWTO_MAX_PITCH 20
param set-default RWTO_MAX_ROLL 10
# fix takeoff failure for JSBsim in autonomous mission mode.
#param set-default RWTO_MAX_THR 0.6
param set-default RWTO_PSP 8
param set-default RWTO_AIRSPD_SCL 1.8
fi
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom
@@ -5,54 +5,54 @@
. ${R}etc/init.d/rc.fw_defaults
if [ $AUTOCNF = yes ]
then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
#param set EKF2_MAG_ACCLIM 0
#param set EKF2_MAG_YAWLIM 0
param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1
param set FW_LND_AIRSPD_SC 1.1
param set FW_LND_ANG 5
param set FW_THR_LND_MAX 0
param set FW_LND_HHDIST 30
param set FW_LND_FL_PMIN 9.5
param set FW_LND_FL_PMAX 20
param set FW_LND_FLALT 5
param set FW_LND_TLALT 15
param set-default FW_LND_AIRSPD_SC 1.1
param set-default FW_LND_ANG 5
param set-default FW_THR_LND_MAX 0
param set-default FW_LND_HHDIST 30
param set-default FW_LND_FL_PMIN 9.5
param set-default FW_LND_FL_PMAX 20
param set-default FW_LND_FLALT 5
param set-default FW_LND_TLALT 15
param set FW_L1_PERIOD 25
param set-default FW_L1_PERIOD 25
param set FW_P_TC 0.4
param set FW_PR_FF 0.40
param set FW_PR_I 0.05
param set FW_PR_P 0.05
param set-default FW_P_TC 0.4
param set-default FW_PR_FF 0.40
param set-default FW_PR_I 0.05
param set-default FW_PR_P 0.05
param set FW_R_TC 0.45
param set FW_RR_FF 0.40
param set FW_RR_I 0.132
param set FW_RR_P 0.085
param set-default FW_R_TC 0.45
param set-default FW_RR_FF 0.40
param set-default FW_RR_I 0.132
param set-default FW_RR_P 0.085
param set FW_W_EN 1
param set-default FW_W_EN 1
param set MIS_LTRMIN_ALT 30
param set MIS_TAKEOFF_ALT 20
param set MIS_DIST_1WP 2500
param set MIS_DIST_WPS 10000
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 20
param set-default MIS_DIST_1WP 2500
param set-default MIS_DIST_WPS 10000
param set NAV_ACC_RAD 15
param set NAV_DLL_ACT 2
param set NAV_LOITER_RAD 50
param set-default NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50
param set RWTO_TKOFF 1
#param set FW_THR_SLEW_MAX 0.3 # fix takeoff failure for JSBsim in autonomous mission mode.
param set RWTO_MAX_PITCH 20
param set RWTO_MAX_ROLL 10
#param set RWTO_MAX_THR 0.6 # fix takeoff failure for JSBsim in autonomous mission mode.
param set RWTO_PSP 8
param set RWTO_AIRSPD_SCL 1.8
param set-default RWTO_TKOFF 1
fi
# fix takeoff failure for JSBsim in autonomous mission mode.
#param set FW_THR_SLEW_MAX 0.3
param set-default RWTO_MAX_PITCH 20
param set-default RWTO_MAX_ROLL 10
# fix takeoff failure for JSBsim in autonomous mission mode.
#param set RWTO_MAX_THR 0.6
param set-default RWTO_PSP 8
param set-default RWTO_AIRSPD_SCL 1.8
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom
@@ -5,43 +5,39 @@
. ${R}etc/init.d/rc.fw_defaults
if [ $AUTOCNF = yes ]
then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
param set EKF2_MAG_ACCLIM 0
param set EKF2_MAG_YAWLIM 0
param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1
param set-default EKF2_MAG_ACCLIM 0
param set-default EKF2_MAG_YAWLIM 0
param set FW_LND_AIRSPD_SC 1
param set FW_LND_ANG 8
param set FW_THR_LND_MAX 0
param set-default FW_LND_AIRSPD_SC 1
param set-default FW_LND_ANG 8
param set-default FW_THR_LND_MAX 0
param set FW_L1_PERIOD 15
param set-default FW_L1_PERIOD 15
param set FW_P_TC 0.5
param set FW_PR_FF 0.40
param set FW_PR_I 0.05
param set FW_PR_P 0.05
param set-default FW_P_TC 0.5
param set-default FW_PR_FF 0.40
param set-default FW_PR_I 0.05
param set-default FW_PR_P 0.05
param set FW_R_TC 0.7
param set FW_RR_FF 0.20
param set FW_RR_I 0.02
param set FW_RR_P 0.22
param set-default FW_R_TC 0.7
param set-default FW_RR_FF 0.20
param set-default FW_RR_I 0.02
param set-default FW_RR_P 0.22
param set FW_L1_PERIOD 12
param set-default FW_L1_PERIOD 12
param set FW_W_EN 1
param set-default FW_W_EN 1
param set MIS_LTRMIN_ALT 30
param set MIS_TAKEOFF_ALT 30
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 30
param set NAV_ACC_RAD 15
param set NAV_DLL_ACT 2
param set NAV_LOITER_RAD 50
param set-default NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50
param set RWTO_TKOFF 1
fi
param set-default RWTO_TKOFF 1
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom
@@ -5,52 +5,46 @@
. ${R}etc/init.d/rc.fw_defaults
if [ $AUTOCNF = yes ]
then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
#param set EKF2_MAG_ACCLIM 0
#param set EKF2_MAG_YAWLIM 0
param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1
param set FW_LND_AIRSPD_SC 1.1
param set FW_LND_ANG 5
param set FW_THR_LND_MAX 0
param set FW_LND_HHDIST 30
param set FW_LND_FL_PMIN 9.5
param set FW_LND_FL_PMAX 20
param set FW_LND_FLALT 5
param set FW_LND_TLALT 15
param set-default FW_LND_AIRSPD_SC 1.1
param set-default FW_LND_ANG 5
param set-default FW_THR_LND_MAX 0
param set-default FW_LND_HHDIST 30
param set-default FW_LND_FL_PMIN 9.5
param set-default FW_LND_FL_PMAX 20
param set-default FW_LND_FLALT 5
param set-default FW_LND_TLALT 15
param set FW_L1_PERIOD 25
param set-default FW_L1_PERIOD 25
param set FW_P_TC 0.4
param set FW_PR_FF 0.40
param set FW_PR_I 0.05
param set FW_PR_P 0.05
param set-default FW_P_TC 0.4
param set-default FW_PR_FF 0.40
param set-default FW_PR_I 0.05
param set-default FW_PR_P 0.05
param set FW_R_TC 0.45
param set FW_RR_FF 0.40
param set FW_RR_I 0.132
param set FW_RR_P 0.085
param set-default FW_R_TC 0.45
param set-default FW_RR_FF 0.40
param set-default FW_RR_I 0.132
param set-default FW_RR_P 0.085
param set FW_W_EN 1
param set-default FW_W_EN 1
param set MIS_LTRMIN_ALT 30
param set MIS_TAKEOFF_ALT 20
param set MIS_DIST_1WP 2500
param set MIS_DIST_WPS 10000
param set-default MIS_LTRMIN_ALT 30
param set-default MIS_TAKEOFF_ALT 20
param set-default MIS_DIST_1WP 2500
param set-default MIS_DIST_WPS 10000
param set NAV_ACC_RAD 15
param set NAV_DLL_ACT 2
param set NAV_LOITER_RAD 50
param set-default NAV_ACC_RAD 15
param set-default NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 50
param set RWTO_TKOFF 1
param set RWTO_MAX_PITCH 20
param set RWTO_MAX_ROLL 10
param set RWTO_PSP 8
param set RWTO_AIRSPD_SCL 1.8
fi
param set-default RWTO_TKOFF 1
param set-default RWTO_MAX_PITCH 20
param set-default RWTO_MAX_ROLL 10
param set-default RWTO_PSP 8
param set-default RWTO_AIRSPD_SCL 1.8
set MIXER_FILE etc/mixers-sitl/plane_sitl.main.mix
set MIXER custom
@@ -7,50 +7,46 @@
. ${R}etc/init.d/rc.vtol_defaults
if [ $AUTOCNF = yes ]
then
param set FW_L1_PERIOD 12
param set FW_MAN_P_MAX 30
param set FW_PR_FF 0.2
param set FW_PR_I 0.4
param set FW_PR_P 0.9
param set FW_PSP_OFF 2
param set FW_P_LIM_MAX 32
param set FW_P_LIM_MIN -15
param set FW_RR_FF 0.1
param set FW_RR_P 0.3
param set FW_THR_CRUISE 0.25
param set FW_THR_MAX 0.6
param set FW_THR_MIN 0.05
param set FW_T_ALT_TC 2
param set FW_T_CLMB_MAX 8
param set FW_T_HRATE_FF 0.5
param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default FW_L1_PERIOD 12
param set-default FW_MAN_P_MAX 30
param set-default FW_PR_FF 0.2
param set-default FW_PR_I 0.4
param set-default FW_PR_P 0.9
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MAX 32
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.1
param set-default FW_RR_P 0.3
param set-default FW_THR_CRUISE 0.25
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_T_ALT_TC 2
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_HRATE_FF 0.5
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_T_TAS_TC 2
param set MC_ROLLRATE_P 0.3
param set MC_YAW_P 1.6
param set-default MC_ROLLRATE_P 0.3
param set-default MC_YAW_P 1.6
param set MIS_TAKEOFF_ALT 10
param set-default MIS_TAKEOFF_ALT 10
param set MPC_ACC_HOR_MAX 2
param set MPC_XY_P 0.8
param set MPC_XY_VEL_P_ACC 3
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_D_ACC 0.1
param set-default MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1
param set NAV_ACC_RAD 5
param set NAV_LOITER_RAD 80
param set-default NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80
param set VT_FWD_THRUST_EN 4
param set VT_F_TRANS_THR 0.75
param set VT_MOT_ID 1234
param set VT_FW_MOT_OFFID 1234
param set VT_B_TRANS_DUR 8
param set VT_TYPE 2
fi
param set-default VT_FWD_THRUST_EN 4
param set-default VT_F_TRANS_THR 0.75
param set-default VT_MOT_ID 1234
param set-default VT_FW_MOT_OFFID 1234
param set-default VT_B_TRANS_DUR 8
param set-default VT_TYPE 2
set MAV_TYPE 22
@@ -7,44 +7,40 @@
. ${R}etc/init.d/rc.vtol_defaults
if [ $AUTOCNF = yes ]
then
param set FW_L1_PERIOD 12
param set FW_MAN_P_MAX 30
param set FW_PR_I 0.2
param set FW_PR_P 0.3
param set FW_PSP_OFF 2
param set FW_P_LIM_MAX 32
param set FW_P_LIM_MIN -15
param set FW_RR_P 0.3
param set FW_THR_CRUISE 0.33
param set FW_THR_MAX 0.6
param set FW_THR_MIN 0.05
param set FW_T_ALT_TC 2
param set FW_T_CLMB_MAX 8
param set FW_T_HRATE_FF 0.5
param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default FW_L1_PERIOD 12
param set-default FW_MAN_P_MAX 30
param set-default FW_PR_I 0.2
param set-default FW_PR_P 0.3
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MAX 32
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_P 0.3
param set-default FW_THR_CRUISE 0.33
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_T_ALT_TC 2
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_HRATE_FF 0.5
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_T_TAS_TC 2
param set MC_ROLLRATE_P 0.3
param set-default MC_ROLLRATE_P 0.3
param set MPC_ACC_HOR_MAX 2
param set MPC_XY_P 0.8
param set MPC_XY_VEL_P_ACC 3
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_D_ACC 0.1
param set-default MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1
param set NAV_ACC_RAD 5
param set NAV_LOITER_RAD 80
param set-default NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80
param set VT_F_TRANS_DUR 1.5
param set VT_F_TRANS_THR 0.7
param set VT_TYPE 0
param set-default VT_F_TRANS_DUR 1.5
param set-default VT_F_TRANS_THR 0.7
param set-default VT_TYPE 0
param set WV_EN 0
fi
param set-default WV_EN 0
set MAV_TYPE 20
@@ -7,48 +7,44 @@
. ${R}etc/init.d/rc.vtol_defaults
if [ $AUTOCNF = yes ]
then
param set FW_L1_PERIOD 12
param set FW_MAN_P_MAX 30
param set FW_PR_FF 0.2
param set FW_PR_I 0.4
param set FW_PR_P 0.9
param set FW_PSP_OFF 2
param set FW_P_LIM_MAX 32
param set FW_P_LIM_MIN -15
param set FW_RR_FF 0.1
param set FW_RR_P 0.3
param set FW_THR_CRUISE 0.38
param set FW_THR_MAX 0.6
param set FW_THR_MIN 0.05
param set FW_T_ALT_TC 2
param set FW_T_CLMB_MAX 8
param set FW_T_HRATE_FF 0.5
param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default FW_L1_PERIOD 12
param set-default FW_MAN_P_MAX 30
param set-default FW_PR_FF 0.2
param set-default FW_PR_I 0.4
param set-default FW_PR_P 0.9
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MAX 32
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.1
param set-default FW_RR_P 0.3
param set-default FW_THR_CRUISE 0.38
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_T_ALT_TC 2
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_HRATE_FF 0.5
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_T_TAS_TC 2
param set MC_YAW_P 1.6
param set-default MC_YAW_P 1.6
param set MIS_TAKEOFF_ALT 10
param set-default MIS_TAKEOFF_ALT 10
param set MPC_ACC_HOR_MAX 2
param set MPC_XY_P 0.8
param set MPC_XY_VEL_P_ACC 3
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_D_ACC 0.1
param set-default MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1
param set NAV_ACC_RAD 5
param set NAV_LOITER_RAD 80
param set-default NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80
param set VT_B_TRANS_DUR 8
param set VT_FWD_THRUST_EN 4
param set VT_MOT_ID 1234
param set VT_TILT_TRANS 0.6
param set VT_TYPE 1
fi
param set-default VT_B_TRANS_DUR 8
param set-default VT_FWD_THRUST_EN 4
param set-default VT_MOT_ID 1234
param set-default VT_TILT_TRANS 0.6
param set-default VT_TYPE 1
set MAV_TYPE 21
@@ -7,53 +7,50 @@
. ${R}etc/init.d/rc.vtol_defaults
if [ $AUTOCNF = yes ]
then
param set FW_L1_PERIOD 12
param set FW_MAN_P_MAX 30
param set FW_PR_FF 0.2
param set FW_PR_I 0.4
param set FW_PR_P 0.9
param set FW_PSP_OFF 2
param set FW_P_LIM_MAX 32
param set FW_P_LIM_MIN -15
param set FW_RR_FF 0.1
param set FW_RR_P 0.3
param set FW_THR_CRUISE 0.25
param set FW_THR_MAX 0.6
param set FW_THR_MIN 0.05
param set FW_T_ALT_TC 2
param set FW_T_CLMB_MAX 8
param set FW_T_HRATE_FF 0.5
param set FW_T_SINK_MAX 2.7
param set FW_T_SINK_MIN 2.2
param set FW_T_TAS_TC 2
param set-default FW_L1_PERIOD 12
param set-default FW_MAN_P_MAX 30
param set-default FW_PR_FF 0.2
param set-default FW_PR_I 0.4
param set-default FW_PR_P 0.9
param set-default FW_PSP_OFF 2
param set-default FW_P_LIM_MAX 32
param set-default FW_P_LIM_MIN -15
param set-default FW_RR_FF 0.1
param set-default FW_RR_P 0.3
param set-default FW_THR_CRUISE 0.25
param set-default FW_THR_MAX 0.6
param set-default FW_THR_MIN 0.05
param set-default FW_T_ALT_TC 2
param set-default FW_T_CLMB_MAX 8
param set-default FW_T_HRATE_FF 0.5
param set-default FW_T_SINK_MAX 2.7
param set-default FW_T_SINK_MIN 2.2
param set-default FW_T_TAS_TC 2
param set MC_ROLLRATE_P 0.3
param set MC_YAW_P 1.6
param set-default MC_ROLLRATE_P 0.3
param set-default MC_YAW_P 1.6
param set MIS_TAKEOFF_ALT 10
param set-default MIS_TAKEOFF_ALT 10
param set MPC_ACC_HOR_MAX 2
param set MPC_XY_P 0.8
param set MPC_XY_VEL_P_ACC 3
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_D_ACC 0.1
param set-default MPC_ACC_HOR_MAX 2
param set-default MPC_XY_P 0.8
param set-default MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_D_ACC 0.1
param set NAV_ACC_RAD 5
param set NAV_LOITER_RAD 80
param set-default NAV_ACC_RAD 5
param set-default NAV_LOITER_RAD 80
param set VT_FWD_THRUST_EN 4
param set VT_F_TRANS_THR 0.75
param set VT_MOT_ID 1234
param set VT_FW_MOT_OFFID 1234
param set VT_B_TRANS_DUR 8
param set VT_TYPE 2
param set-default VT_FWD_THRUST_EN 4
param set-default VT_F_TRANS_THR 0.75
param set-default VT_MOT_ID 1234
param set-default VT_FW_MOT_OFFID 1234
param set-default VT_B_TRANS_DUR 8
param set-default VT_TYPE 2
param set RC_MAP_AUX1 8
param set RC_MAP_AUX2 9
param set RC_MAP_AUX3 10
fi
param set-default RC_MAP_AUX1 8
param set-default RC_MAP_AUX2 9
param set-default RC_MAP_AUX3 10
set MAV_TYPE 22
@@ -5,32 +5,28 @@
. ${R}etc/init.d/rc.rover_defaults
if [ $AUTOCNF = yes ]
then
param set GND_L1_DIST 5
param set GND_L1_PERIOD 10
param set GND_SP_CTRL_MODE 1
param set GND_SPEED_D 0.001
param set GND_SPEED_I 3
param set GND_SPEED_IMAX 0.125
param set GND_SPEED_P 0.25
param set GND_SPEED_THR_SC 1
param set GND_SPEED_TRIM 4
param set GND_THR_CRUISE 0.3
param set GND_THR_MAX 0.5
param set GND_THR_MIN 0
param set-default GND_L1_DIST 5
param set-default GND_L1_PERIOD 10
param set-default GND_SP_CTRL_MODE 1
param set-default GND_SPEED_D 0.001
param set-default GND_SPEED_I 3
param set-default GND_SPEED_IMAX 0.125
param set-default GND_SPEED_P 0.25
param set-default GND_SPEED_THR_SC 1
param set-default GND_SPEED_TRIM 4
param set-default GND_THR_CRUISE 0.3
param set-default GND_THR_MAX 0.5
param set-default GND_THR_MIN 0
param set MIS_LTRMIN_ALT 0.01
param set MIS_TAKEOFF_ALT 0.01
param set NAV_ACC_RAD 0.5
param set NAV_LOITER_RAD 2
param set-default MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2
param set CBRK_AIRSPD_CHK 162128
param set-default CBRK_AIRSPD_CHK 162128
param set GND_MAX_ANG 0.6
param set GND_WHEEL_BASE 2.0
fi
param set-default GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 2.0
set MAV_TYPE 10
@@ -6,31 +6,27 @@
. ${R}etc/init.d/rc.rover_defaults
if [ $AUTOCNF = yes ]
then
param set GND_L1_DIST 5
param set GND_SP_CTRL_MODE 1
param set GND_SPEED_D 3
param set GND_SPEED_I 0.001
param set GND_SPEED_IMAX 0.125
param set GND_SPEED_P 0.25
param set GND_SPEED_THR_SC 1
param set GND_SPEED_TRIM 4
param set GND_THR_CRUISE 0.3
param set GND_THR_MAX 0.5
param set GND_THR_MIN 0
param set-default GND_L1_DIST 5
param set-default GND_SP_CTRL_MODE 1
param set-default GND_SPEED_D 3
param set-default GND_SPEED_I 0.001
param set-default GND_SPEED_IMAX 0.125
param set-default GND_SPEED_P 0.25
param set-default GND_SPEED_THR_SC 1
param set-default GND_SPEED_TRIM 4
param set-default GND_THR_CRUISE 0.3
param set-default GND_THR_MAX 0.5
param set-default GND_THR_MIN 0
param set MIS_LTRMIN_ALT 0.01
param set MIS_TAKEOFF_ALT 0.01
param set NAV_ACC_RAD 0.5
param set NAV_LOITER_RAD 2
param set-default MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2
param set CBRK_AIRSPD_CHK 162128
param set-default CBRK_AIRSPD_CHK 162128
param set GND_MAX_ANG 0.6
param set GND_WHEEL_BASE 2.0
fi
param set-default GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 2.0
set MAV_TYPE 10
@@ -10,32 +10,28 @@
. ${R}etc/init.d/rc.rover_defaults
if [ $AUTOCNF = yes ]
then
param set GND_L1_DIST 5
param set GND_SP_CTRL_MODE 1
param set GND_SPEED_D 3
param set GND_SPEED_I 0.001
param set GND_SPEED_IMAX 0.125
param set GND_SPEED_P 0.25
param set GND_SPEED_THR_SC 1
param set GND_SPEED_TRIM 15
param set GND_SPEED_MAX 25
param set GND_THR_CRUISE 0.3
param set GND_THR_MAX 0.5
param set GND_THR_MIN 0
param set-default GND_L1_DIST 5
param set-default GND_SP_CTRL_MODE 1
param set-default GND_SPEED_D 3
param set-default GND_SPEED_I 0.001
param set-default GND_SPEED_IMAX 0.125
param set-default GND_SPEED_P 0.25
param set-default GND_SPEED_THR_SC 1
param set-default GND_SPEED_TRIM 15
param set-default GND_SPEED_MAX 25
param set-default GND_THR_CRUISE 0.3
param set-default GND_THR_MAX 0.5
param set-default GND_THR_MIN 0
param set MIS_LTRMIN_ALT 0.01
param set MIS_TAKEOFF_ALT 0.01
param set NAV_ACC_RAD 0.5
param set NAV_LOITER_RAD 2
param set-default MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2
param set CBRK_AIRSPD_CHK 162128
param set-default CBRK_AIRSPD_CHK 162128
param set GND_MAX_ANG 0.6
param set GND_WHEEL_BASE 3.0
fi
param set-default GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 3.0
set MAV_TYPE 10
@@ -5,32 +5,28 @@
. ${R}etc/init.d/rc.boat_defaults
if [ $AUTOCNF = yes ]
then
param set GND_L1_DIST 5
param set GND_L1_PERIOD 100
param set GND_SP_CTRL_MODE 1
param set GND_SPEED_D 0.001
param set GND_SPEED_I 8
param set GND_SPEED_IMAX 0.125
param set GND_SPEED_P 2
param set GND_SPEED_THR_SC 1
param set GND_SPEED_TRIM 1
param set GND_THR_CRUISE 0.85
param set GND_THR_MAX 1
param set GND_THR_MIN 0
param set-default GND_L1_DIST 5
param set-default GND_L1_PERIOD 100
param set-default GND_SP_CTRL_MODE 1
param set-default GND_SPEED_D 0.001
param set-default GND_SPEED_I 8
param set-default GND_SPEED_IMAX 0.125
param set-default GND_SPEED_P 2
param set-default GND_SPEED_THR_SC 1
param set-default GND_SPEED_TRIM 1
param set-default GND_THR_CRUISE 0.85
param set-default GND_THR_MAX 1
param set-default GND_THR_MIN 0
param set MIS_LTRMIN_ALT 0.01
param set MIS_TAKEOFF_ALT 0.01
param set NAV_ACC_RAD 0.5
param set NAV_LOITER_RAD 2
param set-default MIS_LTRMIN_ALT 0.01
param set-default MIS_TAKEOFF_ALT 0.01
param set-default NAV_ACC_RAD 0.5
param set-default NAV_LOITER_RAD 2
param set CBRK_AIRSPD_CHK 162128
param set-default CBRK_AIRSPD_CHK 162128
param set GND_MAX_ANG 0.6
param set GND_WHEEL_BASE 2.0
fi
param set-default GND_MAX_ANG 0.6
param set-default GND_WHEEL_BASE 2.0
set MAV_TYPE 11
@@ -12,52 +12,47 @@
. ${R}etc/init.d/rc.fw_defaults
if [ $AUTOCNF = yes ]
then
param set EKF2_ARSP_THR 8
param set EKF2_FUSE_BETA 1
param set ASPD_STALL 10.0
param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1
param set-default ASPD_STALL 10.0
param set FW_P_RMAX_NEG 20.0
param set FW_P_RMAX_POS 60.0
param set FW_W_RMAX 10
param set FW_W_EN 1
param set-default FW_P_RMAX_NEG 20.0
param set-default FW_P_RMAX_POS 60.0
param set-default FW_W_RMAX 10
param set-default FW_W_EN 1
param set FW_PR_IMAX 0.4
param set FW_R_TC 0.4
param set FW_RR_FF 0.5
param set FW_RR_I 0.1
param set FW_RR_IMAX 0.2
param set FW_RR_P 0.08
param set-default FW_PR_IMAX 0.4
param set-default FW_R_TC 0.4
param set-default FW_RR_FF 0.5
param set-default FW_RR_I 0.1
param set-default FW_RR_IMAX 0.2
param set-default FW_RR_P 0.08
param set MIS_LTRMIN_ALT 50
param set MIS_TAKEOFF_ALT 3
param set-default MIS_LTRMIN_ALT 50
param set-default MIS_TAKEOFF_ALT 3
param set NAV_ACC_RAD 20
param set NAV_DLL_ACT 2
param set NAV_LOITER_RAD 100
param set-default NAV_ACC_RAD 20
param set-default NAV_DLL_ACT 2
param set-default NAV_LOITER_RAD 100
param set RWTO_TKOFF 1
param set-default RWTO_TKOFF 1
param set FW_ARSP_SCALE_EN 0
param set-default FW_ARSP_SCALE_EN 0
param set FW_AIRSPD_MAX 35
param set FW_AIRSPD_MIN 7
param set FW_AIRSPD_TRIM 15
param set-default FW_AIRSPD_MAX 35
param set-default FW_AIRSPD_MIN 7
param set-default FW_AIRSPD_TRIM 15
param set FW_P_LIM_MAX 25
param set FW_P_LIM_MIN -5
param set FW_R_LIM 30
param set-default FW_P_LIM_MAX 25
param set-default FW_P_LIM_MIN -5
param set-default FW_R_LIM 30
param set FW_MAN_P_MAX 30.0
param set FW_MAN_R_MAX 30.0
param set FW_THR_CRUISE 0.8
param set FW_THR_IDLE 0
param set COM_DISARM_PRFLT 0
fi
param set-default FW_MAN_P_MAX 30.0
param set-default FW_MAN_R_MAX 30.0
param set-default FW_THR_CRUISE 0.8
param set-default FW_THR_IDLE 0
param set-default COM_DISARM_PRFLT 0
set MIXER_FILE etc/mixers-sitl/autogyro_sitl.main.mix
set MIXER custom
@@ -9,24 +9,21 @@
. ${R}etc/init.d/rc.mc_defaults
if [ $AUTOCNF = yes ]
then
param set MC_PITCHRATE_P 0.1
param set MC_PITCHRATE_I 0.05
param set MC_PITCH_P 6.0
param set MC_ROLLRATE_P 0.15
param set MC_ROLLRATE_I 0.1
param set MC_ROLL_P 6.0
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_P_ACC 3
param set-default MC_PITCHRATE_P 0.1
param set-default MC_PITCHRATE_I 0.05
param set-default MC_PITCH_P 6.0
param set-default MC_ROLLRATE_P 0.15
param set-default MC_ROLLRATE_I 0.1
param set-default MC_ROLL_P 6.0
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_P_ACC 3
param set RTL_DESCEND_ALT 10
param set-default RTL_DESCEND_ALT 10
param set TRIG_INTERFACE 3
param set TRIG_MODE 4
param set MNT_MODE_IN 4
param set MNT_DO_STAB 2
fi
param set-default TRIG_INTERFACE 3
param set-default TRIG_MODE 4
param set-default MNT_MODE_IN 4
param set-default MNT_DO_STAB 2
set MAV_TYPE 13
@@ -7,27 +7,24 @@
. ${R}etc/init.d/rc.mc_defaults
if [ $AUTOCNF = yes ]
then
param set MC_PITCHRATE_P 0.0800
param set MC_PITCHRATE_I 0.0400
param set MC_PITCHRATE_D 0.0010
param set MC_PITCH_P 9.0
param set MC_ROLLRATE_P 0.0800
param set MC_ROLLRATE_I 0.0400
param set MC_ROLLRATE_D 0.0010
param set MC_ROLL_P 9.0
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_P_ACC 3
param set-default MC_PITCHRATE_P 0.0800
param set-default MC_PITCHRATE_I 0.0400
param set-default MC_PITCHRATE_D 0.0010
param set-default MC_PITCH_P 9.0
param set-default MC_ROLLRATE_P 0.0800
param set-default MC_ROLLRATE_I 0.0400
param set-default MC_ROLLRATE_D 0.0010
param set-default MC_ROLL_P 9.0
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_P_ACC 3
param set RTL_DESCEND_ALT 10
param set-default RTL_DESCEND_ALT 10
param set TRIG_INTERFACE 3
param set TRIG_MODE 4
param set MNT_MODE_IN 4
param set MNT_MODE_OUT 2
param set MAV_PROTO_VER 2
fi
param set-default TRIG_INTERFACE 3
param set-default TRIG_MODE 4
param set-default MNT_MODE_IN 4
param set-default MNT_MODE_OUT 2
param set-default MAV_PROTO_VER 2
set MAV_TYPE 13
@@ -8,66 +8,63 @@
. ${R}etc/init.d/rc.mc_defaults
. ${R}etc/init.d/rc.ctrlalloc
if [ $AUTOCNF = yes ]
then
param set MPC_XY_VEL_I_ACC 4
param set MPC_XY_VEL_P_ACC 3
param set-default MPC_XY_VEL_I_ACC 4
param set-default MPC_XY_VEL_P_ACC 3
param set RTL_DESCEND_ALT 10
param set RTL_LAND_DELAY 0
param set-default RTL_DESCEND_ALT 10
param set-default RTL_LAND_DELAY 0
param set TRIG_INTERFACE 3
param set TRIG_MODE 4
param set MNT_MODE_IN 0
param set MAV_PROTO_VER 2
param set-default TRIG_INTERFACE 3
param set-default TRIG_MODE 4
param set-default MNT_MODE_IN 0
param set-default MAV_PROTO_VER 2
param set MPC_USE_HTE 0
param set-default MPC_USE_HTE 0
param set VM_MASS 2.66
param set VM_INERTIA_XX 0.06
param set VM_INERTIA_YY 0.06
param set VM_INERTIA_ZZ 0.10
param set-default VM_MASS 2.66
param set-default VM_INERTIA_XX 0.06
param set-default VM_INERTIA_YY 0.06
param set-default VM_INERTIA_ZZ 0.10
param set CA_AIRFRAME 0
param set CA_METHOD 1
param set CA_ACT0_MIN 0.0
param set CA_ACT1_MIN 0.0
param set CA_ACT2_MIN 0.0
param set CA_ACT3_MIN 0.0
param set CA_ACT4_MIN 0.0
param set CA_ACT5_MIN 0.0
param set CA_ACT0_MAX 1.0
param set CA_ACT1_MAX 1.0
param set CA_ACT2_MAX 1.0
param set CA_ACT3_MAX 1.0
param set CA_ACT4_MAX 1.0
param set CA_ACT5_MAX 1.0
param set-default CA_AIRFRAME 0
param set-default CA_METHOD 1
param set-default CA_ACT0_MIN 0.0
param set-default CA_ACT1_MIN 0.0
param set-default CA_ACT2_MIN 0.0
param set-default CA_ACT3_MIN 0.0
param set-default CA_ACT4_MIN 0.0
param set-default CA_ACT5_MIN 0.0
param set-default CA_ACT0_MAX 1.0
param set-default CA_ACT1_MAX 1.0
param set-default CA_ACT2_MAX 1.0
param set-default CA_ACT3_MAX 1.0
param set-default CA_ACT4_MAX 1.0
param set-default CA_ACT5_MAX 1.0
param set CA_MC_R0_PX 0.0
param set CA_MC_R0_PY 1.0
param set CA_MC_R0_CT 9.5
param set CA_MC_R0_KM -0.05
param set CA_MC_R1_PX 0.0
param set CA_MC_R1_PY -1.0
param set CA_MC_R1_CT 9.5
param set CA_MC_R1_KM 0.05
param set CA_MC_R2_PX 0.866025
param set CA_MC_R2_PY -0.5
param set CA_MC_R2_CT 9.5
param set CA_MC_R2_KM -0.05
param set CA_MC_R3_PX -0.866025
param set CA_MC_R3_PY 0.5
param set CA_MC_R3_CT 9.5
param set CA_MC_R3_KM 0.05
param set CA_MC_R4_PX 0.866025
param set CA_MC_R4_PY 0.5
param set CA_MC_R4_CT 9.5
param set CA_MC_R4_KM 0.05
param set CA_MC_R5_PX -0.866025
param set CA_MC_R5_PY -0.5
param set CA_MC_R5_CT 9.5
param set CA_MC_R5_KM -0.05
fi
param set-default CA_MC_R0_PX 0.0
param set-default CA_MC_R0_PY 1.0
param set-default CA_MC_R0_CT 9.5
param set-default CA_MC_R0_KM -0.05
param set-default CA_MC_R1_PX 0.0
param set-default CA_MC_R1_PY -1.0
param set-default CA_MC_R1_CT 9.5
param set-default CA_MC_R1_KM 0.05
param set-default CA_MC_R2_PX 0.866025
param set-default CA_MC_R2_PY -0.5
param set-default CA_MC_R2_CT 9.5
param set-default CA_MC_R2_KM -0.05
param set-default CA_MC_R3_PX -0.866025
param set-default CA_MC_R3_PY 0.5
param set-default CA_MC_R3_CT 9.5
param set-default CA_MC_R3_KM 0.05
param set-default CA_MC_R4_PX 0.866025
param set-default CA_MC_R4_PY 0.5
param set-default CA_MC_R4_CT 9.5
param set-default CA_MC_R4_KM 0.05
param set-default CA_MC_R5_PX -0.866025
param set-default CA_MC_R5_PY -0.5
param set-default CA_MC_R5_CT 9.5
param set-default CA_MC_R5_KM -0.05
set MAV_TYPE 13
@@ -0,0 +1,32 @@
#!/bin/sh
# shellcheck disable=SC2154
udp_offboard_port_local=$((14580+px4_instance))
udp_offboard_port_remote=$((14540+px4_instance))
[ $px4_instance -gt 9 ] && udp_offboard_port_remote=14549 # use the same ports for more than 10 instances to avoid port overlaps
udp_onboard_payload_port_local=$((14280+px4_instance))
udp_onboard_payload_port_remote=$((14030+px4_instance))
udp_onboard_gimbal_port_local=$((13030+px4_instance))
udp_onboard_gimbal_port_remote=$((13280+px4_instance))
udp_gcs_port_local=$((18570+px4_instance))
# GCS link
mavlink start -x -u $udp_gcs_port_local -r 4000000 -f
mavlink stream -r 50 -s POSITION_TARGET_LOCAL_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s LOCAL_POSITION_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s GLOBAL_POSITION_INT -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_QUATERNION -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_TARGET -u $udp_gcs_port_local
mavlink stream -r 50 -s SERVO_OUTPUT_RAW_0 -u $udp_gcs_port_local
mavlink stream -r 20 -s RC_CHANNELS -u $udp_gcs_port_local
mavlink stream -r 10 -s OPTICAL_FLOW_RAD -u $udp_gcs_port_local
# API/Offboard link
mavlink start -x -u $udp_offboard_port_local -r 4000000 -f -m onboard -o $udp_offboard_port_remote
# Onboard link to camera
mavlink start -x -u $udp_onboard_payload_port_local -r 4000 -f -m onboard -o $udp_onboard_payload_port_remote
# Onboard link to gimbal
mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -m gimbal -o $udp_onboard_gimbal_port_remote
@@ -0,0 +1,5 @@
#!/bin/sh
# shellcheck disable=SC2154
#param set MAV_SYS_ID $((px4_instance+1))
#param set IMU_INTEG_RATE 250
@@ -0,0 +1,20 @@
#!/bin/sh
# shellcheck disable=SC2154
simulator_tcp_port=$((4560+px4_instance))
# Check if PX4_SIM_HOSTNAME environment variable is empty
# If empty check if PX4_SIM_HOST_ADDR environment variable is empty
# If both are empty use localhost for simulator
if [ -z "${PX4_SIM_HOSTNAME}" ]; then
if [ -z "${PX4_SIM_HOST_ADDR}" ]; then
echo "PX4 SIM HOST: localhost"
simulator start -c $simulator_tcp_port
else
echo "PX4 SIM HOST: $PX4_SIM_HOST_ADDR"
simulator start -t $PX4_SIM_HOST_ADDR $simulator_tcp_port
fi
else
echo "PX4 SIM HOST: $PX4_SIM_HOSTNAME"
simulator start -h $PX4_SIM_HOSTNAME $simulator_tcp_port
fi
+15 -40
View File
@@ -5,7 +5,8 @@
# shellcheck disable=SC1091
. px4-alias.sh
SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)"
#search path for sourcing px4-rc.*
PATH="$PATH:${R}etc/init.d-posix"
#
# Main SITL startup script
@@ -45,9 +46,9 @@ else
# Find the matching Autostart ID (file name has the form: [0-9]+_${PX4_SIM_MODEL})
# TODO: unify with rc.autostart generation
# shellcheck disable=SC2012
REQUESTED_AUTOSTART=$(ls "$SCRIPT_DIR/airframes" | sed -n 's/^\([0-9][0-9]*\)_'${PX4_SIM_MODEL}'$/\1/p')
REQUESTED_AUTOSTART=$(ls "${R}etc/init.d-posix/airframes" | sed -n 's/^\([0-9][0-9]*\)_'${PX4_SIM_MODEL}'$/\1/p')
if [ -z "$REQUESTED_AUTOSTART" ]; then
echo "Error: Unknown model $PX4_SIM_MODEL (not found by name on $SCRIPT_DIR/airframes)"
echo "Error: Unknown model $PX4_SIM_MODEL (not found by name on ${R}etc/init.d-posix/airframes)"
exit 1
else
echo "Info: found model autostart file as SYS_AUTOSTART=$REQUESTED_AUTOSTART"
@@ -98,21 +99,12 @@ then
set AUTOCNF yes
# Wipe out params except RC*, flight modes, total flight time, accel cal, gyro cal, next flight UUID
param reset_all SYS_AUTOSTART SYS_AUTOCONFIG RC* COM_FLTMODE* LND_FLIGHT_T_* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT_UUID
param reset_all SYS_AUTO* RC* COM_FLTMODE* LND_FLIGHT* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT*
fi
# multi-instance setup
# shellcheck disable=SC2154
param set MAV_SYS_ID $((px4_instance+1))
simulator_tcp_port=$((4560+px4_instance))
udp_offboard_port_local=$((14580+px4_instance))
udp_offboard_port_remote=$((14540+px4_instance))
[ $px4_instance -gt 9 ] && udp_offboard_port_remote=14549 # use the same ports for more than 10 instances to avoid port overlaps
udp_onboard_payload_port_local=$((14280+px4_instance))
udp_onboard_payload_port_remote=$((14030+px4_instance))
udp_onboard_gimbal_port_local=$((13030+px4_instance))
udp_onboard_gimbal_port_remote=$((13280+px4_instance))
udp_gcs_port_local=$((18570+px4_instance))
if [ $AUTOCNF = yes ]
then
@@ -177,6 +169,10 @@ if [ -n "$PX4_SIM_SPEED_FACTOR" ]; then
COM_OF_LOSS_T_LONGER=$(echo "$PX4_SIM_SPEED_FACTOR * 0.5" | bc)
echo "COM_OF_LOSS_T set to $COM_OF_LOSS_T_LONGER"
param set COM_OF_LOSS_T $COM_OF_LOSS_T_LONGER
COM_OBC_LOSS_T_LONGER=$(echo "$PX4_SIM_SPEED_FACTOR * 5.0" | bc)
echo "COM_OBC_LOSS_T set to $COM_OBC_LOSS_T_LONGER"
param set COM_OBC_LOSS_T $COM_OBC_LOSS_T_LONGER
fi
# Autostart ID
@@ -212,11 +208,14 @@ fi
# Simulator IMU data provided at 250 Hz
param set IMU_INTEG_RATE 250
#user defined params for instances can be in PATH
. px4-rc.params
dataman start
# only start the simulator if not in replay mode, as both control the lockstep time
if ! replay tryapplyparams
then
simulator start -c $simulator_tcp_port
. px4-rc.simulator
fi
load_mon start
battery_simulator start
@@ -254,32 +253,8 @@ fi
#
. ${R}etc/init.d/rc.vehicle_setup
if [ -e etc/init.d-posix/rc.mavlink_override ]
then
echo "Running non-default mavlink config rc.mavlink_override"
sh etc/init.d-posix/rc.mavlink_override
else
# GCS link
mavlink start -x -u $udp_gcs_port_local -r 4000000 -f
mavlink stream -r 50 -s POSITION_TARGET_LOCAL_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s LOCAL_POSITION_NED -u $udp_gcs_port_local
mavlink stream -r 50 -s GLOBAL_POSITION_INT -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_QUATERNION -u $udp_gcs_port_local
mavlink stream -r 50 -s ATTITUDE_TARGET -u $udp_gcs_port_local
mavlink stream -r 50 -s SERVO_OUTPUT_RAW_0 -u $udp_gcs_port_local
mavlink stream -r 20 -s RC_CHANNELS -u $udp_gcs_port_local
mavlink stream -r 10 -s OPTICAL_FLOW_RAD -u $udp_gcs_port_local
# API/Offboard link
mavlink start -x -u $udp_offboard_port_local -r 4000000 -f -m onboard -o $udp_offboard_port_remote
# Onboard link to camera
mavlink start -x -u $udp_onboard_payload_port_local -r 4000 -f -m onboard -o $udp_onboard_payload_port_remote
# Onboard link to gimbal
mavlink start -x -u $udp_onboard_gimbal_port_local -r 400000 -m gimbal -o $udp_onboard_gimbal_port_remote
fi
#user defined mavlink streams for instances can be in PATH
. px4-rc.mavlink
# execute autostart post script if any
[ -e "$autostart_file".post ] && . "$autostart_file".post
@@ -14,7 +14,7 @@
. ${R}etc/init.d/rc.vtol_defaults
param set-default PWM_AUX_DISARMED 1000
param set-default PWM_AUX_DISARM 1000
param set-default PWM_AUX_MAX 2000
param set-default PWM_AUX_MIN 1000
param set-default PWM_AUX_RATE 50
@@ -112,7 +112,7 @@ param set-default MPC_YAWRAUTO_MAX 20
param set-default NAV_DLL_ACT 0
param set-default NAV_LOITER_RAD 100
param set-default PWM_AUX_DISARMED 950
param set-default PWM_AUX_DISARM 950
param set-default PWM_MAIN_DIS5 1500
param set-default PWM_MAIN_DIS6 1500
@@ -111,5 +111,6 @@ set MAV_TYPE 22
set MIXER babyshark
set MIXER_AUX pass
# Mark outputs for the alternate rate
# or D-Shot
set PWM_OUT 5678
set PWM_AUX_OUT 1234
@@ -31,7 +31,7 @@ set VEHICLE_TYPE mc
param set-default NAV_ACC_RAD 2
param set-default PWM_AUX_RATE 400
param set-default PWM_AUX_DISARMED 900
param set-default PWM_AUX_DISARM 900
param set-default PWM_AUX_MIN 1075
param set-default PWM_AUX_MAX 1950
@@ -33,7 +33,7 @@ param set-default MC_YAW_P 4
param set-default NAV_ACC_RAD 2
param set-default PWM_AUX_DISARMED 950
param set-default PWM_AUX_DISARM 950
param set-default PWM_AUX_RATE 50
param set-default PWM_MAIN_MIN 1100
param set-default PWM_MAIN_MAX 1900
@@ -16,8 +16,6 @@
set MIXER quad_x
set PWM_OUT 1234
set PARAM_DEFAULTS_VER 2
param set-default BAT_N_CELLS 4
@@ -7,8 +7,6 @@
# @type Rover
# @class Rover
#
# @board px4_fmu-v2 exclude
#
# @output MAIN0 Speed of left wheels
# @output MAIN1 Speed of right wheels
#
@@ -16,6 +16,8 @@ param set-default COM_POS_FS_EPV 30
param set-default COM_POS_FS_GAIN 0
param set-default COM_POS_FS_PROB 1
param set-default COM_VEL_FS_EVH 5
# Disable preflight disarm to not interfere with external launching
param set-default COM_DISARM_PRFLT -1
param set-default EKF2_ARSP_THR 8
param set-default EKF2_FUSE_BETA 1
+11 -1
View File
@@ -108,11 +108,18 @@ then
vl53l1x start -X
fi
# ADIS16448 spi external IMU
if param compare -s SENS_EN_ADIS164X 1
then
adis16448 -S start
fi
# probe for optional external I2C devices
if param compare SENS_EXT_I2C_PRB 1
then
icm20948_i2c_passthrough -X -q start
# compasses
ak09916 -X -R 6 -q start # external AK09916 (Here2) is rotated 270 degrees yaw
hmc5883 -T -X -q start
ist8308 -X -q start
ist8310 -X -q start
@@ -121,6 +128,9 @@ then
qmc5883l -X -q start
rm3100 -X -q start
# start last (wait for possible icm20948 passthrough mode)
ak09916 -X -q start
# differential pressure sensors
if [ ${VEHICLE_TYPE} = fw -o ${VEHICLE_TYPE} = vtol ]
then
@@ -23,6 +23,7 @@ param set-default MPC_XY_ERR_MAX 5
param set-default MPC_XY_VEL_MAX 4
param set-default MPC_Z_VEL_MAX_DN 1.5
param set-default MPC_JERK_MAX 4.5
param set-default MPC_YAW_MODE 4
param set-default NAV_ACC_RAD 3
+32 -58
View File
@@ -51,12 +51,6 @@ set STARTUP_TUNE 1
set USE_IO no
set VEHICLE_TYPE none
# Airframe parameter versioning: airframe maintainers can set this in the
# airframe startup script, and then increase it by one whenever an airframe
# parameter is updated - it will ensure that these parameters will be updated
# when the firmware is flashed.
set PARAM_DEFAULTS_VER 1
#
# Mount the procfs.
#
@@ -171,12 +165,8 @@ else
#
if param greater SYS_AUTOCONFIG 0
then
if param compare SYS_AUTOCONFIG 1
then
# Wipe out params except RC*, flight modes, total flight time, calibration parameters, next flight UUID
param reset_all SYS_AUTO* RC* COM_FLTMODE* LND_FLIGHT* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT* SYS_PARAM_VER
fi
# Wipe out params except RC*, flight modes, total flight time, calibration parameters, next flight UUID
param reset_all SYS_AUTO* RC* COM_FLTMODE* LND_FLIGHT* TC_* CAL_ACC* CAL_GYRO* COM_FLIGHT*
set AUTOCNF yes
fi
@@ -239,14 +229,6 @@ else
rgbled start -X -q
rgbled_ncp5623c start -X -q
if param greater -s LIGHT_EN_BLINKM 0
then
if blinkm start -X
then
blinkm systemstate
fi
fi
#
# Set parameters and env variables for selected AUTOSTART.
#
@@ -272,6 +254,34 @@ else
param set SYS_AUTOCONFIG 0
fi
#
# Check if UAVCAN is enabled, default to it for ESCs.
#
if param greater -s UAVCAN_ENABLE 0
then
# Start core UAVCAN module.
if uavcan start
then
if param greater UAVCAN_ENABLE 1
then
# Start UAVCAN firmware update server and dynamic node ID allocation server.
uavcan start fw
tune_control play -t 1
if param greater UAVCAN_ENABLE 2
then
set OUTPUT_MODE uavcan_esc
fi
fi
else
tune_control play error
fi
else
if param greater -s UAVCAN_V1_ENABLE 0
then
uavcan_v1 start
fi
fi
#
# Check if PX4IO present and update firmware if needed.
# Assumption IOFW set to firmware file and IO_PRESENT = no
@@ -303,6 +313,8 @@ else
else
tune_control play -t 18 # tune 18 = PROG_PX4IO_ERR
fi
else
tune_control stop
fi
fi
fi
@@ -414,34 +426,6 @@ else
camera_feedback start
fi
#
# Check if UAVCAN is enabled, default to it for ESCs.
#
if param greater -s UAVCAN_ENABLE 0
then
# Start core UAVCAN module.
if uavcan start
then
if param greater UAVCAN_ENABLE 1
then
# Start UAVCAN firmware update server and dynamic node ID allocation server.
uavcan start fw
tune_control play -t 1
if param greater UAVCAN_ENABLE 2
then
set OUTPUT_MODE uavcan_esc
fi
fi
else
tune_control play error
fi
fi
if param greater -s UAVCAN_V1_ENABLE 0
then
uavcan_v1 start
fi
#
# Optional board mavlink streams: rc.board_mavlink
#
@@ -570,15 +554,6 @@ else
fi
fi
if ! param compare SYS_PARAM_VER ${PARAM_DEFAULTS_VER}
then
echo "Switched to different parameter version. Resetting parameters."
param set SYS_PARAM_VER ${PARAM_DEFAULTS_VER}
param set SYS_AUTOCONFIG 2
param save
reboot
fi
#
# End of autostart.
#
@@ -603,7 +578,6 @@ unset MIXER
unset MIXER_AUX
unset MIXER_FILE
unset OUTPUT_MODE
unset PARAM_DEFAULTS_VER
unset PARAM_FILE
unset PWM_AUX_OUT
unset PWM_AUX_RATE
+1 -1
View File
@@ -59,7 +59,7 @@ if [ ! -f $HOOK_FILE ] && [ "$CI" != "true" ]; then
fi
fi
${DIR}/files_to_check_code_style.sh | xargs -n 1 -P 8 -I % ${DIR}/check_code_style.sh %
${DIR}/files_to_check_code_style.sh | xargs -P 8 -I % ${DIR}/check_code_style.sh %
if [ $? -eq 0 ]; then
echo "Format checks passed"
+13
View File
@@ -0,0 +1,13 @@
custom_data_source: {
name: "bloaty_static_ram"
base_data_source: "sections"
rewrite: {
pattern: "^\\.bss"
replacement: "ram"
}
rewrite: {
pattern: "^\\.data"
replacement: "ram"
}
}
+3 -5
View File
@@ -2,10 +2,7 @@
if [ -z ${PX4_DOCKER_REPO+x} ]; then
echo "guessing PX4_DOCKER_REPO based on input";
if [[ $@ =~ .*px4_fmu.* ]]; then
# nuttx-px4fmu-v{1,2,3,4,5}
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2021-02-04"
elif [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*pilotpi.default ]]; then
if [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*pilotpi.default ]]; then
# beaglebone_blue_default, emlid_navio2_default, px4_raspberrypi_default, scumaker_pilotpi_default
PX4_DOCKER_REPO="px4io/px4-dev-armhf:2021-02-04"
elif [[ $@ =~ .*pilotpi.arm64 ]]; then
@@ -30,7 +27,7 @@ fi
# otherwise default to nuttx
if [ -z ${PX4_DOCKER_REPO+x} ]; then
PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2020-09-14"
PX4_DOCKER_REPO="ghcr.io/px4/px4-dev:2021-05-06"
fi
# docker hygiene
@@ -67,4 +64,5 @@ docker run -it --rm -w "${SRC_DIR}" \
--publish 14556:14556/udp \
--volume=${CCACHE_DIR}:${CCACHE_DIR}:rw \
--volume=${SRC_DIR}:${SRC_DIR}:rw \
-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -h $HOSTNAME
${PX4_DOCKER_REPO} /bin/bash -c "$1 $2 $3"
+96 -52
View File
@@ -1,4 +1,4 @@
#! /usr/bin/env python
#! /usr/bin/env python3
from __future__ import print_function
@@ -7,6 +7,7 @@ import os
import math
import matplotlib.pyplot as plt
import numpy as np
import scipy as sp
from pyulog import *
@@ -63,6 +64,9 @@ def resampleWithDeltaX(x,y):
return resampledX,resampledY
def median_filter(data):
return sp.signal.medfilt(data, 31)
parser = argparse.ArgumentParser(description='Reads in IMU data from a static thermal calibration test and performs a curve fit of gyro, accel and baro bias vs temperature')
parser.add_argument('filename', metavar='file.ulg', help='ULog input file')
parser.add_argument('--no_resample', dest='noResample', action='store_const',
@@ -184,12 +188,16 @@ if num_gyros >= 1 and not math.isnan(sensor_gyro_0['temperature'][0]):
temp_rel_resample = np.linspace(gyro_0_params['TC_G0_TMIN']-gyro_0_params['TC_G0_TREF'], gyro_0_params['TC_G0_TMAX']-gyro_0_params['TC_G0_TREF'], 100)
temp_resample = temp_rel_resample + gyro_0_params['TC_G0_TREF']
sensor_gyro_0['x'] = median_filter(sensor_gyro_0['x'])
sensor_gyro_0['y'] = median_filter(sensor_gyro_0['y'])
sensor_gyro_0['z'] = median_filter(sensor_gyro_0['z'])
# fit X axis
if noResample:
coef_gyro_0_x = np.polyfit(temp_rel,sensor_gyro_0['x'],3)
coef_gyro_0_x = np.polyfit(temp_rel, sensor_gyro_0['x'], 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_0['x'])
coef_gyro_0_x = np.polyfit(temp, sens ,3)
temp, sens = resampleWithDeltaX(temp_rel, sensor_gyro_0['x'])
coef_gyro_0_x = np.polyfit(temp, sens, 3)
gyro_0_params['TC_G0_X3_0'] = coef_gyro_0_x[0]
gyro_0_params['TC_G0_X2_0'] = coef_gyro_0_x[1]
@@ -200,10 +208,10 @@ if num_gyros >= 1 and not math.isnan(sensor_gyro_0['temperature'][0]):
# fit Y axis
if noResample:
coef_gyro_0_y = np.polyfit(temp_rel,sensor_gyro_0['y'],3)
coef_gyro_0_y = np.polyfit(temp_rel, sensor_gyro_0['y'], 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_0['y'])
coef_gyro_0_y = np.polyfit(temp, sens ,3)
coef_gyro_0_y = np.polyfit(temp, sens, 3)
gyro_0_params['TC_G0_X3_1'] = coef_gyro_0_y[0]
gyro_0_params['TC_G0_X2_1'] = coef_gyro_0_y[1]
@@ -214,9 +222,9 @@ if num_gyros >= 1 and not math.isnan(sensor_gyro_0['temperature'][0]):
# fit Z axis
if noResample:
coef_gyro_0_z = np.polyfit(temp_rel,sensor_gyro_0['z'],3)
coef_gyro_0_z = np.polyfit(temp_rel, sensor_gyro_0['z'],3)
else:
temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_0['z'])
temp, sens = resampleWithDeltaX(temp_rel, sensor_gyro_0['z'])
coef_gyro_0_z = np.polyfit(temp, sens ,3)
gyro_0_params['TC_G0_X3_2'] = coef_gyro_0_z[0]
@@ -292,6 +300,10 @@ if num_gyros >= 2 and not math.isnan(sensor_gyro_1['temperature'][0]):
temp_rel_resample = np.linspace(gyro_1_params['TC_G1_TMIN']-gyro_1_params['TC_G1_TREF'], gyro_1_params['TC_G1_TMAX']-gyro_1_params['TC_G1_TREF'], 100)
temp_resample = temp_rel_resample + gyro_1_params['TC_G1_TREF']
sensor_gyro_1['x'] = median_filter(sensor_gyro_1['x'])
sensor_gyro_1['y'] = median_filter(sensor_gyro_1['y'])
sensor_gyro_1['z'] = median_filter(sensor_gyro_1['z'])
# fit X axis
if noResample:
coef_gyro_1_x = np.polyfit(temp_rel,sensor_gyro_1['x'],3)
@@ -400,6 +412,10 @@ if num_gyros >= 3 and not math.isnan(sensor_gyro_2['temperature'][0]):
temp_rel_resample = np.linspace(gyro_2_params['TC_G2_TMIN']-gyro_2_params['TC_G2_TREF'], gyro_2_params['TC_G2_TMAX']-gyro_2_params['TC_G2_TREF'], 100)
temp_resample = temp_rel_resample + gyro_2_params['TC_G2_TREF']
sensor_gyro_2['x'] = median_filter(sensor_gyro_2['x'])
sensor_gyro_2['y'] = median_filter(sensor_gyro_2['y'])
sensor_gyro_2['z'] = median_filter(sensor_gyro_2['z'])
# fit X axis
if noResample:
coef_gyro_2_x = np.polyfit(temp_rel,sensor_gyro_2['x'],3)
@@ -416,10 +432,10 @@ if num_gyros >= 3 and not math.isnan(sensor_gyro_2['temperature'][0]):
# fit Y axis
if noResample:
coef_gyro_2_y = np.polyfit(temp_rel,sensor_gyro_2['y'],3)
coef_gyro_2_y = np.polyfit(temp_rel, sensor_gyro_2['y'], 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_2['y'])
coef_gyro_2_y = np.polyfit(temp, sens ,3)
temp, sens = resampleWithDeltaX(temp_rel, sensor_gyro_2['y'])
coef_gyro_2_y = np.polyfit(temp, sens, 3)
gyro_2_params['TC_G2_X3_1'] = coef_gyro_2_y[0]
gyro_2_params['TC_G2_X2_1'] = coef_gyro_2_y[1]
@@ -430,10 +446,10 @@ if num_gyros >= 3 and not math.isnan(sensor_gyro_2['temperature'][0]):
# fit Z axis
if noResample:
coef_gyro_2_z = np.polyfit(temp_rel,sensor_gyro_2['z'],3)
coef_gyro_2_z = np.polyfit(temp_rel,sensor_gyro_2['z'], 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,sensor_gyro_2['z'])
coef_gyro_2_z = np.polyfit(temp, sens ,3)
coef_gyro_2_z = np.polyfit(temp, sens, 3)
gyro_2_params['TC_G2_X3_2'] = coef_gyro_2_z[0]
gyro_2_params['TC_G2_X2_2'] = coef_gyro_2_z[1]
@@ -508,8 +524,12 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
temp_rel_resample = np.linspace(gyro_3_params['TC_G3_TMIN']-gyro_3_params['TC_G3_TREF'], gyro_3_params['TC_G3_TMAX']-gyro_3_params['TC_G3_TREF'], 100)
temp_resample = temp_rel_resample + gyro_3_params['TC_G3_TREF']
sensor_gyro_3['x'] = median_filter(sensor_gyro_3['x'])
sensor_gyro_3['y'] = median_filter(sensor_gyro_3['y'])
sensor_gyro_3['z'] = median_filter(sensor_gyro_3['z'])
# fit X axis
coef_gyro_3_x = np.polyfit(temp_rel,sensor_gyro_3['x'],3)
coef_gyro_3_x = np.polyfit(temp_rel,sensor_gyro_3['x'], 3)
gyro_3_params['TC_G3_X3_0'] = coef_gyro_3_x[0]
gyro_3_params['TC_G3_X2_0'] = coef_gyro_3_x[1]
gyro_3_params['TC_G3_X1_0'] = coef_gyro_3_x[2]
@@ -518,7 +538,7 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
gyro_3_x_resample = fit_coef_gyro_3_x(temp_rel_resample)
# fit Y axis
coef_gyro_3_y = np.polyfit(temp_rel,sensor_gyro_3['y'],3)
coef_gyro_3_y = np.polyfit(temp_rel,sensor_gyro_3['y'], 3)
gyro_3_params['TC_G3_X3_1'] = coef_gyro_3_y[0]
gyro_3_params['TC_G3_X2_1'] = coef_gyro_3_y[1]
gyro_3_params['TC_G3_X1_1'] = coef_gyro_3_y[2]
@@ -527,7 +547,7 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
gyro_3_y_resample = fit_coef_gyro_3_y(temp_rel_resample)
# fit Z axis
coef_gyro_3_z = np.polyfit(temp_rel,sensor_gyro_3['z'],3)
coef_gyro_3_z = np.polyfit(temp_rel,sensor_gyro_3['z'], 3)
gyro_3_params['TC_G3_X3_2'] = coef_gyro_3_z[0]
gyro_3_params['TC_G3_X2_2'] = coef_gyro_3_z[1]
gyro_3_params['TC_G3_X1_2'] = coef_gyro_3_z[2]
@@ -540,8 +560,8 @@ if num_gyros >= 4 and not math.isnan(sensor_gyro_3['temperature'][0]):
# draw plots
plt.subplot(3,1,1)
plt.plot(sensor_gyro_3['temperature'],sensor_gyro_3['x'],'b')
plt.plot(temp_resample,gyro_3_x_resample,'r')
plt.plot(sensor_gyro_3['temperature'],sensor_gyro_3['x'], 'b')
plt.plot(temp_resample,gyro_3_x_resample, 'r')
plt.title('Gyro 2 ({}) Bias vs Temperature'.format(gyro_3_params['TC_G3_ID']))
plt.ylabel('X bias (rad/s)')
plt.xlabel('temperature (degC)')
@@ -601,13 +621,17 @@ if num_accels >= 1 and not math.isnan(sensor_accel_0['temperature'][0]):
temp_rel_resample = np.linspace(accel_0_params['TC_A0_TMIN']-accel_0_params['TC_A0_TREF'], accel_0_params['TC_A0_TMAX']-accel_0_params['TC_A0_TREF'], 100)
temp_resample = temp_rel_resample + accel_0_params['TC_A0_TREF']
sensor_accel_0['x'] = median_filter(sensor_accel_0['x'])
sensor_accel_0['y'] = median_filter(sensor_accel_0['y'])
sensor_accel_0['z'] = median_filter(sensor_accel_0['z'])
# fit X axis
correction_x = sensor_accel_0['x'] - np.median(sensor_accel_0['x'])
if noResample:
coef_accel_0_x = np.polyfit(temp_rel,correction_x,3)
coef_accel_0_x = np.polyfit(temp_rel,correction_x, 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,correction_x)
coef_accel_0_x = np.polyfit(temp, sens ,3)
coef_accel_0_x = np.polyfit(temp, sens, 3)
accel_0_params['TC_A0_X3_0'] = coef_accel_0_x[0]
accel_0_params['TC_A0_X2_0'] = coef_accel_0_x[1]
@@ -617,12 +641,12 @@ if num_accels >= 1 and not math.isnan(sensor_accel_0['temperature'][0]):
correction_x_resample = fit_coef_accel_0_x(temp_rel_resample)
# fit Y axis
correction_y = sensor_accel_0['y']-np.median(sensor_accel_0['y'])
correction_y = sensor_accel_0['y'] - np.median(sensor_accel_0['y'])
if noResample:
coef_accel_0_y = np.polyfit(temp_rel,correction_y,3)
coef_accel_0_y = np.polyfit(temp_rel, correction_y, 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,correction_y)
coef_accel_0_y = np.polyfit(temp, sens ,3)
coef_accel_0_y = np.polyfit(temp, sens, 3)
accel_0_params['TC_A0_X3_1'] = coef_accel_0_y[0]
accel_0_params['TC_A0_X2_1'] = coef_accel_0_y[1]
@@ -632,12 +656,12 @@ if num_accels >= 1 and not math.isnan(sensor_accel_0['temperature'][0]):
correction_y_resample = fit_coef_accel_0_y(temp_rel_resample)
# fit Z axis
correction_z = sensor_accel_0['z']-np.median(sensor_accel_0['z'])
correction_z = sensor_accel_0['z'] - np.median(sensor_accel_0['z'])
if noResample:
coef_accel_0_z = np.polyfit(temp_rel,correction_z,3)
coef_accel_0_z = np.polyfit(temp_rel,correction_z, 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,correction_z)
coef_accel_0_z = np.polyfit(temp, sens ,3)
coef_accel_0_z = np.polyfit(temp, sens, 3)
accel_0_params['TC_A0_X3_2'] = coef_accel_0_z[0]
accel_0_params['TC_A0_X2_2'] = coef_accel_0_z[1]
@@ -712,13 +736,17 @@ if num_accels >= 2 and not math.isnan(sensor_accel_1['temperature'][0]):
temp_rel_resample = np.linspace(accel_1_params['TC_A1_TMIN']-accel_1_params['TC_A1_TREF'], accel_1_params['TC_A1_TMAX']-accel_1_params['TC_A1_TREF'], 100)
temp_resample = temp_rel_resample + accel_1_params['TC_A1_TREF']
sensor_accel_1['x'] = median_filter(sensor_accel_1['x'])
sensor_accel_1['y'] = median_filter(sensor_accel_1['y'])
sensor_accel_1['z'] = median_filter(sensor_accel_1['z'])
# fit X axis
correction_x = sensor_accel_1['x']-np.median(sensor_accel_1['x'])
correction_x = sensor_accel_1['x'] - np.median(sensor_accel_1['x'])
if noResample:
coef_accel_1_x = np.polyfit(temp_rel,correction_x,3)
coef_accel_1_x = np.polyfit(temp_rel, correction_x, 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,correction_x)
coef_accel_1_x = np.polyfit(temp, sens ,3)
temp, sens = resampleWithDeltaX(temp_rel, correction_x)
coef_accel_1_x = np.polyfit(temp, sens, 3)
accel_1_params['TC_A1_X3_0'] = coef_accel_1_x[0]
accel_1_params['TC_A1_X2_0'] = coef_accel_1_x[1]
@@ -728,7 +756,7 @@ if num_accels >= 2 and not math.isnan(sensor_accel_1['temperature'][0]):
correction_x_resample = fit_coef_accel_1_x(temp_rel_resample)
# fit Y axis
correction_y = sensor_accel_1['y']-np.median(sensor_accel_1['y'])
correction_y = sensor_accel_1['y'] - np.median(sensor_accel_1['y'])
if noResample:
coef_accel_1_y = np.polyfit(temp_rel,correction_y,3)
else:
@@ -743,12 +771,12 @@ if num_accels >= 2 and not math.isnan(sensor_accel_1['temperature'][0]):
correction_y_resample = fit_coef_accel_1_y(temp_rel_resample)
# fit Z axis
correction_z = (sensor_accel_1['z'])-np.median(sensor_accel_1['z'])
correction_z = sensor_accel_1['z'] - np.median(sensor_accel_1['z'])
if noResample:
coef_accel_1_z = np.polyfit(temp_rel,correction_z,3)
coef_accel_1_z = np.polyfit(temp_rel,correction_z, 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,correction_z)
coef_accel_1_z = np.polyfit(temp, sens ,3)
coef_accel_1_z = np.polyfit(temp, sens, 3)
accel_1_params['TC_A1_X3_2'] = coef_accel_1_z[0]
accel_1_params['TC_A1_X2_2'] = coef_accel_1_z[1]
@@ -824,13 +852,17 @@ if num_accels >= 3 and not math.isnan(sensor_accel_2['temperature'][0]):
temp_rel_resample = np.linspace(accel_2_params['TC_A2_TMIN']-accel_2_params['TC_A2_TREF'], accel_2_params['TC_A2_TMAX']-accel_2_params['TC_A2_TREF'], 100)
temp_resample = temp_rel_resample + accel_2_params['TC_A2_TREF']
sensor_accel_2['x'] = median_filter(sensor_accel_2['x'])
sensor_accel_2['y'] = median_filter(sensor_accel_2['y'])
sensor_accel_2['z'] = median_filter(sensor_accel_2['z'])
# fit X axis
correction_x = sensor_accel_2['x']-np.median(sensor_accel_2['x'])
correction_x = sensor_accel_2['x'] - np.median(sensor_accel_2['x'])
if noResample:
coef_accel_2_x = np.polyfit(temp_rel,correction_x,3)
coef_accel_2_x = np.polyfit(temp_rel,correction_x, 3)
else:
temp, sens = resampleWithDeltaX(temp_rel,correction_x)
coef_accel_2_x = np.polyfit(temp, sens ,3)
temp, sens = resampleWithDeltaX(temp_rel, correction_x)
coef_accel_2_x = np.polyfit(temp, sens, 3)
accel_2_params['TC_A2_X3_0'] = coef_accel_2_x[0]
accel_2_params['TC_A2_X2_0'] = coef_accel_2_x[1]
@@ -840,7 +872,7 @@ if num_accels >= 3 and not math.isnan(sensor_accel_2['temperature'][0]):
correction_x_resample = fit_coef_accel_2_x(temp_rel_resample)
# fit Y axis
correction_y = sensor_accel_2['y']-np.median(sensor_accel_2['y'])
correction_y = sensor_accel_2['y'] - np.median(sensor_accel_2['y'])
if noResample:
coef_accel_2_y = np.polyfit(temp_rel,correction_y,3)
else:
@@ -855,7 +887,7 @@ if num_accels >= 3 and not math.isnan(sensor_accel_2['temperature'][0]):
correction_y_resample = fit_coef_accel_2_y(temp_rel_resample)
# fit Z axis
correction_z = sensor_accel_2['z']-np.median(sensor_accel_2['z'])
correction_z = sensor_accel_2['z'] - np.median(sensor_accel_2['z'])
if noResample:
coef_accel_2_z = np.polyfit(temp_rel,correction_z,3)
else:
@@ -935,9 +967,13 @@ if num_accels >= 4 and not math.isnan(sensor_accel_3['temperature'][0]):
temp_rel_resample = np.linspace(accel_3_params['TC_A3_TMIN']-accel_3_params['TC_A3_TREF'], accel_3_params['TC_A3_TMAX']-accel_3_params['TC_A3_TREF'], 100)
temp_resample = temp_rel_resample + accel_3_params['TC_A3_TREF']
sensor_accel_3['x'] = median_filter(sensor_accel_3['x'])
sensor_accel_3['y'] = median_filter(sensor_accel_3['y'])
sensor_accel_3['z'] = median_filter(sensor_accel_3['z'])
# fit X axis
correction_x = sensor_accel_3['x']-np.median(sensor_accel_3['x'])
coef_accel_3_x = np.polyfit(temp_rel,correction_x,3)
correction_x = sensor_accel_3['x'] - np.median(sensor_accel_3['x'])
coef_accel_3_x = np.polyfit(temp_rel, correction_x, 3)
accel_3_params['TC_A3_X3_0'] = coef_accel_3_x[0]
accel_3_params['TC_A3_X2_0'] = coef_accel_3_x[1]
accel_3_params['TC_A3_X1_0'] = coef_accel_3_x[2]
@@ -946,8 +982,8 @@ if num_accels >= 4 and not math.isnan(sensor_accel_3['temperature'][0]):
correction_x_resample = fit_coef_accel_3_x(temp_rel_resample)
# fit Y axis
correction_y = sensor_accel_3['y']-np.median(sensor_accel_3['y'])
coef_accel_3_y = np.polyfit(temp_rel,correction_y,3)
correction_y = sensor_accel_3['y'] - np.median(sensor_accel_3['y'])
coef_accel_3_y = np.polyfit(temp_rel, correction_y, 3)
accel_3_params['TC_A3_X3_1'] = coef_accel_3_y[0]
accel_3_params['TC_A3_X2_1'] = coef_accel_3_y[1]
accel_3_params['TC_A3_X1_1'] = coef_accel_3_y[2]
@@ -956,8 +992,8 @@ if num_accels >= 4 and not math.isnan(sensor_accel_3['temperature'][0]):
correction_y_resample = fit_coef_accel_3_y(temp_rel_resample)
# fit Z axis
correction_z = sensor_accel_3['z']-np.median(sensor_accel_3['z'])
coef_accel_3_z = np.polyfit(temp_rel,correction_z,3)
correction_z = sensor_accel_3['z'] - np.median(sensor_accel_3['z'])
coef_accel_3_z = np.polyfit(temp_rel, correction_z, 3)
accel_3_params['TC_A3_X3_2'] = coef_accel_3_z[0]
accel_3_params['TC_A3_X2_2'] = coef_accel_3_z[1]
accel_3_params['TC_A3_X1_2'] = coef_accel_3_z[2]
@@ -1024,8 +1060,10 @@ temp_rel = sensor_baro_0['temperature'] - baro_0_params['TC_B0_TREF']
temp_rel_resample = np.linspace(baro_0_params['TC_B0_TMIN']-baro_0_params['TC_B0_TREF'], baro_0_params['TC_B0_TMAX']-baro_0_params['TC_B0_TREF'], 100)
temp_resample = temp_rel_resample + baro_0_params['TC_B0_TREF']
sensor_baro_0['pressure'] = median_filter(sensor_baro_0['pressure'])
# fit data
median_pressure = np.median(sensor_baro_0['pressure']);
median_pressure = np.median(sensor_baro_0['pressure'])
if noResample:
coef_baro_0_x = np.polyfit(temp_rel,100*(sensor_baro_0['pressure']-median_pressure),5) # convert from hPa to Pa
else:
@@ -1081,8 +1119,10 @@ if num_baros >= 2:
temp_rel_resample = np.linspace(baro_1_params['TC_B1_TMIN']-baro_1_params['TC_B1_TREF'], baro_1_params['TC_B1_TMAX']-baro_1_params['TC_B1_TREF'], 100)
temp_resample = temp_rel_resample + baro_1_params['TC_B1_TREF']
sensor_baro_1['pressure'] = median_filter(sensor_baro_1['pressure'])
# fit data
median_pressure = np.median(sensor_baro_1['pressure']);
median_pressure = np.median(sensor_baro_1['pressure'])
if noResample:
coef_baro_1_x = np.polyfit(temp_rel,100*(sensor_baro_1['pressure']-median_pressure),5) # convert from hPa to Pa
else:
@@ -1099,7 +1139,7 @@ if num_baros >= 2:
baro_1_x_resample = fit_coef_baro_1_x(temp_rel_resample)
# baro 2 vs temperature
plt.figure(9,figsize=(20,13))
plt.figure(10,figsize=(20,13))
# draw plots
plt.plot(sensor_baro_1['temperature'],100*sensor_baro_1['pressure']-100*median_pressure,'b')
@@ -1139,8 +1179,10 @@ if num_baros >= 3:
temp_rel_resample = np.linspace(baro_2_params['TC_B2_TMIN']-baro_2_params['TC_B2_TREF'], baro_2_params['TC_B2_TMAX']-baro_2_params['TC_B2_TREF'], 100)
temp_resample = temp_rel_resample + baro_2_params['TC_B2_TREF']
sensor_baro_2['pressure'] = median_filter(sensor_baro_2['pressure'])
# fit data
median_pressure = np.median(sensor_baro_2['pressure']);
median_pressure = np.median(sensor_baro_2['pressure'])
if noResample:
coef_baro_2_x = np.polyfit(temp_rel,100*(sensor_baro_2['pressure']-median_pressure),5) # convert from hPa to Pa
else:
@@ -1157,7 +1199,7 @@ if num_baros >= 3:
baro_2_x_resample = fit_coef_baro_2_x(temp_rel_resample)
# baro 2 vs temperature
plt.figure(10,figsize=(20,13))
plt.figure(11,figsize=(20,13))
# draw plots
plt.plot(sensor_baro_2['temperature'],100*sensor_baro_2['pressure']-100*median_pressure,'b')
@@ -1197,6 +1239,8 @@ if num_baros >= 4:
temp_rel_resample = np.linspace(baro_3_params['TC_B3_TMIN']-baro_3_params['TC_B3_TREF'], baro_3_params['TC_B3_TMAX']-baro_3_params['TC_B3_TREF'], 100)
temp_resample = temp_rel_resample + baro_3_params['TC_B3_TREF']
sensor_baro_3['pressure'] = median_filter(sensor_baro_3['pressure'])
# fit data
median_pressure = np.median(sensor_baro_3['pressure'])
coef_baro_3_x = np.polyfit(temp_rel,100*(sensor_baro_3['pressure']-median_pressure),5) # convert from hPa to Pa
@@ -1210,7 +1254,7 @@ if num_baros >= 4:
baro_3_x_resample = fit_coef_baro_3_x(temp_rel_resample)
# baro 3 vs temperature
plt.figure(11,figsize=(20,13))
plt.figure(12,figsize=(20,13))
# draw plots
plt.plot(sensor_baro_3['temperature'],100*sensor_baro_3['pressure']-100*median_pressure,'b')
+2
View File
@@ -98,6 +98,8 @@ class ParameterGroup(object):
return "Boat"
elif (self.name == "Balloon"):
return "Balloon"
elif (self.name == "Vectored 6 DOF UUV"):
return "Vectored6DofUUV"
return "AirframeUnknown"
def GetParams(self):
+6 -81
View File
@@ -190,7 +190,6 @@ if rc_serial_output_dir is None and serial_params_output_file is None:
serial_commands = []
ethernet_configuration = []
additional_params = ""
additional_ethernet_params = ""
if ethernet_supported:
ethernet_configuration.append({
@@ -211,7 +210,7 @@ def parse_yaml_serial_config(yaml_config):
ret.append(serial_config)
return ret
def parse_yaml_parameters_config(yaml_config):
def parse_yaml_parameters_config(yaml_config, ethernet_supported):
""" parse the parameters section from the yaml config file """
if 'parameters' not in yaml_config:
return ''
@@ -224,79 +223,7 @@ def parse_yaml_parameters_config(yaml_config):
param_group = parameters_section.get('group', None)
for param_name in definitions:
param = definitions[param_name]
if 'ethernet' in param:
continue
num_instances = param.get('num_instances', 1)
instance_start = param.get('instance_start', 0) # offset
# get the type and extract all tags
tags = '@group {:}'.format(param_group)
if param['type'] == 'enum':
param_type = 'INT32'
for key in param['values']:
tags += '\n * @value {:} {:}'.format(key, param['values'][key])
elif param['type'] == 'boolean':
param_type = 'INT32'
tags += '\n * @boolean'
elif param['type'] == 'int32':
param_type = 'INT32'
elif param['type'] == 'float':
param_type = 'FLOAT'
else:
raise Exception("unknown param type {:}".format(param['type']))
for tag in ['decimal', 'increment', 'category', 'volatile', 'bit',
'min', 'max', 'unit', 'reboot_required']:
if tag in param:
tags += '\n * @{:} {:}'.format(tag, param[tag])
for i in range(num_instances):
# default value
default_value = 0
if 'default' in param:
# default can be a list of num_instances or a single value
if type(param['default']) == list:
assert len(param['default']) == num_instances
default_value = param['default'][i]
else:
default_value = param['default']
if type(default_value) == bool:
default_value = int(default_value)
# output the existing C-style format
ret += '''
/**
* {short_descr}
*
* {long_descr}
*
* {tags}
*/
PARAM_DEFINE_{param_type}({name}, {default_value});
'''.format(short_descr=param['description']['short'].replace("\n", "\n * "),
long_descr=param['description']['long'].replace("\n", "\n * "),
tags=tags,
param_type=param_type,
name=param_name,
default_value=default_value,
).replace('${i}', str(i+instance_start))
return ret
def parse_yaml_ethernet_parameters_config(yaml_config):
""" parse the parameters section from the yaml config file """
if 'parameters' not in yaml_config:
return ''
parameters_section_list = yaml_config['parameters']
for parameters_section in parameters_section_list:
if 'definitions' not in parameters_section:
return ''
definitions = parameters_section['definitions']
ret = ''
param_group = parameters_section.get('group', None)
for param_name in definitions:
param = definitions[param_name]
if 'ethernet' not in param:
if param.get('requires_ethernet', False) and not ethernet_supported:
continue
num_instances = param.get('num_instances', 1)
instance_start = param.get('instance_start', 0) # offset
@@ -362,9 +289,8 @@ for yaml_file in args.config_files:
serial_commands.extend(parse_yaml_serial_config(yaml_config))
# TODO: additional params should be parsed in a separate script
additional_params += parse_yaml_parameters_config(yaml_config)
if ethernet_supported:
additional_ethernet_params += parse_yaml_ethernet_parameters_config(yaml_config)
additional_params += parse_yaml_parameters_config(
yaml_config, ethernet_supported)
except yaml.YAMLError as exc:
print(exc)
@@ -429,7 +355,7 @@ for serial_command in serial_commands:
'default_port': default_port,
'param_group': port_config['group'],
'description_extended': port_config.get('description_extended', ''),
'ethernet_config': serial_command.get('ethernet', 'none')
'supports_networking': serial_command.get('supports_networking', False)
})
if verbose:
@@ -473,6 +399,5 @@ if serial_params_output_file is not None:
fid.write(template.render(serial_devices=serial_devices,
ethernet_configuration=ethernet_configuration,
commands=commands, serial_ports=serial_ports,
additional_definitions=additional_params,
additional_ethernet_definitions=additional_ethernet_params))
additional_definitions=additional_params))
+1 -1
View File
@@ -17,9 +17,9 @@ if param compare "$PRT" {{ serial_device.index }}; then
fi
{% endfor %}
{% for config in ethernet_configuration -%}
if param compare "$PRT" {{ config.index }}; then
set SERIAL_DEV ethernet
fi
{% endfor %}
+3 -4
View File
@@ -58,10 +58,11 @@ PARAM_DEFINE_INT32(SER_{{ serial_device.tag }}_BAUD, {{ serial_device.default_ba
{%- for serial_device in serial_devices %}
* @value {{ serial_device.index }} {{ serial_device.label }}
{%- endfor %}
{%- if command.ethernet_config != "none" %}
{%- if command.supports_networking %}
{%- for config in ethernet_configuration %}
* @value {{ config.index }} {{ config.label }}
{%- endfor %}{% endif %}
{%- endfor %}
{%- endif %}
* @group {{ command.param_group }}
* @reboot_required true
*/
@@ -72,5 +73,3 @@ PARAM_DEFINE_INT32({{ command.port_param_name }}, {{ command.default_port }});
{{ additional_definitions }}
{{ additional_ethernet_definitions }}
+11
View File
@@ -0,0 +1,11 @@
.PHONY: docker_build docker_push all
DATE := $(shell date +%Y-%m-%d)
docker_build:
docker build -f Dockerfile -t px4-dev:${DATE} .
docker_push: build
docker push px4io/px4-dev:${DATE}
all: docker_build
Regular → Executable
+1 -2
View File
@@ -155,8 +155,7 @@ if [[ $INSTALL_SIM == "true" ]]; then
# fix VMWare 3D graphics acceleration for gazebo
exportline="export SVGA_VGPU10=0"
if grep -Fxq "$exportline" $HOME/.profile; then
else
if !grep -Fxq "$exportline" $HOME/.profile; then
echo $exportline >> $HOME/.profile;
fi
fi
+27
View File
@@ -0,0 +1,27 @@
#!/bin/bash
# Start virtual X server in the background
# - DISPLAY default is :99, set in dockerfile
# - Users can override with `-e DISPLAY=` in `docker run` command to avoid
# running Xvfb and attach their screen
if [[ -x "$(command -v Xvfb)" && "$DISPLAY" == ":99" ]]; then
echo "Starting Xvfb"
Xvfb :99 -screen 0 1600x1200x24+32 &
fi
# Check if the ROS_DISTRO is passed and use it
# to source the ROS environment
if [ -n "${ROS_DISTRO}" ]; then
source "/opt/ros/$ROS_DISTRO/setup.bash"
fi
# Use the LOCAL_USER_ID if passed in at runtime
if [ -n "${LOCAL_USER_ID}" ]; then
echo "Starting with UID : $LOCAL_USER_ID"
# modify existing user's id
usermod -u $LOCAL_USER_ID user
# run as user
exec gosu user "$@"
else
exec "$@"
fi
+1 -1
View File
@@ -45,7 +45,7 @@ fi
# Python dependencies
echo "Installing PX4 Python3 dependencies"
pip3 install --user -r ${DIR}/requirements.txt
python3 -m pip install --user -r ${DIR}/requirements.txt
# Optional, but recommended additional simulation tools:
if [[ $INSTALL_SIM == "--sim-tools" ]]; then
+6 -4
View File
@@ -1,24 +1,26 @@
argcomplete
argparse>=1.2
argparse
cerberus
coverage
empy>=3.3
jinja2>=2.8
jsonschema
kconfiglib
matplotlib>=3.0.*
numpy>=1.13
nunavut
nunavut>=1.1.0
packaging
pandas>=0.21
pkgconfig
psutil
pygments
wheel>=0.31.1
pymavlink
pyros-genmsg
pyserial>=3.0
pyulog>=0.5.0
pyyaml
requests
serial
setuptools>=39.2.0
six>=1.12.0
toml>=0.9
wheel>=0.31.1
+31 -34
View File
@@ -31,10 +31,9 @@ done
# detect if running in docker
if [ -f /.dockerenv ]; then
echo "Running within docker, installing initial dependencies";
apt-get --quiet -y update && DEBIAN_FRONTEND=noninteractive apt-get --quiet -y install \
apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
ca-certificates \
gnupg \
lsb-core \
gosu \
sudo \
wget \
;
@@ -53,7 +52,7 @@ fi
# check ubuntu version
# otherwise warn and point to docker?
UBUNTU_RELEASE="`lsb_release -rs`"
UBUNTU_RELEASE=$(cat /etc/os-release | grep VERSION_ID | cut -d "\"" -f 2)
if [[ "${UBUNTU_RELEASE}" == "14.04" ]]; then
echo "Ubuntu 14.04 is no longer supported"
@@ -63,16 +62,18 @@ elif [[ "${UBUNTU_RELEASE}" == "16.04" ]]; then
exit 1
elif [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then
echo "Ubuntu 18.04"
elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then
echo "Ubuntu 20.04"
fi
echo
echo "Installing PX4 general dependencies"
sudo apt-get update -y --quiet
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
sudo apt-get -qq update
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
astyle \
build-essential \
ccache \
@@ -93,20 +94,23 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends i
python3-wheel \
rsync \
shellcheck \
unzip \
zip \
;
if [[ "${UBUNTU_RELEASE}" == "16.04" ]]; then
echo "Installing Ubuntu 16.04 PX4-compatible ccache version"
wget -O /tmp/ccache_3.4.1-1_amd64.deb http://launchpadlibrarian.net/356662933/ccache_3.4.1-1_amd64.deb
wget -q -O /tmp/ccache_3.4.1-1_amd64.deb http://launchpadlibrarian.net/356662933/ccache_3.4.1-1_amd64.deb
sudo dpkg -i /tmp/ccache_3.4.1-1_amd64.deb
fi
# Python3 dependencies
echo
echo "Installing PX4 Python3 dependencies"
python3 -m pip install --user -r ${DIR}/requirements.txt
if [ -f /.dockerenv ]; then
# system wide for docker
python3 -m pip install -r ${DIR}/requirements.txt
else
python3 -m pip install --user --quiet -r ${DIR}/requirements.txt
fi
# NuttX toolchain (arm-none-eabi-gcc)
if [[ $INSTALL_NUTTX == "true" ]]; then
@@ -114,17 +118,11 @@ if [[ $INSTALL_NUTTX == "true" ]]; then
echo
echo "Installing NuttX dependencies"
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
autoconf \
automake \
bison \
bzip2 \
file \
flex \
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
g++-multilib \
gcc-multilib \
gdb-multiarch \
gperf \
libncurses-dev \
libtool \
genromfs \
pkg-config \
screen \
vim-common \
@@ -150,7 +148,7 @@ if [[ $INSTALL_NUTTX == "true" ]]; then
else
echo "Installing arm-none-eabi-gcc-${NUTTX_GCC_VERSION}";
wget -O /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/${NUTTX_GCC_VERSION_SHORT}/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-${INSTALL_ARCH}-linux.tar.bz2 && \
wget -q -O /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/${NUTTX_GCC_VERSION_SHORT}/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-${INSTALL_ARCH}-linux.tar.bz2 && \
sudo tar -jxf /tmp/gcc-arm-none-eabi-${NUTTX_GCC_VERSION}-linux.tar.bz2 -C /opt/;
# add arm-none-eabi-gcc to user's PATH
@@ -171,37 +169,36 @@ if [[ $INSTALL_SIM == "true" ]]; then
echo "Installing PX4 simulation dependencies"
# General simulation dependencies
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
bc \
;
if [[ "${UBUNTU_RELEASE}" == "18.04" ]]; then
java_version=11
gazebo_version=9
MAVSDK_VERSION=0.39.0
wget -q "https://github.com/mavlink/MAVSDK/releases/download/v${MAVSDK_VERSION}/mavsdk_{MAVSDK_VERSION})_ubuntu18.04_amd64.deb" -O /tmp/mavsdk.deb && sudo dpkg -i /tmp/mavsdk.deb
elif [[ "${UBUNTU_RELEASE}" == "20.04" ]]; then
java_version=14
gazebo_version=11
MAVSDK_VERSION=0.39.0
wget -q "https://github.com/mavlink/MAVSDK/releases/download/v{MAVSDK_VERSION}/mavsdk_{MAVSDK_VERSION}_ubuntu20.04_amd64.deb" -O /tmp/mavsdk.deb && sudo dpkg -i /tmp/mavsdk.deb
else
java_version=14
gazebo_version=11
fi
# Java (jmavsim or fastrtps)
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
ant \
openjdk-$java_version-jre \
openjdk-$java_version-jdk \
default-jre-headless \
default-jdk-headless \
libvecmath-java \
;
# Set Java 11 as default
sudo update-alternatives --set java $(update-alternatives --list java | grep "java-$java_version")
# Gazebo
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
wget -q http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
# Update list, since new gazebo-stable.list has been added
sudo apt-get update -y --quiet
sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
sudo apt-get update -qq
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y --no-install-recommends install \
dmidecode \
gazebo$gazebo_version \
gstreamer1.0-plugins-bad \
+146 -146
View File
@@ -44,7 +44,7 @@ parser.add_argument('-m', '--modules', action='store',
default='')
logging.basicConfig(level=logging.WARNING)
logging.basicConfig(level=logging.WARNING,format='%(message)s')
log = logging.getLogger()
def get_N_colors(N, s=0.8, v=0.9):
@@ -61,6 +61,9 @@ class PubSub(object):
""" Collects either publication or subscription information for nodes
(modules and topics) & edges """
# special value to signal an ambiguous was found -- don't record this topic, and stop processing.
AMBIGUOUS_SITE_TOPIC = "AMBIGUOUS"
def __init__(self, name, topic_blacklist, regexes):
"""
:param is_publication: if True, publications, False for
@@ -74,13 +77,12 @@ class PubSub(object):
self._topic_blacklist = topic_blacklist
self._regexes = set([ re.compile(regex) for regex in regexes])
def match(self, source_line: str) -> Set[str]:
def match(self, source_line: str) -> str:
""" Extract subscribed/published topics from a source string
:param src_str: string of C/C++ code with comments and whitespace removed
:return: if any topic was found, it is returned as a str. Otherwise, None
:return: if any topic was found, returned as a str. On error, raise on exception. On ambiguous line, return `AMBIGUOUS_SITE_TOPIC`. Otherwise, return `None`
"""
matches = set()
for regex in self._regexes:
# just the matches for this particular pattern:
match = regex.search(source_line)
@@ -88,11 +90,10 @@ class PubSub(object):
if match is None:
continue
# all regexes should contain 2 capture groups
# total_match = match.group(0)
# # all regexes should contain 2 capture groups (or else this code block crashes)
route_group, topic_group = match.groups()
log.debug(f" ####:{self._name}: {route_group}, {topic_group}")
log.debug(" ####:{}: {}, {}".format( self._name, route_group, topic_group))
# # TODO: handle this case... but not sure where, yet
# if match == 'ORB_ID_VEHICLE_ATTITUDE_CONTROLS': # special case
@@ -102,49 +103,31 @@ class PubSub(object):
if route_group:
if route_group == 'ORB_ID':
log.debug(" >>> Found ORB_ID topic: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
break
elif route_group == '<' and topic_group.endswith('_s'):
topic_group = topic_group[:-2]
log.debug(" >>> Found C++ template-declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
# continue processing
elif route_group in ['{','('] and topic_group.endswith('_s'):
topic_group = topic_group[:-2]
log.debug(" >>> Found standard declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
break
return self._filter_topic(topic_group)
elif route_group == '[':
if topic_group.endswith('_s'):
topic_group = topic_group[:-2]
log.debug(" >>> Found array declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
break
else:
# no topic found -- ambiguity -- return an empty set
return set()
elif 'Multi' in route_group and topic_group.endswith('_s'):
topic_group = topic_group[:-2]
log.debug(" >>> Found 'multi' declaration: " + topic_group + " w/regex: " + str(regex.pattern))
self._add_topic(matches, topic_group)
break
if not topic_group:
log.debug(" !! found an ambiguous site => return an empty set")
return PubSub.AMBIGUOUS_SITE_TOPIC
else:
raise SyntaxError('!!! Encountered regex case: `route_group` contains unrecognized value!: '+ route_group+' (::'+str(regex.pattern)+')\n'
+ " ("+ route_group+', '+topic_group +")\n"
+ " " + source_line)
elif route_group.empty() and topic_group.empty():
log.debug('!!! Found ambiguous site, without `ORB_ID` or topic (::'+str(regex.pattern))
return PubSub.AMBIGUOUS_SITE_TOPIC
else:
raise SyntaxError(" !!! unhandled case: unknown-variant: "+route_group+", " + topic_group + " ....from regex: " + str(regex.pattern))
return matches
return None
def _add_topic(self, topic_set: Set[str], topic_name: str):
def _filter_topic(self, topic_name: str) -> str:
""" add topic to set, unless the topic is ignored """
if topic_name in self._topic_blacklist:
log.debug(" XX Ignoring blacklisted topic " + topic_name)
return
return None
else:
return topic_set.add(topic_name)
return topic_name
class Publications(PubSub):
""" Collects topic publication information for scopes """
@@ -189,7 +172,7 @@ class Scope(object):
return self._name
def reduce_ambiguities(self) -> Set[str]:
self.ambiguities = self.ambiguities - self.subscriptions - self.ambiguities
self.ambiguities = self.ambiguities - self.subscriptions - self.publications
return self.dependencies
@property
@@ -225,8 +208,8 @@ class Graph(object):
- topic_blacklist
"""
self._comment_remove_pattern = re.compile( r'//.*?$|/\*.*?\*/|\'(?:\\.|[^\\\'])*\'|"(?:\\.|[^\\"])*"', re.DOTALL | re.MULTILINE)
self._whitespace_pattern = re.compile(r'\s+')
self._scope_blacklist = set(kwargs.get('scope_blacklist',set()))
self._scope_whitelist = set(kwargs.get('scope_whitelist',set()))
@@ -249,28 +232,27 @@ class Graph(object):
self._topic_colors = {} # key = topic, value = color (html string)
# note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace
# note: the regexes should have at least 3 capture groups '()'; otherwise they break downstream code
capture_cases_sub = [r"\borb_subscribe(?:_multi|)\b\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"(?:uORB::)Subscription(?:Interval|)\s+\w+\s*[\{\(]\s*(ORB_ID)\s*\(\s*(\w+)",
r"(?:uORB::)Subscription(?:Data|MultiArray|Blocking|)\s*(<)\s*(\w+)",
r"(?:uORB::)SubscriptionCallbackWorkItem\s+\w+\s*\{\s*this,\s*(ORB_ID)\((\w+)",
# note: the regexes should 2 capture groups '()' to correctly register with downstream code
capture_cases_sub = [r"orb_subscribe\w*\((ORB_ID)(?:\(|::)(\w+)",
r"orb_copy\((ORB_ID)(?:\(|::)(\w+)",
r"Subscription\w*(?:<[^>]+>|)\w*(?:\[[^]]+\]|)[\{\(](ORB_ID)(?:\(|::)(\w+)",
r"SubscriptionCallbackWorkItem\w+\{this,(ORB_ID)(?:\(|::)(\w+)",
]
self._subscriptions = Subscriptions( self._topic_blacklist, capture_cases_sub)
# note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace
# note: the regexes should have at least 3 capture groups '()'; otherwise they break downstream code
capture_cases_pub = [r"(?:uORB::)Publication(?:Data|Multi|)\s*(<)(\w+)>",
r"orb_advertise(?:_multi|_queue|_multi_queue|)\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"orb_publish(?:_auto|)\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"(?:uORB::)Publication(?:Data|Multi|)\s*<\w+>\s+\w+\s*[\(\{](ORB_ID)\((\w+)"
# note: the regexes should 2 capture groups '()' to correctly register with downstream code
capture_cases_pub = [r"orb_advertise(?:_multi|_queue|_multi_queue|)\((ORB_ID)(?:\(|::)(\w+)",
r"orb_publish(?:_auto|)\((ORB_ID)(?:\(|::)(\w+)",
r"Publication\w*<\w+>\w+(?:\[[^]]+\]|)[\(\{]*(ORB_ID)(?:\(|::)(\w+)",
]
self._publications = Publications( self._topic_blacklist, capture_cases_pub)
# note: the source-file-string is pre-processed to remove whitespace -- regexes should ignore whitespace
# note: the regexes should have at least 3 capture groups '()'; otherwise they break downstream code
capture_cases_ambiguous = [ r"orb_copy\s*\(\s*(ORB_ID)\s*\(\s*(\w+)",
r"(?:uORB::)Subscription[^\s]*\s+\w+\s*(\[)\s*\w+\s*\]()",
r"(ORB_ID)\s*\(\s*(\w+)",
# note: the regexes should 2 capture groups '()' to correctly register with downstream code
capture_cases_ambiguous = [ r"Publication\w*(?:\<\w+\>|)\w+(\[)()",
r"Subscription\w*(?:\<\w+\>|)\w+(\[)()",
r"(ORB_ID)(?:\(|::)(\w+)",
]
self._ambiguities = Ambiguities( self._topic_blacklist, capture_cases_ambiguous)
@@ -279,7 +261,7 @@ class Graph(object):
return None
return self._current_scope[-1]
def build(self, src_path_list, path_blacklist=[], **kwargs):
def build(self, src_path_list, **kwargs):
""" parse the source tree & extract pub/sub information.
:param use_topic_pubsub_union: if true, use all topics that have a
publisher or subscriber. If false, use only topics with at least one
@@ -288,7 +270,8 @@ class Graph(object):
fill in self._module_subsciptions & self._module_publications
"""
self._path_blacklist = [os.path.normpath(p) for p in path_blacklist]
self._path_blacklist = set([ os.path.normpath(p) for p in kwargs.get('path_blacklist',[]) ])
for path in src_path_list:
log.info("## Add src path: " + path )
@@ -296,9 +279,9 @@ class Graph(object):
# Summarize the found counts: (all topics are defined in 'dependency' library)
log.info('### Summary: Total Scanned:')
log.info(' Libraries Count: '+str(len(self._found_libraries)))
log.info(' Modules Count: '+str(len(self._found_modules)))
log.info(' Warnings Count: '+str(len(self._warnings)))
log.info(' Library Count: '+str(len(self._found_libraries)))
log.info(' Module Count: '+str(len(self._found_modules)))
log.info(' Warning Count: '+str(len(self._warnings)))
if kwargs['merge_depends']:
graph.merge_depends()
@@ -307,18 +290,21 @@ class Graph(object):
self._generate_print_lists(use_topic_pubsub_union=kwargs['use_topic_pubsub_union'], merge_depends=kwargs['merge_depends'])
# Summarize the found counts:
print(' ### Summary (in-scope):')
print(' Ambiguous Count: '+str(len(self._print_ambiguities)))
print(' Scope Count: '+str(len(self._print_scopes)))
print(' Topics Count: '+str(len(self._print_topics)))
print(' Warnings Count: '+str(len(self._warnings)))
log.info('### Summary (in-scope):')
log.info(' Scope Count: '+str(len(self._print_scopes)))
log.info(' Ambiguous Topics: '+str(len(self._print_ambiguities)))
log.info(' Linked Topics: '+str(len(self._print_topics)))
log.info(' Warnings: '+str(len(self._warnings)))
if 0 < len(self._warnings):
# print out the list of warning-sites:
log.info('## Warning Sites:')
for w in self._warnings:
scope_name = 'no-scope'
if None is not w[0]:
scope_name = w[0].name
# warnings tuple contains: (current_scope, file_name, line_number, line)
log.info(" -['{}']:{:<64s}:{} = {}".format(w[0].name, w[1].lstrip('/.'), w[2], w[3] ))
log.info(" -['{}']:{:<64s}:{} = {}".format(scope_name, w[1].lstrip('/.'), w[2], w[3] ))
# initialize colors
color_list = get_N_colors(len(self._print_topics), 0.7, 0.85)
@@ -334,9 +320,8 @@ class Graph(object):
published_topics = set()
ambiguous_topics = set()
# gather all possible modules...
# all_scopes = self._found_libraries | self._found_modules # Python 3.9 or greater
all_scopes = { **self._found_libraries, **self._found_modules } # Python 3.5 or greater
# gather all found scopes:
all_scopes = { **self._found_libraries, **self._found_modules }
if 0 == len(self._scope_whitelist):
select_scopes = self._found_modules
@@ -346,27 +331,28 @@ class Graph(object):
if scope_name in all_scopes:
select_scopes[scope_name] = all_scopes[scope_name]
if not isinstance(select_scopes, dict) or 0 == len(select_scopes):
raise TypeError("'select_scopes' should be a set!! aborting.")
log.error("!! No requested modules not found -- exiting.")
sys.exit(0)
log.debug(f' >> Condensing found topics: scope -> total')
log.debug('### Condensing found topics: scope -> total')
for name,scope in select_scopes.items():
log.debug(f' @@ Scope: {name}')
log.debug(' # Scope: '+ name )
log.debug(f' ## Subs: {name}')
for topic in scope.subscriptions:
log.debug(f' - {topic}')
log.debug(' ## Subs: ' + str(len(scope.subscriptions)))
for topic in sorted(scope.subscriptions):
log.debug(' - ' + topic)
subscribed_topics.add(topic)
log.debug(f' ## Pubs: {name}')
for topic in scope.publications:
log.debug(f' - {topic}')
log.debug(' ## Pubs: ' + str(len(scope.publications)))
for topic in sorted(scope.publications):
log.debug(' - ' + topic )
published_topics.add(topic)
scope.reduce_ambiguities()
log.debug(f' ## Ambiguities: {name}')
for topic in scope.ambiguities:
log.debug(f' - {topic}')
log.debug(' ## Ambiguities: ' + str(len(scope.ambiguities)))
for topic in sorted(scope.ambiguities):
log.debug(' - ' + topic )
ambiguous_topics.add(topic)
# filter modules iff they have at least a subscription or a publication
@@ -400,11 +386,11 @@ class Graph(object):
entries = os.listdir(path)
# check if entering a new module
# check if entering a new scope
cmake_file = 'CMakeLists.txt'
new_module = False
new_scope = False
if cmake_file in entries:
new_module = self._extract_build_information(os.path.join(path, cmake_file), **kwargs)
new_scope = self._extract_build_information(os.path.join(path, cmake_file), **kwargs)
# iterate directories recursively
for entry in entries:
@@ -414,23 +400,23 @@ class Graph(object):
# iterate source files
# Note: Skip all entries if we're not in a module -- both finding known pubs/subs and emitting warnings
if (0 == len(self._scope_whitelist)) or (0 < len(self._current_scope)) and (self._current_scope[-1].name in self._scope_whitelist):
for entry in entries:
file_name = os.path.join(path, entry)
if os.path.isfile(file_name):
_, ext = os.path.splitext(file_name)
if ext in ['.cpp', '.c', '.h', '.hpp']:
self._process_source_file(file_name)
# Note: Skip all entries if we're not in a scope -- both finding known pubs/subs and emitting warnings
for entry in entries:
file_name = os.path.join(path, entry)
if os.path.isfile(file_name):
_, ext = os.path.splitext(file_name)
if ext in ['.cpp', '.c', '.h', '.hpp']:
self._process_source_file(file_name)
if new_module:
if new_scope:
self._current_scope.pop()
def _extract_build_information(self, file_name, **kwargs):
""" extract the module name from a CMakeLists.txt file and store
in self._current_scope if there is any """
""" extract the module or library name from a CMakeLists.txt file and store
in self._current_scope if there is any
Also records dependencies, if any are specified.
"""
datafile = open(file_name)
found_module_def = False
@@ -496,52 +482,59 @@ class Graph(object):
current_scope = self._get_current_scope()
if current_scope:
if current_scope.name in self._scope_blacklist:
return
elif current_scope.name == 'uorb_tests': # skip this
return
elif current_scope.name == 'uorb':
if current_scope is None:
return # ignore declarations outside of a declared module
elif current_scope.name in self._scope_blacklist:
return
elif current_scope.name == 'uorb_tests': # skip this
return
elif current_scope.name == 'uorb':
# search and validate the ORB_ID_VEHICLE_ATTITUDE_CONTROLS define
matches = self._orb_id_vehicle_attitude_controls_re.findall(content)
for match in matches:
if match != 'ORB_ID('+self._orb_id_vehicle_attitude_controls_topic:
# if we land here, you need to change _orb_id_vehicle_attitude_controls_topic
raise Exception(
'The extracted define for ORB_ID_VEHICLE_ATTITUDE_CONTROLS '
'is '+match+' but expected ORB_ID('+
self._orb_id_vehicle_attitude_controls_topic)
# search and validate the ORB_ID_VEHICLE_ATTITUDE_CONTROLS define
matches = self._orb_id_vehicle_attitude_controls_re.findall(content)
for match in matches:
if match != 'ORB_ID('+self._orb_id_vehicle_attitude_controls_topic:
# if we land here, you need to change _orb_id_vehicle_attitude_controls_topic
raise Exception(
'The extracted define for ORB_ID_VEHICLE_ATTITUDE_CONTROLS '
'is '+match+' but expected ORB_ID('+
self._orb_id_vehicle_attitude_controls_topic)
return # skip uorb module for the rest
return # skip uorb module for the rest
line_number = 0
for line in content.splitlines():
for full_line in content.splitlines():
line_number += 1
pub_topics = self._publications.match(line)
for each_topic in pub_topics:
current_scope.publications.add(each_topic)
if pub_topics:
continue
short_line = re.sub(self._whitespace_pattern, '', full_line)
sub_topics = self._subscriptions.match(line)
for each_topic in sub_topics:
current_scope.subscriptions.add(each_topic)
if sub_topics:
continue
topic = self._publications.match(short_line)
if topic:
if current_scope:
current_scope.publications.add(topic)
continue
else:
raise AssertionError("Encountered Publication topic outside of any scope! " + file_name + " Aborting!")
ambi_topics = self._ambiguities.match(line)
for each_topic in ambi_topics:
current_scope.ambiguities.add(each_topic)
self._warnings.append((current_scope, file_name, line_number, line))
topic = self._subscriptions.match(short_line)
if topic:
if current_scope:
current_scope.subscriptions.add(topic)
continue
else:
raise AssertionError("Encountered Subscription topic outside of any scope! " + file_name + " Aborting!")
topic = self._ambiguities.match(short_line)
if topic:
if current_scope:
if topic != PubSub.AMBIGUOUS_SITE_TOPIC:
current_scope.ambiguities.add(topic)
self._warnings.append((current_scope, file_name, line_number, full_line))
continue
else:
raise AssertionError("Encountered Ambiguous topic outside of any scope! " + file_name + " Aborting!")
def _in_scope(self, scope_name = None):
if 0 == len(self._scope_whitelist):
return True
elif 0 < len(self._current_scope):
if 0 < len(self._current_scope):
if None is scope_name:
scope_name = self._current_scope[-1].name
if scope_name in self._scope_whitelist:
@@ -550,8 +543,10 @@ class Graph(object):
return False
def merge_depends(self):
log.info('### Merge Depends:')
for modname,module in self._found_modules.items():
if self._in_scope(modname):
if modname in self._scope_whitelist or 0==len(self._scope_whitelist):
for depname in module.dependencies:
if depname in self._found_libraries:
dep = self._found_libraries[depname]
@@ -730,33 +725,38 @@ if "__main__" == __name__:
topic_blacklist = [ 'parameter_update', 'mavlink_log', 'log_message' ]
print('Excluded topics: '+str(topic_blacklist))
# ignore certain modules; for any reason
scope_blacklist = []
if scope_blacklist:
print('Excluded Modules: '+str(topic_blacklist))
if len(args.modules) == 0:
scope_whitelist = []
else:
scope_whitelist = [ m.strip() for m in args.modules.split(',')]
scope_whitelist = set(scope_whitelist)
graph = Graph(scope_whitelist=scope_whitelist, scope_blacklist=scope_blacklist, topic_blacklist=topic_blacklist)
graph = Graph(scope_whitelist=scope_whitelist, topic_blacklist=topic_blacklist)
# if no source paths are supplied, guess that we're in the project root, and apply it to the entire 'src/' tree
if len(args.src_path) == 0:
args.src_path = ['src']
if not os.path.exists(args.src_path[0]):
print(f" !?could not find source directory: {args.src_path[0]}")
script_path = os.path.dirname(os.path.realpath(__file__))
args.src_path[0] = os.path.realpath(os.path.join( script_path, '..', '..', 'src' ))
print(f" >> guessing at path: {args.src_path[0]}")
# transcribe only the source paths that actually exist:
source_paths = []
for path in args.src_path:
if not os.path.exists(path):
print(f" !?could not find source directory: {path} -- please check path!")
print(f" Exiting.")
if os.path.exists(path):
source_paths.append(path)
else:
log.warn("Could not find path: " + path)
graph.build(args.src_path, args.exclude_path, use_topic_pubsub_union=args.use_topic_union, merge_depends=args.merge_depends)
if 0 == len(source_paths):
print("!! None of the source directories were valid -- Exiting.")
sys.exit(-1)
# ignore certain paths
path_blacklist = ['src/lib/parameters/']
if 0 < len(args.exclude_path):
path_blacklist = args.exclude_path
if path_blacklist:
print('Excluded Path: '+str(path_blacklist))
graph.build(source_paths, path_blacklist=path_blacklist, use_topic_pubsub_union=args.use_topic_union, merge_depends=args.merge_depends)
if args.output == 'json':
output_json = OutputJSON(graph)
+22 -15
View File
@@ -8,13 +8,13 @@ px4_add_board(
ARCHITECTURE cortex-m4
CONSTRAINED_MEMORY
ROMFSROOT px4fmu_common
TESTING
UAVCAN_INTERFACES 1
SERIAL_PORTS
GPS1:/dev/ttyS3
TEL1:/dev/ttyS1
TEL2:/dev/ttyS2
DRIVERS
adc/ads1115
adc/board_adc
barometer # all available barometer drivers
batt_smbus
@@ -26,18 +26,18 @@ px4_add_board(
gps
#heater
#imu # all available imu drivers
imu/invensense/icm20948 # required for ak09916 mag
imu/l3gd20
imu/lsm303d
imu/invensense/mpu6000
imu/invensense/mpu6500
irlock
lights/blinkm
lights/rgbled
#lights/rgbled_ncp5623c
lights # all available light drivers
magnetometer # all available magnetometer drivers
optical_flow # all available optical flow drivers
#osd
osd
pca9685
pca9685_pwm_out
power_monitor/ina226
#protocol_splitter
pwm_input
@@ -45,8 +45,8 @@ px4_add_board(
pwm_out
rc_input
roboclaw
rpm
telemetry # all available telemetry drivers
test_ppm
tone_alarm
uavcan
MODULES
@@ -57,6 +57,7 @@ px4_add_board(
commander
dataman
ekf2
esc_battery
events
flight_mode_manager
fw_att_control
@@ -73,12 +74,15 @@ px4_add_board(
mc_hover_thrust_estimator
mc_pos_control
mc_rate_control
#micrortps_bridge
navigator
rc_update
rover_pos_control
sensors
sih
temperature_compensation
uuv_att_control
uuv_pos_control
vmount
vtol_att_control
SYSTEMCMDS
@@ -86,6 +90,7 @@ px4_add_board(
#dmesg
dumpfile
esc_calib
gpio
hardfault_log
i2cdetect
led_control
@@ -101,8 +106,8 @@ px4_add_board(
reboot
reflect
sd_bench
serial_test
system_time
tests # tests and test runner
top
topic_listener
tune_control
@@ -112,13 +117,15 @@ px4_add_board(
work_queue
EXAMPLES
fake_gps
fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
hello
hwtest # Hardware test
#fake_gyro
#fake_magnetometer
#fixedwing_control # Tutorial code from https://px4.io/dev/example_fixedwing_control
#hello
#hwtest # Hardware test
#matlab_csv_serial
px4_mavlink_debug # Tutorial code from http://dev.px4.io/en/debug/debug_values.html
px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html
rover_steering_control # Rover example app
uuv_example_app
work_item
#px4_mavlink_debug # Tutorial code from http://dev.px4.io/en/debug/debug_values.html
#px4_simple_app # Tutorial code from http://dev.px4.io/en/apps/hello_sky.html
#rover_steering_control # Rover example app
#uuv_example_app
#work_item
)
@@ -101,6 +101,7 @@ CONFIG_NSH_DISABLE_IFCONFIG=y
CONFIG_NSH_DISABLE_IFUPDOWN=y
CONFIG_NSH_DISABLE_MB=y
CONFIG_NSH_DISABLE_MH=y
CONFIG_NSH_DISABLE_MW=y
CONFIG_NSH_DISABLE_TELNETD=y
CONFIG_NSH_LINELEN=128
CONFIG_NSH_MAXARGUMENTS=15
@@ -81,6 +81,7 @@ CONFIG_NSH_DISABLE_IFCONFIG=y
CONFIG_NSH_DISABLE_IFUPDOWN=y
CONFIG_NSH_DISABLE_MB=y
CONFIG_NSH_DISABLE_MH=y
CONFIG_NSH_DISABLE_MW=y
CONFIG_NSH_DISABLE_TELNETD=y
CONFIG_NSH_LINELEN=128
CONFIG_NSH_MAXARGUMENTS=15
-2
View File
@@ -39,7 +39,6 @@ px4_add_board(
VENDOR atlflight
MODEL eagle
LABEL default
#TESTING
TOOLCHAIN arm-linux-gnueabihf
ROMFSROOT px4fmu_common
DRIVERS
@@ -108,7 +107,6 @@ px4_add_board(
sd_bench
shutdown
system_time
#tests # tests and test runner
#top
topic_listener
tune_control
+1 -1
View File
@@ -49,7 +49,7 @@ px4_add_board(
imu/invensense/mpu9250
#magnetometer/hmc5883
qshell/qurt
spektrum_rc
snapdragon_spektrum_rc
MODULES
airspeed_selector
attitude_estimator_q
-2
View File
@@ -39,7 +39,6 @@ px4_add_board(
VENDOR atlflight
MODEL excelsior
LABEL default
#TESTING
TOOLCHAIN arm-oemllib32-linux-gnueabi
DRIVERS
#barometer # all available barometer drivers
@@ -106,7 +105,6 @@ px4_add_board(
sd_bench
shutdown
system_time
#tests # tests and test runner
#top
topic_listener
tune_control

Some files were not shown because too many files have changed in this diff Show More