ラベル 制御、計測、運動 の投稿を表示しています。 すべての投稿を表示
ラベル 制御、計測、運動 の投稿を表示しています。 すべての投稿を表示

2014年12月14日日曜日

Intelligent Robotics Challenge

スーツケースにしまって運送しました。
12/6に開かれたIntelligent Robotics Challengeに参加しました。Intelligent Robotics Challengeとはホームで生活支援をするロボットを生み出すことを目的とするものです。

出場したロボット
僕はつくばチャレンジに参加したロボット、Kenseiko-chan 2 Mobileにガンマイクをつけて出場しました。
followmeという競技に出場しました。followmeは人間をロボットが家の環境内で追跡する競技です。
アルゴリズムは姿勢制御に比例航法、距離制御にPID制御を使用しました。人間の検出は足の幅をLIDARで計測する方法をとっています。足は複数本検出できるようになっています。
今回の記録は別の人がすれ違う地点ですれ違った人を追いかけてしまってそこで終了になりました。
今回のロボットの問題点は、
1.足の太さと同じ柱があったらそれを追跡してしまう。
2.2本足であれば確実に人間と判定することができるが今の認識システムでは2本足と認識するときは一定以内の距離でないと判定せず、また停止して足をつっつけてしまうと判定できない。
3.  追跡する人と他の人が見分けられない。
4. 音声認識をしない。

1.はLIDARに反射強度という機能がついているのでそれで追跡者と柱の色の比較ができると思うので次は解決できそうです。また、柱は動いていないのでモーション判定の手法を使ってもこれは解決できます。
2.は人間の足かそうでないかという認識システムを確立するほかないかなと思っています。LIDARのデータを画像化しOpenCVでノイズを除去しパターンマッチングをしようかなと考えています。
3.はLIDARの反射強度を使う方法で解決できるかできないか定かではありません。なぜなら同じ色のズボンを履いている人は多くいるからです。上についているXTionなども活用する必要があるかも知れません。
4. 音声認識のためjuliusの使い方を勉強中です。

Intelligent Robotics Challengeではとても有意義な技術交流ができて夢のようでした!

杉浦先生が開発しているROS互換性がある音声認識・合成システム、rospeex. クラウドAIアーキテクチャ、ディープラーニングなど先進的技術を取り入れています。スマホアプリにもなっています。
アプリ、クラウドAI、機械学習など色々なことを教えて頂きました。杉浦先生ありがとうございます!

大阪工業大学、turtlebot
turtlebotロボットの改造にさらなるインスピレーションがわきました!
電気通信大学のロボット、Daigoro
電気通信大学からはLIDARでの人間検出の方法について教えて頂きました。

 岡田先生、中川先生、大橋先生、林先生、その他にも一人参加の僕は色々な人にお世話になりました。ありがとうございました!

12/7はIntelligent Robotics研究会に参加しました!
次世代ロボット音声認識システムROSpeex(Deep learning・ビッグデータ)、ベイジリアンネットワークによる保育士ー子供モデルによるロボットのための子供を楽しませる機械学習モデル、老人介護のためのロボットについて(ロボットの料理のための機械学習モデルの提案)、機械学習による命令文解析(指示語や暗黙の目的語を機械学習(SVM)によって予測する)、ロボットビジネス戦略、Roombaのビジネスモデル(ロボットという消費者との壁をどうやって取り除いたか)、全脳アーキテクチャ等ここでしか聞けない話が盛りだくさんでした!

次回のIntelligent Robotics Challenge/研究会もぜひ参加したいと思います!

2014年12月13日土曜日

つくばチャレンジ2014

車検
11/16に開かれたつくばチャレンジに参加しました!今年が初参加です。
つくばチャレンジとは人間が普段歩行している遊歩道を走行できる実用的なロボットを生み出すことを目的としている実験会です!ルールは屋外をロボットが走行して人を見つけて約1.3kmのコースを完走することです。

開発したロボット Kenseiko-chan mobile 2です。
僕はturtlebotというroombaに似たロボットにtoughbook, LIDAR, xtion, GPSをつけて(パソコンを載せる台車を製作しました)出場しました。

スーツケースにしまうことができるのがKenseiko-chan mobile2 の最大の特徴です。
実は!つくばに出発した日の一日前にKANAZAWAスマホアプリコンテスト2次審査用サンプルアプリの提出期限だったためアプリの開発の方に集中していてロボットはあまり触っていませんでした!ロボットの進捗具合はロボットの製作、環境設定が完了した程度でした。

デバッグ中です。
筑波についてすぐにロボットのメインプログラムの作成に取り掛かりました。
今回はロボットのフレームワークにROS(Robot Operating System)を使ったのですが、このROSの使い方があまりわかっておらずROSのチュートリアルを読むことから始まりました。ですがチュートリアルを読んだだけではどうプログラミングして良いかわからなかったためAPIを読んだところ、ソースコードを読んだ方が早いということに気づきました。これでROSのtopicやframeをどうやってプログラムで指定すれば良いかやっとわかりました。

turtlebotで地図生成しています。PS3リモコンでturtlebotを操縦しています。
アルゴリズムはLIDARでSLAMを書き初期地点と目標地点を設定するとロボットが自動的に目的地に向かうものです。ROSのパッケージに入っているものをそのまま使いました。ロボットの位置情報はLIDARを使った地図マッチングとturtlebotのエンコーダ情報を使って判定しています。  地図マッチングを行うため事前に走行する場所の地図をロボットを操縦することによって生成しました。

地図走行中です。
 今回の走行記録は20mでした。

練習では70m進んだのですが、このような結果になったのは、練習ではスタート地点付近に人が全くいなかったのですが本番ではスタート地点に特に人が集合していたため、地図マッチングに支障が出てしまったためと考えられます。
 また、地図走行のときはLIDARの情報があるのに障害物回避をしてくれず、この原因を解決できませんでした。最近、amcl設定ファイルのLIDARデータのsubscriber idをbase_frameにする必要があったと判明し、今では地図走行時でも障害物回避が可能です!
 今回はGPSの情報を経路生成に利用しませんでしたが、その理由は実際の走行経路とGPSの位置情報に大きなズレがあったためエンコーダ情報の補正等には使用できませんでした。
 amclを使ったウエイポイント走行のプログラムを製作したのですがうまく動いてくれませんでした。これはウエイポイント走行時に指定した座標系がロボットのlocal座標系でmap座標系(frame_idをmapに)に指定しなければならないと判明しました!現在ではウエイポイント走行ができるようになりました!

turtlebot Kobuki http://www.turtlebot.com/
 今回最も収穫になったことは、室内用に作られているturtlebotが屋外でも走ることができたことを発見したことです!走行した道は落ち葉や大きめの木の枝が大量に落ちていたのですがその上でも難なく走行していました!さすがにおおきめの石は乗り越えることができず止まってしまいましたがこれであれば外でも自律走行できます!

筑波大学知能ロボット研究室のロボット
つくばチャレンジに出場していたロボットは多種多様でした!USTREAMを見ていた皆さんもひとつひとつのロボットが異なっていて楽しかったのではないでしょうか。筑波大学の佐々木さん、turtlebotのことを色々教えてくれた大阪工業大学の教授、ROSのことを教えてくれた千葉工業大学の前川さん、トライアル前に色々とサポートしてくれた金沢工業大学の西川さん、つくばチャレンジという有意義な大会を開いてくれた運営の皆さん、そのほか色々な方にアドバイスをいただき本当にありがとうございました。


 このturtlebotを改造してRoboCup@home leagueに出場する予定です。

2014年9月21日日曜日

つくばチャレンジ用ロボット Making the robot for Tsukuba Autonomous Robot Challenge

シャーシ設計 Design of the chassis
Saintです。
つくばチャレンジ用のロボットのシャーシ設計加工、GPSの性能試験を行いました。
 ROSでhokuyoのlidarをrvizで見るコンフィギュレーションをubuntu上で行なっていて苦戦中です。

For the Tsukuba Autonomous Wheelchair challenge, I did the benchmark test of the GPS, designing  the chassis of the robot, and cut the chassis with CNC.
I'm trying to see the data of the Hokuyo LIDAR through rviz using ROS in ubuntu, but it's not working well. If you have any tips about it, please tell me.

2014年7月20日日曜日

超音波センサPINGのデータ分析

角度とPINGで計測した壁との距離の関係(x: 角度、 y: 距離)


RCJジャパンオープン2014では壁との距離に三角関数等を用いて計測していたのですが、動きを見ていると超音波センサが斜めを向いたときに実測値に対して大きな誤差がでるのではないかと思い、データを集計してみることにしてみました。
おもしろいことに、40°までは超音波センサの値がほとんど変わりません。指向性のためでしょうか。つまり三角関数を用いて値を正確に求めようということが実測値との大きな誤差を生み出していたのです!もう一つ分かったことは、超音波センサが40 ~ 60°以上壁に対して傾いてしまったときはすべての距離で150 ~ 170cmの値で一定になりました。
つまり超音波センサが壁に対して40~60°以上で向くとありえない値が読みこまれてしまいます。これを防ぐためにプログラムで壁に対して45°以上ロボットが傾いたときは横幅を計測する超音波センサを変更することです。(正面についている超音波センサが45°以上向いてしまったときは横幅を計測することになる)

中国国際ICT大会まであと10日。プレゼンシートと名刺も用意しなければ!

PID制御について


saint11


今年も中国教育省に中国国際ICT大会(SICTIC2014)に招待されました。
そのためロボットの調整を行っているのですが、方位制御が安定しました。ここでPID制御(高速、正確な方位制御ができる)について説明します。

 P制御 : 比例制御。目標の方位と現在の方位の差の大きさに応じて回転の速度も速くなる。傾き(定数)が大きすぎるとロボットが尻振り状態(ハンチング)になる。首振りになるかならないかぎりぎりに調整するとよい。
モーターのパワー = 方位の差 *  定数(好きな値、調整は自分で行う) 
 I 制御 :   積分制御(時間積分)。目標方位に一定時間内で到達するため、時間が増加するごとに回転の速度も速くなる。すこしずつ値が大きくなるので正確な制御に向い    ている。単調増加(増加しかしない)な制御であるため値が大きくなりすぎて暴    走する危険性(不安定)がある。何も制限を加えないと無限に値が大きくなるた    め定期的に0に初期化する必要がある。
モーターのパワー = 時間(ループごとにインデクリメント、タイマーでもOK)*定数 (好きな値、調整は自分で行う)
D制御  :   微分制御(時間微分)。微分とは変化の割合(傾き)を求めること。(連続値のグラフなら何でも求められる)。変化の割合を求めて、目標値にたどりつくよう    な変化の割合に変える。尻振りの抑制(目標値を越し続けることによって生じ     る)が可能。I制御の無限に値が大きくなる現象をある程度抑制できる。
モーターのパワー = (1つ前の方位ー現在の方位)* 定数



PID制御: モーターのパワー = Pの式 + Iの式 + Dの式

・簡単なP、I、Dの式の定数の決定法
まずPI制御で調整する。Pによって尻振りするかしないかギリギリの定数に調整する。(Iの定数は何でもよい、Iによって制御が暴走する場合は定数を十分小さくするだけでよい)
そうすると定数はこのように決定する。
P定数 =  調整値 * 0.6
I定数    =  暴走頻度が十分すくない値 * 0.5
D定数 = I定数 *  0.125
I定数 : D定数 =  0.5 : 0.125 = 4 : 1(この関係を満たせばIやDの定数を少し変えてもよい)