2013年6月13日木曜日

ROS利用環境アンケート実施中

ros-japan-usersメーリスでも話題になったROSのリリースの話題です。
主にUbuntuについてですが、現在の使用環境と、将来的なサポートへの期待の調査が来ています。自分の環境をサポートしてもらいたい人はアンケートに協力してみたらどうでしょうか?
今週末までみたいです。

https://www.surveymonkey.com/s/JY63R3Z
原文:
Hi Everyone,
To facilitate the release timeline discussion please take a moment to fillout this survey about your ROS usage past and expected so we can make aninformed decision going forward.
https://www.surveymonkey.com/s/JY63R3Z
We will keep this survey open through the end of the week.
Tully

2013年6月9日日曜日

NHK大学ロボコン2013

今日はNHK大学ロボコンの応援に行きました!
我らがRoboTech(ロボテック)は惜しくも準優勝!!
決勝は二秒差という僅差の試合でした。本当に感動しました!


私が現役のころの10年前は一回勝つのがやっとでしたが、二個下の後輩が優勝し、それ以来かなり強いみたいです。

当時はここまで強く大きな団体になるとは全く思えませんでした。当時株を持っておけば大儲けだったなぁ。

応援の掛け声とチーム名が当時のままなのがうれしいです。

今年の課題は、いつもの、自動マシンと手動マシンがブロックを運ぶのがベースなんですが、
最後に自動マシンがとって来た苗(矢みたいなの?)をぶん投げて、直径50cmの高い台に乗っけるというのがありました。

投げるマニピュレーション技術なんて世の中になかなかなさそうなのに、
これをほとんど自動で、確実にこなしていました。
恐ろしい技術力です。

2013年5月23日木曜日

ロボットがメインストリームになるのを妨げているのはなんだろうか?

世の中完全にITがメインストリームであり、ロボットなんて全く相手にされていません。
ITはすでに飽和していると言われていて、次にロボットが期待されているわけですが、
いったいいつになったらロボットの時代が来るのか。。。
我々知能ロボットソフトウェアの開発をしている人間はみんなIT業界の連中を指をくわえて眺めている状態ではないでしょうか。

普段あまり思想とか書かないですけど、OSRFのブライアンガーキーさんの記事が目に入ったので翻訳して紹介します。我々ロボットソフトをやっている人間からすれば中身は至って普通のことが書いてありますが、なかなか明文化されている文章は見たことがなかったので、代弁してもらうことにしました。

原文: http://robohub.org/brian-gerkey-on-what-is-the-single-biggest-obstacle-preventing-robotics-from-going-mainstream/

 ロボティクスがもっと広く採用されるための最大の障壁は、ロボットアプリが経験のあるロボット開発者(roboticists)にしか作れないということだ。信頼性とロバスト性を兼ねそろえた役に立つアプリを作るためには、深く広い様々な分野の知識が必要不可欠だ。例えば状態推定や、認識、動作計画などだ。単なるソフトウェアなら多くの人が書けるが、こういったロボット開発の経験がある人はほんの少ししかいない。必要なのは多くの普通のソフトウェア開発者をロボットアプリ開発に参加させることだ。

 私がアプリ(applications)と言っているのは、それを新しいアルゴリズムの開発やコアな要素開発と区別すためだ。普通のソフトウェアのアナロジーで語れば、デスクトップアプリを作るために、プロセスのスケジューラーやファイルシステム、メモリ管理を理解する必要がないということだ。同様にウェブアプリを書くのにDNSやウェブサーバーやウェブソケットの詳細を知っている必要はない。もちろんそれらの知識はあれば役に立つが、一度コアが出来て、理解され、ドキュメントが書かれ、チュートリアルが出来てしまえば、障壁は著しく低くなる。ただコードを書けばよいというレベルになる。

 単にもっと多くの人をロボットに関わらせる、その先に行くためには、日々の生活の中でロボット技術が有益に使われるためのもっとよいアイデアが必要だ。私はロボットコミュニティーに入って15年になるが、ロボット開発者は病的なまでにアプリのアイデアを考えるのが苦手だと確信するに至った。我々は技術に魅了されており、それは重大な問題に取り組むためのモチベーションとしてはいいが、そのためにロボットとしての問題を解決することに集中してしまい、その問題が本当に人々に必要とされているのかどうかを考えていない。この問題は、我々のコミュニティーに新しく異なる分野の桁違いに多くの人を加えることで解決できる。そして、それは有能なプログラマがロボットアプリの開発をできるようにすることによって成し遂げることができる。

 AndroidやiOSプラットフォームは3G, GPS, タッチスクリーンの理解なしに、役に立ち、時には世界を変えてしまうようなモバイルアプリを作ることを可能にした。我々もロボットについて同じことができる。我々は多大な努力によってオープンで、共有できるロボットソフトウェアプラットフォームの正しい道を進んでいる。必要なのはただこの道を突き進み、それらを作るときに常に非ロボットエンジニアのことを念頭に置くことだ。

