- The velocity constraint gets set from multiple places e.g. Position slow knob and altitude related slow down. Depending on the execution order it was overwritten with a higher value again not obeying a stricter limit.
- The slowdown used valocities as inputs instead of the ratio of available altitude.
In an effort to reduce configuration space.
I've not seen use for this option.
If a pilot flies manually in position mode he has some visual reference of the vehicle and can do better than an autonomous mode without position reference.
Also by now we have nudging in Descend mode so the pilot can still give input and the only difference is it automatically goes down instead of the pilot having to descend by stick to land.
* Create a dummy BAHRS driver
* Resolve compilation
* Switch back to cpp, fix compilation
* Create module.yaml
* Implement required module APIs and open serial port
* Revise info and error messages
* Poll serial port
* Push received bytes into the ring buffer
* Process data buffer (1)
* Process data buffer (2)
* Process data buffer (3)
* Process data buffer (4)
* Process data buffer (5)
* Process data buffer (6)
* Implement and use initialize() and deinitialize() methods
* Implement print_usage() and print_status()
* Collect all config constants in a class
* Put info about next found message into a class
* Print CRC failure count
* Remove unneeded print
* Add comments
* Disable EKF2, advertise vehicle attitude
* Decode and publish BAHRS signals (1)
* Run the driver as an additional source of sensor signals
* Add tiny noise to baro-inertial pressure signal
* Fix the sensor ID
* Add copyrights
* Fix formatting
* Remove redundant newline character
* Fix long parameter name
* Fix findings (1)
* Fix finding (2)
* Fix formatting
* Fix the timeout value
* Remove aliases
* Fix copyright
* Fix indent
* Comply with naming convention
* Rework comparison to false
* Reduce nesting (1)
* Reduce nesting (2)
* Reduce nesting (3)
* Fix BAHRS sensor ID
This allows external modes to individually check if they are flagged as
invalid/unresponsive.
Previously this was done only based on whether or not ArmingCheckRequest
was received, which does not work when multiple modes are running.
based on the message timestamp.
Previously it was possible to run into the following case:
- 2 external modes are registered (running inside the same ROS node)
- they time out due to the micro xrce agent being blocked for some reason
- PX4 removes them
- the latest arming check replies still arrive to PX4
- the application restarts
- the first mode gets registered
- PX4 handles the previous arming check reply, and clears
waiting_for_first_response, which reduces the timeout
- the second mode registers and as part of that checks for message
compatibility. This takes ~1s, triggering a timeout of the first mode
RIHS01 has the same functionality and already provides type safety with
rmw_zenoh_cpp. The user on ROS2 can compare the PX4 ros2_lv hashes with
their own px4_msgs for a mismatch