-
Notifications
You must be signed in to change notification settings - Fork 396
Proposal for refactored steering and 6 wheeler steering. #1822
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Proposal for refactored steering and 6 wheeler steering. #1822
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR proposes a refactored, plugin-based architecture for steering controllers in ROS 2 control, specifically targeting support for six-wheel rovers with four-wheel steering. The proposal aims to address extensibility limitations in the current monolithic steering controller design by introducing a kinematics-agnostic controller that uses pluginlib for different vehicle models.
- Plugin-based architecture separating generic control logic from kinematic models
- Documentation for six-wheel steering kinematics based on Ackermann principles
- Additive implementation approach to avoid disrupting existing controllers
Reviewed Changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.
File | Description |
---|---|
steering_controllers_library/doc/refactored_steering_library.rst | Proposes new GenericSteeringController with pluginlib-based kinematic models |
doc/six_wheeler_steering_controller.rst | Documents six-wheel steering kinematics, parameters, and configuration |
doc/images/six_wheeler_steering.drawio | Provides kinematic diagram for six-wheel rover visualization |
steering_controllers_library/doc/refactored_steering_library.rst
Outdated
Show resolved
Hide resolved
Thanks for picking this topic. Please post your proposal in the issue or open an issue in the roadmap repository instead of adding a new file to the repo. About the naming: From |
Thanks for the clarification. Let me know if you'd prefer this PR to be closed, or kept as a draft reference until implementation starts. |
6x4 is not working as ROS package name: https://ros.org/reps/rep-0144.html
better using something that will work. six_times_four_wheeler also does not seem to be very nice, so maybe six_wheel_rover would be the best option.
keep it, remove the design draft and just update the kinematics documentation here. |
…er steering controller library
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Signed-off-by: silanus23 <[email protected]>
Signed-off-by: silanus23 <[email protected]>
26c7ac5
to
62405c6
Compare
Sorry for giving a too late update. Things are not the same as my proposal but I tried to stick with the #692 @christophfroehlich 's suggestions. I will provide 6 wheeler controller with this. |
I think this is so usefull development. I am waiting for improvements. Did you try the both steering and traction in the same joint in your example bot? |
@Zarqu0n That's an important question. Thanks for pointing that out. I guess current implementation can handle both scenarios but this thing surely needs a testing. My current demo doesn't test this. I will put this on a test asap with a 4 wheeler demo. |
I would like to contribute on #1243 and have moved forward with the first step: documentation and a rough implementation roadmap.
Kinematics: Adapted from NASA’s jpl-osr-rover-code, matching the 6×4 rocker-bogie configuration (steerable front/rear pairs, fixed center).
Testing: Planning to use that repo as a simulation testbed. It targets Jazzy but can be updated for Rolling easily.
Docs: Added a section explaining the kinematic model and its relevance. Intended as groundwork for the proposed steering_controllers_library refactor.
Issue thread has been inactive, so this PR follows the direction mentioned earlier—starting with documentation. Feedback is welcome to move this forward efficiently.
@christophfroehlich