Ask Your Question

TeddyBear's profile - activity

2019-05-20 01:53:50 -0500 marked best answer Teb Local Planner : Increasing x linear velocity


I'm currently using the teb local planner for a tricycle robot and it gives good results but I would like to i Increasing the max_vel_x parameter doesn't seem to change the speed and I am having a hard time with it with all the optimization parameters. Increasing the maximum x linear velocity doesn't change anything and cmd_vel remains around 0.25/0.3 m/s maximum.

I looked a bit at the the teb questions and it seems for example, that putting weight_acc_lim* to 0.0 or changing the footprint model would reduce computation time . When setting weight_acc_lim* to 0.0, the robot is not able to move anymore and the error " trajectory not feasible" appears on every goal I am trying to send.

Here is my current configuration for teb local planner :


odom_topic: odom map_frame: /odom

# Trajectory

teb_autosize: True

dt_ref: 0.3

dt_hysteresis: 0.1

global_plan_overwrite_orientation: True

allow_init_with_backwards_motion: False

max_global_plan_lookahead_dist: 1.5

feasibility_check_no_poses: 5

# Robot

max_vel_x: 0.8

max_vel_x_backwards: 0.2

max_vel_y: 0.0

max_vel_theta: 0.4

acc_lim_x: 0.15

acc_lim_y: 0.0

acc_lim_theta: 0.05

# Carlike robot parameters

min_turning_radius: 0.15 # Min turning radius of the carlike robot (compute value using a model or adjust with rqt_reconfigure manually)

wheelbase: 0.864 # Wheelbase of our robot

cmd_angle_instead_rotvel: True # stage simulator takes the angle instead of the rotvel as input (twist message)

footprint_model: # types: "point", "circular", "two_circles", "line", "polygon"

type: "polygon"

radius: 0.2 # for type "circular"

line_start: [0.0, 0.0] # for type "line"

line_end: [0.4, 0.0] # for type "line"

front_offset: 0.2 # for type "two_circles"

front_radius: 0.2 # for type "two_circles"

rear_offset: 0.2 # for type "two_circles"

rear_radius: 0.2 # for type "two_circles"

vertices: [[1.1,0.4],[-0.3,0.4],[-0.3,-0.4],[1.1,-0.4]]

# GoalTolerance

xy_goal_tolerance: 0.2

yaw_goal_tolerance: 0.2

free_goal_vel: False

# Obstacles

min_obstacle_dist: 0.5

include_costmap_obstacles: True

costmap_obstacles_behind_robot_dist: 1

obstacle_poses_affected: 30

costmap_converter_plugin: ""

costmap_converter_spin_thread: True

costmap_converter_rate: 5

# Optimization

no_inner_iterations: 5

no_outer_iterations: 4

optimization_activate: True

optimization_verbose: False

penalty_epsilon: 0.05

weight_max_vel_x: 590

weight_max_vel_theta: 120

weight_acc_lim_x: 370

weight_acc_lim_theta: 200

weight_kinematics_nh: 10000

weight_kinematics_forward_drive: 1000

weight_kinematics_turning_radius: 300

weight_optimaltime: 860

weight_obstacle: 50

weight_dynamic_obstacle: 10 # not in use yet

# Homotopy Class Planner

enable_homotopy_class_planning: True

enable_multithreading: True

simple_exploration: False

max_number_classes: 4

selection_cost_hysteresis: 1.0

selection_obst_cost_scale: 1.0

selection_alternative_time_cost: False

roadmap_graph_no_samples: 15

roadmap_graph_area_width: 5

h_signature_prescaler: 0.5

h_signature_threshold: 0.1

obstacle_keypoint_offset: 0.1

obstacle_heading_threshold: 0.45

visualize_hc_graph: False

I tried lots of combinations with rqt_recofnigure and this one gives good results except that i seems to block the linear velocity to small values. I would like to rpevent the robot from going backwards and avoid obstacles coming on its way. Is there any parameters changes that could help keep this characteristics while increasing the velocity of the robot.

Thanks !

2019-04-16 10:32:26 -0500 received badge  Taxonomist
2018-10-25 03:29:48 -0500 received badge  Nice Question (source)
2018-01-05 00:54:59 -0500 received badge  Famous Question (source)
2017-10-27 11:26:28 -0500 received badge  Notable Question (source)
2017-10-21 02:07:49 -0500 received badge  Popular Question (source)
2017-10-20 21:03:45 -0500 received badge  Student (source)
2017-10-20 15:48:40 -0500 asked a question Teb Local Planner : Increasing x linear velocity

