Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions rmcs_ws/src/hikcamera
Submodule hikcamera added at f0077f
11 changes: 6 additions & 5 deletions rmcs_ws/src/rmcs_bringup/config/auto_aim_test.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -2,14 +2,14 @@ rmcs_executor:
ros__parameters:
update_rate: 1000.0
components:
# - rmcs::AutoAimPlayerComponent -> auto_aim_player
- rmcs::AutoAimVideoPlayerComponent -> auto_aim_video_player
- rmcs::AutoAimPlayerComponent -> auto_aim_player
# - rmcs::AutoAimVideoPlayerComponent -> auto_aim_video_player
# - rmcs::AutoAimRecorderComponent -> auto_aim_recorder
- rmcs::AutoAimComponent -> auto_aim_component

auto_aim_player:
ros__parameters:
input_path: "/workspaces/data/autoaim/robot/blue_fast_track/"
input_path: "/workspaces/RMCS/develop_ws/record/26uc-train/2026-08-03_20-51-11"
Comment on lines 10 to +12

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win

不要提交依赖开发机目录的默认录制路径。

auto_aim_player.input_path 固定为 /workspaces/RMCS/develop_ws/record/26uc-train/2026-08-03_20-51-11。该目录不在仓库中,其他开发机、CI 或机器人容器可能不存在。AutoAimPlayerComponent 因此可能无法加载录制。请使用可部署的配置路径,或通过 launch 参数注入本地路径;本地专用路径不应成为共享默认配置。

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@rmcs_ws/src/rmcs_bringup/config/auto_aim_test.yaml` around lines 10 - 12,
Remove the machine-specific absolute value from auto_aim_player.input_path in
the shared configuration. Replace it with a deployable
repository-relative/default path, or leave it configurable through launch
arguments so local recording paths are injected at runtime rather than
committed.

loop_play: true

auto_aim_video_player:
Expand All@@ -29,10 +29,10 @@ auto_aim_recorder:

auto_aim_component:
ros__parameters:
dangerous_fallback: "red"
dangerous_fallback: "blue"
manual_shoot: false
enable_rune: true
track_ids: [HERO, ENGINEER, INFANTRY_3, INFANTRY_4, SENTRY, OUTPOST]
track_ids: [HERO, ENGINEER, INFANTRY_3, INFANTRY_4, SENTRY, OUTPOST, RUNE]
camera_translation: [0., 0., 0.]

fire_control:
Expand All@@ -50,3 +50,4 @@ auto_aim_component:
pitch_tolerance: 0.04
rune_idle_duration: 0.4
rune_shoot_duration: 0.2
# is_lazy_gimbal: false
109 changes: 69 additions & 40 deletions rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni-b.yaml
Original file line numberDiff line numberDiff line change
Expand Up@@ -30,10 +30,13 @@ rmcs_executor:
- rmcs_core::controller::chassis::DeformableJointController -> rb_joint_controller
- rmcs_core::controller::chassis::DeformableJointController -> rf_joint_controller

- rmcs::AutoAimRecorderComponent -> auto_aim_recorder
- rmcs::AutoAimComponent -> auto_aim_component
- rmcs::AutoAimCapturerComponent -> auto_aim_capturer
- rmcs_core::referee::app::ui::AutoAimUi -> auto_aim_ui

# - rmcs_core::debug::GimbalValueCollector -> gimbal_value_collector

# - rmcs_core::broadcaster::ValueBroadcaster -> value_broadcaster
# - rmcs_core::debug::ValueCollector -> value_collector

Expand All@@ -50,17 +53,32 @@ value_collector:
write_interval: 5
flush_interval: 1000

gimbal_value_collector:
ros__parameters:
csv_path: "/tmp/gimbal_ff_<timestamp>.csv"
write_interval: 1
flush_interval: 1000

value_broadcaster:
ros__parameters:
forward_list:
- /gimbal/pitch/angle
- /gimbal/pitch/velocity
- /gimbal/yaw/angle
- /gimbal/yaw/velocity

auto_aim_recorder:
ros__parameters:
output_path: "/autoaim/recoder"
queue_depth: 16
flush_every_n_frames: 64
max_duration_seconds: 0
max_videos_size_gb: 200.0
auto_record: false
Comment on lines +68 to +75

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

两个配置的 auto_aim_recorder.output_path 都指向文件系统根目录,且目录名拼写错误。 同一个路径常量 /autoaim/recoder 被复制到两个配置文件。它是根目录下的绝对路径,非 root 进程无法在 / 下创建目录,录制会失败或静默丢弃数据;recoder 应为 recorder。请在两处统一改为用户可写路径。

  • rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni-b.yaml#L68-L75:把 output_path 改为可写路径,例如 /tmp/autoaim/recorder
  • rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni.yaml#L60-L67:把 output_path 改为与上面一致的可写路径。
📍 Affects 2 files
  • rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni-b.yaml#L68-L75 (this comment)
  • rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni.yaml#L60-L67
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni-b.yaml` around lines
68 - 75, Update auto_aim_recorder.output_path in
rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni-b.yaml#L68-L75 and
rmcs_ws/src/rmcs_bringup/config/deformable-infantry-omni.yaml#L60-L67 to the
same user-writable path, such as /tmp/autoaim/recorder, replacing the root-level
misspelled /autoaim/recoder value in both configurations.


