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

tricycle_controller vs tricycle_steering_controller #850

Open
christophfroehlich opened this issue Nov 19, 2023 · 1 comment
Open

tricycle_controller vs tricycle_steering_controller #850

christophfroehlich opened this issue Nov 19, 2023 · 1 comment

Comments

@christophfroehlich
Copy link
Contributor

christophfroehlich commented Nov 19, 2023

We have two controllers with similar names: tricycle_controller vs tricycle_steering_controller.

I haven't used any of them, so I ask: (especially @tonynajjar who has contributed the first one, and @petkovich who created the second one)

  • Is there a justification of keeping both?

If the answer is yes:

  • Let's document it.
  • The "older" tricycle_controller doesn't follow our best-practices, e.g., using generate_parameter_library, and it lacks of tests (see coverage): Let's improve that.

If the answer is no:

  • Is the "newer" tricycle_steering_controller feature-equal to the "older" tricycle_controller?

If the answer is no: Let's port them.
If the answer is yes:

  • Is the "newer" tricycle_steering_controller compatible to the "older" tricycle_controller? (I don't think so)
  • Should we delete it after some deprecation period with some migration guidelines published in the docs?
@christophfroehlich
Copy link
Contributor Author

What I understood so far:

  • Tricycle_controller has a single double-actuated wheel: steering and traction on the same wheel. This is basically a front-drive bicycle model, because it does not make a difference how many wheels are on the rear axle.
  • This is different from tricycle_steering_controller, which claims having two traction wheels on the rear axle and one steering joint in the front (or vice versa). Same for bicycle_steering_controller: on traction wheel on the rear axle and one steering joint in the front (or vice versa)
  • Tricycle_controller has additional features:
    • Traction limiter
    • Steering limiter
    • ackermann_msg debug topic

I tend now to include tricycle controller into the steering lib on a long term basis, see also #692
Then we don't have to decide if it should be called tricycle (one possible mechanical configuration) or bicycle (the actual kinematic model) controller ;)

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

No branches or pull requests

1 participant