パラメータ詳説¶
このページでわかること
motor_control_app/config/ 配下の YAML ファイルにある全パラメータの意味・既定値・変更時の注意点がわかります。
パラメータファイルは ~/questix/motor_control_app/config/ にあります。--symlink-install でビルド済みの場合、YAML の変更はノード再起動のみで反映されます(再ビルド不要)。
drive_component.yaml(走行)¶
走行コンポーネント(drive_component)の設定です。
drive_component:
ros__parameters:
serial_port: "/dev/ttyACM0"
baud_rate: 57600
wheel_radius: 0.1
wheel_separation: 0.5
left_motor_id: 4
right_motor_id: 5
max_motor_rpm: 1000
control_mode: "current"
current_kp: 0.001
current_ki: 0.0
max_current_amp: 1.0
integral_limit_amp: 0.3
current_zero_deadband_rpm: 5
status_publish_rate: 10.0
status_topic: "/drive_motor_status"
シリアル通信¶
| パラメータ | 既定値 | 説明 |
|---|---|---|
serial_port |
/dev/ttyACM0 |
DDT モーターが接続された RS-485 アダプターのデバイスファイル |
baud_rate |
57600 |
ボーレート。DDT M0602C の既定に合わせる |
ロボット物理パラメータ¶
| パラメータ | 既定値 | 説明 |
|---|---|---|
wheel_radius |
0.1 m |
ホイール半径。変更すると速度換算に影響 |
wheel_separation |
0.5 m |
左右ホイール間隔。旋回半径の計算に使用 |
モーター設定¶
| パラメータ | 既定値 | 説明 |
|---|---|---|
left_motor_id |
4 |
左側 DDT モーターの ID |
right_motor_id |
5 |
右側 DDT モーターの ID |
max_motor_rpm |
1000 |
最大回転数 [RPM]。組立直後は 100 程度から始めることを推奨 |
制御モード¶
| パラメータ | 既定値 | 説明 |
|---|---|---|
control_mode |
"current" |
"velocity"(ファーム内蔵速度ループ)または "current"(ソフトウェア PI 制御) |
current_kp |
0.001 |
電流モード比例ゲイン [A/rpm]。発振した場合は下げる |
current_ki |
0.0 |
電流モード積分ゲイン [A/(rpm·s)]。安定確認後に上げる |
max_current_amp |
1.0 |
電流指令の絶対値上限 [A] |
integral_limit_amp |
0.3 |
積分項の絶対値上限(アンチワインドアップ) |
current_zero_deadband_rpm |
5 |
目標 0 かつ実測がこの値以内のとき PI を停止・積分リセット |
control_mode の選び方
velocity: DDT ファームウェアの速度ループを使用。シンプルで安定。current: ソフトウェア PI で RPM → 電流指令を計算。精密操縦向きだが調整が必要。 初めて使う場合はvelocityから始めることを推奨します。
joy_axis_drive_params.yaml(コントローラ軸)¶
コントローラのアナログ軸で走行を制御する際の設定です。
joy_axis_drive:
ros__parameters:
serial_port: "/dev/ttyACM0"
baud_rate: 57600
left_motor_id: 4
right_motor_id: 5
max_motor_rpm: 100
left_axis_index: 1
right_axis_index: 4
invert_left_axis: false
invert_right_axis: true
status_publish_rate: 10.0
publish_twist: true
| パラメータ | 既定値 | 説明 |
|---|---|---|
left_axis_index |
1 |
左モーターを制御する Joy 軸番号(左スティック縦) |
right_axis_index |
4 |
右モーターを制御する Joy 軸番号(右スティック縦) |
invert_left_axis |
false |
左軸を反転するか(前後が逆の場合は true) |
invert_right_axis |
true |
右軸を反転するか |
max_motor_rpm |
100 |
テスト用の低速設定。実際の使用では drive_component.yaml の値を使用 |
shot_config.yaml(発射・サーボ)¶
発射コンポーネント(shot_component)の設定です。コントローラ種別に応じて shot_config.dualshock.yaml / shot_config.uart.yaml のバリエーションがあります。
shot_component:
ros__parameters:
joy_topic: "/joy"
port: "/dev/servo"
baudrate: 115200
tilt_servo_id: 11
trigger_servo_id: 10
fire_button: 5
fire_duration_ms: 300
tilt_axis: 7
tilt_up_button_index: 4
tilt_down_button_index: 6
fire_angle: 145.0
home_angle: 245.0
tilt_max_angle: 120.0
| パラメータ | 既定値 | 説明 |
|---|---|---|
port |
/dev/servo |
サーボコントローラのデバイスファイル |
baudrate |
115200 |
サーボ通信のボーレート |
tilt_servo_id |
11 |
チルト(上下)サーボの ID |
trigger_servo_id |
10 |
トリガー(発射)サーボの ID |
fire_button |
5 |
発射ボタンの Joy インデックス(DualShock: R1、Switch: R) |
fire_duration_ms |
300 |
発射動作の持続時間 [ms] |
tilt_axis |
7 |
チルト操作に使う Joy 軸番号(-1 でボタンモードに切替) |
tilt_up_button_index |
4 |
チルト上ボタンのインデックス(DualShock: L1、Switch: L) |
tilt_down_button_index |
6 |
チルト下ボタンのインデックス(DualShock: L2、Switch: ZL) |
fire_angle |
145.0 |
発射角度 [°] |
home_angle |
245.0 |
ホーム(待機)角度 [°] |
tilt_max_angle |
120.0 |
チルトの最大可動角度 [°] |
tilt_axis の切替
tilt_axis: 7 は D-pad の縦軸で連続チルト操作を行います。tilt_axis: -1 にするとボタン操作モードになり、tilt_up_button_index / tilt_down_button_index で操作します。
single_ddt_motor_config.yaml(単体 DDT テスト用)¶
1 台の DDT モーターを /cmd_vel で直接制御するテスト・デバッグ用ノードの設定です。
single_ddt_motor_node:
ros__parameters:
serial_port: "/dev/ttyACM0"
baud_rate: 57600
motor_id: 4
max_motor_rpm: 100
wheel_radius: 0.1
velocity_scale_factor: 60.0
watchdog_timeout: 1.0
status_publish_rate: 5.0
| パラメータ | 既定値 | 説明 |
|---|---|---|
motor_id |
4 |
制御するモーターの ID |
max_motor_rpm |
100 |
最大 RPM(テスト用に低め) |
velocity_scale_factor |
60.0 |
RPM = linear_x × velocity_scale_factor の係数 |
watchdog_timeout |
1.0 |
秒。この時間 Twist が来ないとモーターを停止する |
コントローラ種別バリエーション¶
shot_config.dualshock.yaml と shot_config.uart.yaml は、コントローラの Joy インデックスが異なる以外は同じです。
| パラメータ | DualShock | UART (Switch) |
|---|---|---|
fire_button |
5(R1) | 5(R) |
tilt_axis |
7(D-pad 縦) | 7(D-pad 縦) |
tilt_up_button_index |
4(L1) | 4(L) |
tilt_down_button_index |
6(L2) | 6(ZL) |
launch 時に controller_type:=dualshock または controller_type:=uart を指定すると、対応する YAML が自動的に読み込まれます。