ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
The base_local_planner computes the maximum velocity for a given time step as:
For DWA:
max_vel_x_iteration = min(max_user_vel_x, current_vx_from_odom + acc_limit_x * sim_period)
and
For Trajectory Rollout:
max_vel_x_iteration = min(max_user_vel_x, current_vx_from_odom + acc_limit_x * sim_time) for
As such, there shouldn't be a limit on the maximum velocity the base can achieve. Also, if you were running the planner in an environment that has obstacles, the longer sim time could result in more trajectories being in collision, especially those simulated with higher velocities. The base_local_planner is, admittedly, a bit simplistic in how it decides whether a trajectory is valid. It just checks if it collides with an obstacle at any point... even if that point is far enough away for the robot to stop before the collision. A couple of questions:
1) Have you tried running your test in an environment without obstacles? That should, for testing purposes, eliminate the worry that some trajectories are being detected as in-collision.
2) Are you sure that the planner is receiving odometry information from your base and that this information is correct? This could be another reason that the base doesn't achieve max velocity as it takes the current velocity of the robot and acceleration limits into account.