Add initial

This commit is contained in:
Matthew Spencer
2026-07-15 14:10:00 +00:00
parent a81b99cd3c
commit 76701e81c0
10 changed files with 1281 additions and 34 deletions
@@ -0,0 +1,46 @@
controller_manager:
ros__parameters:
update_rate: 50 # Hz — matches ESP32 auto-report rate
joint_state_broadcaster:
type: joint_state_broadcaster/JointStateBroadcaster
mecanum_drive_controller:
type: mecanum_drive_controller/MecanumDriveController
# ─────────────────────────────────────────────────────────────────────────────
# Mecanum drive controller
# ─────────────────────────────────────────────────────────────────────────────
# NOTE: The URDF joint names do not match the physical wheel positions due to a
# naming inconsistency in agv_pro.urdf. The mapping between the controller's
# logical positions and the URDF joint names is as follows:
#
# Physical position │ URDF joint name
# ──────────────────┼────────────────────────────
# front-left (FL) │ left_front_wheel_joint ✓
# front-right (FR) │ left_rear_wheel_joint ← physically front-right
# rear-left (RL) │ right_front_wheel_joint ← physically rear-left
# rear-right (RR) │ right_rear_wheel_joint ✓
#
# The same mapping is used by the hardware interface (front_left_joint /
# front_right_joint / rear_left_joint / rear_right_joint params in the URDF
# <ros2_control> block).
mecanum_drive_controller:
ros__parameters:
front_left_wheel_command_joint_name: left_front_wheel_joint
front_right_wheel_command_joint_name: left_rear_wheel_joint
rear_left_wheel_command_joint_name: right_front_wheel_joint
rear_right_wheel_command_joint_name: right_rear_wheel_joint
odom_frame_id: odom
base_frame_id: base_footprint
enable_odom_tf: true
kinematics:
# wheel_radius: height of wheel centre above ground from URDF joint origin
# (base_footprint→base_link = 0.020 m + wheel joint z-offset ≈ 0.052 m = 0.072 m)
wheels_radius: 0.072
# sum_of_robot_center_projection_on_X_Y_axis = lx + ly
# lx ≈ 0.172 m (half wheelbase from URDF joint x-origins)
# ly ≈ 0.180 m (half track from URDF joint y-origins)
sum_of_robot_center_projection_on_X_Y_axis: 0.352