名称 MIRS2005基本設計書(ソフトウェア)
番号 MIRS2005-DSGN-0006

版数 最終更新日 作成 承認 改訂記事
A01 2020.10.18 榊原里樹 初版
A02 2020.10.23 和木優空 青木先生 第2版

目次


  1. 本ドキュメントについて

    本ドキュメントは、ソラシ♬プロジェクトのソフトウェア基本設計書である。



  2. 基本機能

    Table1に基本機能を示す。

    Table1 基本機能
    機能名 目的 詳細
    アピール機能 子供の興味を引く 音声や首の動作を用いて子供の意識をそらす
    待合室と診察室で使用される
    音声(アピール①) 言葉や音楽を鳴らす スピーカーから音楽・音声を鳴らす
    音声はあらかじめセリフを録音しておく
    会話(アピール③) 特定の言葉に反応して返事をする マイクが特定の音声を拾った場合それに合わせた返事をする
    ライントレース機能 病院内をライントレースで移動する 病院の床に専用のラインを引いてそのラインに沿って移動する
    移動は待合室から診察室までの間で行う
    カメラを用いてライントレースを行う
    ライン二重認識機能(ライントレース①) ラインが二重にひかれたところ(マーカー)を認識する ラインを二重にしたところ(マーカー)を判断できるようにする
    操作待機やアピールの目印とする
    遠隔操作機能 スマートホンのBluetooth機能で特定の操作を遠隔で行う 専用アプリを用いてソラシのraspberry piとBluetooth通信を行う
    発進・停止などの特定の操作を遠隔で行えるようにする
    接近探知機能 人や障害物が接近した場合走行を停止する 超音波センサを用い人や障害物の接近を検知して危険な場合に走行を停止する
    緊急停止機能 問題が起きた際に緊急停止する 緊急停止ボタンを押すことですべての機能が停止する
    アプリからの遠隔停止も可能にする


  3. 専用アプリについて

    ソラシでは判断の難しい操作を遠隔で行う。そのため専用androidアプリを作成する。

    Androidアプリの機能をTable2にまとめる。

    Table2 Androidアプリの機能
    機能名 内容 詳細
    スタート MIRSに移動命令を出す MIRSにあらかじめ引かれた線の上を移動させる
    「停止命令を出す」「緊急停止させる」「アピールポイントに到着する」のいずれかが起きるまで動き続ける
    ストップ MIRSをその場で一時停止させる MIRSをその場で一時停止させる
    もう一度スタートを押せば再び動き始める
    緊急停止 MIRSの全動作を強制的に止める MIRSの全動作を強制的に終了させる
    MIRSの全動作を強制的に終了させる
    通信は停止しないが緊急停止以外の機能は使えなくなる
    MIRSを再起動し再接続すれば使えるようになる
    パスワード認証 認証されていない状態で動かせないようにする MIRSが起動時に表示するパスワードを入力することで接続が完了し遠隔操作できるようになる
    パスワードは起動ごとにMIRS側で設定しなおされる
    診察室に呼ばれた 診察室に呼ばれたことをソラシに伝える 診察室に呼ばれたことを音声から判断することは難しいので保護者のアプリから診察室に呼ばれたことをソラシに送信する
    乗車確認 子供がソラシに乗ったことをソラシに伝える 子供がソラシに乗車したことを保護者のアプリからソラシに送信する
    降車確認 子供がソラシから降りたことを確認する 子供がソラシから降りたことを保護者のアプリからソラシに送信する
    注射開始 注射が始まったことをソラシに伝える 注射が始まったことをソラシに送信する
    注射終了 注射が始まったことをソラシに伝える 注射が始まったことをソラシに送信する


  4. 動作フローチャート

    1. 動作モード

      ソラシは保護者の操作する専用アプリからの操作によって動作モードが切り替わる。
      動作モードをTable3にまとめる。

      Table3 動作モード一覧
      番号 動作モード 内容
      1 待合室
      アピール
      待合室で待つ子供が興味を持つように、動作、音声、音楽を用いて興味を引く。
      2 注射中
      アピール
      子供の意識を注射からそらすために、動作、音声、音楽を用いて興味を引く。 また保護者アプリからの注射終了確認があるまでアピールを続ける。
      3 子供乗車待機 子供がソラシに乗るように音声で促し、保護者のアプリからの乗車確認を待機する。
      4 子供降車待機 子供がソラシから下りるように音声で促し、保護者のアプリからの降車確認を待機する。
      5 注射開始待機 保護者アプリからの注射開始確認を待機する。
      6 ライントレース 病院の床に敷かれたラインのマーカーからマーカーまでをライントレースで移動する。
    2. 動作手順

      Table3の動作モードと保護者アプリからの操作の順序をFigure1にまとめる。〇で囲まれた数字はTable3の番号と対応している。



      Figure1 基本動作フローチャート



  5. モジュール構成

    各機能を実現するためのモジュール構成を示す。

    1. Arduinoモジュール構成

      Arduinoのモジュール構成をFigure2に示す。
      水色のモジュールは新規作成する
      また、Figure2のモジュールの詳細をTable4にまとめる。



      Figure2 arduinoモジュール構成



      Table4 使用モジュール詳細
      モジュール 用途
      follower.ino
      (新規作成)
      raspberry pi からの命令を取得し実行する。
      stop.ino
      (新規作成)
      緊急停止用プログラム。
      緊急停止スイッチが押されると実行されソラシを緊急停止する。
      run_ctrl.ino 走行系制御
      vel_ctrl.ino 速度制御
      motor.ino モータ制御
      distance.ino 距離計測
      encorder.ino エンコーダ読み取りモジュール
      io.ino I/Oポートの操作
    2. Raspberry Piモジュール構成

      Raspberry piにはメイン処理用のC言語プログラムと音声認識用のPythonプログラムを実装する。それぞれのモジュール構成を以下にまとめる。

      1. C言語モジュール構成

        C言語プログラムのモジュール構成をFigure3に示す。
        水色のモジュールは新規作成する。
        また、Table5にモジュールの詳細をまとめる。



        Figure3 C言語プログラムモジュール構成

        Table5 C言語のモジュール構成
        モジュール 用途
        pilot.c 初期設定、メイン処理
        app.c アプリからの命令の処理を行う。
        アプリとの通信を行う。
        python.c pythonプログラムとの通信を行う。
        line.c ライントレースを行う。
        request.c Arduinoへ命令を送る
        arduino.c Arduinoへ命令を送る。
        uss.c 超音波センサ読み取り。
        get_img.c 画像撮影する。
      2. Pythonモジュール構成

        Pythonモジュールの構成図をFigure4に示す。
        モジュールはすべて新規作成する。
        また、Table6にモジュールの内容をまとめる。



        Figure4 Pythonモジュール図



        Table6 Pythonのモジュール構成
        モジュール名 機能
        Bluetooth.py BluetoothでAndroidアプリと接続し通信する
        Julius.py モジュールモードのJuliusから認識した言葉を取得する
        request.py Arduinoに命令を出す
        sound_tmp.py テンプレートの音声、音楽を流す
        mic.py マイクの制御を行う。
        speaker.py スピーカーの制御を行う。


  6. 各パートへのリンク

    各パートのドキュメントへのリンクを以下に示す。
    基本設計書
    基本設計書(メカニクス)
    基本設計書(エレクトロニクス)






MIRS 2005