Add reference timeout to get robot moving quicker, and switch to pose progress checker

This commit is contained in:
Matt Spencer
2026-08-02 13:20:30 +00:00
parent 7e1cad1536
commit e50d0e2c27
3 changed files with 16 additions and 8 deletions
@@ -86,7 +86,8 @@
<surface> <surface>
<friction> <friction>
<ode> <ode>
<mu>1.0</mu>
<mu>5.0</mu>
<mu2>0.0</mu2> <mu2>0.0</mu2>
<xacro:if value="${reflect}"> <xacro:if value="${reflect}">
<fdir1 <fdir1
@@ -98,12 +99,6 @@
</xacro:unless> </xacro:unless>
</ode> </ode>
</friction> </friction>
<contact>
<ode>
<kp>100000.0</kp>
<kd>10.0</kd>
</ode>
</contact>
</surface> </surface>
</collision> </collision>
</gazebo> </gazebo>
@@ -29,6 +29,13 @@ mecanum_drive_controller:
base_frame_id: base_footprint base_frame_id: base_footprint
enable_odom_tf: true enable_odom_tf: true
# How long a /cmd_vel (reference) command stays valid, in seconds. The
# controller default is 0.0, which treats every command as instantly expired
# and so mostly halts between messages — the wheels only reached ~16-31% of
# the commanded speed and the robot crawled. 0.5 s holds the last command
# between messages (standard cmd_vel behaviour) so the wheels run at speed.
reference_timeout: 0.5
kinematics: kinematics:
wheels_radius: 0.072 # 轮子半径 (wheel centre height above ground) wheels_radius: 0.072 # 轮子半径 (wheel centre height above ground)
# sum_of_robot_center_projection_on_X_Y_axis = lx + ly (0.172 + 0.180) # sum_of_robot_center_projection_on_X_Y_axis = lx + ly (0.172 + 0.180)
@@ -81,9 +81,15 @@ controller_server:
use_realtime_priority: false use_realtime_priority: false
# Progress checker parameters # Progress checker parameters
# PoseProgressChecker (not SimpleProgressChecker) so that in-place rotation
# counts as progress. At the goal the holonomic base often must rotate to
# meet yaw_goal_tolerance; SimpleProgressChecker only credits *translation*
# (required_movement_radius) so that final yaw alignment tripped "Failed to
# make progress" -> recovery spin -> rotated further off goal -> Goal failed.
progress_checker: progress_checker:
plugin: "nav2_controller::SimpleProgressChecker" plugin: "nav2_controller::PoseProgressChecker"
required_movement_radius: 0.5 required_movement_radius: 0.5
required_movement_angle: 0.5
movement_time_allowance: 10.0 movement_time_allowance: 10.0
# Goal checker parameters # Goal checker parameters
#precise_goal_checker: #precise_goal_checker: