名称 | ソフトウェア詳細設計 |
---|---|
番号 | MIRS2404-SOFT-0001 |
版数 | 最終更新日 | 作成 | 承認 | 改訂記事 |
---|---|---|---|---|
A01 | 2025.1.24 | 松嶋 昂平 | 香川先生 | 初版 |
機能 | 概要 | 記述言語 |
---|---|---|
予約データの取得 | 当日の案内のスケジュール、見学者の名前、PINを取得する。 | html,JavaScript |
本人確認 | 見学者のPINと入力されたPINを比較してノン人確認をする。 | html,JavaScript |
案内の進行 | 学校の見学を予約通りに行うように制御する | html,JavaScript |
案内の中止/再開 | 途中で機体の動作の停止、再開 | html,JavaScript |
見学者との対話 | 音声認識で質問を聞き取り、回答を生成して読み上げる。 | html,JavaScript |
地図の表示 | ロボットの現在地を地図上に表示する | html,JavaScript |
使用方法の説明 | 音声で説明し、使用方法の下増を見れるようにする。 | html,JavaScript |
機能 | 概要 | 記述言語 |
---|---|---|
ユーザーの登録 | メールアドレス、ユーザーネーム、パスワードを登録する | html,JavaScript |
ログイン | パスワードを入力してログイン。ユーザーの権限ごとにリダイレクトするページを選択 | html,JavaScript |
機能 | 概要 | 記述言語 |
---|---|---|
イベント予約 | 事前に見学を希望する内容を予約することができる。また、プロフィールを参照し、適切なイベントを優先的に表示する。 | html,JavaScript |
対話予約 | 事前に見学を希望する相手との対話を予約することができる。また、プロフィールを参照し、適切なイベントを優先的に表示する。 | html,JavaScript |
プロフィールの設定 | イベント、対話予約で参照するプロフィールを設定する。 | html,JavaScript |
機能 | 概要 | 記述言語 |
---|---|---|
対話の登録 | 対話の予約が入れられる時間を登録する。 | html,JavaScript |
プロフィールの設定 | 対話予約で参照するプロフィールを設定する。 | html,JavaScript |
機能 | 概要 | 記述言語 |
---|---|---|
イベントの登録 | 見学可能な場所、日時、時間などを設定して予約可能な状態にする | html,JavaScript |
イベントの更新 | 既に登録してある見学内容の変更をする | html,JavaScript |
イベントの削除 | 登録してある内容を消去する | html,JavaScript |
機能 | 概要 | 記述言語 |
---|---|---|
予約データの提供 | GET通信に対して当日の予約のリスト、予約者のユーザー名、PINを返す | html,JavaScript |
機能 | 概要 | 記述言語 |
---|---|---|
モーターの制御 | 指令値に対してモータードライバへPID制御を行う | arduino |
エンコーダの読み取り | エンコーダの値を読み取り、トピックを流す | arduino |
LiDARデータの取り扱い | LiDARのデータを読み取り、処理し、トピックを流す | python |
機能 | 概要 | 記述言語 |
---|---|---|
Navigation2の処理 | 機体の移動ルートの制御を行う | pyhton |
ROSとWEBの間の通信 | WEBsocketでROSとWEBサイト間の通信を行う | html,javascript |
iPad用WEBアプリの配信 | PCからHTML等を配信する | arduino |
![]() |
fig1. iPad用アプリのモジュール構成図 |
モジュール名 | 概要 |
---|---|
gapless.html | iPad用WEBアプリのhtmlページ |
gapless.js | アプリ全体の制御、データの取得、ログインを行う |
gapless_chat.js | 対話機能の制御、音声認識、回答生成、回答の読み上げ、チャット履歴の表示などを行う。 |
gapless_ex.js | 使い方の画像の表示や説明の処理を行う。 |
gapless_ros.js | ROSとの通信を主に行い、現在地の取得、目的地の送信、走行状態の監視などを行う。 |
gapless.css | 全体的なスタイル、待機画像のスタイル |
gapless_chat.css | 対話のチャット欄のスタイル |
gapless_ex.css | 使い方の画像の表示や説明のスタイル |
gapless_ros.css | 地図、走行状態のスタイル |
LoginCSS.html | ログインページのスタイル |
![]() |
fig2. ログインページのモジュール構成図 |
モジュール名 | 概要 |
---|---|
appsscript.json | GASWEBアプリのタイムゾーンやoauthScopesの設定ファイル |
Login.html | アクセスして最初に表示されるページ。 |
LoginCode.gs | 登録、ログイン機能のdrive側での処理。データの操作などを主に行う |
LoginJavaScript.html | 登録、ログイン機能のフロント側での処理。登録フォームの送信などを行う |
LoginCSS.html | ログインページのスタイル |
![]() |
fig3. 見学者向けページのモジュール構成図 |
モジュール名 | 概要 |
---|---|
SystemCode.gs | ページアクセス時の処理の記述 |
appsscript.json | GASWEBアプリのタイムゾーンやoauthScopesの設定ファイル |
Home.html | アクセスして最初に表示されるページ。サイトの使用方法を記述 |
HomeCSS.html | ホームのページのスタイル |
EventListCode.html | イベント予約機能のdrive側での処理。データの操作などを主に行う |
EventListJavaScript.html | イベント予約機能のフロント側での処理。予約フォームの送信やイベントのリストの生成、ソートなどを行う |
EventList.html | イベント予約機能のhtmlページ |
EventListCSS.html | イベント予約機能のhtmlページのスタイルシートの記述 |
MatchListCode.html | 対話予約機能のdrive側での処理。データの操作などを主に行う |
MatchListJavaScript.html | 対話予約機能のフロント側での処理。予約フォームの送信やイベントのリストの生成、ソートなどを行う |
MatchList.html | 対話予約機能のhtmlページ |
MatchListCSS.html | 対話予約機能のhtmlページのスタイルシートの記述 |
ResevListCode.html | 予約確認機能のdrive側での処理。データの操作などを主に行う |
ResevListJavaScript.html | 予約確認機能のフロント側での処理。予約削除のフォームの送信やイベントのリストの生成、ソートなどを行う |
ResevList.html | 予約確認機能のhtmlページ |
ResevListCSS.html | 予約確認機能のhtmlページのスタイルシートの記述 |
PlofCode.html | プロフィール設定のdrive側での処理。データの操作などを主に行う |
PlofJavaScript.html | プロフィール設定のフロント側での処理。フォーム送信などを行う |
Plof.html | プロフィール設定のhtmlページ |
PlofCSS.html | プロフィール設定のhtmlページのスタイルシートの記述 |
![]() |
fig4. 在校生向けページのモジュール構成図 |
モジュール名 | 概要 |
---|---|
SystemCode.gs | ページアクセス時の処理の記述 |
appsscript.json | GASWEBアプリのタイムゾーンやoauthScopesの設定ファイル |
Home.html | アクセスして最初に表示されるページ。サイトの使用方法を記述 |
HomeCSS.html | ホームのページのスタイル |
PlofCode.html | プロフィール更新機能のdrive側での処理。データの操作などを主に行う |
PlofJavaScript.html | プロフィール更新機能のフロント側での処理。フォームの送信などを行う |
Plof.html | プロフィール更新機能のhtmlページ |
PlofCSS.html | プロフィール更新機能のhtmlページのスタイルシートの記述 |
ResistCode.html | 対話登録のdrive側での処理。データの操作などを主に行う |
ResistJavaScript.html | 対話登録のフロント側での処理。登録フォームの送信や予約のリストの生成などを行う |
Resist.html | 対話登録のhtmlページ |
Resist.html | 対話登録のhtmlページのスタイルシートの記述 |
![]() |
fig5. 管理用ページのモジュール構成図 |
モジュール名 | 概要 |
---|---|
appsscript.json | GASWEBアプリのタイムゾーンやoauthScopesの設定ファイル |
Maneg.html | アクセスして最初に表示されるページ。 |
ManegCode.gs | イベント登録機能のdrive側での処理。データの操作などを主に行う |
ManegJavaScript.html | イベント登録機能のフロント側での処理。登録フォームの送信などを行う |
ManegCSS.html | イベント登録ページのスタイル |
![]() |
fig6. APIのモジュール構成図 |
モジュール名 | 概要 |
---|---|
APICode.gs | GET通信に対して当日の予約のリスト、予約者のユーザー名、PINを返す |
![]() |
fig7. ESP32のモジュール構成図 |
モジュール名 | 概要 |
---|---|
mirs24_esp32.ino | setup関数,loop関数,グローバル変数,include,マクロの定義 |
encoder.ino | エンコーダーの値の読み取りを行う |
pubsub_callback.ino | rosとの通信を行う |
config.h | パラメータの設定を行う |
ros_setup.ino | ROSのセットアップを行う |
server_callback.ino | servis_serverとの通信を行う |
vel_observer.ino | 速度の監視を行う |
vel_ctrl.ino | 速度のPID制御を行う。 |
![]() |
fig8. jetsonのモジュール構成図 |
モジュール名 | 概要 |
---|---|
mirs_launch.py | システムの起動 |
src/以下 | 各ノード当の定義 |
config.yaml | 各パラメータ等の設定ファイル |
mirs_msgs/以下 | mirsで使うメッセージ型などの定義 |
![]() |
fig9. ページリダイレクト処理 |
![]() |
fig10. スプレッドシートの構成 |
address | username | dep_d | dep_s | dep_e | dep_m | dep_c | way | club |
---|---|---|---|---|---|---|---|---|
ユーザーのメールアドレス | ユーザーの名前 | D科に興味があるか | S科に興味があるか | E科に興味があるか | M科に興味があるか | C科に興味があるか | 予定している通学方法 | 興味のある部活 |
address | username | password | resevdate | pin |
---|---|---|---|---|
ユーザーのメールアドレス | ユーザーの名前 | パスワード | 予約中の日にち | 当日の認証に使う4桁の数字 |
address | username | describe | department | grade | way | club |
---|---|---|---|---|---|---|
ユーザーのメールアドレス | ユーザーの名前 | 自己紹介 | 所属学科 | 学年 | 通学方法 | 部活 |
eventname | describe | datetime | location | address | dep_d | dep_s | dep_e | dep_m | dep_c | grade_1 | grade_2 | grade_3 | grade_4 | grade_5 | class | dorm | other | resevuser |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
イベント名 | イベントの説明 | 開催日時 | 開催場所 | 登録者のメールアドレス | 各学科に関連しているか | 各学年に関連しているか | 見学内容の大まかな区分 | 予約したユーザーのメールアドレス |
address | datetime | location | resevdata |
---|---|---|---|
登録ユーザーのメールアドレス | 開催日時 | 開催場所 | 予約したユーザーのメールアドレス |
location | x | y | z | w |
---|---|---|---|---|
場所の名前 | 各場所の座標(クオータニオン) |
![]() |
fig11. ログインページアクセス時の処理のフローチャート |
![]() |
fig12. ログインページのユーザー認証の処理のフローチャート |
![]() |
fig13. 認証成功時の処理のフローチャート |
![]() |
fig14. 走行状態の監視のフローチャート |
![]() |
fig15. 画面スクロール禁止のフローチャート |
![]() |
fig16. 案内再開のフローチャート |
![]() |
fig17. 画面スクロール禁止のフローチャート |
![]() |
fig18. 画面ピンチイン/アウト禁止のフローチャート |
![]() |
fig19. ダブルタップ禁止のフローチャート |
![]() |
fig20. 高さ調節のフローチャート |
![]() |
fig21. 使用方法のフローチャート |
![]() |
fig22. 対話のフローチャート |
![]() |
fig23. 読み上げ停止のフローチャート |
![]() |
fig24. ログインページアクセス時の処理のフローチャート |
![]() |
fig25. ログインページのユーザー登録の処理のフローチャート |
![]() |
fig26. 管理ページのリセットの処理のフローチャート |
![]() |
fig27. イベント予約用サイトアクセス時の処理のフローチャート |
![]() |
fig28. イベント予約用ページの検索のフローチャート |
![]() |
fig29. イベント予約用ページの予約のフローチャート |
![]() |
fig30. 対話予約用ページのアクセス処理のフローチャート |
![]() |
fig31. 対話予約用ページの検索のフローチャート |
![]() |
fig32. 対話予約用ページの予約のフローチャート |
![]() |
fig33. 予約確認ページのアクセス処理のフローチャート |
![]() |
fig34. 予約確認ページの予約削除のフローチャート |
![]() |
fig35. プロフィールページのアクセス処理のフローチャート |
![]() |
fig36. プロフィールページの更新のフローチャート |
![]() |
fig37. 対話登録ページアクセス時の処理のフローチャート |
![]() |
fig38. 対話登録ページ登録の処理のフローチャート |
![]() |
fig39. 対話登録ページの変更の処理のフローチャート |
![]() |
fig40. 在校生用登録ページのリセット処理のフローチャート |
![]() |
fig41. 在校生用ページの削除の処理のフローチャート |
![]() |
fig42. 在校生用プロフィールページのアクセス時の処理のフローチャート |
![]() |
fig43. 在校生用プロフィールページの更新の処理のフローチャート |
![]() |
fig44. 管理ページアクセス時の処理のフローチャート |
![]() |
fig45. 管理ページ変更の処理のフローチャート |
![]() |
fig46. 管理ページのリセットの処理のフローチャート |
![]() |
fig47. 管理ページの登録処理のフローチャート |
![]() |
fig48. GET通信時の処理のフローチャート |
![]() |
fig49. jetson側のフローチャート |
![]() |
fig50. jetson側の処理のフローチャート |
![]() |
fig51. PC側のフローチャート |