ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
2

Navigation stack Holonomic: true not working

asked 2016-02-24 13:54:59 -0600

automate gravatar image

updated 2016-03-05 10:18:31 -0600

Though i set navigation stack holonomic parameter to true it doesn't generate y velocity. Any suggestions

I am using ROS indigo and Ubuntu 14.04.

Thank you

EDIT: Here are the launch files & output of roswtf:

base_local_planner_params.yaml

TrajectoryPlannerROS:
  acc_lim_th: 3.2
  acc_lim_x: 2.5 
  acc_lim_y: 2.5 
  max_vel_x: 0.65 
  min_vel_x: 0.0 

  max_vel_y: 0.1 
  min_vel_y: -0.1 

  max_trans_vel: 0.65 
  min_trans_vel: 0.1 
  max_rot_vel: 0.5 
  min_rot_vel: 2.0 
  sim_time: 1.7 
  sim_granularity: 0.025 
  goal_distance_bias: 32.0 
  path_distance_bias: 24.0 
  occdist_scale: 0.01 
  stop_time_buffer: 0.2 
  oscillation_reset_dist: 0.05 
  forward_point_distance: 0.325 
  scaling_speed: 0.25 
  max_scaling_factor: 0.2 
  vx_samples: 3 
  vy_samples: 10 
  vtheta_samples: 20 
  sim_period: 0.1 
  xy_goal_tolerance: 0.2 
  yaw_goal_tolerance: 0.17 
  rot_stopped_vel: 0.01 
  trans_stopped_vel: 0.01
  holonomic_robot: true
  y_vels: [-0.6, -0.1, 0.1, 0.6]

Costmap_common_params.yaml

obstacle_range: 1
raytrace_range: 1.5
footprint: [[-0.2,-0.2],[-0.2,0.2], [0.2, 0.2], [0.2,-0.2]]
#robot_radius: ir_of_robot
inflation_radius: 3

observation_sources: scan

scan: {sensor_frame: /laser, data_type: LaserScan, topic: /scan, marking: true, clearing: true}

global_costmap_params.yaml

global_costmap:
  global_frame: /map
  robot_base_frame: /base_link
  update_frequency: 1.0
  publish_frequency: 0.5
  static_map: false
  transform_tolerance: 1.5
  static_map: false
  rolling_window: true
  width: 100.0
  height: 100.0

local_comstmap_params.yaml

local_costmap:
  global_frame: /map
  robot_base_frame: /base_link
  update_frequency: 5.0
  publish_frequency: 2.0
  static_map: false
  rolling_window: true
  width: 6.0
  height: 6.0
  resolution: 0.05
  transform_tolerance: 1.5
  planner_frequency: 1.0
  planner_patience: 5.0

Output of roswtf

WARNING: Package "ompl" does not follow the version conventions. It should not contain leading zeros (unless the number is 0).
WARNING: Package name "twist_Converter" does not follow the naming conventions. It should start with a lower case letter and only contain lower case letters, digits and underscores.
Loaded plugin tf.tfwtf
No package or stack in context
================================================================================
Static checks summary:

No errors or warnings
================================================================================
Beginning tests of your ROS graph. These may take awhile...
analyzing graph...
... done analyzing graph
running graph rules...
... done running graph rules
running tf checks, this will take a second...
... tf checks complete

Online checks summary:

Found 1 warning(s).
Warnings are things that may be just fine, but are sometimes at fault

WARNING The following node subscriptions are unconnected:
 * /mavros:
   * /mavros/setpoint_raw/global
   * /mavros/setpoint_raw/attitude
   * /mavros/setpoint_velocity/cmd_vel
   * /mavros/setpoint_position/local
   * /tf_static
   * /mavlink/to
   * /mavros/rc/override
   * /mavros/setpoint_raw/local
   * /mavros/setpoint_accel/accel
 * /move_base:
   * /tf_static
   * /move_base/cancel
 * /rviz:
   * /tf_static


Found 1 error(s).

ERROR The following nodes should be connected but aren't:
 * /move_base->/move_base (/move_base/global_costmap/footprint)
 * /move_base->/move_base (/move_base/local_costmap/footprint)

UPDATE:

I changed to DWA local planner. It too doesnt output linear y velocities.

Edited move_base.local

<launch>
  <master auto="start"/>
  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">
    <rosparam file="$(find my_robot_name_2dnav)/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find my_robot_name_2dnav)/costmap_common_params.yaml" command="load" ns="local_costmap" />
    <rosparam file="$(find my_robot_name_2dnav)/local_costmap_params.yaml" command="load" />
    <rosparam file="$(find my_robot_name_2dnav)/global_costmap_params.yaml" command="load" />

   <rosparam command="load" file="$(find  my_robot_name_2dnav)/dwa_local_planner_params.yaml"  />
     <param name="base_local_planner ...
(more)
edit retag flag offensive close merge delete

Comments

Please provide launch file. Also include the output of roswtf

yasagitov gravatar image yasagitov  ( 2016-02-24 14:54:34 -0600 )edit

Velocities should be generated regardless of holonomic option.

yasagitov gravatar image yasagitov  ( 2016-02-24 14:56:05 -0600 )edit

Thanks for the response @asagitov. I have edited my question to provide launch files and roswtf.

automate gravatar image automate  ( 2016-02-24 21:20:07 -0600 )edit

Also @asagitov I do get velocities as output. The nav stack runs fine. However right now i guess any motion suggested by planner is rotate-> move in x -> rotate. What i want is planner to suggest "y vel" which i guess is the property of holonomic constraints

