- pydronecan in PX4/Firmware (89811435e7): https://github/commit/19fdf2e5b383243ccdb1094edae0603cf11469e8
- pydronecan current upstream: https://github/commit/7aec196d3911a81e3f9a43235787c79961e4ccd8
- Changes: https://github/compare/19fdf2e5b383243ccdb1094edae0603cf11469e8...7aec196d3911a81e3f9a43235787c79961e4ccd8
7aec196 2025-06-15 rishabsingh3003 - examples: add rangefinder
b51d377 2025-03-04 bugobliterator - add .flake8
7d350ba 2025-02-28 bugobliterator - dronecan: replace pkg_resources with importlib.resources for latest Python compatibility
12d9827 2025-02-28 bugobliterator - .github: fix CI by dropping python 3.7 from the check matrix
19ac176 2024-11-11 Thomas Watson - app/dynamic_node_id: avoid spurious reallocation
6805cf0 2024-11-11 Thomas Watson - app/dynamic_node_id: don't assume single-threading
5c2edbb 2024-11-11 Thomas Watson - app/node_monitor: fix handling of info request time
44c6cdf 2024-10-03 Andrew Tridgell - examples: added servo simulator
d48351b 2024-10-03 Andrew Tridgell - mavcan: support readonly mavcan
4c55dd6 2024-08-28 Andrew Tridgell - Revert "fixed load_dsdl problem"
72a003d 2024-06-14 bugobliterator - .github: use pip install to build and install the package
a2cf813 2024-06-14 bugobliterator - use modern standard for python packaging
7a1ef2f 2024-07-21 Felix - fixed load_dsdl problem
b76d480 2024-08-05 Andrew Tridgell - mavcan: ensure child dies when parent dies
8dd60c5 2024-05-20 Andrew Tridgell - examples: added servo control example
d3964dd 2024-04-25 Huibean - add mavlink tunnel example
4b6f3d3 2024-03-15 Andrew Tridgell - prepare for 1.0.26
1f494e9 2023-07-30 bugobliterator - dronecan: add support for sniffing get node info response
315e87e 2023-12-28 Andrew Tridgell - examples: exit on end of fw update
0f67d51 2023-12-01 Siddharth Purohit - driver/mavcan.py: gracefully exit io thread when close is called
ed59da5 2023-10-28 Andrew Tridgell - examples: added battery simulator
4a97cf4 2023-08-03 Andrew Tridgell - support N-way bridging
0e2bfba 2023-08-01 bugobliterator - examples: add example that extracts gps raw data from a log file
59dcecd 2023-08-01 bugobliterator - file: add support for stream read progress and end of stream
9e65bcc 2023-07-31 bugobliterator - file: flush before closing and sleep when receiving
4f6f6ad 2023-07-31 bugobliterator - dronecan: fix timeout handling for file iface
1841303 2023-07-30 bugobliterator - dronecan_bridge: add support for filtering node id
6d0ba6d 2023-07-30 bugobliterator - dronecan: add file interface for recording and replaying CAN data
c941a8f 2023-08-01 Andrew Tridgell - examples: improved error handling in firmware_update.py
49b26e7 2023-07-31 Andrew Tridgell - prepare for 1.0.25
1fdd2cc 2023-07-31 Andrew Tridgell - mcast: fixed multicast on windows
9ac3f75 2023-07-10 Andrew Tridgell - prepare for 1.0.24
89ecdcb 2023-07-10 Andrew Tridgell - DroneCANSerial: fixed handle remove
ff8373f 2023-07-08 Andrew Tridgell - prepare for 1.0.23
208ea42 2023-07-08 Andrew Tridgell - utility: fixed node_id check
4961328 2023-07-07 bugobliterator - tools: add decoder for dronecan message id
a365d79 2023-07-08 Andrew Tridgell - added dronecan_tcplink.py
dbd5704 2023-07-08 Andrew Tridgell - added DroneCANSerial class
a15e318 2023-07-08 Andrew Tridgell - return frame count from spin()
de4cd74 2023-07-08 Andrew Tridgell - cope with errors in dronecan_bridge
3051152 2023-06-21 Andrew Tridgell - driver: ensure data in CANFrame is a byte array
eb88f0a 2023-06-12 Andrew Tridgell - added UDP multicast support
d977357 2023-06-24 Andrew Tridgell - examples: added stats to rtcm_dump.py
1e4e102 2023-06-21 Andrew Tridgell - added Fix2 gap example
d507846 2023-06-15 Ryan - README.md - fix broken link
da81c7c 2023-06-12 Andrew Tridgell - examples: fixes for firmware_update.py
29fbecd 2023-06-12 Andrew Tridgell - app: support path_map in file server
c97f348 2023-03-28 Jacob Dahl - Updated from reviewer feedback. Simplified arguments names.
73a15da 2023-03-27 Jacob Dahl - added an example script to update the firmware on a CAN node
26c525c 2023-06-12 Andrew Tridgell - examples: flush in RTCM decoder
55422e5 2023-06-06 Andrew Tridgell - added RTCM decoder example
a6d34f2 2023-05-27 Andrew Tridgell - print mavlink packet loss every 5s
75d8beb 2023-05-27 Andrew Tridgell - prepare for 1.0.22
145dce3 2023-05-26 Andrew Tridgell - allow mavcan signing key in environment
8fba242 2023-05-26 Andrew Tridgell - example: cope with exceptions in hobbywing tool
1cb47f3 2023-05-22 Andrew Tridgell - examples: improve hobbywing ESC example
1d1173a 2023-05-22 Andrew Tridgell - prepare for 1.0.21
cf73647 2023-05-22 Andrew Tridgell - example: added signing to hobbywing ESC tool
572bf1a 2023-05-15 Andrew Tridgell - added example for hobbywing ESC control
ce39d51 2023-04-10 Andrew Tridgell - prepare for 1.0.20
fece5dc 2023-04-10 Andrew Tridgell - added example looping calling GetNodeInfo
22f700b 2023-04-10 Andrew Tridgell - transport: fixed marking of transfer as canfd
ae710ec 2023-04-10 Andrew Tridgell - fixed count init
b8fae32 2023-04-10 Andrew Tridgell - added dronecan_bridge.py tool
205c89b 2023-04-10 Andrew Tridgell - driver: added send_frame to driver API
00794a1 2023-03-01 Andrew Tridgell - release 1.0.19
d1da653 2023-03-01 Andrew Tridgell - support MAVLink2 signing in mavcan
af6ad8e 2023-02-22 Andrew Tridgell - release 1.0.18
40f76b6 2023-02-22 Andrew Tridgell - slcan: fixed support for python 3.11
c452504 2023-02-10 Andrew Tridgell - release 1.0.17
ed2bdbd 2022-12-12 Peter van der Perk - Add PCAN support through python-can
bb69e16 2022-12-20 Andrew Tridgell - CI: changed python versions to test in CI
- 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