auto_aim_capturer:
ros__parameters:
camera_name: ""
exposure_us: 4000.0
gain: 8.0
exposure_us: 2000.0
gain: 10.0
framerate: 120.0
invert_image: false
rls_tau_sec: 10.0
Expand All@@ -73,23 +91,23 @@ auto_aim_component:
# 将强行绑定为对应阵营哨兵,仅供调试,严禁比赛启用。
# 留空或填 unknow 表示禁用。
dangerous_fallback: ""
manual_shoot: true
manual_shoot: false
enable_rune: true
camera_translation: [0.058, -0.08, 0.0]
fire_control:
bullet_speed: 22.5
shoot_delay: 0.04
offset_yaw: +2.5
offset_pitch: +0.5
attack_window: 80.0
shoot_delay: 0.07
offset_yaw: +2.6
offset_pitch: -0.3
attack_window: 120.0
degraded_angle_speed: 12.0
window_redundancy: 0.8
window_redundancy: 0.6
window_hysteresis: 0.2
attack_preaim: false
require_stable_command: false
yaw_tolerance: 0.07
pitch_tolerance: 0.04
rune_idle_duration: 0.4
yaw_tolerance: 0.14
pitch_tolerance: 0.08
rune_idle_duration: 0.6
rune_shoot_duration: 0.2

auto_aim_ui:
Expand All@@ -106,26 +124,23 @@ deformable_infantry:
rod_length: 0.140
yaw_motor_zero_point: 57900
pitch_motor_zero_point: 56354
debug_log_supercap: false
debug_log_wheel_motor: false
debug_log_deformable_joint_motor: false

chassis_controller:
ros__parameters:
# Deploy geometry / chassis-owned joint intent
min_angle: 5.0
min_angle: 8.0
max_angle: 59.0
active_suspension_enable: true
spin_ratio: 1.0
wireless_charging_offset_deg: 225.0
wireless_charging_speed_limit: 0.6
wireless_charging_angular_velocity_limit: 10.0

deformable_suspension:
ros__parameters:
# IMU attitude correction at min-angle stance.
active_suspension_pitch_outer_kp: 12.0
active_suspension_pitch_outer_ki: 0.02
active_suspension_pitch_outer_kd: 0.0
active_suspension_pitch_outer_integral_min: -2.0
active_suspension_pitch_outer_integral_max: 2.0
active_suspension_pitch_outer_integral_min: -1.0
active_suspension_pitch_outer_integral_max: 1.0
active_suspension_pitch_outer_output_min: -3.0
active_suspension_pitch_outer_output_max: 3.0

