You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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)
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
SmoothControlLawmethod used in docking server iscalculateRegularVelocity(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
GracefulControllersince 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:
calculateRegularVelocity(pose,current, backward)instead ofcalculateRegularVelocity(pose, backward)backward_projection(and that part does not exist inGracefulController)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.