2015年6月27日土曜日

ROSの日本語の本 (ROSではじめるロボットプログラミング) 出ました

ついに初の日本語のROSの本が出ました。
それだけROSも日本でメジャーになったということですね。

工学社さんから、著者は私です。


タイトルは「ROSではじめるロボットプログラミング」ということで、

「ロボットプログラミング」をこれから始める人向けに書きました。

書籍まるまる書くのは初めてで、なかなか要領をえなかったですが、なんとか出版されたようです。

このBlogができたのが2009/01なので、(他人ごとの感覚ですが)私にとってはやっと出たか、という感じです。

ROSの本はなかなか出なかったのにはいくつか理由があると思います。

・そもそも日本でROSが流行っていなかったこと
・そもそもロボットプログラミング人口が非常に少ない
・公式ドキュメント(ROS Wiki)が非常に出来がよいため書籍を必要としない

わたしは3番目が一番大きかったと思います。最近は日本語約も結構されているようですし。

このBlogの読者(特に更新されてすぐ最新記事を読んじゃうようなあなた)は、ROSを勉強する、というよりはもう教える立場になっている人が多いと勝手に想像しています。

ROSを教えて下さい!と言われたら、

「「wiki.ros.org」読めば分かるよ」

なんて言っておけば大体、こと足りたのではないでしょうか?

私も経験があります。そしてそれは大抵の場合正しいです。

この本は、「wiki.ros.org」読めば分かるよ、って言ってくれる人が周りにいない、もしくは、読んでも分からない、読み方がわからない、という人をターゲットに書きました。

プログラムの本って、書籍よりWebで読むほうがコピペしたり、ソフトダウンロードしたり、便利ですよね。まあ、普通そういうものはフリーで公開されていないので書籍を買うんだと思いますが、ROSの場合は完全フリーで提供され、内容も充実している。
その状況で本の利点って、

・完全に日本語で読める
・読む順序が決まっているので悩まない

ってあたりだと思うわけで、

・英語に慣れていない
・どこから調べていいかピンとこない

という人には書籍という形もありなのかなー、と思ってこういう企画にしました。

なので中身は

・前半はROS Wikiの焼き直し(より簡単に、より面白くしたつもり)
・後半の応用もそんなに深い内容じゃなく広く浅く

という感じです。
つまり、玄人のあなたがガチで読むためにはおすすめしません。
(もちろん初心者にはおすすめします)

一方で、玄人のあなたが、初心者(特に英語、ロボットにうとい人)に「教えて」と言われたときには、ROS Wikiよりもおすすめできるドキュメントだと思っています。

なので、どちらかというと、玄人のあなたは買わなくてもいい(もちろん買ってもいいです、いや、買ってください)ので、ぜひぜひ周りの新人さんにおすすめしていただけるとうれしいなぁと思っています。

また、本書では一切の実ロボットが出てきません。(シミュレータではもちろん出てきます)そのため、PCさえあれば誰でも楽しめちゃう内容です。なんだ、実ロボット出てこないんじゃ面白くない、と思う人も多いと思うのですが(私もどちらかというとそっちですが)、本書はそういう内容にすることで間口を限りなく広くしようとする挑戦です。
(ロボットプログラミング人口が増えないのはハードウェアを必須とするせいでもあると思うのです)

ということで、ここまで読んで、「なんだ、じゃあいらない」という人も正直多いかと思いますが、正直に書きました。(タイトルで大体想像つくとは思っているのですが念のため)

ご理解の上、ご検討をお願いします!

2015年6月11日木曜日

DARPA Robotics Challenge (DRC) Finals 2015観戦日記

DARPA Robotics Challenge Finals 2015観戦してきました!

いやー、めっちゃ楽しかったですね〜。
真面目な記事はたくさんあるので、どうでもいいくだらないことを中心にてきとーに記録書いておきます。(大したこと書いてないです)


最前線の座席に座ると↓のような感じで見ることができます。
競技を行うレーンは4つ並列なので、最前列にすわっちゃうと目の前のレーンしか見れなくなるので、他のレーンは中央のディスプレイで確認する感じになります。


一番右のレーンからのパノラマ画像



事前登録した人は各チームが控えるガレージに入るツアーに参加できました。

