東京工業大学 ロボット技術研究会

東京工業大学の公認サークル「ロボット技術研究会」のブログです。 当サークルの日々の活動の様子を皆さんにお伝えしていきます。たくさんの人に気軽に読んでもらえると嬉しいです。
新歓特設ページ        ロボット技術研究会 HP        ロボット技術研究会 twitter公式アカウント

10g

「ロボット技術研究会」通称「ロ技研」は、その名前の通りロボットの制作や研究はもとより、電子工作や機械工作、プログラミングなどの幅広い分野にわたるものつくり活動を行っています。

カテゴリ一覧: loading

【10g】ロボットシミュレーション可視化環境 "torqml" の紹介 ①

みなさんこんにちは,この4月に大学院に入院いたしました,11年度入学のところです.

「忙しい」を理由になかなかブログを書かない罪悪感に苛まれながら $n$ ヶ月を過ごしておりましたが,今回それを挽回すべく,私が現在開発している,ロボットのシミュレーションデータを簡単に3次元可視化するソフトウェアである torqml の開発状況についてご紹介しようと思います.
ついでに数値シミュレーションとはどういうものか,なぜやるのかということも書こうと思います.

1. なぜシミュレーションをするか?

「机上の空論」という言葉は皆さんご存知だと思います.
いくら机の上でゴリゴリやってても内容がないよぅじゃ意味がないということですね.
私の専門分野(制御理論)のように机の上での計算に多くの時間を費やす研究分野では,現実から乖離していく方向に進まないよう,これに十分注意する必要があります.

そのため多くの場合は,提案した手法をいくつかの具体的な例に適用して効果を検証するということを行います.
学術の世界で言うシミュレーションは,数値計算によってこの検証を行うことを指します.
ほとんどの場合はコンピュータを使って想定する条件を作り出し,扱うものや手法の数式に従って計算を行います.
数値で結果や効能が見えるということは大変重要なことです.
例えば,スーパーに並ぶ日用品や食品に「20%増量」とか「30円引き」とかが明確に書いてあることで,お得だと感じて皆さんが手に取るわけです.
つまりは説得力があるのです(ゆえに気をつけなければなりませんが).

また,ロボットの場合は1台作るだけでも高価になることが多いので,予めシミュレーションでうまく行くことを確認しておいてから実機に適用することで,プログラムの不具合による暴走や故障を未然に防ぐことができます.

2. なぜ可視化する必要があるか?

しかし,数値というものは説得力と引き換えに,実際の量との直感的な関連付けがしづらいという側面を持っています.
例えば砂糖20グラムと言われても,それがどれぐらいの量かイメージしづらいでしょう.
また,砂糖をひとつかみ手にとってそれが何グラムか正確に分かる人も多くないと思います.
すなわち,数値という記号の世界と実際に見える・感じる量の世界は,お互いになかなか行き来できないことがわかります.

そこで人間は可視化するための道具を開発してきたわけです.
  • はかり
  • 定規
  • 時計
身近にあるこれらはすべて数値の世界と量の世界を行き来するのに使われています.

ロボットのシミュレーションの話に戻しましょう.
シミュレーションを行うと,東に何メートル・北に何メートル・左回りに何度・… みたいなデータがたくさん得られるわけですが,数字を眺めていてもロボットがどういう状況にあるのかさっぱりわかりません.
したがって,数値を何らかの形式で表現し直すことで,可視化することを考えます.
下に挙げたのはその一例です.

--
方法①:グラフやプロット
scrot_20150310_02:57:22_AM

グラフは,ある量と別の量の関係や規則性,割合などを見るのにとても便利な表現方法です.
しかし,グラフから直接長さや速さといった量を読み取って,物理的な感覚をイメージするのは簡単ではありません.

方法②:静止画や動画
pendulum_quad

静止画や動画…つまり絵で表現すれば,見てそのままですのでかなり直感的です.
しかし,関係や規則性を見つけるのは難しくなります.
--

このように,見せる方法によって,見やすくなる情報と見にくくなる情報があることがわかります.
全てを1つの方法で見せるのは大変難しいことなので,通常これらの方法をうまく組み合わせることをします.

ロボットのシミュレーションでは,ExcelやMATLABを使ったり,場合によっては専用のソフトウェアを自分で作って数値計算をします.
これまでは,数値計算した結果は大抵①に示したようなグラフを作成して満足してしまうことがほとんどでした(少なくともロ技研では).
これでは,出てきた結果が直感的に正しそうなものかチェックする手がかりがありませんし,ほかの人に見せる際にわかりづらいものになってしまいます.
そこで,出てきた数値を簡単に画像として出力できる環境を作れないだろうかという動機のもと,torqmlを開発しています.

3. なにができるのか?

torqmlでは,QMLと呼ばれる言語を用いてロボットなどの対象物の構造を記述し,数値シミュレーションのデータを読みこませることで,アニメーションの再生と静止画・動画への出力ができます.

scrot_20150502_02:52:16_PM


例えば,ビューワに直方体(TQBox)を表示するには次のように記述します:
import TorQML 0.1
import TorQML.Shapes 0.1
import TorQML.Views 0.1

TQBasicView {
models: TQModel {
TQBox { }
}
}
frame_1


基本的な記法はJSONに似ています.形状には様々なプロパティがあり,
TQBox {
xLength: 0.5
yWidth: 0.1
zDepth: 0.1
}
と指定することで,TQBoxの $x, y, z$ 軸方向の幅を設定できます.
frame_1


コンポーネントの入れ子構造を利用することで,構造の従属関係を記述します.
torqmlが主にサポートする,リンクで構成されたロボットマニピュレータの記述に適した形になっています.
回転や並進はtransformプロパティで指定します.
TQBox {
xLength: 0.5
yWidth: 0.1
zDepth: 0.1
TQBox {
color: "green"
xLength: 0.4
yWidth: 0.2
zDepth: 0.2
transform: [
Rotation3D { angle: 30; axis: "0,0,1" }
]
TQBox {
color: "blue"
xLength: 0.3
yWidth: 0.1
zDepth: 0.1
transform: [
Rotation3D { angle: 30; axis: "0,0,1" }
]
}
}
}
frame_1

アニメーションはtransformやその他のプロパティを更新することで実現しています.
次回以降で詳しく説明していこうと思います.

このように,torqmlではQMLを使用して3次元構造を直感的に記述することができます.
XMLをベースにしたものに比べてコンポーネントとそのプロパティ,コンポーネント間の関係がわかりやすく記述できます.
また,QMLを使用することで高い拡張性が実現できており,簡単にビューや形状などのコンポーネントを継承したカスタムコンポーネントを作成することもできます.
工夫すればtorqmlの上でちょっとしたゲームなんかも作れたりするのではないでしょうか.
詳しい記述方法や,ソフトウェアの使用方法についてはリリース後にこのブログの方に書いていこうと思います.


4. 今後の展望

torqmlはまだ正式バージョンをリリースしていませんが,Bitbucketで現在開発中のコードを閲覧・使用することができます.
https://bitbucket.org/tokoro10g/torqml
(ブラッシュアップできていないため現状すごくコードやディレクトリ構造が汚いです)

リリースは5月末ごろを予定しており,それまでにドキュメントを整備したりしながらこちらのブログで宣伝をしていこうと考えています.
また,将来的にはJavascriptやRubyで記述したシミュレーションプログラムを組み込んでの表示や,外部のシミュレーションプログラムからのデータパイプにも対応しようと考えています.

使用しているライブラリの都合上,Mac OS Xと各Linuxディストリビューション(Arch LinuxとUbuntu 14.04で動作確認)のみの対応となりますのでご承知ください.

torqmlの応援,よろしくお願いします!

【10g】自作クアッドコプター"Quadruptor"ができるまで・後編

みなさんこんにちは,10g所属,学部4年のところです.

