こんにちは! SSSRCがお送りするAdvent Calender 2021 3日目の記事となります.

4年生の寺垣です.  実はすっごくお久しぶりになります笑

前回投稿したのがなんと1年生の時なんですよね~

ということで3年が経ち, 今では姿勢系内では最年長となってしまいました.

何について書くか悩んでいたのですが, 最年長ということもあり, 姿勢の表現方法についてまとめてみることにしました!!

そういうものを見つけたことがなく「あったら良いなぁ~, いつかは書いてみたいなぁ~」と思っていた内容ですので, 文章が拙く, 途中読みにくい箇所があるかもしれませんが, 少しでも読んで頂ければ幸いです.

 

さて. それでは本題に入りましょう.

まず, 姿勢とは物体がどういう回転でその向きになっているかというのを表したものです. 飛行機の例をあげると, 飛行機の姿勢は機首の向いている方向と機首に対して機体がどれだけ傾いているかを定めて初めて飛行機の姿勢が決まります.

そのため, 姿勢は方向の2自由度+回転1自由度の合計で3自由度となります.

 

姿勢についてご理解を頂いたところで, 姿勢や回転の表現方法について触れていきたいと思います.

まず, 回転行列というものがあります.

よく目にするのは[1,0,0;0,cos(x),sin(x);0,-sin(x),cos(x)]のような座標変換行列ですね.

この回転行列で表現する事のデメリットは3×3の行列なのでパラメータが9もあり, かなり無駄が多くメモリの消費が大きい点がまず挙げられるかと思います.

また個人的には物理的にどうなっているかが認識し辛い気がします.

 

次にオイラー角についてです.

オイラー角は各座標軸まわりの3つの回転の組み合わせと順番によって姿勢を表します.

2番目,3番目の回転は,一つ前の回転後の新しい座標軸における新しい軸まわりの回転となります.(文章で説明し辛い… わかりにくく申し訳ないです.)

つまり,オイラー角は軸の選択とその順番に依存する定義ということです.

オイラー角は航空や衛星のヨー, ピッチ, ロールの3パラメータと対応していて, かなりメジャーであるように感じます.

しかし, 問題点もあります. 問題点は角度が90度など特定の角度では特異点となるジンバルロックという事象が起きることです. これは回転によって2つの軸が同一平面上にそろってしまうという現象の事です. そのため, オイラー角を使ってシミュレーション等する際には特異点に気をつけなければいけません.

 

 

次にオイラーパラメータ(クォータニオン)です.

オイラーパラメータでは, 方向ベクトル[λx;λy;λz]を回転軸とした角度θの回転を

[λx sin(θ/2);λy sin(θ/2);λz sin(θ/2);cos(θ/2)], そしてノルムが1という風に表現します.  そのため, パラメータは4つですが自由度が3の表現となります.

 

この表現のメリットはある回転から次の姿勢まで回転させる処理や途中の姿勢を簡単に実装, 表現できることです. また, オイラー角と違って特異点がないという点も魅力です.

しかし, 注意点が1つだけあります.

θの回転が時計回りなのか反時計回りの角度なのかで答えが変わってきてしまうのです!

かなりよく使われる表現だけに気をつけたいものですね!

 

最後にロドリゲスパラメータの紹介をします.

これはオイラーパラメータとよく似ていて, 回転を[λx tan(θ/2);λy tan(θ/2);λz tan(θ/2)]と表現できます.

オイラーパラメータでは4つのパラメータだったのを3つにしたものとなっています.

また, tan(θ/2)となっていて時計回りか, 反時計回りかという回転の向きを気にする必要がありません.

そのため, 考えやすくオイラーパラメータより使いやすいのでは?と思ってしまいがちですが, これにも問題点があります. それはオイラー角と同じようにθ=±π/2で特異点を持つ点です.

 

Modified Rodrigues Paramete:日本語にすると修正ロドリゲスパラメータというものがあります.

こちらは[λx tan(θ/4);λy tan(θ/4);λz tan(θ/4)]で記述したものとなっています.

このようにtan(θ/4)にすることで, 特異点もなく, 回転の方向を気にする心配がなくなります. なので, 研究でオイラーパラメータではなくこのロドリゲスパラメータを使われるところも多いのだとか…

 

以上をまとめますと, 一般的な姿勢の表現方法として回転行列, オイラー角, オイラーパラメータ, ロドリゲスパラメータがあり, ロドリゲスパラメータ, 特にオイラー角では扱いやすいものの特異点が出現するという特徴があります. 一方, オイラーパラメータや修正ロドリゲスパラメータではそのような特異点を気にする必要がないので, シミュレーションで良く使われているようです.

 

実際にひろがりのシミュレーションでもオイラーパラメータを使っています.

私は修正ロドリゲスパラメータで扱ったことが無いので, 機会があれば使ってみたいなぁと思いながら書かせて頂きました.

書き終わって「長っそして内容, 重たっ」という感じになってしまったので, 次回書く際には可愛らしい内容にしようと決めました笑

お読みいただきありがとうございました.

それでは, バイバイ!!

 

こんにちは!

3年の猿渡です.

アドカレ2日目は私の大好きな場所を紹介します.

大学生になって都会に住み,様々な便利さを感じる日々ですが,なんといっても1番はホームセンターの充実度です.その中でも特におすすめのホームセンターについて書きます.

それはホームセンタームサシです!

ムサシの魅力は

  1. 圧倒的な品揃え
  2. 商品配置の見やすさ
  3. 資材館の充実

です.

 