Aeroは二日目は砂に埋もれたときのためにダンボールをもって登場。
そこには「Desert Running Challenge ...」と書かれていました。車乗らないチームが4つあって、その4チームが2日とも朝同時出走だったので、そのチーム同士の友情がめばえた??


タータンレスキュースポンサーがいっぱい。FOXCONN、Amazon、Google、シェル石油?



左腕を骨折したJAXON1号機が飾ってありました。

ドイツのNimbRoが階段の練習をしていました。優勝すると思ったんだけどなー。

エキスポという展示会も外でやっていました。あまり本線に興味がない人も時間潰すことができそうでした。競技間のインターバルも45分あったので、結構ひまです。私はいろんな人としゃべったりしていたので、あまり時間なくてあまり回れませんでした。

BostonDynamicsのWildCart
なつかしき PetMan

CMUの自動運転カー
NASAの かっこいいロボ

他にも多数の普通の企業の展示がありました。

前日に行ったディズニーの乗り物でも軍隊が普通に出てきたり、アメリカでは軍事に対して結構ポジティブなんだなー、と思いました。

結果はスピード勝負になり、KAISTが勝ったわけですが、完成度、練習の成果かと思いました。DRCに集中できる環境を組織が用意できたか、に尽きるのではないでしょうか?
日本チームはさすがに準備時間が短かすぎでしたね〜。

2015年5月24日日曜日

ROS次期バージョンはKinetic Kameに決定

Jade Turtleがリリースされたので、次のバージョンKの開発が始まります。

Kの通称は

Kinetic Kame

に決定しました!やったー亀入りましたね!

通称"kinetic"になるようです。

ソース:
http://www.ros.org/news/2015/05/ros-jade-turtle-release.html

ROS Jade Turtleリリース

正式にROSの次期バージョンJade Turtle(翡翠の亀)がリリースされました。
http://www.ros.org/news/2015/05/ros-jade-turtle-release.html

wikiの説明等もデフォルトがJadeになっているので、Indigoを使いたいという人は要注意です。

リリースされてしばらくはライブラリ等も少ないので、しばらくはIndigoを使いたいシチュエーションも多いと思います。

これでHydroがDisconになったので、もうすぐアップデートされなくなります。
Hydroの人はあきらめてIndigoかJadeに移行しましょう。

