* mavlink: esc: fix ESC_STATUS and ESC_INFO message emission.
Fixes mavlink messages emission for ESC messages. Actuator --> MotorNumber mapping was not respected, the mavlink messages should be reporting the ESC status in motor number order not actuator order.
* Update src/modules/mavlink/streams/ESC_STATUS.hpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update src/modules/mavlink/streams/ESC_INFO.hpp
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* remove dependency on mixer_module/output_functions.hpp
* add actuator function definitions to EscReport.msg
* clean up
* add missing header
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
During a mission the last waypoint is often a LAND. If the previous waypoint is not directly above the land waypoint the offtrack calculation is incorrect. This regression was introduced when the offtrack calculation switched from 2D to 3D.
* ekf2: range height skip "unhealthy" samples, but respect timeout
- we should never directly use an "unhealthy" range finder sample for
state corrections or resets, but we also shouldn't immediately abort
active rng_hgt until the timeout has passed
* check starting_conditions_passing once
* ekf2: conditional range aid change height ref
---------
Co-authored-by: Daniel Agar <daniel@agar.ca>
* dronecan: esc: change UAVCAN_ESC_IFACE to 2 to default to only outputting on CAN2
* revert param default and update docs
* Subedit
---------
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
* serial: nuttx: revert tcdrain back to fsync
* serial: do not print error on EAGAIN
---------
Co-authored-by: Alexander Lerach <alexander@auterion.com>
* ekf: always publish baro and gnss bias even if zero
* [SQUASH] ekf2: simplify hgt bias publish
---------
Co-authored-by: Daniel Agar <daniel@agar.ca>
Freeing the DMA stream in the hrt callback causes other peripherals on that DMA controller to lock up (namely GPS). Moving the free back into thread context, right before allocation, solves the problem
* docs: add gazebo plugins doc
* add to sidebar and summary
* prettier and link to sources
* review feedback
* Minor subedit and crosslink
* Update docs/en/sim_gazebo_gz/plugins.md
---------
Co-authored-by: Hamish Willee <hamishwillee@gmail.com>
* adis16507: enhance driver to handle and recover from all failure modes
- Clean up driver
- Add optional hardware reset
- Fix scale and range for 125 deg/s variant
- Handle communication errors when read returns zeroes
- Improved perf counters
* change prints to PX4_DEBUG, define BURST_READ_CMD, do both soft and hard reset, use ScheduleNow instead of 1ms delay, change read/write stall period to SPI_STALL value
* gz: print version number in init, remove gst plugin spam, rename function
* fix 0 timestamp issue by waiting for clock callback before subscribing to other topics. Refactor to cleanup topic subscriptions
* format
* change gzerr to gzwarn
* mavsdk_tests: add multicopter alt hold test
* fix test filter
* increase altitude tolerance to 10m as a test
* reduce to 1m tolerance
* increase to 5m tolerance
* increase to 2m tolerance
* reduce back to 1m
* delay 60 seconds
* fix log upload
* fix ulog upload path
* make altitude tolerance in tester.wait_until_altitude configurable
* fix lambda
* default arg in declaration
* tighten up tolerance
* Bidirectional DShot
Co-authored-by: Julian Oes <julian@oes.ch>
* f4/f1 support, not supported
* fix f1 build target
* sanity check timer_channel value, fix CCxNP ifdef, debug stuff
* removed debug code, added define for H7 HAVE_GTIM_CCXNP
* round robin sampling for less than 4 DMA
* unlimited esc_status logging
* dshot: fix formatting
* dshot: add define for number of DMA channels to use
This allows individual boards to override the number of DShot channels
and hence avoid round robin capture of the RPM feedback.
* ARK: enable 4 DMA channels for DShot on 6X
* dshot: publish when all channels are updated
This slows down the ESC_STATUS publication in the case of round robin
capture. E.g. for 800 Hz output with one DMA channel, the ESC_STATUS is
now published at 200 Hz.
* dshot: avoid duplicate publications for bidir and telem
Instead of publishing both bidirectional dshot updates as well as
telemetry updates, we now combine the data from both streams, and
publish whenever we get RPM updates, as the latter arrives with higher
rate, e.g. 200 Hz with round robin, or faster otherwise.
When combining the data, we take RPM from bidirectional dshot, and the
rest from telemetry.
When we have only one of the two, either telemetry or bidirectional
dshot, we just publish that one.
* boards: add ark fpv and pi6x BOARD_DMA_NUM_DSHOT_CHANNELS
* dshot: turn off debug build
---------
Co-authored-by: Julian Oes <julian@oes.ch>
Co-authored-by: alexklimaj <alex@arkelectron.com>
* gz: use server config file for loading world plugins
* submodule
* use server.config in tree
* newlines
* format
* gzbridge: rename function
* format
* gzbridge: add magnetometer callback
* change gz_find_package to find_package
* fix up directory structure and cmake to allow multiple plugins
* newlines
* add comment block explaining gz_env.sh
* remove dupe readme
* remove SENS_EN_MAGSIM from all gz airframe files except spacecraft
* update gz submodule
* added optical flow to gz bridge
* log high rate sensor data
* it builds
* it builds and publishes, need to figure out build system now
* single library
* rename files
* add gz_msg for proto, fix build, test basic flow impl
* update rate, no blur
* PX4-OpticalFlow impl
* rename OpticalFlowSensor
* rename plugins
* disable gps, add plugin path
* cleanup
* fix plugin path export
* properly add OpticalFlowSystem dependency to gz
* move everything under gz_bridge
* cleanup
* add GZ_VEBOSE
* cleanup model/world build target cmake
* added GZ_DISTRO env, harmonic or ionic
* fix gz transport, unstage ark fpv bootloader
* unstage logged_topics.cpp
* cleanup
* make format
* ci fixes
* fix cmake
* remove required for gz-transport
* use model/world namespace for multi vehicle sim. Make format
* make format
* license
* remove needless member var
* made separate Kconfig for gz_msgs, gz_plugins, and gz_bridge
* move OpticalFlow build to it's own cmake
* fix clang
* cleanup comments
* fix rebase
* disable SENS_EN_GPSSIM for all gz airframes
* add GPS + noise to GZBridge
* remove mutex from gz callbacks. Callbacks run synchronously after sim update step and run() loop does not share resources.
* remove hrt check in callbacks
* format
* remove param set-default for already default params
* update submodule
* remove unnecessary comments
* overhaul of the GZBridge and px4-rc.simulator script
* remove arg
* shellcheck disable
* add bus/address
* start gz_bridge before adjusting sim speed or camera follow
* cmake: bump min version to 3.16.3, which is what Ubuntu 20.04 ships with
* reduce to cmake 3.10
---------
Co-authored-by: Alex Klimaj <alex@arkelectron.com>
* ark: v6x: disable net binary config, update default net config
* added back CONFIG_IPCFG_BINARY=y
---------
Co-authored-by: Alex Klimaj <alex@arkelectron.com>
Calling serial::write() in quick succession was blowing away the previous buffer, fsync does not guarantee that data is transmitted on serial lines. On the other hand tcdrain waits until the output buffer is empty.
* usb: Added parameter to enable always starting mavlink on USB.
Refactored cdcacm_init into a module and added a paramter to allow always starting mavlink on
USB, also added a paramter to choose the mode. The current default behavior is to wait and listen
for data on USB and auto-detect the protocol (mavlink, nsh, ublox). This results in the mavlink
stream not starting until something else on the mavlink network sends a packet first. The new
default behavior is to always start mavlink.
Added parameters
MAV_USB_ENABLE -- default 1 (always start mavlink on USB)
MAV_USE_MODE -- default 3 (onboard)
* added 3 retries for opening serial port in mavlink, removed sleep before sercon
* added DRIVERS_CDCACM_AUTOSTART to ark-v6x default.px4board
* added CONFIG_DRIVERS_CDCACM_AUTOSTART=y to default.px4board for boards with CONFIG_CDCACM in their nsh/defconfig
* format
* remove PGA460 from COMMON_DISTANCE_SENSOR to save flash
* remove LIS2MDL from COMMON_MAGNETOMETER to save flash
* disable CONFIG_DRIVERS_CDCACM_AUTOSTART for fmu-v5 protected.px4board
* moved and renamed parameters, removed mode logic in mavlink
* changed parameter names, added mode none
* remove parameters from mavlink