-
Notifications
You must be signed in to change notification settings - Fork 336
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
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: