Skip to content

Ackermann preceding reference command interfaces are not correct #1167

Closed
@wittenator

Description

@wittenator

Describe the bug
I am building a ackermann-controlled vehicle and would like to control the mobile base via steering angle and linear velocity instead of a twist since I have a preceding pure pursuit controller. In the documentation (Ackermann Controller it says that the references are linear velocity and angular position of the steering. Setting these references via ForwardController reveals that the angular position command interface is in fact a angular velocity command interface. Since the steering library is worked on rn anyway: Would it be an idea to let people switch between controlling the vehicle via Twist or AckermannDrive messages? This would remove the slightly awkward setup of having to separate ForwardCommand controllers or a completely self-written controller just to set steering angle and velocity instead of a Twist.

To Reproduce
Steps to reproduce the behavior:

  1. Start an Ackermann vehicle
  2. Attach two forward command controllers to the Ackermann controller e.g.
 ros__parameters:
   joints:
     - ackermann_steering_controller/angular

forward_velocity_controller:
 ros__parameters:
   joints:
     - ackermann_steering_controller/linear 
  1. Set a steering command and a linear velocity command

Expected behavior
Setting a steering angle should be passed on to the angle commands and not be correlated with the velocity.

Screenshots
MicrosoftTeams-image(2)
The blue line is the commanded steering angle and the orange one is the true steering angle. Changing the linear velocity also influences the steering angle.

Environment (please complete the following information):

  • OS: Ubuntu 22
  • Version Iron

Additional context
Add any other context about the problem here, especially include any modifications to any ros2_controllers that relate to this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions