コンテンツにスキップ

センサ・LiDAR

YDLiDAR

周囲のスキャンには YDLiDAR を使用します。ドライバは外部リポジトリとして dependency.repos から取り込みます(ワークスペースのビルド)。

リポジトリ 用途
ydlidar_sdk_vendor YDLiDAR SDK のベンダーパッケージ
ydlidar_ros2 YDLiDAR の ROS 2 ドライバ

起動は questix_core.launch.xmlenable_lidar:=true で有効化され、内部で ydlidar_ros2_driver の launch を読み込みます。LiDAR のパラメータは launcher/config/lidar_params.yaml 等で調整します。

ブランチ互換性

ydlidar_ros2humble ブランチを参照しています。QUESTiX は Jazzy で動作するため、 ビルド前に互換性を確認してください。

GPIO 入力

競技フラグ等のデジタル入力は GPIO から読み取ります。gpio_reader ノードが担当します。

パラメータ 既定値 説明
chip_name /dev/gpiochip4 GPIO チップ(Raspberry Pi 5 は gpiochip4)
gpio_pins [27] 監視するピン(BCM 番号)
publish_rate 20.0 Hz 読み取り・配信レート

gpio_reader は監視ピンごとに /gpio/<PIN> (Bool) トピックを配信します。

操作可否の判定(operation_manager)

operation_manager は GPIO の状態を監視し、ロボットを操作してよいか判定します。

パラメータ 既定値 説明
monitored_pins [27] 監視ピン
timeout_seconds 1.0 GPIO 更新がこの秒数途絶えたら「操作不可」とみなす

判定結果は /gpio/controllable (Bool) として配信され、joy_gate が操作入力の ゲーティング(遮断)に利用します。

flowchart LR
    GPIO["GPIO pin27<br/>(gpiochip4)"] --> GR["gpio_reader"]
    GR -->|/gpio/27| OM["operation_manager"]
    OM -->|/gpio/controllable| JG["joy_gate"]
    JG -->|ゲートされた Joy| DRV["drive / shot"]

Raspberry Pi 5 の GPIO チップ

Raspberry Pi 5 では GPIO の操作に /dev/gpiochip4 を使用します(Pi 4 以前は gpiochip0)。 GPIO アクセスには gpio グループへの所属が必要です(systemd サービスは SupplementaryGroups=gpio を設定)。