Repository navigation
[Humble] Fixed how Puma diagnostics are handled. - #372
Closed
mergify[bot] wants to merge 1 commit into
Closed
mergify[bot] wants to merge 1 commit into
mergify[bot] wants to merge 1 commit into
Conversation
* Fixed how Puma diagnostics are handled. * fix(puma_motor_driver): fix status frequency check and spread CAN polling Diagnostics - Expect LM_API_STATUS_FAULT at 2 Hz instead of 1 Hz. The Pumas send it unsolicited at 2 Hz (measured on do150-0006), so the old value flagged every healthy driver as "frequency too high". - Run the feedback and status frequency checks into separate wrappers and merge them. FrequencyStatus::run() overwrites the summary, so only the last check's result was ever reported. Non-OK summaries are now prefixed with the check name and the check's values are added. - Cast the control mode to unsigned int before adding it as a diagnostic value. As a uint8_t it was streamed as a char, so mode 0 put a null byte in the string and crashed the diagnostics publisher (Fast CDR BadParamException). Polling - Poll one driver per tick in round-robin order from a new poll_timer_ (period 1/(frequency x N)) instead of requesting from every driver in run(). Each driver is still polled at `frequency`. With CAN auto-retransmission disabled in the MCU firmware, back-to-back requests lost roughly 40-80% of replies on three of four Pumas on a Dingo; the round-robin avoids that on older MCU firmware. Docs - Add MULTI_PUMA_NODE.md and four PlantUML diagrams (static, startup, runtime, diagnostics) under puma_motor_driver/docs, including the CAN IDs the node uses. --------- Co-authored-by: Mark Ibrahim <mibrahim@clearpathrobotics.com> (cherry picked from commit f4109bb) # Conflicts: # .cspell.json # clearpath_motor_drivers/puma_motor_driver/include/puma_motor_driver/driver.hpp # clearpath_motor_drivers/puma_motor_driver/include/puma_motor_driver/multi_puma_node.hpp # clearpath_motor_drivers/puma_motor_driver/src/driver.cpp # clearpath_motor_drivers/puma_motor_driver/src/multi_puma_node.cpp
mergify
Bot
requested review from
luis-camero,
mibrahim-cpr,
nnarain-cpr,
tonybaltovski and
twallis-cpr
and removed request for
a team
October 23, 2026 20:27
Author
|
Cherry-pick of f4109bb has failed: To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #322 to Humble.