-
Notifications
You must be signed in to change notification settings - Fork 357
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Convert the diff_drive_controller into a ChainableControllerInterface in the master branch #1457
Comments
I created this for the 2023 ROSCon workshop but it never made it upstream, hence why it is out of date. Let me put it here in link form for posterity: https://github.com/ros-controls/ros2_controllers/tree/chainable-diff-drive You'd be welcome to follow up on this by creating a branch from this branch in your fork and creating a pull request that passes all CI checks, tests and adds new tests for the chainable functionality. Sounds good? |
Sounds good. I will let you know if I have more questions. |
Issue: I'm struggling to build the master branch and pass all tests. Context: My fork for making the diff_drive_controller into a chainable controller is here. Right now I'm at the point where I've naively merged master into into the chainable-diff-drive branch. I did this in steps to try to understand the merge conflicts better, but at the end of the day I have build errors (see bottom) so I will have to look at this more closely. However, before debugging that I thought it would be a good idea to make sure that the master branch builds successfully and passes all tests. Turns out I'm having issues here as well: my clone of the master branch is not passing all of the tests. I found that even getting things to build was non-trivial so I include my steps. Here's what I've done so far: Now in a new terminal, source and run tests:
Separate problem: the build errors I was encountering for my naive merge of the chainable-diff-drive branch can be summarized as: |
I'd suggest that you start from the current master branch, create a new branch and cherry-pick dea3d3c on top. To cleanly install the rolling version of ros2_control stack, see the instructions for the "Development Version" here.
|
I am currently working on designing a differential drive robot with advanced navigation and balancing capabilities using ROS2 Jazzy. I would like to configure my controllers in a chained configuration similar to the one described in the Controller Chaining Tutorial. However, in the ros2_controllers master branch it looks like the diff_drive_controller is still a standard ControllerInterface, not a ChainableControllerInterface, so I cannot put controllers that precede the diff_drive_controller.
I propose to convert the diff_drive_controller into a ChainableControllerInterface, and push these changes to the master branch.
I noticed that there is a chainable-diff-drive branch from last year that converts the diff_drive_controller into a ChainableControllerInterface as I desire. The problem is that this branch is many commits behind master at this point, and lacks functionality such as using TwistStamped instead of Twists for the velocity_command subscriber, among others. I would like to see the chainable-diff-drive branch merged with master (or, since this would be a complex merge, simply start from scratch using chainable-diff-drive as a guide).
I have not contributed to ros2_controllers before, but would be interested in taking this on as a challenge. My questions are:
Why was this merge not made before? What are the blockers or nuances that I should watch out for?
The text was updated successfully, but these errors were encountered: