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

Robot move in little jerks

asked 2019-09-07 07:53:42 -0600

FabioZ96 gravatar image

updated 2019-09-07 07:57:39 -0600

Hi, I'm using Navigation Stack and in particulary rviz to navigate the robot.

I can see cost map and trajectory generated by DWAPlanner

This is my move_base launch file:

<launch>

  <node pkg="move_base" type="move_base" respawn="false" name="move_base" output="screen">

    <rosparam file="$(find robot)/param/costmap_common_params.yaml" command="load" ns="global_costmap" />
    <rosparam file="$(find robot)/param/costmap_common_params.yaml" command="load" ns="local_costmap" />

    <rosparam file="$(find robot)/param/global_costmap_params.yaml" command="load" />
    <rosparam file="$(find robot)/param/local_costmap_params.yaml" command="load" />
    <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
    <param name="base_global_planner" value="navfn/NavfnROS"/>
    <rosparam file="$(find robot)/param/dwa_local_planner_params.yaml" command="load" />
    <remap from="cmd_vel" to="/cmd_vel"/>
    <remap from="odom" to="odom"/>
  </node>

</launch>

I'm also tring to tune DWA Planner parameter and for now they are these:

DWAPlannerROS:

  max_vel_x: 0.8 
  min_vel_x: 0.4

  max_vel_y: 0.0  # diff drive robot
  min_vel_y: 0.0  # diff drive robot

  max_vel_trans: 0.4 # choose slightly less than the base's capability
  min_vel_trans: 0.1  # this is the min trans velocity when there is negligible rotational velocity
#  trans_vel_stopped: 2.1

  max_vel_theta: 0.4  # choose slightly less than the base's capability
  min_vel_theta: 0.1  # this is the min angular velocity when there is negligible translational velocity
#  theta_stopped_vel: 0.2

  acc_lim_x: 1.0 # maximum is theoretically 2.0, but we
  acc_lim_theta: 2.0
  acc_lim_y: 0.0      # diff drive robot

# Goal Tolerance Parameters
#  yaw_goal_tolerance: 0.4  # 0.05
#  xy_goal_tolerance: 0.25  # 0.10
  # latch_xy_goal_tolerance: false

# Forward Simulation Parameters
  sim_time: 1.0       # 1.7
  vx_samples: 20       # 3
  vy_samples: 1       # diff drive robot, there is only one sample
  vtheta_samples: 20  # 20

# Trajectory Scoring Parameters
#  path_distance_bias: 128.0      # 32.0   - weighting for how much it should stick to the global path plan
#  goal_distance_bias: 36.0      # 24.0   - wighting for how much it should attempt to reach its goal
#  occdist_scale: 0.50           # 0.01   - weighting for how much the controller should avoid obstacles
#  forward_point_distance: 0.325 # 0.325  - how far along to place an additional scoring point
#  stop_time_buffer: 0.2         # 0.2    - amount of time a robot must stop in before colliding for a valid traj.
#  scaling_speed: 0.25           # 0.25   - absolute velocity at which to start scaling the robot's footprint
#  max_scaling_factor: 0.2       # 0.2    - how much to scale the robot's footprint when at speed.

# Oscillation Prevention Parameters
#  oscillation_reset_dist: 0.05  # 0.05   - how far to travel before resetting oscillation flags

As you can see in the picture: https://pasteboard.co/Iwj38Bp.png 1. The global plan is generated (RED) 2. The local plan is generated too (GREEN) But the linear and angular velocity have jerks and the robot doesn't move continuosly.

How can I solve this? If you can get me also any suggest to tune these params I will appreciate

edit retag flag offensive close merge delete

Comments

hello! how is your success? I am facing the same problem.

june2473 gravatar image june2473  ( 2019-12-03 02:21:42 -0600 )edit

Hi. I noted graphically that velocities were sent in pulse every 5 time units. So I had 1 correct value followed up with 4 zeros( incorrect values). This didn't permit to reach velocities' goal. So I coded a little function that sample a value different from zero and maintain it for 6 time units. Only after receiving 7 zeros values I assume that velocity is really zero.

FabioZ96 gravatar image FabioZ96  ( 2019-12-03 10:34:32 -0600 )edit

FabioZ96: May I see the function you wrote? I'm facing similar problem with my epuc_robot and can't get the yocs-velocity-smoother working.

yabdulra gravatar image yabdulra  ( 2020-06-02 15:07:06 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-07-16 12:45:31 -0600

vishrut gravatar image

hii,if you are using differential drive package then try to tune kp,ki values. it will solve your problem

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2019-09-07 07:53:42 -0600

Seen: 907 times

Last updated: Jul 16 '20