diff --git a/src/elephant_robotics/agv_pro_description/urdf/parts/wheel_macro.xacro b/src/elephant_robotics/agv_pro_description/urdf/parts/wheel_macro.xacro index 4e7196e..074b106 100644 --- a/src/elephant_robotics/agv_pro_description/urdf/parts/wheel_macro.xacro +++ b/src/elephant_robotics/agv_pro_description/urdf/parts/wheel_macro.xacro @@ -86,7 +86,8 @@ - 1.0 + + 5.0 0.0 - - - 100000.0 - 10.0 - - diff --git a/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml b/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml index cc4b7be..cb2a4c7 100644 --- a/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml +++ b/src/elephant_robotics/agv_pro_gazebo/config/agv_control.yaml @@ -29,6 +29,13 @@ mecanum_drive_controller: base_frame_id: base_footprint 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: wheels_radius: 0.072 # 轮子半径 (wheel centre height above ground) # sum_of_robot_center_projection_on_X_Y_axis = lx + ly (0.172 + 0.180) diff --git a/src/elephant_robotics/agv_pro_navigation2/param/nav2_sim.yaml b/src/elephant_robotics/agv_pro_navigation2/param/nav2_sim.yaml index 4887924..3dd28be 100644 --- a/src/elephant_robotics/agv_pro_navigation2/param/nav2_sim.yaml +++ b/src/elephant_robotics/agv_pro_navigation2/param/nav2_sim.yaml @@ -81,9 +81,15 @@ controller_server: use_realtime_priority: false # 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: - plugin: "nav2_controller::SimpleProgressChecker" + plugin: "nav2_controller::PoseProgressChecker" required_movement_radius: 0.5 + required_movement_angle: 0.5 movement_time_allowance: 10.0 # Goal checker parameters #precise_goal_checker: