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

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

2014年06月

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

カテゴリ一覧: loading

玉乗りロボット(4) 制御について

井土です。
玉乗りロボットがとりあえず動きました。
今回はその動画と制御についてです。

まずはこちらの動画をご覧ください。
4月の新入生歓迎展示でのデモの様子です。
一緒に映っているのは、
去年作ったNAND(74HC00)ロジックのみで作ったNAND計と後輩の作った電源装置です。




ふらふらしていたり、座布団を敷いていますがバスケットボールにちゃんと乗っています。
とりあえずはこれで完成です。

今回は今までに紹介してきた回路・機械を統合して、
どう制御しているかに焦点を当てたいと思います。
このロボットは下の図のような感じでセンサの値を使って制御をしています。

 ctrl

加速度センサとジャイロセンサからいい感じにx方向の傾きとy
方向の傾きを計算し、
PIDコントローラでその傾きが0になるようにxy方向それぞれへの出力(トルク)を計算します。
最後に、このロボットはオムニホイールを3つ使っているので
x,y方向の出力をオムニホイール×3の出力に変換してモーターに出力します。

ここに出てきたPID制御相補フィルタとは何でしょうか。
今回の玉乗りロボットの制御に関してはその2つが特徴であるので、どんなものかを簡単に説明します。


◯PID制御
まずPID制御とはフィードバック制御の一つの手法です。
そもそもフィードバック制御とは何なのでしょうか。

例えば今、モーターを10の速さで回す制御するとします。
自分がモーターを"10の速さ"で回そうとしていても、
外乱によって"7の速さ"でしか回っていないかもしれません。
そこでモータの速さをセンサで検出して目標値とのズレを考慮して制御するのが
フィードバック制御です。
今回の例では、目標値("10の速さ")とセンサから得られた実際の状態("7の速さ")
ズレは"3の速さ"なので、
そのズレ3が0になるように制御をします。

ズレた値を使ってそのズレが0になるようにするにはどうしたら良いのでしょうか?
そこでPID制御です。
色々な手法がありますが、PID制御はとても良く使われます。
(とある先生によると工業製品に使われる制御の9割がPID制御だとか)
PIDとは比例(P),積分(I),微分(D)のことで、ズレを比例,積分,微分した値を制御出力としてモーターなどに出力します。

pid

・比例(P)は今のズレを制御に反映
・積分(I)は今までのズレを制御に反映
・微分(D)はこれから起こりそうなズレを制御に反映 
  します。

この3つの成分には重み付けができ、それが
KP,KI,KDという3つのパラメータです。
これをうまく決めてやることで制御できるようにします。
制御対象をモデル化できればKP,KI,KDの値をある程度計算やシミュレーションで
決められるのですが、
今回はいきなり玉乗りロボットに実装して
パラメータを色々変えて試行錯誤することでいい感じの値を決めました。

一応限界感度法ステップ応答法といったPIDパラメータを決める手法がありますが、
うまくいかない場合はロボットの動きなどをよく観察してパラメータを調整していきます。 

イメージとしては
・P成分:不安定にならない程度になるべく上げる
・I成分:ズレが定常的に残るときに上げる
・D成分:ちょっとズレた時、すぐに戻したいときに上げる 

みたいな感じです。


◯相補フィルタ
3軸ジャイロから得られる角速度を積分すればそれ一つでロールピッチヨー全ての角度を得られそうですが、
センサの出力にオフセットが乗っていたり、温度変化でズレたり(温度ドリフト)、積分誤差で
正確な値を計算するのは難しいです。
そこで加速度センサも用いて最もらしい値を推定します。
加速度センサを使えば、重力の方向を計算することでヨー以外の姿勢角を知ることはできます。
ただ、並進運動をした時に並進加速度の分だけズレてしまします。

これらを見方を変えて、以下の様な仮定をします。
・ジャイロセンサの定常値はオフセットが乗っていたりするが、変化成分は正確
・加速度センサの定常値は正確だが、変化成分は並進運動が加わっている可能性がある


定常値は低周波成分であり、変化分は高周波成分です。
これらのセンサの特徴を活かして
加速度センサにはLPF(ローパスフィルタ)を掛けて低周波成分を取り出し
ジャイロセンサにはHPF(ハイパスフィルタ)を掛けて高周波成分を取り出して
この2つを足す。
ということをすると割といい感じの値が得られます。
comp_filter