まずとにかく品揃えがいいです.私がお世話になっているDIYコーナーの蝶番,金具類などは細かく選べるほどそろっています.1年生のCanSatを作っているときには,パラシュートに使用する特大ビニル袋が必要で探し回っていたことがありました.そのときは他の店にはなく,最後に行き着いたのはやっぱりムサシでした.

 

ムサシでは商品が高くても目線ほどにしか積まれていないため,見通しがいいのが特徴です.上には品目を示す大きな看板が掛かっているので目的のものを探しやすいです.

 

木材の種類やガーデニング関係の品が豊富なのも嬉しいものです.ガーデニングコーナーにはピザ窯を作るときに初めて行ったのですが,いろいろな大きさや種類の石のタイルが売ってあり広い庭があったら庭作りもしてみたいなと思いました.レンガもおしゃれ用のアンティークレンガから耐火レンガまで充実していました.

 

ホームセンタームサシ 美原店は中百舌鳥から自転車で20~30分の距離にあります.

ぜひ一度足を運んでみてください.

 

 

ムサシ豆知識

  • 10月に美原のムサシの近くにビバホームができました.ここもよかったです.調べるとムサシと同じ系列なんだとか.
  • 美原のムサシの目の前にはチョコレート工場があり,いい香りが漂っています.
  • ムサシは新潟の会社だったんですね.

この記事はSSSRC Advent calender 2021 1日目の記事として書かれています。
こんにちは、このアドカレの首謀者です。(↑この文言書いてみたかった〜〜!!!)
唐突に「アドカレやりたくね?」と声をかけたら2日で人が集まって本当にやることになりました。
特にテーマを縛ったりもしていないですし、なによりこれだけ更新されるのは昨今のSSSRCブログでは大変珍しいので向こう一ヶ月はメンバーの個性をお楽しみください。

さて本題ですが、タイトル通り、私は普段通信系として活動していますが最近はC&DHに力を注いでいます。
数年前から低レイヤ方面に関心を寄せており、少しやってみたかったんですよね、C&DH。OPUSAT-IIはOPUSATの設計を引き継いだOPUSAT-KITバスを使用しており、BOBC周りを(あまり)いじることなく、時折軽微な(?)変更を先輩が加えるだけで済んでいて1からつくる機会はありませんでした。そこで、IIの開発も終わって良い機会なのでOBC周りの設計を主導して置土産として残そうというわけです。ノウハウを持っているわけでは無いので道楽と大差ないですが、元々学生団体においてノウハウの塊は一番はじめに出ていってしまうので仕方ありません。学年がFIFOなのが悪い(???????)。毎度のごとく、機運が高まったってやつです。
IIIのBBMに入る前にプロトタイプをつくってレビューまでしたいと考えていて、設計するにあたりテーマも持っています。「高性能なOBCを1台追加すること」です。SSSRCの衛星を2代に渡って支えてくれているロバストなバスですが、今のBOBCでは性能が不足する部分もあり、「これまでのロバストな設計は残しつつ、なんとか高性能なOBCをメインOBCとして載せられはしないものか」というのが最近のもっぱらの興味です。今動いているOBCとその内部プログラムの一部は再利用したいのですが、その際のアーキテクチャのシンプルさの追求と信頼性の担保はやはり難しいところです。C&DHにとって最も肝要な部分の設計になるので、この「メインOBCの信頼性をシンプルな形で保証する機構」はこだわってなんとか作り込みたいものです。好き勝手実装できるのもIIIが本格的に始動していない今のうちなので、早めに作って2サイクル目を回すことが期限的な目標です。
IIでC&DH系としての活動はほとんどなかったので今のC&DHは駆け出しチームです。今はOBC周辺のアーキテクチャや疑似OSとでも呼ぶようなソフトウェアの仕様検討会を開きつつ、プログラムについての仕様が出たら私がサッと書いて簡易なドキュメント共に共有してメンバーの不明点を拾うことで教育としています(自分で書いといてなんですが、控えめに言って酷い教育ですねクォレは...)。今の仕様ではシングルタスクで、モードの概念が一応あり、他系のデバイスドライバを抽象化するためのインターフェースは持っているというだけの至極単純なソフトウェアです。優先度の概念も実装されていません。他系から要求がなければこうなるかなとも思いますが、とはいえC&DH内での設計でもまだまだ作り込める部分があります。仕様検討を重ねて改良するうちにμITRON仕様くらいのものをガシャガシャやっていきたいです。現状、仮に置いてある雑実装タスクはほぼ「何もしないやつ」ですし、これでスケジューリング規則の評価をやってええんかいという問題もあります。今のスケジューリング規則でも問題ないなら問題ないですが(トートロジー)、他系のタスクから時間に対する要求が出れば話は別なので、プロトタイプしたがっている他系を巻き込みたいところです。

では便利な本紹介コーナーをやって終わりにします。最近円城塔の「これはペンです」を読もうとしています。金曜ロードショーで小さい女の子がお人形遊びをするワンカットで号泣する怪物になれるアニメを見たばかりだったからか、あらすじでなんとなくビビッと来て買いました。それでは。

PS
革新2号が打ち上がりましたね。私はSPRESENSEの実証が非常に気になっているところで、C&DHの設計とは別でSPRESENSEで遊んでいます。これの何が嬉しいかは過去にも書かれていますが、実証されたら次機OBC候補ですね。せっかくだしマルチコア使いたいなとか、NuttXがPOSIXインターフェースを持っているので色々遺産が移植できるか試してみたいなとかいう思いはあります。NuttXにアプリを追加しようと思ったら結構手間なのがspresenseの環境を用いると楽にできますし、他にも便利ツールが用意されていて嬉しい。チュートリアルでチマチマ遊びながらありがてぇ〜って言うところまではいったんですが色々極まってきました。遊んだレポも書くつもりでいたんですが...