$$ \def\v{\boldsymbol} \def\m{\boldsymbol} \def\trans{^\mathsf{T}} \def\inv{^{-1}} \def\bmat{\begin{pmatrix}} \def\emat{\end{pmatrix}} \def\diag{\operatorname{diag}} \def\tr{\operatorname{tr}} \def\ad{\operatorname{ad}} \def\Ad{\operatorname{Ad}} \def\E{\operatorname{E}} \def\det#1{| #1 |} \def\her{^\mathsf{H}} \def\wed{\wedge} \def\given{\mid} \def\defeq{\triangleq} \def\Ys{{\cal Y}} \def\argmin{\mathop{\mathrm{argmin}}} \def\argmax{\mathop{\mathrm{argmax}}} \def\blockdiag{\mathop{\mathrm{blockdiag}}} \def\inner#1{\langle #1 \rangle} $$

(講義動画) 2進数の計算,論理値と論理演算

周知のとおり,各大学では授業のオンライン化を大急ぎで進めています.私の勤務先での担当科目ももちろん例外ではなく,そのうち 1 科目は録画済み YouTube によるオンデマンド型で実施することにしたため,せっかくなので一般公開してみます.機械系の学部 3 年生向けの科目で,コンピュータアーキテクチャ論理回路の分野をカバーします.自宅にこもりながら楽しめるコンテンツ (?) に飢えている方はお試しください.

目次:

  • 履修している学生へのお知らせ
  • 科目概要
    • 進行予定
    • 教科書・参考書
      • 教科書
      • 参考書
  • 第1回 序論
  • 第2回 数の表現 - 符号なし数
  • 第3回 数の表現 - 符号つき数 (+ 実数の話をちょっとだけ)
  • 第4回 論理値と論理演算
続きを読む

400 g 台の 15.6 インチモバイルディスプレイ

前のエントリRaspberry Pi Zero を展示用の動画プレイヤーにする話を書いた.展示会場に HDMI ディスプレイが用意されている場合はこれだけでよいが,学会だと用意してもらえることは滅多になく,あったとしても高いレンタル料金が発生することが多い.

大規模なデモ機材を運搬・輸送するような場合はそこに普通のディスプレイを含めてしまえばよいのだが,機内持ち込み程度の荷物で済ませたい場合はディスプレイの選択も重要な論点になる.

このエントリでは,いろいろ探し回ってたどりついたおすすめ品を紹介したい.

ポスターセッションでの使用例.本当はポスターボード上に押しピンで固定する予定だったが,この会場のボードがフニャフニャすぎたため断念した.

  • たぶんこれ一択
  • 保護カバーは重い
  • 消費電力
続きを読む

Raspberry Pi Zero をエンドレス動画プレイヤーとして使う

学会やら展示会やらで動画をエンドレスで再生したい場合,Raspberry Pi Zero を使うことにすると,荷物の量とか盗難時のダメージとかを低減できて便利である.

一方,会場での設置・操作・撤収をできるだけ簡単にしようと思うと,ちょっと準備をしておく必要がある.つまり,キーボードをつないだりリモートログインしたりすることなく勝手に再生が始まってほしいし,頭出しや停止,シャットダウンなども手軽にできるようにしたい.

というわけで,いろいろ試行錯誤してたどりついた現状のベストプラクティスをまとめておくことにする.

目次:

  • OMXPlayer のキー操作は自動再生と相性が悪い
  • OMXPlayer を外部 I/O から操作できるようにする
  • インストール手順
    • HDMI のホットプラグを有効にする
    • 一定のアイドル時間でコンソール画面がブランクになるよう設定する
    • コンソール自動ログインに設定する
    • OMXPlayer と Python3-RPi.GPIO をインストール
    • videoplayer.py スクリプトを配置する
    • cron で videoplayer.py の自動実行を設定
    • /home/pi/Videos に動画ファイルを置く
  • 実装ノート
続きを読む

CV・CG・ロボティクスのためのリー群・リー代数入門: (8) 四元数の球面線形補間

シリーズ一覧へ

前回のエントリへ


コンピュータグラフィクス分野で四元数 (クォータニオン) がよく使われる理由の一つが補間のしやすさにあるのではないかと思う.球面線形補間 (Spherical Linear Interpolation, slerp) の名前で知られていて,公式もよく知られている.

公式の導出としてよく説明されるのは「単位四元数は 4 次元空間の単位球面上の点とみなせるので,2 点を単位球面に沿って結ぶ最短経路を考えて,その経路上で補間する」というものである.この考え方で,初等的な幾何学的関係を使うと公式が導ける.

この考え方は正しい.正しいのだけど,4 次元空間の球面上で補間することにどのような意味があるのか,3 次元回転としてはどのような動きに対応するのかといったことを理解するには,ちょっと説明が足りていない (個人の感想です).

このエントリでは,その辺りをもう少しだけ詳しく説明してみることにする.

  • 四元数と 4 次元空間
    • 余談: なぜ単位四元数を使うのか
  • 固定軸まわりの回転を表す四元数の動き
  • 球面線形補間
続きを読む

CV・CG・ロボティクスのためのリー群・リー代数入門: (7) 四元数

シリーズ一覧へ

前回のエントリへ


四元数 (クォータニオン) やその計算について説明する文献は多い.その計算によって 3 次元回転を表せることを,ベクトル幾何などの手段で示している文献も多い.しかし,四元数の定義がどこからやってきたのかを説明してくれているものはそれほど多くない.

数学者ハミルトンがある日突然思いついて思わず橋に数式を刻んだとかそういう逸話が有名なこともあって,何やら天才のもとに天啓として理由もなく降りてきた神の定義であり,人間ごときがその背景を考えてもしかたない的な認識をされることが多いように思うのだが,実はそんなことはなく,これまでのエントリで積み上げてきたリー群・リー代数の知識を総動員することで論理的に導くことができる.

  • 四元数の定義
  • $SU(2)$ と $\mathfrak{su}(2)$
  • $\mathfrak{su}(2)$ の随伴表現
  • $SU(2)$ の随伴表現
  • 四元数の構成
続きを読む

CV・CG・ロボティクスのためのリー群・リー代数入門: (6) 随伴表現

シリーズ一覧へ

前回のエントリへ


3 次元回転を表す方法として,前回のエントリで言及したオイラー角,回転角・回転軸表現,回転ベクトルといったもののほかに四元数 (クォータニオン) なるものがあることは,コンピュータグラフィクス (CG) やロボティクスの分野ではよく知られていることと思う.四元数は珍妙というか神秘的な数で,一見してそれが回転を表すとはとても思えない形をしている.

四元数が何者なのかを理解するには,リー群やリー代数の「表現」という概念を理解する必要がある.3 次元回転を表すには 3 次行列を使うのが当然と思いがちだが,実はそれは唯一の方法ではなく,他の次数の行列で表す方法を実は無数に作り出すことができる.そのようなものの一例として四元数を位置づけることができる.

このエントリでは,リー群やリー代数の表現とは何か,具体的にはどのようなものがあるのかを見ていくことにする.

  • 表現
  • リー代数の随伴表現
    • $\mathfrak{so}(3)$ の随伴表現
  • リー群の随伴表現
    • $SO(3)$ の随伴表現
  • $\Ad$ と $\ad$ の関係
続きを読む

CV・CG・ロボティクスのためのリー群・リー代数入門: (5) 回転ベクトル

シリーズ一覧へ

前回のエントリへ


$3 \times 3$ 回転行列は 3 次特殊直交群 $SO(3)$ の元を最も素直に表現するものだと言えるが,本来 3 自由度しかない運動を 9 つのパラメータを用いて表さないといけない点で冗長であると言える.

3 次元空間での回転を最小の 3 パラメータで表す方法は古くからよく考えられていて,代表的なものにオイラー角表示と回転ベクトル表示がある.このエントリでは,両者を概観してから,後者が $SO(3)$ のリー代数 $\mathfrak{so}(3)$ の元をとある基底により表示したものであることを見る.

続きを読む