Tuning the navigation stack for use with a trailer
I have a robot that can move holonomically, that will pull a trailer (that can only move non-holonomically) around.
I figured it might be possible to tune the navigation stack to handle it. Perhaps dwalocalplanner could be used to restrict the possible combinations of velocities to those that a robot with a trailer is capable of following. Looking at the parameters for dwalocalplanner though, I don't see a way to say "you can only move rotate if you're also moving forward at the same time".
What is the best way to tackle this in ROS?
Asked by Omegastick on 2019-12-02 00:38:28 UTC
Comments
If your robot moves holonomically it can move non-holonomically so why not simply configure the navigation stack for a non-holonomic robot ?
Asked by Delb on 2019-12-02 03:59:32 UTC
@Delb Because AFAIK all the non-holonomic planners assume you can either turn on the spot or reverse. Neither of which can be done with the trailer on this robot.
Asked by Omegastick on 2019-12-02 20:10:57 UTC
In-place rotations and backwards movement (I'm not entirely sure about the backwards movements) are related to the recovery behaviors, have you tried to disable those ? There is the parameter
recovery_behavior_enabled
to disable everything or simplyclearing_rotation_allowed
.Asked by Delb on 2019-12-03 03:56:18 UTC
How about switching the planner to e.g. teb_local_planner?
Asked by Humpelstilzchen on 2019-12-03 05:07:40 UTC
@Humpelstilzchen Yeah, that's what I'm going to try next. The car-like mode in that is designed for vehicles that can reverse, but if I set the minimum velocity to 0 it might be okay.
Asked by Omegastick on 2019-12-04 01:04:23 UTC
I tried teb_local_planner, but it doesn't look like there's a way to prevent reversing while in "car-like" mode. I'm gonna try altering dwa_local_planner to remove the "stop and turn" and reverse functions.
Asked by Omegastick on 2019-12-05 04:14:53 UTC