名称 | MIRS2405 ソフト詳細設計書 |
---|---|
番号 | MIRS2405-soft-0001 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A01 | 2024.11.15 | 清拓実、平沢快斗、幸航輝 | 初版 |
本ドキュメントはmirs2405𝔊𝔘𝔏𝔏ℭのソフトウェア詳細設計書である。
機能と概要をTable1に示す。
機能 | 概要 | 記述言語 |
---|---|---|
自律走行機能 | 自己位置を推定し移動経路を決定する。障害物を回避する | python, Arduino言語 |
ロボットアーム | ロボットアームで、その人が受け取りやすい高さで人に渡す 配布物を自動で補充 |
python, Arduino言語 |
対象者選別 | 配る対象を年齢や性別で選別する | python |
ラジコン操作 | 緊急時や、持ち運びのために、ラジコンで操作可能 | python, Arduino言語 |
Raspberry Piのモジュール構成をfigure1, Table2に示す。
モジュール名 | 概要 |
---|---|
main.py | 全体のメインプログラムを実行 |
serial_ino.py | Arduino Unoとのシリアル通信 |
serial_pico.py | rp2040とのシリアル通信 |
serial_jetson.py | Jetson nanoとのシリアル通信 |
arm.py | ロボットアーム角度計算プログラム |
config.py | 各モジュールで使用する定数を定義 |
Arduinoのモジュール構成をfigure2, Table3に示す。
モジュール名 | 概要 |
---|---|
main.ino | setup関数および、loop関数の定義 |
init.ino | ピンの初期化や、シリアル通信の転送レートの定義。一度だけ実行される |
raspi.ino | raspiとのUART通信 |
turntable.ino | ターンテーブルの制御 |
gripper.ino | グリッパー、エアーチャック、ポンプの制御 |
radicon.ino | ラジコン操作 |
defiine.h | ゲインやパラメータ、ピンの定義 |
Raspberry Pi picoのモジュール構成をfigure3, Table4に示す。
モジュール名 | 概要 |
---|---|
main.ino | setup関数および、loop関数の定義 |
init.ino | ピンの初期化や、シリアル通信の転送レートの定義。一度だけ実行される |
raspi.ino | raspiとのUART通信 |
run.ino | x,y座標を取得し、極座標に変換して走行する |
encoder.ino | クローラのエンコーダの読み取り |
PID.ino | クローラをPID制御 |
motor.ino | クローラを制御 |
arm.ino | 各関節に角度を送る |
joint.ino | 各関節のモータ制御 |
radicon.ino | ラジコン操作 |
define.h | ゲインやパラメータ、ピンの定義 |
jetson nanoのモジュール構成をfigure4,ros2のnodeをfigure5,モジュール、nodeの詳細をTable5に示す。
モジュール名 | 概要 |
---|---|
deepface_text.py | 年齢推定、性別判定を判定する |
ex.py | lidarの情報から身長を推定する |
get_lidar_value.py | ros2の/human_detectorのtopicから値を取得する |
serial_jetson.py | jetsonとraspberry pi 4 modleBとシリアル通信を行う |
main.py | まとめてプログラムを実行する |
view_s1lidar_s1_launch.py | lidarがら値を取得して/scanのtopicを出力する |
lidar_human_detector.py | /scanから値を取得して、移動している物体を認識して距離と角度の情報を取得する。 その後、/human_detectorの名前でtopic出力する |
全体のフローチャートをfigure6に示す。
衝突回避のフローチャートをfigure7に示す。
ラジコン操作ののフローチャートをfigure8に示す。