ESC (ローラーモーター)¶
ディスク発射機構のローラーモーターは、ESC(Electronic Speed Controller) を介して PWM 信号で制御します。Raspberry Pi 5 の GPIO ピンから PWM パルスを出力します。
対応 ROS 2 パッケージ
esc_motor_control_cpp(C++、pigpio / lgpio バックエンド対応)esc_motor_control_python(Python)
制御方式¶
ESC は一般的なサーボ PWM 信号(パルス幅変調)で速度を指令します。
esc_motor_control ノードの既定パラメータは次のとおりです。
| パラメータ | 既定値 | 説明 |
|---|---|---|
pwm_pin |
13 |
PWM 出力に使う GPIO ピン (BCM) |
min_pulse_width |
0 µs |
speed = -1.0 に対応 |
max_pulse_width |
2000 µs |
speed = +1.0 に対応 |
neutral_pulse_width |
1000 µs |
アーム / アイドル(停止)位置 = 1.0 ms |
max_speed |
1.0 |
前進最大 |
min_speed |
-1.0 |
後進最大 |
full_speed_button |
7 |
フル回転ボタン(Switch 系 ZR) |
full_speed_value |
1.0 |
フル回転時の速度値 |
speed = 0.0 は (min+max)/2 = 1000 µs にマッピングされ、停止状態になります。
PWM バックエンド¶
| パラメータ | 既定値 | 説明 |
|---|---|---|
pwm_backend |
auto |
auto(pigpio→lgpio→sim の順に試行)/ pigpio / lgpio / simulation |
gpio_chip_num |
4 |
lgpio バックエンドの GPIO チップ番号(0 = Pi4, 4 = Pi5) |
test_mode |
false |
実 GPIO を使わない純シミュレーション |
安全機構¶
| パラメータ | 既定値 | 説明 |
|---|---|---|
enable_safety_stop |
true |
コマンド途絶時の自動安全停止を有効化 |
safety_timeout |
1.0 秒 |
この秒数コマンドが来なければ安全停止 |
状態は /roller_motor_status、緊急停止状態は /roller_emergency_status に出力されます。
これは実測回転数ではなく ESC へ送っている指令値 です。
ESC / モーターのテスト時の安全手順
リポジトリの test_esc.py は、初期化前に以下を作業者へ確認します。
実機テスト時は必ず次を守ってください。
- プロペラ / ディスクを外す
- モーターを固定する
- 周囲の安全を確保する(人が近くにいない)
- (初期確認時は)バッテリーを外す
test_esc.py は GPIO 13 で PWM を生成し、安全のためパルス幅を 1.0〜2.0 ms に制限します
(pigpio 優先、なければソフトウェア PWM にフォールバック)。
配線¶
PWM 信号線を GPIO13 (BCM) に接続し、GND を共通化します。ESC の電源・モーター動力線は ESC の仕様に従って接続してください。詳細は ピン配置 を参照してください。