Expand All@@ -140,8 +155,8 @@ deformable_suspension:
active_suspension_roll_outer_kp: 12.0
active_suspension_roll_outer_ki: 0.02
active_suspension_roll_outer_kd: 0.0
active_suspension_roll_outer_integral_min: -2.0
active_suspension_roll_outer_integral_max: 2.0
active_suspension_roll_outer_integral_min: -1.0
active_suspension_roll_outer_integral_max: 1.0
active_suspension_roll_outer_output_min: -3.0
active_suspension_roll_outer_output_max: 3.0

Expand All@@ -153,42 +168,53 @@ deformable_suspension:
active_suspension_roll_inner_output_min: -0.785
active_suspension_roll_inner_output_max: 0.785

# Chassis-owned joint intent trajectory limits while attitude correction is active.
active_suspension_target_velocity_limit_deg: 80.0
active_suspension_target_acceleration_limit_deg: 360.0
active_suspension_target_velocity_limit_deg: 150.0
active_suspension_target_acceleration_limit_deg: 600.0
active_suspension_correction_velocity_limit_deg: 720.0
active_suspension_correction_acceleration_limit_deg: 3600.0
active_suspension_rate_lpf_cutoff_hz: 10.0

# Automatic IMU mounting-error calibration.
# When all four requested joint targets stay equal for 2s, average pitch/roll from 2s to 5s.
active_suspension_target_pitch_deg: 0.0

chassis_imu_calibration_wait_s: 2.0
chassis_imu_calibration_sample_s: 3.0

gimbal_controller:
ros__parameters:
upper_limit: -0.47123 # -27 deg
lower_limit: 0.10 # 8 deg
upper_limit: -0.60
lower_limit: 0.10
ctrl_hold_pitch_target_angle: 0.0

yaw_angle_kp: 15.0
yaw_angle_kp: 10.0
yaw_angle_ki: 0.0
yaw_angle_kd: 0.0

yaw_velocity_kp: 15.0
yaw_velocity_ki: 0.0
yaw_velocity_kp: 13.0
yaw_velocity_ki: 0.02
yaw_velocity_kd: 0.0
yaw_velocity_integral_min: -5.0
yaw_velocity_integral_max: 5.0

pitch_angle_kp: 35.0
pitch_angle_ki: 0.02
pitch_angle_kd: 0.3
pitch_angle_kd: 0.0
pitch_angle_integral_min: -0.5
pitch_angle_integral_max: 0.5

pitch_velocity_kp: 2.0
pitch_velocity_kp: 1.8
pitch_velocity_ki: 0.0
pitch_velocity_kd: 0.0

pitch_gravity_ff_gain: 4.302
pitch_gravity_ff_phase: 0.589
yaw_ref_velocity_gain: 1.0
pitch_ref_velocity_gain: 1.0

yaw_velocity_ff_gain: 0.13
yaw_acceleration_ff_gain: 0.18
pitch_velocity_ff_gain: 0.378
pitch_acceleration_ff_gain: 0.0396

pitch_gravity_ff_gain: 2.438
pitch_gravity_ff_phase: 1.7254

pitch_torque_control: true

Expand All@@ -200,6 +226,9 @@ friction_wheel_controller:
friction_velocities:
- 580.0
- 580.0
friction_velocities_low_mode:
- 530.0
- 530.0
friction_soft_start_stop_time: 1.0

heat_controller:
Expand All@@ -210,7 +239,7 @@ heat_controller:
bullet_feeder_controller:
ros__parameters:
bullets_per_feeder_turn: 8.0
shot_frequency: 30.0
shot_frequency: 15.0
safe_shot_frequency: 10.0
eject_frequency: 10.0
eject_time: 0.05
Expand DownExpand Up@@ -241,7 +270,7 @@ bullet_feeder_velocity_pid_controller:
measurement: /gimbal/bullet_feeder/velocity
setpoint: /gimbal/bullet_feeder/control_velocity
control: /gimbal/bullet_feeder/control_torque
kp: 1.5
kp: 0.9
ki: 0.0
kd: 0.0

Expand Down
Loading