2014年12月13日土曜日

Maker Faire Tokyo 2014

僕が中学3年生の時にMAKERSを読んで感動し、いつか行きたいと思ったMAKER FAIRE TOKYO 2014に今年初めて見学することが出来ました!
MAKER FAIREとは世界各地で開かれているものづくりが好きな人たちのためのお祭りです!
(初心者でも)
僕はまずintel edisonの50名限定無料配布セットをゲットするために朝8:45に現地東京ビッグサイトに到着し、列を待っていたのですが、入場した頃にはすでに配布が終了していました。ガーン
twitterでは最前列らしき人がその日はすでにedisonの配布が終了していたらしきことをつぶやいていたのでわかってはいましたが。。。。

NVIDIA JETSON TK1を積んだロボット
intel edisonがもらえなくて残念と思っていましたが、会場ではNVIDIA JETSON TK1を積んだロボットに魅せられました!GPGPU+組み込みの小型さ。GPGPUは大規模計算、機械学習、画像処理の精度・速度を大きく上げてくれるそうです。自分のロボット開発のインスピレーションが湧いてきました!ですがJETSONはたしか購入時にNDA(秘密保持契約)を結ばないといけなかったはず、そこはどうなのかと店員に話を聞いたところ、今後そのNDAは結ぶ必要がなくなり完全にJETSONはオープンソースになったとのこと!!欲しい!!!そしてやっと一昨日憧れのJETSONが家に届きました!このことは別でブログに書きたいと思います!

長距離無線受信機
長距離無線受信の技術に驚かされました!つくばチャレンジでは僕のロボットはあまり良いGPSのデータが取れなかったのに対してこちらは宇宙の月より離れた場所にあるものからの電波のシグナルを正確に受信しているこの技術の差にびっくりしました!またまたロボット開発のインスピレーションが湧いてきました!


空陸両用クモ型クアッドコプター

こちらは陸を歩くことができ空も飛べる、ロボットアニメに出てきそうなかっこいいロボット(ドローン)です!将来このようなロボットが街の中を飛び回っていると想像しただけでわくわくが止まりません!
下に隠れているのが人間の心理を読むことができるらしいくまさんロボットです。このロボットは日本一周を目指しているそうです!

スケルトニクスのロボット
 実際に操縦できる大型ロボットです。僕も実際操縦してみたかったのですが長蛇の列のため操縦できませんでした。

火星ローバー
火星ローバーだそうです。 地球のロボットと他惑星のロボットは形状、設計や機能が異なることが実感できてすごく興味深かったです!

その他にもArduino + Cloud(AWS) + leapmotion, Arduinoロボット with Scratch開発環境(特に面白かったのはscratchロボットシミュレータがあり、そのロボットシミュレータをロボットの動作と通信を通して同期できること), mbedの開発環境の便利さ(ソフトロジック・アナライザ、オシロスコープ、シミュレータ、リモートデバッガ付き) , Raspberry Piクラスタリングによるストリーミング、鳥人間シミュレータ(leapmotionとOcurus Liftを使っているそうです),Gコードでロボットアームを動かすことのできるロボットアームを動かすことができるlinuxCNC(リアルタイム性がある)、楽しいものでいっぱいでした!

また自分の技術力はまだまだだなあと思いました!
今後もこのような技術に触れて感動し、自分の開発に生かしたいです!

Tsukuba Robotics Challenge




Robot Qualification
I participated in the Tsukuba Autonomous Robotics Challenge.
Tsukuba Robotics Challenge is a trial to develop stable robots that can move freely on the street (Also make sure to be no harm to the people)
To complete the trial, the robot have to move for about 1.3 killometers and detect 5 particular people.
My robot, Kenseiko-chan Mobile 2


My robot was turtlebot(a robot that is silimar to roomba) with LIDAR(Wide range Laser scanner),
toughbook note PC(to cope with rain),xtion(similar to kinect), and GPS.
                      
debugging my robot

                                                                                      


controlling my robot with PS3 controller(creating map)
Actually, I couldn't develop my robot so much because I was also participating in the Kanazawa-city Mobile Application Contest,
and the previous day I went to Tsukuba was the deadline hand-outing the application  so I had to concentrate developing it.
I just finished setting-up environment for my robot and creating robots.

When I arrived to Tsukuba, I started developing the main program of my robot.
This time I used the ROS(Robot Operating System) for the first time, and I started from reading the tutorial of ROS.
However, I couldn't understand how to program the ROS topics and frame_ids so I read the APIs, and I found reading the code is more faster to understand.
 At last, I could program frame_id and topics.                                                         
map tracking in the trial


My algorithm is amcl with SLAM(writing maps) using LIDAR. If I set the first position and the goal position, my robot will move to its way.
 This time my original program didn't work so well so I just used the ROS amcl package. My robot calculate the geolocation by map matching and looking the value of motor encoder.
 To do map matching, I had to take a map, so I made the map with moving my robot manually.(using PS3 controller)
  The track record of my robot was 20 m.
 In the practice my robot moved about 70 m. This shorten of the record was caused from the change of the environment;
 In the pratice there was no person near the starting point but in the trial there were a lot of people near the starting point so the map changed from the practice.

In map-planning running, although my robot was detecting the LIDAR device, but it didn't avoid obstacle.
I found I had to change the amcl configuration file to change the LIDAR subscriber id to base_frame. Now my robot can avoid obstacle.
I didn't used GPS data to plan map this time because the GPS geolocation was inaccurate so I couldn't use it to revise odometry.

My original program was way-to-point tracking. I had to configure the coordinates to local from map coordinates to make it use.
 Now my robot can do way-to-point tracking!

Robot from the Tsukuba University Intelligent Robotics Lab
 Various robots were seen at the challenge.

 In this challenge I could prove turtlebot can be used outside. It can move through the fallen leaves. It stops moving if it hits a middle sized rock.
 It can say that turtlebot can move outside.

つくばチャレンジ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に出場する予定です。