Skip to content
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

Add multi_omni_wheel_drive_controller #1535

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

Amronos
Copy link

@Amronos Amronos commented Feb 12, 2025

This is a controller for mobile robots with omnidirectional drive. It supports using 3 or more omni wheels spaced at an equal angle from each other in a circular formation.

I have added many tests similar to other controllers and updated the docs.
Please review this controller and tell me if you have any doubts regarding its working.

I will be updating mobile_robot_kinematics.rst for the kinematics of this controller and for that wanted to ask what software has been used to make the diagrams in that doc. 😄

@christophfroehlich
Copy link
Contributor

I used diagrams.net, the other source files can be found in the repo as well.

@Amronos
Copy link
Author

Amronos commented Feb 12, 2025

I used diagrams.net, the other source files can be found in the repo as well.

Thanks!

@christophfroehlich
Copy link
Contributor

I used diagrams.net, the other source files can be found in the repo as well.

Thanks!

see the drawio file in doc/images folder

@Amronos
Copy link
Author

Amronos commented Feb 12, 2025

82b6d87 should fix some of the failures, the other ones I am not too sure on how to fix ff32b2d should fix the others.

@Amronos
Copy link
Author

Amronos commented Feb 12, 2025

@christophfroehlich Can you do a rerun of the tests?

@Amronos
Copy link
Author

Amronos commented Feb 12, 2025

I have updated mobile_robot_kinematics.rst for the kinematics of this controller with commit a5d581a.

Copy link
Contributor

@christophfroehlich christophfroehlich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for your contribution.

Why you named your controller multi_omni_wheel_drive_controller? why not just omni_wheel_drive_controller, or omni_drive_controller like our friends at PAL do call it?

The first review round, where I only had a look at the docs and the description. I just added some stylistic comments as well as changes to use standard nomenclature (like state interfaces instead of feedback). Just in case you don't know, you can commit them all at once from the "Files Changed" tab here.

convenience service for other reviewers, the rendered docs:

Screenshot 2025-02-14 at 22-03-40 Wheeled Mobile Robot Kinematics — control ros org Feb 2025 documentation

doc/mobile_robot_kinematics.rst Outdated Show resolved Hide resolved
doc/mobile_robot_kinematics.rst Outdated Show resolved Hide resolved
doc/mobile_robot_kinematics.rst Outdated Show resolved Hide resolved
doc/mobile_robot_kinematics.rst Outdated Show resolved Hide resolved
doc/mobile_robot_kinematics.rst Outdated Show resolved Hide resolved
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do v_b,x and y have double arrows? I think the positive one is sufficient.
Would you mind to draw dashed aid lines from the center to the wheels' axes and use them as start/endpoint for $\gamma$ and $\theta$ dimensions?
And probably adding indices to the wheels, or describing in the text that they are counted counter-clockwise (like you have already added in the parameter description)?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in commit 57059bf.

multi_omni_wheel_drive_controller/doc/userdoc.rst Outdated Show resolved Hide resolved
multi_omni_wheel_drive_controller/doc/userdoc.rst Outdated Show resolved Hide resolved
multi_omni_wheel_drive_controller/doc/userdoc.rst Outdated Show resolved Hide resolved
multi_omni_wheel_drive_controller/doc/userdoc.rst Outdated Show resolved Hide resolved
Amronos and others added 2 commits February 15, 2025 09:37
Co-authored-by: Christoph Fröhlich <[email protected]>
Co-authored-by: Christoph Fröhlich <[email protected]>
@Amronos
Copy link
Author

Amronos commented Feb 15, 2025

Why you named your controller multi_omni_wheel_drive_controller? why not just omni_wheel_drive_controller, or omni_drive_controller like our friends at PAL do call it?

I didn't name it omni_drive_controller because I didn't want someone to get confused that it is based on mecanum wheels. I named it multi_omni_wheel_drive_controller instead of omni_wheel_drive_controller because I wanted to emphasize the fact that it can work with as many omni wheels as one would like, but now that I think about it omni_wheel_drive_controller would have also been nice.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants