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 dwa_local_planner 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 dwa_local_planner 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?
If your robot moves holonomically it can move non-holonomically so why not simply configure the navigation stack for a non-holonomic robot ?
@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.
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
.How about switching the planner to e.g. teb_local_planner?
@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.
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.