feat: state_broadcaster implementation#58
Open
dmalexa5 wants to merge 1 commit into
Open
Conversation
Contributor
Author
|
Would it be better to alias |
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.
Hi @danielsanjosepro,
I wanted to open this PR mostly for discussion about a major (breaking) change, so I won't be offended at all if you decide not to go in this direction :)
The state_broadcaster is intended to be something of a catch-all implementation of the
joint_state_broadcaster, thetwistandposebroadcasters, plus some additional functionality around model-compensated wrench and effort broadcasting. It aims to complete the following:pose_broadcasterandtwist_broadcasterwhile ensuring that robots with novelocityoreffortinterface are still able to use the broadcasterexternal_effortbroadcaster native to this repositoryThis interface is a state-only plugin (like any original broadcaster) and at minimum publishes pose and joint states. If complete velocity and effort interfaces are available, it also publishes twist, raw wrench, residual external joint effort, and external wrench. Also has optional gravity, Coriolis, and inertial compensation (used to calculate the external effort and wrench).
Similar to the cartesian and admittance controllers, its topics, frames, reference-frame conventions, publish rates, wrench damping, and compensation toggles are generated parameters from src/state_broadcaster.yaml. I tried to keep this as crisp-ish as possible, but feel free to point out anything that needs to change!
Tested these changes on humble with a couple FR3 arms. Works great! Also can test on jazzy and kilted if you think this is a good direction to go... riht now I just use it in my own research. Similarly,
crisp_controllers_demoswould need to be updated, which I could also do if necessary.Best,
David