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

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

目次

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

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

    2.機能概要

    機能と概要をTable1に示す。

    Table.1:機能と概要
    機能 概要 記述言語
    自律走行機能 自己位置を推定し移動経路を決定する。障害物を回避する python, Arduino言語
    ロボットアーム ロボットアームで、その人が受け取りやすい高さで人に渡す
    配布物を自動で補充
    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 全体のメインプログラムを実行
    serial_ino.py Arduino Unoとのシリアル通信
    serial_pico.py rp2040とのシリアル通信
    serial_jetson.py Jetson nanoとのシリアル通信
    arm.py ロボットアーム角度計算プログラム
    config.py 各モジュールで使用する定数を定義

    3.2.Arduino UNO

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


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

    3.3.jetson nano

    jetson nanoのモジュール構成をfigure4,ros2のnodeをfigure5,モジュール、nodeの詳細をTable5に示す。


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


    figure.5 :ros2のnode
    Table.5:プログラムの説明
    モジュール名 概要
    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出力する

    4.フローチャート

    4.1.全体

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


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

    4.2.衝突回避

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


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

    4.3.ラジコン操作

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


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



    MIRS2031ドキュメント管理台帳