2013年5月1日水曜日

catkin化はなかなか進んでいなさそう

まだ世間でもcatkin化は進んでいないですね。

hydraから大丈夫かな。

自分で使いたいパッケージをcatkin化して回ることになりそう。

catkin化する必要性は現時点では正直あまりないんですが、
自分の作るパッケージをcatkin化したいので、
依存するものはすべてcatkinになっていないといけないのです。

とりあえず2つ程catkin化しました。

USBカメラのノードとDynamixelのノードです。

uvc_camのほうにはpullリクエストも送ってみました。
dynamixelもissue投げたので取り込まれるといいな。

どっちも早くリリースまでいってほしい。

やっとcatkinに慣れてきました。

2013年4月30日火曜日

ROSで顔認識

OpenCVで顔認識プログラムやろうかと思ったのですが、
ROSにあったので使ってみたいと思います。

http://www.ros.org/wiki/face_detector

インストールは以下でできます。
$ sudo apt-get install ros-groovy-people

一応willowのスタックのようです。

ただしこれは単眼ではなく、ステレオカメラかRGBDカメラ(Kinect / Xtion)が必要です。
3次元位置を出せるみたいです。

今回は私はUSBカメラで顔の画面上の位置だけ出したかったので、
2次元のものを探したら、やっぱりありました。

http://www.ros.org/wiki/pi_face_tracker


これはROS By Exampleを書いている人たちのプロジェクトですね。

ドキュメントもしっかりしているので、これを使ってみます。

インストールはソースからやる必要があるみたいです。
catkin化されてないです。

インストール方法を簡単に書くとuvc_camパッケージのインストール

$ git clone https://github.com/ericperko/uvc_cam.git
$ rosdep install uvc_cam
$ rosmake uvc_cam

pi_vision スタックのインストール
$ svn co http://pi-robot-ros-pkg.googlecode.com/svn/trunk/pi_vision
4 rosdep install pi_vision
$ rosmake pi_vision

ビルドは多分、いろいろ古くてうまく行かないので、以下だけやるといいと思います。

 $ roscd pi_face_tracker
 $ make

基本的にはpythonのコードなのでビルドはいらないです。

で、USBカメラでの実行は以下のコマンドでUSBカメラのノードを上げて、


$ roslaunch ros2opencv uvc_cam.launch




$ roslaunch pi_face_tracker face_tracker_uvc_cam.launch 

でいいみたいです。

データセットのせいか、メガネがあると認識しづらいみたいです。
発見&追従です。



/roi
に sensor_msgs/RegionOfInterest
で座標が出ます。

OTLさん素顔公開です!!

2013年4月29日月曜日

catkinでのpythonのtestについて

catkinにはまだなれません。

catkin化したパッケージのテストについて調べたので書いてみます。
catkinはとにかくドキュメントが少なすぎて泣ける。

普段pythonしかコード書かないので、pythonのtestについてです。

catkinではpythonでのtestにnoseというフレームワークを基本的に使うみたいです。
unittestフレームワークを使ったコードはそのまま使えるので、
あまり意識しなくても大丈夫かも。

まず、テストファイルをこれまでと同様に準備します。

で、CMakeLists.txtに
catkin_add_nosetests(test/unit)

などと書きます。

noseではテストをパッケージにできるので、
test/unit以下にunittestのファイルと__init__.pyを置いておけば
すべて実行されるみたいです。

で、rostestのほうは、

add_rostest(test/***.test)

と書きます。
中身は今までどおり、rostestパッケージを使った書き方でよさそうです。

これで、

$ catkin_make run_tests
とすれば、すべてのパッケージのテストが実施されます。

$ cd WORKSPACE/build
$ make run_tests_PACKAGE_NAME

で、指定したパッケージだけのテストもできます。
いろんなソースとか調べた方法なので、もし、もっとちゃんとしたドキュメントとか
ご存知の方いたら教えてください。

2013年3月9日土曜日

ROS勉強オフ会開催中

今日はROS勉強オフ会開催中です!

Turtlebot2を買った強者が自宅に来ております。

ROSのインストールはできたけど、ロボットが動かないとか。

僕の読みでは原因はケーブルの差し忘れです。


5分後・・・・



動きました!

ROS_HOSTNAME/ROS_MASTER_URIの設定がおかしかったみたいです。