rst-tu-dortmund / teb_local_planner

An optimal trajectory planner considering distinctive topologies for mobile robots based on Timed-Elastic-Bands (ROS Package)
http://wiki.ros.org/teb_local_planner
BSD 3-Clause "New" or "Revised" License
990 stars 545 forks source link

Tuning the behavior of teb planner for tricycle kinematics with front steering and drive #99

Open olivebardoza opened 5 years ago

olivebardoza commented 5 years ago

I'm trying to use the teb local planner for a tricycle robot with a front steered wheel. The front wheel is also the driven wheel. I am noticing a lot of rapid oscillations in the steering angle. I believe this could be because the horizon of the model predictive control is 1, i.e., it is re-computing a plan at every control iteration. Would planning behavior improve if N velocity controls were taken before re-computing the plan? Is this a settable parameter? (N would be a number > 1, i.e, the open loop horizon of the controller)

croesmann commented 5 years ago

Hi @olivebardoza , I don't think that relying on the open-loop solution for some controller cycles is appropriate due to the dynamically changing environments and non-modelled effects. For clarification, in the context of model predictive control, the horizon is defined as the temporal length of the underlying optimal control problem, and not the rate of re-computing the optimal control problem. Maybe the oscillations are similar to those in #92 ? Do you have a simulation setup that you can share with me?

jesseweisberg commented 5 years ago

I am also having issues with a tricycle drive for finer maneuvers. My tricycle drive is slightly different in that it has a back steered wheel. I'm testing a simulated vehicle in Gazebo and all goes well until the vehicle gets very close to the goal. This issue I believe occurs because the command velocity at this point alternates very quickly between negative and positive values for the linear velocity but maintains the same sign for angular velocity. This approach works for a pure differential drive, but fails with a tricycle drive because this alternating command velocity causes the steering wheel to change drastically, and repeatedly-- thus, the oscillation. I tried increasing the 'weight_prefer_rotdir' when within a certain distance from the goal, but that doesn't solve the problem because I believe it is attempting to maintain a similar signed angular velocity, not linear velocity. I'm going to keep working on it and update if I make any progress, but any suggestions are of course welcome.

AshayGoli commented 3 years ago

I am also having issues with a tricycle drive for finer maneuvers. My tricycle drive is slightly different in that it has a back steered wheel. I'm testing a simulated vehicle in Gazebo and all goes well until the vehicle gets very close to the goal. This issue I believe occurs because the command velocity at this point alternates very quickly between negative and positive values for the linear velocity but maintains the same sign for angular velocity. This approach works for a pure differential drive, but fails with a tricycle drive because this alternating command velocity causes the steering wheel to change drastically, and repeatedly-- thus, the oscillation. I tried increasing the 'weight_prefer_rotdir' when within a certain distance from the goal, but that doesn't solve the problem because I believe it is attempting to maintain a similar signed angular velocity, not linear velocity. I'm going to keep working on it and update if I make any progress, but any suggestions are of course welcome.

Hi...Have you found any solution for this issue.I am also facing the same problem of oscillating steering angle.Like you mentioned even i found that the linear velocity changes its sign back and forth after logging the cmd_vel values. This hinders the on spot rotation of the robot. Initially I tried to eliminate it by limiting the linear velocity to a particular value below which it is always 0, this did not solve it completely.I was also inclined to use some outlier elimination algorithm but seems like this happens quite frequently.Still unable to figure out a concrete solution. I just wanted to know your progress.

LotfiZ commented 2 years ago

Hi everyone...I have exactly the same problem with a forklift that is basically a tricycle with front steering and drive, i could not figure out how to tune the TEB for that !