Commit Graph

27398 Commits

Author SHA1 Message Date
Daniel Agar 414f9f81d9 move fake GPS to standalone module 2021-02-20 14:13:36 -05:00
Silvan Fuhrer 0ea8104344 select single system-wide wind estimate message (current best)
- publish wind estimate only from EKF, and wind speeds from airspeed selector to new separate topic (airspeed_wind)
 - rename message wind_estimate to wind
 - publish wind from currently used ekf instance (ekf2selector)

Signed-off-by: Silvan Fuhrer <silvan@auterion.com>
2021-02-20 13:15:01 -05:00
jciberlin 9d65e9a980 ghst: keep the previous values for channels that are not updated
Keep the previous values for channels that are not updated (ghost protocol). Add new test data for ghost protocol.
2021-02-20 11:29:57 +01:00
jciberlin 96c72a5657 RCTest: add tests for ghost protocol
Add tests for ghost protocol
2021-02-20 11:29:57 +01:00
Juraj Ciberlin c0f7429f8c ghst: use memcpy instead of for loop
PR review, ghost protocol, use memcpy instead of for loop

Co-authored-by: Beat Küng <beat-kueng@gmx.net>
2021-02-20 11:29:57 +01:00
jciberlin 64342f568d Ghost protocol
ghst: add ghost protocol
2021-02-20 11:29:57 +01:00
Daniel Agar 711a69854b uthash: move remaining utarray usage to parameters and delete unused
- this is to discourage further use until utarray can be dropped entirely
2021-02-20 11:28:22 +01:00
Daniel Agar 9ed959402e mavlink: store instances in array
- simplify mavlink header writes that go back through the mavlink module
 - add locking around mavlink command line usage (start, stop, status, etc)
2021-02-20 11:28:22 +01:00
Lorenz Meier 4984c19700 PX4 IO: Retry upgrades of IO
This adds robustness to system timing and bad link.
2021-02-20 11:07:53 +01:00
alexklimaj ed20bc92c3 Fix uavcannode build 2021-02-20 10:49:08 +01:00
Beat Küng 9d11d94e7e px4iofirmware: guard against parsing multiple RC protocols
It was for example possible that DSM got parsed, and in the next iteration
SBUS got parsed, leading to multiple PX4IO_P_STATUS_FLAGS_RC_ flags set.
input_rc::input_source was then incorrectly set to DSM.

Partially guarding was already done: if SBUS got parsed, DSM and others
were skipped.

The IO will still clear all PX4IO_P_STATUS_FLAGS_RC_* flags on RC loss.
2021-02-19 09:28:46 -05:00
PX4 BuildBot c863d6a346 Update submodule ecl to latest Fri Feb 19 12:39:03 UTC 2021
- ecl in PX4/Firmware (5be2f2c8f835fde0ce648561636cf565d95f5741): https://github.com/PX4/PX4-ECL/commit/310f41517590165a82f807562b3cbb9a76e4c7d8
    - ecl current upstream: https://github.com/PX4/PX4-ECL/commit/81937370ac5234a4c318d838acee4d9bb4bfa697
    - Changes: https://github.com/PX4/PX4-ECL/compare/310f41517590165a82f807562b3cbb9a76e4c7d8...81937370ac5234a4c318d838acee4d9bb4bfa697

    8193737 2021-02-18 bresch - [AUTO COMMIT] update change indication
04844a0 2021-02-16 bresch - ekf control: move time_last_in_air/on_ground out of GPS control logic
b00d4a9 2021-02-16 bresch - mag fusion: improve on ground forced mag fusion logic
2021-02-19 08:34:17 -05:00
Daniel Agar 5e188b3cd7 ekf2: populate local_position dist_bottom_sensor_bitfield 2021-02-18 10:37:02 -05:00
Alex Mikhalev 06e2bca3a6 batt_smbus: Use orb_publish_auto 2021-02-18 07:52:26 -05:00
Alex Mikhalev 6bd4dff51f drivers/smbus: Increase max block size to 34
batt_smbus for BQ40Z80 transfers up to 34 bytes (32 byte block + 2 byte
address), but this was overflowing and failing the PEC check.
So increase the buffer size

Signed-off-by: Alex Mikhalev <alex@corvus-robotics.com>
2021-02-18 07:52:26 -05:00
Alex Mikhalev 93b1a148b7 batt_smbus: Pass device address to base class
Fixes a warning printed at runtime

