名称 MIRS2405 ソフト詳細設計書
番号 MIRS2405-soft-0002

版数 最終更新日 作成 承認 改訂記事
B01 2025.1.24 清拓実、平沢快斗、幸航輝 香川 初版

目次

  • 1.ドキュメント
  • 2.機能概要
  • 3.モジュール構成
  • 4.フローチャート
  • 1.ドキュメント

    本ドキュメントはmirs2405𝔊𝔘𝔏𝔏ℭのソフトウェア詳細設計書である。

    2.機能概要

    機能と概要をTable1に示す。

    Table.1:機能と概要
    機能 概要 記述言語
    ロボットアーム ロボットアームで、その人が受け取りやすい高さで人に渡す
    配布物を自動で補充
    python, Arduino言語
    対象者選別 配る対象を年齢、性別、身長を選別する python
    ラジコン操作 緊急時や、持ち運びのために、ラジコンで操作可能 python, Arduino言語

    3.モジュール構成

    3.1.Raspberry Pi 4 modleB

    Raspberry Piのモジュール構成をfigure1, Table2に示す。


    figure.1 :Raspberry Piのモジュール構成
    Table.2:Raspberry Piのモジュール詳細
    モジュール名 概要
    main.py 全体のメインプログラム
    config.py 各マイコンのポート、ボーレートを定義
    send.py 各マイコンにシリアル通信で指令を送信
    receive.py 各マイコンからシリアル通信で値を受信
    read_json.py 身長,年齢、性別のデータをjsonファイルから読み取るプログラム
    client_json.py ipアドレスを用いて文字列を通信しjsonファイルに書き込むプログラム(身長データを受け取る),クライアント側
    client_deepface.py ipアドレスを用いて文字列を通信しjsonファイルに書き込むプログラム(年齢,性別データを受け取る),クライアント側

    3.2.Arduino UNO

    Arduinoのモジュール構成をfigure2, Table3に示す。


    figure.2 :Arduinoのモジュール構成
    Table.3:プログラムの説明
    モジュール名 概要
    main.ino setup関数および、loop関数の定義
    init.ino ピンの初期化や、シリアル通信の転送レートの定義。一度だけ実行される
    raspi.ino raspiとのUSBシリアル通信
    turntable.ino ターンテーブルの制御
    gripper.ino グリッパー、エアーチャック、ポンプの制御
    radicon.ino ラジコン操作
    defiine.h ゲインやパラメータ、ピンの定義

    3.3.Raspberry Pi pico

    Raspberry Pi picoのモジュール構成をfigure3, Table4に示す。


    figure.3 :Raspberry Pi picoのモジュール構成
    Table.4:プログラムの説明
    モジュール名 概要
    main.ino setup関数および、loop関数の定義
    init.ino ピンの初期化や、シリアル通信の転送レートの定義。一度だけ実行される
    raspi.ino raspiとのUSBシリアル通信
    run.ino x,y座標を取得し、極座標に変換して走行する
    encoder.ino クローラのエンコーダの読み取り
    PID.ino クローラをPID制御
    motor.ino クローラを制御
    arm.ino 各関節に角度を送る
    joint.ino 各関節のモータ制御
    radicon.ino ラジコン操作
    define.h ゲインやパラメータ、ピンの定義

    3.4.jetson nano

    jetson nanoのモジュール構成をfigure4,Table5に示す。


    figure.4 :jetsonのモジュール構成

    Table.5:プログラムの説明
    モジュール名 概要
    main_height_server_plus.py server_value_update.pyとzed_hight_class_plus.pyを用いて身長を推定し送信するプログラム
    server_value_update.py ipアドレスを用いて文字列を通信するプログラム、サーバー側
    zed_hight_class_plus.py 骨格推定を用いて身長を推定する
    server_deepface.py 年齢、性別を推定し送信するプログラム、サーバー側

    3.5.esp32

    esp32のモジュール構成をfigure5,Table6に示す。


    figure.5 :esp32のモジュール構成

    Table.6:プログラムの説明
    モジュール名 概要
    main.ino setup関数および、loop関数の定義
    defind.h ゲインやパラメータ、ピンの定義
    init.ino ピンの初期化や、シリアル通信の転送レートの定義。一度だけ実行される
    raspi.ino raspiからの指令を受信
    radicon.ino ラジコン入力の取得とraspiへの送信

    4.フローチャート

    4.1.全体

    全体のフローチャートをfigure7に示す。


    figure.6 :フローチャート(全体)

    4.2.衝突回避

    衝突回避のフローチャートをfigure8に示す。


    figure.7 :フローチャート(衝突回避)

    4.3.ラジコン操作

    ラジコン操作ののフローチャートをfigure9に示す。


    figure.8 :フローチャート(ラジコン操作)



    MIRS2031ドキュメント管理台帳