Ask Your Question
0

Global planner not smooth behaviour

asked 2019-01-07 15:34:42 -0600

Andrea93.am gravatar image

i'm using the navigation guide: http://kaiyuzheng.me/documents/navgui... But i'm not able to have a smooth global trajectory, seems like that every time try to use the straighter path feasible. Any suggestions ? here are all my parameters:

move base param controller_frequency: 3.0 controller_patience: 15.0 planner_patience: 6.0 planner_frequency: 2.0 conservative_reset_dist: 3.0 recovery_behavior_enabled: false clearing_rotation_allowed: false shutdown_costmaps: false oscillation_timeout: 0.0 oscillation_distance: 0.5

common param

map_type: costmap

transform_tolerance: 0.5

inflaction_layer:

#cost function parameters enable: true inflation_radius: 5.0 cost_scaling_factor: 2.0

obstacles_layer: enable: true #Obstacle param obstacle_range: 5.0 raytrace_range: 6.0

observation_sources: laser_scan_sensor laser_scan_sensor: {sensor_frame: base_scan_link, data_type: LaserScan, topic: /scan, marking: true, clearing: true}

global_costmap: #static map map_topic: map_fixed

global_frame: /map robot_base_frame: rear_central_link update_frequency: 1.0 publish_frequency: 2.0 #robot footprint footprint: [[-0.6,-0.8],[2.25,-0.8],[2.25,0.8],[-0.6,0.8]] footprint_padding: 0.02 inflation_radius: 5.0 width: 50.0 height: 50.0 static_map: true rolling_window: false

inflation_layer: enable: true inflation_radius: 15.0 cost_scaling_factor: 8.0

obstacles_layer: enable: true

base_global_planner: global_planner/GlobalPlanner

GlobalPlanner: allow_unknown: true defaul_tolerance: 0.5 planner_frequency: 6.0 planner_patience : 5.0 use_dijkstra: false use_grid_path: true use_quadratic: true visualize_potential: true publish_potential: true orientation_mode: 2 orientation_window_size: 1 lethal_cost: 250 neutral_cost: 10 cost_factor: 0.6

plugins: - {name: obstacles_layer, type: "costmap_2d::ObstacleLayer" } - {name: inflation_layer, type: "costmap_2d::InflationLayer" }

local_costmap:

global_frame: map robot_base_frame: rear_central_link update_frequency: 5.0 publish_frequency: 10.0 static_map: false rolling_window: true width: 10.0 height: 10.0 resolution: 0.05

plugins: - {name: obstacles_layer, type: "costmap_2d::ObstacleLayer" } - {name: inflation_layer, type: "costmap_2d::InflationLayer" }

inflation_radius: 0.2
footprint: [[-0.6,-0.8],[2.25,-0.8],[2.25,0.8],[-0.6,0.8]] footprint_padding: 0.0

inflaction_layer: enable: true inflation_radius: 5.0 cost_scaling_factor: 0.1

base_local_planner: teb_local_planner/TebLocalPlannerROS

TebLocalPlannerROS: odom_topic: /odometry/filtered map_frame: /map robot_base_frame: rear_central_link

controller_frequency: 100.0 controller_patience : 15.0 planner_frequency: 70.0 planner_patience : 5.0 # Trajectory

teb_autosize: True dt_ref: 0.7 dt_hysteresis: 0.1 global_plan_overwrite_orientation: true max_global_plan_lookahead_dist: 10
feasibility_check_no_poses: 3 publish_feedback: true min_samples: 6 exact_arc_length: true

# Robot

max_vel_x: 1 max_vel_x_backwards: 0.2 max_vel_y: 0.0 max_vel_theta: 0.5 acc_lim_x: 0.25 acc_lim_y: 0.0 acc_lim_theta: 0.2 min_turning_radius: 3.3 wheelbase: 1.74 cmd_angle_instead_rotvel: true # set true in ackermann mode footprint_model: type: "polygon" vertices: [ [-0.4, -0.2], [2.05, -0.2], [2.05, 0.15], [-0.4, 0.15] ] # for car like robot the pose [0,0] is located at the rear-axele ( axis of rotation )

# GoalTolerance

xy_goal_tolerance: 0.5 yaw_goal_tolerance: 0.3 free_goal_vel: False meter_scoring: true

# Obstacles

min_obstacle_dist: 1.1 include_costmap_obstacles: True include_dynamic_obstacles: True costmap_obstacles_behind_robot_dist: 6.0 obstacle_poses_affected: 60 costmap_converter_plugin: "costmap_converter::CostmapToPolygonsDBSMCCH" #costmap_converter_plugin: "costmap_converter::CostmapToLinesDBSRANSAC" #costmap_converter_plugin: "costmap_converter::CostmapToLinesDBSMCCH" #costmap_converter_plugin: "costmap_converter::CostmapToPolygonsDBSConcaveHull" #costmap_converter_plugin: "" # deactivate plugin costmap_converter_spin_thread: True costmap_converter_rate: 10 costmap_converter/CostmapToPolygonsDBSMCCH: cluster_max_distance: 2.0 cluster_min_pts: 5 cluster_max_pts: 10000 convex_hull_min_pt_separation: 0.2

inflation_dist: 0.4 legacy_obstacle_association: false obstacle_association_force_inclusion_factor: 1.5

# Optimization

no_inner_iterations: 10 no_outer_iterations: 8 optimization_activate: True optimization_verbose: False penalty_epsilon: 0.12 weight_max_vel_x: 15 weight_max_vel_y: 1 weight_max_vel_theta: 1 weight_acc_lim_x: 1 weight_acc_lim_y: 1 weight_acc_lim_theta: 1 weight_kinematics_nh: 1000 weight_kinematics_forward_drive: 500 weight_kinematics_turning_radius: 6 weight_optimaltime: 1 weight_obstacle ... (more)

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2019-01-09 04:51:43 -0600

juanlu gravatar image

The goal of the global planner is to find the shortest path between your current position and the goal, It does so by using a graph search algorithm (A*, Dijsktra,etc) in a 2D grid that has no notion of robot kinematics.

The element that could give you a "smooth motion" would be the local planner, in your case the TEB local planner which configuration is not detailed in the guide you are refering to. My advice is to go over the parameter description in the teb local planner wiki page and tune it in a way that is free to ignore to a higher degree the path sent by the global planner.

edit flag offensive delete link more

Comments

another problem that i noticed is that: the global costmap is not able to see new obstacle, do you know why? now i add the obstacle layer to the global cost map parameter but nothing change.

Andrea93.am gravatar imageAndrea93.am ( 2019-01-09 09:43:32 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2019-01-07 15:34:42 -0600

Seen: 257 times

Last updated: Jan 09