Skip to content

Backward docking stucks on Humble #68

@Jakubach

Description

@Jakubach

Hello, when using Backward docking mode the robot correctly reverse to the docking pose but very near docking pose it starts doing in-place circles without the end. The problem only occurs it this mode.
The solution I've found:

The SmoothControlLaw method used in docking server is calculateRegularVelocity(pose, backward) (link) and changing it to that one taking also the robot current pose fixes the problem: calculateRegularVelocity(const geometry_msgs::msg::Pose & target,const geometry_msgs::msg::Pose & current,const bool & backward = false) (link)
I haven't checked that but the problem can also occur in the GracefulController since it's implemented similarly (link).
I also had to delete the lines with backward_projection (428-432) (link) (then I modified it for my case to perform initial in-place rotations).

In summary:

  • Used calculateRegularVelocity(pose,current, backward) instead of calculateRegularVelocity(pose, backward)
  • Commented out the part with backward_projection(and that part does not exist in GracefulController)

After this changes the robot stops correctly in the end point (with default controller parameters)

Screencast.from.11-07-2024.06_53_45.PM.1.webm
Screencast.from.11-08-2024.04_42_24.PM.1.mp4

I will propose that changes on pull request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions