授業目的

本実習の目的は,エルゴノミクスコンピューティングと関連の深いバーチャルリアリティ技術について,実世界の情報の入力,実世界への情報の出力,バーチャル世界のモデリングとシミュレーションの実習を行い,各技術についての理解を深めることである.

到達目標

バーチャルリアリティシステムに必要な要素技術の原理について,実装を行うことにより理解する.

授業方法

2022年度秋学期の授業形態は対面である.

講義資料・映像・課題へのアクセス方法

本ページに掲載する(関西学院のユーザのみ表示可能).

質問・リクエスト

質問・リクエストフォーム←ここから送信.

もしくは m.imura [at] kwansei.ac.jp に直接お送りいただいてもよいですが,フォームを使ってもらえると質問が集約されるのでありがたいです.

課題

04 センサ信号処理 (公開11/29)

本課題の目的は,実世界の情報のセンシングに適したセンサ,マイクロコントローラの使用方法,およびセンサから得られる情報の信号処理方法について,実践を通じて学習することです.本課題ではセンサやディスプレイが内蔵されているマイクロコントローラであるM5StickCを利用します.2年次実習のメディア・ロボット実験で使用したArduinoの多機能・高性能版と考えてください.

  • 歩数計測依頼フォーム
  • 機材の提供
    • 初回(11/29)に行います.
    • 実習終了時にケースに入れて返却していただきますので,USBケーブルも含めて,紛失しないようにしてください.
    • 初回(11/29)に欠席した人は,2回目(12/6)に配布します.
  • 資料
    • 可能な限り,個人PCに開発環境をインストールして,実習を行うようにしてください.大学の環境よりも快適だと思われます.
    • 課題全体の説明と,実験室で開発する場合の環境設定【非常に重要】[PDF] (11/29少し更新)
    • 開発環境のインストール方法 [Google ドキュメント]
    • Arduino IDEにM5StickCの開発環境をインストールし,サンプルを実行して動作を確認する [動画]
    • M5StickCの6軸センサの使用方法 [Google ドキュメント]
    • Arduino IDEの使い方については,メディア・ロボット実験の資料も参照してください.
何もしないempty.zipディスプレイ,シリアル通信が使用可能になる(Power Management Chipも有効になるが,おそらくこの実習では使わない).
指定の色で画面をクリアdisplay_clear.zipディスプレイサイズは横80ピクセル,縦160ピクセル.
あらかじめ定義されている色の見本を表示display_color_code.zip
RGB値による色の指定display_color.zip色は uint16_t 型(16ビット非負整数).
文字を表示するdisplay_print1.zip文字は横6ピクセル,縦8ピクセル(右端,下端は空行なので,実質5×7).縦位置で横13文字×縦20文字.
文字のサイズ変更display_textsize.zip1から7まで変更できるが,元の文字をサイズ倍するだけで品質はよくない.
文字位置の指定display_print2.zip
横長で文字を表示display_landscape.zip横にした場合,横26文字×縦10文字.
ジャイロ(角速度),加速度,pitch roll yaw (信頼性低い),温度(おまけ)を取得して表示acc1.zip
グラフと一緒に表示acc4.zip
加速度の値をシリアル通信で送信serial1.zip
通信速度はデフォルトで115200bpsなのでArduino IDEのシリアルモニタ,シリアルプロッタの設定を合わせる必要がある.
ボタンの状態を得るbuttons.zip

03 物理シミュレーション (公開11/8,追加11/15)

本課題の目的は,バーチャル世界において物体が妥当性のある挙動を示すために必要となる,物理法則に基づいた物体の挙動のシミュレーションの特徴を,実装を通じて理解することです.

  • 実習資料 [PDF] (2022/11/15版)
    • 参考: 微分方程式の数値解の説明スライド [PDF]
  • 参考動画
    • Adams-Bashforth法の実装結果(2.2節) [動画]
    • ダンパの導入結果(3.1節) [動画]
    • 2次元化の結果(4.2節) [動画]
    • 2次元化+風(外力)の影響あり(4.2節) [動画]
    • 2次元化+二重振り子(4.2節) [動画]
    • マウスによるインタラクション(6.1節) [動画]
    • 複数の球とバネ(6.1節) [動画]
    • 質点をドラッグして移動(7.3節) [動画]

レポート課題3 (物理シミュレーション) (公開11/15)

  • 到達目標
    • 粘弾性体をバネ-ダンパ-質点モデルで表し,物理法則に基づくシミュレーションを行う.
  • 提出対象課題
    • 粘弾性体シミュレータ
  • 提出物
    • レポート (文章による実施内容の説明) (PDF,A4縦,ページ数は任意)
      • 最終的なシミュレーションにおいて,パラメータをいくつか変えてみて,パラメータの変化に従って挙動がどのように変化するかを調査してレポートにまとめる.
      • 最終的に作成したプログラムの実行結果のスクリーンショットを必要なだけレポートに貼り付ける.
    • 作成したプログラム (ソースコード)
      • 粘弾性体シミュレータのソースコード
      • プログラムのまとめ方については,下記のレポート提出手順の指示に従ってください.
  • 提出方法
    • レポート提出手順 [PDF] の指示に従って提出用ファイルを準備し,アップロードしてください.指示に従っていない提出物は減点の可能性があります.
    • 提出先へのリンク (Microsoft OneDrive のファイル提出機能を使用しています.うまく動作しない場合はご連絡ください)
      Office 365にログインした状態では,レポート提出手順にある名前入力欄は無く,ログインしているユーザの氏名が変更不能な形で表示されます.そのまま提出していただいて問題ありません.
  • 提出期限
    • 2022/11/25(金) 23:59

02 出力: 全天球画像処理 (公開10/18,追加10/25)


