| 名称 | MIRS2403 第1回ソフト詳細設計 |
|---|---|
| 番号 | MIRS2403-SOFT-0001 |
| 版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
|---|---|---|---|---|
| A01 | 2025.1.24 | 中村 介 | 香川 真人 | 第2版 |
本ドキュメントはMIRS2403 華蟻のソフトウェア詳細設計書である。
機能概要をtable1に示す。
| 機能 | 概要 | 主要な記述言語 |
|---|---|---|
| 自律走行 | ROS 2のNavigation 2を用いて自己位置推定、経路設定を行う | C++ |
| ジャッキ制御機能 | ジャッキの昇降動作の制御を行う | Arduino言語 |
| 椅子認識機能 | LiDARとカメラを用いて椅子の位置、向きの認識を行う | Python |
| WEBアプリケーション | 人数と配置パターンをを入力し、動作の開始指令を送る | html,css,Javascript |
Jetson Nanoのモジュール構成をfig1, table2に示す。
| モジュール名 | 概要 |
|---|---|
| BehaviorTree | 全体の統括制御と状態遷移、椅子の状況を管理する |
| odometry_publisher | エンコーダー情報のサブスクライブとオドメトリのパブリッシュ |
| micro-ROS 2 Agent | micro-ROS用ノード。起動することでESP32をノードの一部として組み込めるようにする。 |
| sllidar_ros2 | RPLiDARとの通信と/scanのパブリッシュ、点群の一次フィルタリング |
| Navigation2 | 自律走行の主要部分。自己位置推定、経路作成を行う |
| chair_detector | 椅子の位置検出 |
| l4v2_camera | カメラ情報の取得 |
| ros2_aruco | 椅子の位置、向き検出 |
| rosbridge_suite | webとの通信 |
ESP32のモジュール構成をfig2, table3に示す。
| モジュール名 | 概要 |
|---|---|
| mirs24_esp32.ino | setup関数及びloop関数の定義 |
| config.h | ピンやパラメータの定義 |
| pubsub_callback.ino | コールバック関数置き場(pub/sub通信関連) |
| server_callback.ino | ros2のserver/client機能を有するコールバック関数置き場。ジャッキの動作命令の処理もサービスが行う |
| ros_setup.ino | micro-ROSのセットアップ |
| vel_ctrl.ino | 速度制御 |
| vlt_obserber.ino | 電圧の監視 |
| encoder.ino | エンコーダーの読み取り |
以下にwebアプリに関するモジュール構成図と動作概要を示す。
| モジュール名 | 概要 |
|---|---|
| index.html | 人数と配置パターン、配置場所を入力するクライアント。 |
| demo.html | 配置場所をのみを入力するデモ用クライアント。 |
| style.css | index.htmlの装飾 |
| sakura.css | 桜のエフェクト |
| script.js | chair_arrangement_serviceのサービスを呼び出し、情報を送る。 |
| sakura.js | 桜のエフェクト |
| img/ | index.htmlで使用する画像のフォルダ |
親機のフローチャートをfig4に示す。