Signed-off-by: Alex Mikhalev <alex@corvus-robotics.com>
2021-02-18 07:52:26 -05:00
Daniel Agar 4678201da4 update libuavcan to latest 2021-02-17 22:47:35 -05:00
David Sidrane 8c2678bca1 uavcan_servers:Reworked file naming and use ROM fs as fall back
Supporting direct down loads from ROMFS with preferece give to the
   files fould on the SD card first. This will allow a user to provide
   an updated uavcan firware on the SD card, and there is no overhead
   of coping files from the ROM FS to the SD card.
2021-02-17 22:47:35 -05:00
David Sidrane 5ea56af5f0 canbootloder:Make support for ALT Bootloader an Option 2021-02-17 22:47:35 -05:00
David Sidrane 05c0deae14 UavcanNode:Only write alt id not booted by PX4 2021-02-17 22:47:35 -05:00
David Sidrane 71c4f5a05b UavcanNode:Support Dynamic Node ID allocation 2021-02-17 22:47:35 -05:00
David Sidrane e4b519aca0 UavcanNode:Add support for the Alternate bootloader app shared 2021-02-17 22:47:35 -05:00
David Sidrane b27beac50c UavcanNode:Add feed back to bootloader that the App ran 30S 2021-02-17 22:47:35 -05:00
David Sidrane 7a6ed0281b uavcan bootloader:Add support alt boot_alt_app_shared 2021-02-17 22:47:35 -05:00
David Sidrane da67537291 Uavcan Node Pets the watchdog 2021-02-17 22:47:35 -05:00
David Sidrane 77d0eae40b Add SMT32F4xxx Watchdog driver 2021-02-17 22:47:35 -05:00
David Sidrane 8747b343d9 Non-compliant nodes support
WorkQueueManager:Increase UAVCAN stack size
2021-02-17 22:47:35 -05:00
David Sidrane 760e47bbf9 uavcan bootloader use new AppDes 2021-02-17 22:47:35 -05:00
Daniel Agar cff7a01d5e ekf2: estimator_status log reset counts 2021-02-17 21:16:34 -05:00
Daniel Agar 6d42fe28bf Update submodule GPS drivers to latest Wed Feb 17 12:42:56 UTC 2021 2021-02-17 21:14:56 -05:00
Julian Oes 1493ebf350 mavlink: reset MAVLink version to auto-detect 2021-02-17 13:54:34 -05:00
Julian Oes b812763a5a mavlink: no gimbal messages on constrained flash 2021-02-17 13:54:34 -05:00
Julian Oes a2d419c91a vmount: use copyTo to copy quaternions 2021-02-17 13:54:34 -05:00
Julian Oes f39216b9c3 vmount: use math functions instead of macros 2021-02-17 13:54:34 -05:00
Julian Oes 6672be040a mavlink: limit mavlink channels based on memory 2021-02-17 13:54:34 -05:00
Julian Oes 7633b119f7 gimbal: merge fixes 2021-02-17 13:54:34 -05:00
Julian Oes 3a2e4db309 vmount: mute gimbal manager ignoring messages 2021-02-17 13:54:34 -05:00
Julian Oes db09a1386f vmount: fix regression around stabilize flags
We use the stabilize param to set the input. Like this the input flags
can be changed using the configure message later, and then eventually
used in the output.
2021-02-17 13:54:34 -05:00
Julian Oes 086c45d406 vmount: fix POI for gimbal v2
This includes several changes to fix POI when used with MAVLink gimbal
v2 input:
- Correctly set capability flag that POI is supported.
- Keep lat/lon and calculate attitude on each cycle, instead of only
  once on init.
- Always publish gimbal manager information, with or withoug gimbal v2
  device.
2021-02-17 13:54:34 -05:00
Julian Oes b0d7d19bab vmount/mavlink: update gimbal information message
We should be using gimbal_manager_information and not
gimbal_device_information. Plus, this updates the fields and flags
according to the MAVLink changes.
2021-02-17 13:54:34 -05:00
Julian Oes cb3ad39406 vmount: add comment about possible NAN values 2021-02-17 13:54:34 -05:00
Julian Oes cd0509d2ef vmount: fix AUX gimbal output for v2 mavlink input
This should fix the case where AUX gimbals don't work anymore when
gimbal input is mavlink gimbal v2.