今回は前の記事
【10g】自作クアッドコプター"Quadruptor"ができるまで・前編 
の続きをお送りします.

前回は,クアッドコプターを構成する各要素の動作チェックの流れと,機体の姿勢推定について書きました.

今回は,クアッドコプターを制御して飛ばすまでの流れを見ていきます.

 quadruptor_fin
続きを読む

部室人、多い?

試験週間入ったのでなんか書きます。あってぃー(@paste_link)です。NHKロボコンとかやってます。


7月21日にNHK大学ロボコンが テレビで放送されました!今年はウチのマシンは自動機の右手とか2秒くらい見えましたね。来年ズエッテェーどんな形であれ目立ってやろーな!!!!!!

さてさてそれはそーとして、ロボコンが終わった6月上旬、無事大会マシンが帰還し、マシンに取り付けられていたマイKinectが帰ってきました。

Bp-5BYGCUAABD7d

というわけでなんか作ろう。ものつくりをやめたら人は死ぬ。


ところで今年はウチのサークルは新入生がかなり増え、しかも去年の一年生より一学期中の活動が活発なので定期的に廊下まで人が飽和する状態です(部室が狭いのが悪い)。



部室で作業したい
     ↘
    部室遠い
     ↙
遠いけど行く
   ↘
  なんか廊下に人溢れるほど混んでる
   ↙
_人人人人人_
> 入れない <
 ̄^Y^Y^Y^Y^ ̄
 


僕が普段作業している部室とものつくりセンターは地味に離れていないこともないので

部室行く→混んでる→ものつくりセンターに引き返す

とかめんどくさい。入れないのなら入れないって向かう前に知りたい。

無題さfs
 
はい作ろう。


でも部室にカメラをつけて写真貼るだけじゃ面白くないし、RGB画像上げちゃうもなんかアレだと。



なら人数数えてくれるようにしよう。



まず部室の天井にKinect貼っつけます。僕は機械工作とか一切できないので、いおん(@cation04)さんに土下座したところ15分で取り付けてもらいました٩( 'ω' )و

 BtPEn5eCEAALGme



見据える先は生活領域。僕は工作機械使わないのでこっちさえ見えればよいのです

BtPFgNJCYAAzfU3



あとはぽよぽよプログラム書いて、

pc2


ついでにtwitterアプリにして

70fcf4f9



ツツイのツイです。

Kinectで取得した画像をもとに生活領域における人間の位置もなんか出力します。


ちょっとしたものつくりで生活を便利にするのは中々に楽しいですね。

ないものは作る!の精神はいつまでも持っていたいものです。



※このtwitterアカウントは防犯上?の観点よりロ技研の方のみのフォローとしております。ご了承下さい。

【10g】TokyoVim#19に参加してきた

東京工業大学ロボット技術研究会で研究室「10g」で活動しております,11年度入学のところ(@tokoro10g)です.

今回はロボットと少し離れて,有名なテキストエディタであるVimについて話そうと思います.


(Wikimedia commonsより引用 http://commons.wikimedia.org/wiki/File:Vimlogo.svg )

Plan:
1. Vimとはなにか
2. TokyoVim
3. 成果
4. まとめ 
続きを読む

【10g】自作クアッドコプター"Quadruptor"ができるまで・前編

東京工業大学ロボット技術研究会で研究室「10g」で活動しております,11年度入学のところです.

今回は,前回の記事
今流行りの「マルチコプタ」の製作 10g
に引き続き,制作中のクアッドコプターについて書いていこうと思います.

Quadruptor - マシン情報 - Tokoro's Tech-Note 

  続きを読む
ギャラリー
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
  • NHK学生ロボコンチームMaquinistaの紹介(2017)
  • NHK学生ロボコンチームMaquinistaの紹介(2017)
  • 関東春ロボコン 準優勝!!
  • 関東春ロボコン 準優勝!!
  • 関東春ロボコン 準優勝!!
  • 関東春ロボコン 準優勝!!
記事検索
最新コメント