automate gravatar image automate  ( 2016-02-24 21:21:03 -0600 )edit
1

Try changing y_vels: '-0.6, -0.1, 0.1, 0.6' to y_vels: [-0.6, -0.1, 0.1, 0.6]. Maybe it is just syntax error.

yasagitov gravatar image yasagitov  ( 2016-02-25 02:10:21 -0600 )edit

Hey @asagitov I tried that too. it doesnt work yet. Any other thing that i may be doing wrong?

automate gravatar image automate  ( 2016-02-25 16:59:51 -0600 )edit

Looks like local planner decided that is inefficient to move in y plane. Try raising max_vel_y. Also you can try using DWA planner if you are using base_local_planner and vice versa.

yasagitov gravatar image yasagitov  ( 2016-02-26 01:57:10 -0600 )edit

Thanks @asagitov. will try that out

automate gravatar image automate  ( 2016-02-29 11:07:22 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2016-03-05 12:38:17 -0600

spmaniato gravatar image

Give this DWA configuration a try (changing the numbers to fit your robot). It results in lateral motion (when the corresponding trajectories end up having lower cost of course). Many of the parameters below won't affect your issue, but I've copy-pasted my exact config just in case.

base_local_planner: "dwa_local_planner/DWAPlannerROS"

controller_frequency: 10.0      # 20.0
controller_patience:  15.0      # 15.0

DWAPlannerROS:

  holonomic_robot: true

  # Tolerances                  Defaults
  yaw_goal_tolerance: 0.05      # 0.05
  xy_goal_tolerance:  0.05      # 0.10
  latch_xy_goal_tolerance: true # false

  # Forward simulation          Defaults
  use_dwa: true                 # true
  sim_time: 1.0                 # 1.7
  sim_granularity: 0.025        # 0.025
  angular_sim_granularity: 0.017 # 0.10 (1 degree = 0.017 rad)
  vx_samples: 3                 # 3
  vy_samples: 10                # 10
  vth_samples: 20               # 20

  # Scoring                     Defaults
  meter_scoring: false          # Is this even taken into account?
  path_distance_bias: 1.00      # 32.0
  goal_distance_bias: 0.10      # 24.0
  occdist_scale: 0.01           # 0.01
  forward_point_distance: 0.325 # 0.325
  stop_time_buffer: 0.20        # 0.20
  scaling_speed: 0.25           # 0.25
  max_scaling_factor: 0.20      # 0.20
  heading_lookahead: 0.325
  heading_scoring_timestep: 0.8
  heading_scoring: true         # Is this even taken into account?
  penalize_negative_x: false    # Is this even taken into account?

  # Acceleration and velocity limits

  # acc_limit_trans: 1.0
  acc_lim_x: 1.0                # 2.5
  acc_lim_y: 1.0                # 2.5
  acc_lim_theta: 1.0            # 3.2

  # max_trans_vel: 0.5
  # min_trans_vel: 0.1
  max_vel_x: +0.3
  min_vel_x: -0.3
  max_vel_y: +0.3
  min_vel_y: -0.3

  max_rot_vel: 1.0
  min_rot_vel: 0.4

  # Other                       Defaults
  oscillation_reset_dist: 0.05  # 0.05
  oscillation_reset_angle: 0.20 # 0.20
  prune_plan: false             # true
  trans_stopped_vel: 0.1        # 0.1
  rot_stopped_vel: 0.1          # 0.1
  publish_cost_grid_pc: true    # false
edit flag offensive delete link more

Comments

Thanks @spmaniato. I do get y velocities now. However the robot keeps circling around. I tried changing the limits of velocities and acceleration. But that didnt help? Can u think of a reason for this?

automate gravatar image automate  ( 2016-03-05 16:06:06 -0600 )edit

I'm glad there's progress. What you're seeing might be due to some of my other parameters (tolerances, acceleration limits, etc.) I've tuned this config file for a pretty slow robot. Also, try the default scoring-related parameters. Btw, how are you localizing? AMCL? Any warnings/errors in the logs?

spmaniato gravatar image spmaniato  ( 2016-03-05 16:29:19 -0600 )edit

Thanks for the reply @spmaniato. I tried using default parameters. Yet the robot performs circular motion. I am not localizing. My sole purpose of using nav stack is obstacle avoidance. I use rolling window in global planner. I wish to give goal like (0,4),... from starting position.

automate gravatar image automate  ( 2016-03-05 23:39:36 -0600 )edit

I see, cool. I'm guessing you've confirmed that the goal that reaches DWAPlanner is in the correct frame? (/odom). Because if the coordinate transformation is off, then the robot might be pursuing a different goal than the intended one.

spmaniato gravatar image spmaniato  ( 2016-03-06 10:06:30 -0600 )edit

@spmaniato ya I did check that. I tweaked the parameters. I am getting good results now. UAV does avoids obstacles and does reach to goal!! Thanks for the help. Here is a video of what i achieved - https://www.youtube.com/watch?v=r1X6U...

automate gravatar image automate  ( 2016-03-16 23:06:59 -0600 )edit

@automate Could you show the final version of your parameters? Having the same issue.

JamesDoe gravatar image JamesDoe  ( 2018-02-21 06:30:47 -0600 )edit

Question Tools

3 followers

Stats

Asked: 2016-02-24 13:54:59 -0600

Seen: 2,440 times

Last updated: Mar 05 '16