変更点 (http://wiki.ros.org/jade/Migration)


・genuesがデフォルトで入った。これから世界中の人がEusLispのメッセージファイルをジェネレートすることになるんでしょうか?恐ろしいです。まあ、それくらいJSKの人のROSにおける立場が強いということですね。
・Gazeboのバージョンが2から5になった。まだ試してないですが、3つも上がればかなり良くなっているのでは?

今回は大きな変更はこれくらいのようです。JSKの人と、Gazebo5を使いたい人と、Ubuntu15.04を使いたい人用って感じですかね〜。

やはりROS全体の開発の失速感は否めないですが、安定期っていうことにしておきましょう。
Indigoは1700パッケージリリースされているようですが、Jadeもこれを超えるのでしょうか。

2015年5月23日土曜日

YosemiteにROS (Jade)をインストール

YosemiteにROS (Jade)をインストール 初心者が絶対やっちゃいけないMacへのROSのインストール。しかもベータ版であるJade。
死亡フラグビンビンですが、私は初心者じゃないのでやってみました。

参考

この参考の多さが嫌な予感しかさせないですね。

環境

OS :OSX 10.10.3 Yosemite
Machine:MacBook Pro (Retina, 13-inch, Early 2015)
ROS : Jade turtle

手順

まずはbrewのインストール。
ターミナルを開いて以下を実行。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brewで必要なソフトのインストールをします。
$ brew update
$ brew install cmake theora
$ brew install boost --with-python
$ brew install opencv --with-qt --with-eigen --with-tbb
brew tapでインストール元をふやします。
$ brew tap ros/deps
$ brew tap osrf/simulation  # Gazebo, sdformat, and ogre
$ brew tap homebrew/versions # VTK5
$ brew tap homebrew/science  # others
rvizを実行するためにOgre-1.9をインストールする必要があり、2015/05/23現在、これだけはまだパッチが取り込まれていない。手元でパッチ作ったので以下のコマンドでインストール可能。
$ brew install https://raw.githubusercontent.com/OTL/homebrew-simulation/master/ogre1.9.rb --devel 
以下を.bashrcに追記
export PATH=/usr/local/bin:$PATH
source .bashrcしてから、
pipのインストール
$ sudo easy_install pip
$ pip install --upgrade pip
pipで必要なPythonツールをインストール。
$ sudo -H pip install -U wstool rosdep rosinstall rosinstall_generator rospkg catkin-pkg Distribute sphinx
rosdepの設定
$ sudo rosdep init
$ rosdep update
ワークスペースの作成と移動
$ mkdir ~/ros_catkin_ws
$ cd ~/ros_catkin_ws
wstoolでソースコードをワークスペースに展開。個人的にdesktop_fullはできる気がしないので、recommendedなdesktopを選択。
$ rosinstall_generator desktop --rosdistro jade --deps --wet-only --tar > jade-desktop-wet.rosinstall
$ wstool init -j8 src jade-desktop-wet.rosinstall
xquartzが必要なので、バイナリで入れる。
$  brew install Caskroom/cask/xquartz
rosdepで必要なbrewのパッケージをインストールする。
$ rosdep install --from-paths src --ignore-src --rosdistro jade -y --skip-keys ogre --skip-keys gazebo
(gazeboはdesktop-full用だが念のため)
brewで必要なものがインストールされるのでしばらく待つ。
sudoの有効時間が切れるとパスワードを聞かれるので、たまにターミナルを見てあげる必要あり。
#All required rosdeps installed successfully
と表示されればここまではOK.
これで準備はととのった。
以下のコマンドでビルドを開始。
$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
数時間待つとビルド完了。
以下を.bashrcに追加
$ source ~/ros_catkin_ws/install_isolated/setup.bash
_roslz4の修正
$ install_name_tool -change /System/Library/Frameworks/Python.framework/Versions/2.7/Python /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/Python ~/ros_catkin_ws/install_isolated/lib/python2.7/site-packages/roslz4/_roslz4.so
rviz含めて大体は動くようになった。
ROSがYosemiteで動いている風
やはり現在でもMacでROSを動かすのは大変なもよう。インストール時間もすごくかかるし、やっぱおすすめできない。
やっぱりUbuntuをおとなしく使いましょう。

2015年4月26日日曜日

ROS Jade TurtleとTシャツ

ROS の次のバージョンであるJade Turtleのリリース日が一応アナウンスされました。

5/23目標のようです。

当初の予定どおりリリースされるとは非常にめずらしいですね。1年というサイクルなら余裕なんでしょうか。

また、いつも通り、リリース記念Tシャツの販売をやっています。
最低必要枚数に到達しないと実際に作らないクラウドファンディング方式ですが、すでに到達しており、注文すれば届く状態になっています。

http://www.ros.org/news/2015/04/ros-jade-turtle-logo-and-release-t-shirt.html

2015年2月16日月曜日

MYOでPepperを動かしてみる

MYOがやっと届きました。注文したのが1年くらい前だったので、すっかり忘れていました。
MYOを知らない人は↓の動画を見てください。



ところが、このMYO、このビデオのようにいろんなジェスチャが認識できるわけじゃないです。
APIでサポートしてくれるのは

  • 手を開く
  • 手を閉じる
  • 手首右
  • 手首左
  • 指をダブルタップ
の5つだけです。IMU(姿勢角センサ)の性能もそこまで良くなく、ちょっと残念。
といえど、せっかく買ったので、同時期に届いたPepperと組み合わせてみました。

↓です。そのうち、顔出ししないでPepperだけで済むようにしたいですが、
今回のように筋電を取るようなデバイスだと人が出演せざるを得ないですね。


使ったのはMYOのジェスチャのうち、

  • 手を開く
  • 手を閉じる
  • 手首右(なんでやねん)
でした。あとはIMUの角度を使って、Pepperの右腕の肩2軸を制御しています。

ソースコードは↓においてあります。あまり整備されていないので参考程度に。

メインプログラムは60行くらいです。

MYOのROSノードはclearpathのものがapt-getで入りますが、Windowsが別途必要なようだったでやめました。
↓のものはLinux単体で使えるのでそっちにしました。

ジェスチャーやIMUのデータがPublishされます。
ROSを使えばビデオでちょっと出したように、可視化も簡単にできます。
(rqt_plot, rviz)
MYOをお持ちの方は試してみては。