スケジュールです.
10/18: Processing で画像を扱う.
10/25: 全天球画像とカメラの知識に基づく画像生成 (この日までに実習資料を最終版にします)
11/1: インタフェースの整備とレポートの作成
11/4: レポート提出締切

本課題の目的は,ピンホールカメラモデルおよび球面座標系を理解し自身で画像を生成することです.全天球画像ビューワを作成する方法の一つに,球体にテクスチャマッピングを行う手法があり,ウェブを検索するとこの手法のソースコードが入手できますが,実習の目的を鑑みてこの手法で実装した結果については評価対象外とします.あらかじめご注意ください.

  • 全天球画像処理 実習資料 (10/25版) [PDF]
  • 処理手順の詳細な説明(実習資料の2節の内容) [スライド] [動画(30:23)]
  • 全天球画像ビューワのテンプレート [zip]
    • 全体の流れと資料の対応する箇所が書いてあります.実習資料のリスト10と同じものです.どこから取り組んでよいかよくわからない場合はご利用ください.
  • 全天球画像ビューワ 実行例 [動画(インタラクティブ)] [動画(自動)]
  • 画像変換時の画素値の補間に関する参考資料 [スライド]
    • バイリニア補間を実装した画像回転のプログラム例 [zip]
  • 参考動画
    • 演習 : 色の取得 モザイク 結果 [動画] (動作がわかりやすいよう,マウスクリック中はカーソルの形状を十字にしています)
    • 演習 : 画素値の変更 モノクロ化 結果 [動画] (同上)
    • 演習 : 画像の回転 結果 [動画]
    • 演習[発展]: マンデルブロ集合 [動画]
  • 実習用画像: 適宜ダウンロードして使用してください.
  • 情報・解説等の要望アンケート(適宜どうぞ)

レポート課題2 (全天球画像処理) (公開10/25)

  • 到達目標
    • 全天球画像とカメラモデルを適切に取り扱うことができる.
  • 提出対象課題
    • 作成した全天球画像ビューワ
  • 提出物
    • レポート (文章による実施内容の説明) (PDF,A4縦,ページ数は任意)
      • 作成した全天球画像ビューワについて,処理手順を説明,実行結果のスクリーンショットを貼り付け.スクリーンショットは複数の異なる視点のものを掲載すること.
      • 全天球画像については,サンプルで提供しているものではないものを推奨(ウェブで公開されているものや自分で撮影したもの).他の人が使っていない全天球画像であれば加点する.
    • 作成したプログラム (ソースコード)
      • 全天球画像ビューワのソースコードと,提示する全天球画像
      • プログラムのまとめ方については,下記のレポート提出手順の指示に従ってください.
  • 提出方法
    • レポート提出手順 [PDF] の指示に従って提出用ファイルを準備し,アップロードしてください.指示に従っていない提出物は減点の可能性があります.
    • 提出先へのリンク (Microsoft OneDrive のファイル提出機能を使用しています.うまく動作しない場合はご連絡ください)
      • Office 365にログインした状態では,レポート提出手順にある名前入力欄は無く,ログインしているユーザの氏名が変更不能な形で表示されます.そのまま提出していただいて問題ありません.
  • 提出期限
    • 2022/11/4(金) 23:59

オリエンテーション

  • オリエンテーション [PDF]

Processingの基礎

  • Processingの概要 [PDF]
  • 演習課題 [PDF]
    • 課題5 lower.txt (左クリックで開き、画面上のダウンロードをクリック)
    • 課題6 data.txt (左クリックで開き、画面上のダウンロードをクリック)
  • 演習課題 実装例 [zip] (左クリックで開き、画面上のダウンロードをクリック)

01 座標変換

レポート課題1 (座標変換)

  • 到達目標
    • 3次元空間中に,座標変換(並進,回転,拡大縮小)を用いて,任意の位置姿勢で物体を配置できるようになる.
  • 提出対象課題
    • 01-ex03の以下の課題を提出
      • ex03_2
      • ex03_3
      • ex03_4
      • ex03_5
    • 発展課題 ex03_6 – ex03_8 は任意
    • ex03_0, ex03_1 は提出不要
  • 提出物
    • レポート(文章による実施内容の説明) (PDF,A4縦,ページ数は任意)
      • ex03_2: 工夫した点などを説明.実行画面のスクリーンショットを貼り付け.
      • ex03_3: 座標変換部分の考え方を説明.実行画面のスクリーンショットを貼り付け.
      • ex03_4: ロボットアームの描画手順を説明.実行画面のスクリーンショットを貼り付け.
      • ex03_5: 行列の要素をなぜそのようにしたかを説明.実行画面のスクリーンショットを貼り付け.
      • 発展課題(任意): ex03_6 – ex03_8: アルゴリズムや工夫した点などを説明.実行画面のスクリーンショットを貼り付け.
    • 作成したプログラム(ソースコード)
      • プログラムをまとめる際には,フォルダ構造を指定通りにしてください.詳しくは下記のレポート提出手順を確認してください.
  • 提出方法
    • レポート提出手順 [PDF] の指示に従って提出用ファイルを準備し,アップロードしてください.指示に従っていない提出物は減点の可能性があります.
  • 提出先へのリンク (Microsoft OneDrive のファイル提出機能を使用しています.うまく動作しない場合はご連絡ください)
    • Office 365にログインした状態では,レポート提出手順にある名前入力欄は無く,ログインしているユーザの氏名が変更不能な形で表示されます.そのまま提出していただいて問題ありません.
  • 提出期限
    • 2022/10/14(金) 23:59

今後の予定

  • 11/8-11/22 物理シミュレーション (順序を入れ替えました)
  • 11/29-12/20 センサ信号処理