ROS 2 パッケージ¶
このページでわかること
QUESTiX を構成する ROS 2 パッケージの役割と、操縦からモーター駆動までのデータフローがわかります。
QUESTiX を構成する主要な ROS 2 パッケージと役割の一覧です。
| パッケージ | 種別 | 役割 |
|---|---|---|
motor_control_lib |
C++ ライブラリ | 走行・発射で共有するモーター制御インターフェース |
motor_control_lib_simple |
C++ ライブラリ | 簡易版モーター制御ライブラリ |
motor_control_interfaces |
msg / srv | ROS 2 インターフェース定義 |
motor_control_app |
C++ ノード | 走行 (drive_component)・発射 (shot_component)・単体 DDT モーター制御 |
esc_motor_control_cpp |
C++ ノード | ESC 制御(pigpio / lgpio バックエンド) |
esc_motor_control_python |
Python | ESC 制御(Python 実装) |
joy_controller |
C++ ノード | Joy 入力を走行コマンド・サーボ指令に変換 |
uart_joy_driver |
C++ コンポーネント | UART 接続コントローラを読み取り sensor_msgs/Joy を配信 |
joy_gate |
C++ コンポーネント | 操作可否に応じて Joy メッセージをゲーティング |
gpio_reader |
C++ コンポーネント | GPIO ピンを読み取り Bool トピックを配信(Pi 5 / gpiochip4) |
operation_manager |
C++ ノード | GPIO 状態から /gpio/controllable を判定・配信 |
questix_launcher |
launch パッケージ | 統合起動の入口(XML launch) |
description_launch |
URDF / xacro | ロボットモデル(URDF・メッシュ・RViz・state publisher) |
データフロー(操縦 → 駆動)¶
flowchart LR
CTRL["コントローラ"] --> UJD["uart_joy_driver / joy"]
UJD -->|/joy| JG["joy_gate"]
GR["gpio_reader"] --> OM["operation_manager"]
OM -->|/gpio/controllable| JG
JG -->|ゲートされた /joy| JC["joy_controller"]
JC -->|/cmd_vel| DRV["drive_component"]
JC --> SHOT["shot_component"]
DRV --> DDT["DDT モーター (RS-485)"]
SHOT --> SERVO["サーボ (/dev/servo)"]
JC --> ESC["esc_motor_control"]
ESC --> ROLLER["ローラーモーター (PWM)"]
安全に関わるノード¶
joy_gate—operation_managerの判定 (/gpio/controllable) に基づき、操作不可のときは Joy 入力を遮断します。operation_manager— GPIO 更新がtimeout_secondsを超えて途絶えると操作不可と判定します。esc_motor_control—safety_timeoutを超えてコマンドが来ないと安全停止します。