Teb Local Planner : Increasing x linear velocity Hi, I'm currently using the teb local planner for a tricycle robot an

2017-10-20 15:48:38 -0500 asked a question Teb Local Planner : Increasing x linear velocity

Teb Local Planner : Increasing x linear velocity Hi, I'm currently using the teb local planner for a tricycle robot an

2016-09-07 05:26:36 -0500 received badge  Famous Question (source)
2016-05-27 00:04:31 -0500 received badge  Notable Question (source)
2016-05-22 18:56:48 -0500 received badge  Popular Question (source)
2016-04-13 10:21:11 -0500 received badge  Enthusiast
2016-04-08 10:32:37 -0500 commented question tricycle model navigation stack issue

Thank you, I went on this page yesterday and that's what I wanted to try today.

2016-04-06 13:48:11 -0500 asked a question tricycle model navigation stack issue


I have created a tricycle model (2 wheels+ 1 front steering wheel) driven with the "Tricycle" Ros plugins (gazebo_ros_tricycle_drive.cpp). The model seems to work and I have been able to control it with RQT with odom and cmd_vel topics, following some tutorials. I have included a Kinect in my model and it also seems to work well.

However, when I try to use the navigation stack and set goal commands on Rviz, there are some issues. The tricycle robot always rotates too much - it is making some weird in-place rotations when it needs to rotate and cannot reach its goal. It can only reach it properly when going in a straight direction with no rotations. I tried to change some parameters on the Ros planner or in the plugin but evenif it improves the results a bit, the model is still not acceptable.

I really don't know what to do. The recovery behaviors are put to "false" and I haven't activated the Navfn ros tool. Could it come from the fact that my robot is not a differential kind of robot ? Any help would be really appreciated.

Nav.launch file :

<node name="footprint_pub" pkg="rostopic" type="rostopic" args="pub /move_base/local_costmap/footprint geometry_msgs/Polygon -l -- '{points: [{x: 0.2, y: 0.15, z: 0.0}, {x: -0.2, y: 0.15, z: 0.0}, {x: -0.2, y: -0.15, z: 0.0}, {x: 0.2, y: -0.15, z: 0.0}]}'"/>

<node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen"> <remap from="odom" to="/odom"/> <remap from="cmd_vel" to="/cmd_vel"/>

<rosparam file="$(find scrubber_gazebo)/launch/local_costmap_params.yaml" command="load" ns="local_costmap" />
<rosparam file="$(find scrubber_gazebo)/launch/global_costmap_params.yaml" command="load" ns="global_costmap" />
<rosparam file="$(find scrubber_gazebo)/launch/planner_params.yaml" command="load" />


Local Costmap

global_frame: map

robot_base_frame: vehicle_base_link

update_frequency: 10.0

publish_frequency: 10.0

transform_tolerance: 1.0 # allowable time delay (in seconds) of transform data

static_map: false # map changes dynamically

rolling_window: true # map region moves with robot

width: 4.0

height: 4.0

resolution: 0.025

origin_x: -2.0 # center map on robot base using "robot_base_frame" as reference, note that local costmap is aligned with global frame, robot MUST be centered in local cost map

origin_y: -2.0

plugins: # - {name: voxel_layer, type: "costmap_2d::VoxelLayer"}

- {name: obstacle_layer,      type: "costmap_2d::ObstacleLayer"}

- {name: inflation_layer,     type: "costmap_2d::InflationLayer"}


observation_sources: fake_laser_scan

fake_laser_scan: {

sensor_frame: body_link, # DOES NOT WORK if same as robot_base_frame

data_type: LaserScan,

topic: /scan_local,

expected_update_rate: 10,

marking: true,

clearing: true,

inf_is_valid: true

} inflation_layer:

inflation_radius: 0.4

Global Costmap

global_frame: map

robot_base_frame: vehicle_base_link

update_frequency: 1

publish_frequency: 1

transform_tolerance: 1.0 # allowable time delay (in seconds) of transform data

plugins: - {name: static_layer, type: "rtabmap_ros::StaticLayer"}

# - {name: static_layer,       type: "costmap_2d::StaticLayer"}

- {name: inflation_layer,       type: "costmap_2d::InflationLayer"}

static_layer: observation_sources: proj_map

proj_map: {expected_update_rate: 3, data_type: Map, sensor_frame: /map, topic: /map}


inflation_radius: 0.4

Planner ROS

base_global_planner: global_planner/GlobalPlanner

base_local_planner: base_local_planner/TrajectoryPlannerROS

planner_patience: 30.0 # time in seconds to wait for valid plan before attempting recovery behaviours controller_patience: 60.0 # time ... (more)