相補フィルタとは、このように複数の信号にフィルタを掛けて
足しあわせ、より精度の高い計測を行う信号処理です。
(ただし任意の周波数においてフィルタの利得の和は1になるようにする) 

複数のセンサを組み合わせて精度よく計測する方法は
センサフュージョンとか言われていて、
他にもカルマンフィルタパーティクルフィルタなど色々あります。
今回は実験してみた結果、相補フィルタが一番いい感じだったので採用しました。 


現状の玉乗りロボットの制御はPIDパラメータを試行錯誤で適当に決めた適当制御です。
ロボットの物理モデルを解析したわけでもなく、よくわからないけど立っている状態です。
動画でもロボットはまだふらふらしていて、もっと安定化させたいと思っています。 
今度は現代制御理論を用いてちゃんと制御し、定量的に制御する予定です(秋か冬くらい)。 
 

くぅ~疲れましたw これにて2014年ロボコン完結です!

こんばんは、Maquinista機械班のおにぎり(@manami1433)です。

こちらのブログでの結果報告を忘れていましたので、今更ながら更新します。

まずは2014年度のNHK大学ロボコンの結果から。
結果はベスト8でした。
(詳しい結果はこちら)
放送日は7/21(月)の10:05~10:59です。

実際の試合ではいつも大学で練習していたフィールドとの違いに苦しみました。
普段の力は存分には発揮できなかったものの、精一杯できるだけのことはやりました。
もちろん悔いは残ります。しかし、なんとかベスト8に滑りこめて良かったです。

会場やTwitter上などで応援してくださった方々、それからものつくりセンターの方々、本当にありがとうございました!!

そしてなんと嬉しいことに、Maquinistaに新たに11人も入ってくれたんです!
9人だったメンバーも、来年は16人で挑むことができそうです。う~ん、平方数!

これから次回のルール発表までの間は、今回の反省や新たな研究、そして新規メンバーへの教育などに勤しんでいきたいと思っております。

では、来年はもっといい成績を残せるよう頑張りますヾ(´ω`=´ω`)ノ

 Maquinista通信 http://ssrmaquinista.blogspot.jp/

【CG^3】 OpenGLで3Dゲーム作成 2

こんにちは、CG^3の抹茶(@_xcipher)です.

環境とか、使用ライブラリとか色々変えました

* 環境とか
    VC++ 2012CTP -> VC++ 2013CTP (C++11おいしい!)
    
* 使用しているライブラリとか
    FTGL (日本語フォント描画) -> freetype2
    [new!] OpenAL (サウンド周り)
    [new!] boost::asio (通信)
    [new!] LZ4 (圧縮)
    
* やりたいこと
    自動作曲
    自動ワールド生成
    マルチプレイ(オンライン)
    アップデーター\
    
* シェーダーのおはなし
    ** 描画パイプライン
        1. 3D上の頂点情報をGPUへ送る
        2. 頂点シェーダ―が頂点単位で何か処理する(座標変換など)
        3. [ジオメトリシェーダ―(頂点増減)]
        4. 隠面処理とか
        5. ラスタライズ (頂点によって張られた面をピクセルに)
        6. ピクセルシェーダーがピクセル単位で何か処理する(ライティングなど)
        7. 画面に出力
    
    OpenGL3.x以降やDirectX10以降では、シェーダーをプログラミングしないといけません。
    つらい。
    楽しい!
    
    ** 具体的に何書くの
        例えば、ライティング
        ライトの座標指定しても勝手に描画してくれません。(現実は厳しい)
        ライトの座標からこれだけ離れているから、このピクセルはこれぐらい明るくする、みたいなのを書いて、あたかもライトがそこにあるっぽいような描画をさせます。
        行列とベクトルが大活躍します。
        つらい。
        楽しい!