The fix is mostly to take care against NAN inputs.
2021-02-17 13:54:34 -05:00
Julian Oes 17dce18b32 mavlink: reduce GIMBAL_MANAGER_STATUS message rate
This was way too fast.
2021-02-17 13:54:34 -05:00
Julian Oes 6561b07caf vmount: support legacy gimbal v1 mission commands
This is a hotfix to restore gimbal functionality for SITL set-ups that
are set to MNT_MODE_IN 4 (gimbal protocol v2) but still need to accept
gimbal v1 commands that might be part of a mission, e.g. uploaded by
MAVSDK.
2021-02-17 13:54:34 -05:00
Julian Oes 6f56797f3d mavlink: hack to forward messages from gimbal
This is a hack to make sure the messages from the gimbal arrive at other
links (e.g. the ground station). It means that the gimbal does not get
flooded with all other messages that would get forwarded but messages
from the gimbal will still make it through.
2021-02-17 13:54:34 -05:00
Julian Oes b8ad7092dc mavlink: use Mavlink 2 by default 2021-02-17 13:54:34 -05:00
Julian Oes e6b1775bb6 vmount/navigator/mavlink: gimbal v2 changes
This is a collection of commits all having to do with changes in the
Mavlink gimbal v2 protocol as described in:
https://mavlink.io/en/services/gimbal_v2.html
2021-02-17 13:54:34 -05:00
Julian Oes 422bac4bfd mavlink: add gimbal mode to talk to gimbal device 2021-02-17 13:54:34 -05:00
Julian Oes 2a0ddf9f44 mavlink: enable 6 instead of 4 instance 2021-02-17 13:54:34 -05:00
Martina Rivizzigno 48b00ff678 Support for gimbal v2 protocol
- add command to request a message
- add gimbal attitude message

mavlink_receiver handle GIMBAL_MANAGER_SET_ATTITUDE

first implementation of new vmount input MavlinkGimbalV2
- setup class
- decode gimbal_manager_set_attitude in ControlData

add gimbal information message

add gimbal manager information and vehicle command ack

mavlink messages: add stream for GIMBAL_MANAGER_INFORMATION

mavlink_receiver: handle GIMBAL_DEVICE_INFORMATION

remove mavlink cmd handling from vmount input MavlinkGimbalV2

complete gimbal manager:
- send out fake gimbal_device_information for dummy gimbals
- complete ROI handling with nudging

small fixes

fix typos

cleanup
- gimbal device information
- flags lock
- check sanity of string

add support for CMD_DO_GIMBAL_MANAGER_ATTITUDE

stream GimbalDeviceAttitudeStatus for dummy gimbals
- add uROB gimbal_attitude_status
- fill status in vmount output_rc for dummy gimbals not able to send the
status themselves
- stream mavlink GimbalDeviceAttitudeStatus

better handle the request for gimbal infomation request

clean up

bring gimbal information back on vmount init

add new gimbal message to mavlink normal stream

fix publication of gimbal device information

rename gimbal_attitude_status to gimbal_device_attitude_status

stream gimbal_manager_status at 5Hz

mavlink: send information only on request

Sending the information message once on request should now work and we
don't need to keep publishing it.

mavlink: debug output for now

make sure to copy over control data

mavlink: add missing copyright header, pragma once

mavlink: address review comments

mavlink: handle stream not updated

Our answer does not just depend on whether the stream was found but
whether we actually were able to send out an update.

mavlink: remove outdated comment

vmount: add option for yaw stabilization only

The stabilize flag is used for gimbals which do not have an internal IMU
and need the autopilot's attitude in order to do stabilization. These
gimbals are probably quite rare by now but it makes sense to keep the
functionality given it can e.g. be used by simple servo gimbals for
sensors other than highres cameras.

The stabilize flag can also be re-used for gimbals which are capable of
stabilizing pitch and roll but not absolute yaw (e.g. locked to North).
For such gimbals we can now set the param MNT_DO_STAB to 2.

We still support configuring which axes are stabilized by the
MAVLink command DO_MOUNT_CONFIGURE, however, this is generally not
recommended anymore.

vmount: fix incorrect check for bit flag

mavlink_messages: remove debug message

Signed-off-by: Claudio Micheli <claudio@auterion.com>

use device id

remove debug print

gimbal attitude fix mistake

clang tidy fix

split:
- gimbal_attitude -> gimbal_device_set_attitude, gimbal_manager_set_attitude
- gimbal_information -> gimbal_device_informatio, gimbal_manager_information

add gimbal protocol messages to rtps msg ids

support set attitude for gimbal directly speaking mavlink

clean up gimbal urob messages

vmount: address a few small review comments

vmount: split output into v1 and v2 protocol

This way we can continue to support the MAVLink v1 protocol. Also, we
don't send the old vehicle commands when actually using the new v2
protocol.

vmount: config via ctor instead of duplicate param

vmount: use loop to poll all topics

Otherwise we might give up too soon and miss some data, or run too fast
based on commands that have nothing to do with the gimbal.

typhoon_h480: use gimbal v2 protocol, use yaw stab

Let's by default use the v2 protocol with typhoon_h480 and enable yaw
lock mode by stabilizing yaw.
2021-02-17 13:54:34 -05:00