2. 作成したプログラムと評価
2-1. 事前予約Webアプリケーション
<概要>
各自のデバイスでアクセスし、それぞれの権限ごとに操作する。
「見学者」は見学をしたいイベント、対話を行いたい相手を予約しする。プロフィールを設定することにより、各々の興味のありそうなイベントまたは対話相手を優先表示する。また、検索機能がある。
「在校生」は自身のプロフィールを登録し、見学者との対話ができる時間を登録しておく。
「管理者」はイベントの登録、編集、削除を行う。
fig1~fig5に見学者用機能の一部を示す。
 |
|
fig1. 使用方法の説明 |
 |
|
fig2. 予約ページ |
 |
|
fig3. 予約操作 |
 |
|
fig4. 検索 |
 |
|
fig5. プロフィールページ |
<評価>
ほとんどの動作を安定して行うことができ、複数端末からの操作に対してもデータの整合性が崩れることもなかった。
<改良・改善案>
ログイン画面にてパスワード入力の際、パスワードマネージャーを使用した場合に入力欄のdisable属性を貫通して入力が書き換わってしまうという問題があったため、ブラウザ側での変更操作にも制限をかける改善が必要であった。
<対象プログラム>
事前予約アプリのプログラムはgoogle app scriptで作成しているため共有を確実に行うためにリンク内のmirsappimp-20250213T003849Z-001.zipと、権限的な問題が発生する可能性があるため、直接同ディレクトリ内にテキストとして書き出したものを置いておく
2-2. 機体操作用WEBアプリケーション
<概要>
機体本体に据え付けたIPadから操作を行う。
まずサイトアクセス時に本人確認を求めるログイン画面が表示される。
ログイン成功時に案内の進行画面に進み、使用方法を音声とチャット欄でアナウンスする。。
「次の案内」ボタンを押すと、目的地のアナウンスと走行を開始し、「次の案内」ボタンを無効化したのち、「案内停止」ボタンを有効化させ表示させる。
「案内停止」ボタンを押すと、ロボットがその場で停止し、「案内停止」ボタンを無効化したのち、「案内再開」ボタンを有効化させ表示する。
「案内再開」ボタンを押すと、目的地に向けて走行を再開し、「案内再開」ボタンを無効化し非表示,「案内停止」ボタンを有効化し表示する。
「使用方法」ボタンを押すと使用方法の画像を表示し、左右のスクロールで画像を切り替える。×ボタンを押すことで画像を閉じる。
案内場所に到着すると到着と次の目的地のアナウンスを行う。
「地図を表示」ボタンを押すことで地図と現在地を表示する。×ボタンで閉じる
「高さ調節」ボタンは機能が動かなかったので使えない旨を伝える。
「音声認識を開始」ボタンで音声認識を行い、認識した音声から回答を生成し、音声で読み上げ、チャット欄に記載する。
「読み上げを停止」ボタンで音声読み上げを停止する。
fig6~fig7に機能の一部を示す。
 |
|
fig6. 本人認証 |
 |
|
fig7. 操作画面 |
<評価>
基本的な動作で明らかに破綻しているところは見られなかった。
<改良・改善案>
このサイトの動作を知らない人が使用すると、「音声認識を開始」ボタンを押された後に操作ができていないと勘違いして連打してしまうことがあり、一連の操作が完了する前に複数回押されてしまうと認識や応答が溜まってしまい動作はするが一気に複数個の回答が表示されることがあった。
そのため、音声認識が開始された段階で「音声認識を開始」ボタンを無効化し、一連の流れが終わった後に再度有効化する。あるいは音声認識が開始されたことが現状よりより視覚的にわかりやすく表現するなどの対策が採れる。
<対象プログラム>
iPadアプリのプログラム
2-3. 自律走行
<概要>
機体本体のjetsonとespによって周辺の様子や自身の位置、速度のデータを取得する。
取得したデータを用いてiPadのアプリから送られた目的地までの自動走行を行う。
Navigation2の処理はPCで行い、処理結果の速度指令地をjetsonに送信し、esp32でモータ制御をする。。
<評価>
自動走行はおおむね問題なく、暴走もなかった。人が自らあたりに行かない限り人にぶつかることがなかった。
<改良・改善案>
目的地に到達したのちに自身の位置の微調整のために少し回転する。
基本的に左右の壁の間隔を等間隔に保とうとするため、柱として出っ張っている部分で少し蛇行しながら走るような感じになる。また、ベンチなどがあると同じように少し蛇行したような走行になる。
社会実装での否定的なフィードバックのうちほとんどが「走行速度が遅い」というものだった。しかし、速度を上げること自体は容易だが、走行しながら機体についているiPadを操作する関係で機体の振動が許容できない大きさになるので、機械的な改善が求められる。
<対象プログラム>
ESP32のプログラム
Jetsonのプログラム