* 自動作曲のおはなし
    音楽経験なし!音楽知識なし! -> プログラムに作らせよう
    パクろうと思ってるのがコレです -> Wolfram Tones
    単純セルオートマトンの一部を帯状に切り取って、それを楽譜に見立てています。
    おもしろい。
    
    ** PCで音を鳴らすには?
        自分はOpenALを使う予定ですが、他にもXAudioとかあります。
        音の波形の離散的なデータを渡すと音を出してくれます。
        楽器の波形渡してあげれば、そんな感じの音が出ます(多分)
        まだ勉強中です(´・ω・`)
        
* 進捗
やりたいこと増やしてたら何も進んでなかった。


いろいろやってると工大祭間に合わないのでは
いじょうです( •̀_•́)ง

制作中のRPG、「BLADE FANTASY」の紹介

 こんにちは、RPG王国のマハト(@mahato_stragule)です。

 今回はRPG王国の第一回目の活動報告ということで、僕が現在RPGツクール2000で制作中の長編RPG「BLADE FANTASY」(タイトルは変更する可能性大)の簡単な紹介をしようと思います。

 まずはタイトル画面です。

タイトル


 ……はい、完全にファイナルファンタジーのパクリです。誰か僕に絵の才能を分けてください(泣)。まあもちろんこのままにしておくわけにはいかないので、ゲーム本体が完成したらタイトル画面も作っていこうと思います。


 さて、次にゲームの内容についてですが、大体「ドラゴンクエスト」のようなRPGを想像してもらえば間違いありません。主人公がフィールドを冒険して魔物と戦うというオーソドックスなファンタジーRPGです。ただ、それだけでは新規性の欠片も無いゲームになってしまうので、一点だけ大きな特徴を作りました。それは、主人公が全員「剣士」であるということです。

 このRPGは去年の12月くらいから作り始めたんですが、実は自作の小説が元になっています。当時僕は趣味で「剣士が魔法に挑む」というストーリーのファンタジー小説を書いていたのですが、どうも長文を書く知識も才能も無かったようで、なかなか文章にできませんでした。ということで、
 
文章が書けない→じゃあRPGにしよう!

という感じでRPG作りがスタートしました。そしてどうせならできるだけ小説の設定も活かそうということで、「主人公全員剣士にしちゃおう!」となったわけです。これなら新規性もありますしね。


 ただこの試みは、新規性が出る反面、大きな問題が出てきます。最も大きな問題点は「戦闘が単調になる」という点です。主人公は剣士、つまり魔法が使えないので、戦闘は基本的に殴り合いになります。つまり攻撃して攻撃されて攻撃して……という単調な流れになってしまうんですね。主人公も全員攻撃型になってしまい、個性が出にくいです。これではさすがにクソゲー確定です(苦笑)。

 ということで現在色々と調整中です。とりあえず単調になってしまうことの解決策として今思いついているのは、

1.主人公全員が自身を少量回復できるようにする。
2.覚えているだけで自動で効果が発動するスキル(いわゆるパッシブスキル)を増やす。
3.主人公のステータスをプレーヤーがある程度自由に上げられるようにする。
4.コンセプトには反するが、主人公一人が回復魔法を使えるようにする(ただし消費MPを多くしてあまり多く使えないようにし、また全体回復を覚えないようにする予定)。

の4つです。もうちょっとでこれらの調整が終わると思う(希望的観測)ので、次僕が記事を書くときはそれらも含めた戦闘システムについて詳しく書いていこうと思っています。


 何か紹介とか言いながらよくわからない記事になってしまった気もしますが、今回は以上です。できれば今年度中には完成させたいと思ってるので、これからも地道に頑張っていきます! ちなみにこのRPGは完成したら無料で公開する予定なので、みなさん楽しみにしていてください!

ウラン、入荷しました。

 └(՞ةڼ◔)」<やっほ~!したろうだよォ~!
ひょんなことからウランを頂きました~。
詳しい経緯は幸福の物理:ウランもらったで。

P_20140612_211232


これがもらったウラン、「燐灰ウラン石」です。
u238


紫外線発光LEDを照射すると光ります。
uuv

拡散型霧箱をつくる予定です!夏休みまでのお楽しみ~~~。

└(՞ةڼ◔)」<ブログ、「幸福の物理」もよろしくゥ~!
個人ブログ:幸福の物理
Twitterアカウント:@shitaro2012
ギャラリー
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
  • たのしいロボット帝国 製作物紹介
記事検索
最新コメント