2012年6月29日金曜日

私のとなりのロボットなヒト読んだよ

友人の瀬戸さんの本を読んだので宣伝。



脚注が超すごいので、ぜひ中学〜高校生くらいに読んで欲しいところ。


インタビューされた方の印象は比較的まともでまじめに感じました。
(かろうじて実物を知っていたのは小椋さんくらい)


夢にあふれたロボット博士でいたいもんだ。

2012年6月21日木曜日

スマートペットがやってきた

バンダイから出たスマートペットが届きました。

あまり勝手に動いたりしないので、生命感があまりなく、
良くも悪くも「おもちゃ」というイメージです。
電池の持ちとか考えると仕方ないのかな。という感じ。

ソフトが充実すれば面白くなるのかも?
まだ、なかなかレベル上がらないので認識できる言葉やジェスチャーも少なく、
結局DCモータ2つしかないので、表現力ももう一歩ですね。

首軸は、おすわりモードにすると、ギアの噛みあわせが変わって、
足のモータで首が動くようになる、というギミックっぽいです。
ここはなかなかすごいですね。

5000円なので、かわいいiPhoneスタンドとしてもまあ、許せる値段ですかね〜。
動くだけでやっぱり可愛いい!

音がうるさいのがちょっと難点。

ビデオ取って見ました。


========元ネタ紹介=========

偉大なる元ネタ by @kaduhi さん


@moyashi さん

私の

2012年6月9日土曜日

rosruby進捗

今日の進捗。
ロゴ作りました。


ros.orgのwikiとチュートリアルも少し書きました。

http://ros.org/wiki/rosruby
http://ros.org/wiki/rosruby/Tutorials

どうか、誰か使ってください。

2012年6月3日日曜日

Travis CI使ってみた

rosrubyのテスト実行環境が欲しかったので、Travis CIを使って見ました。

Travis CIは継続的インテグレーションをクラウド上で行うサービスです。

継続的インテグレーションというのは、ソフトを少しでも書き換えるたびに
すべてのテストを自動でやり直す仕組みだと思います。
普通はJenkinsとか使うんだと思いますが、個人だとサーバーとかないし、
オープンソースならTravis CIを使うのがナウいみたいです。

Travis CIは様々な言語に対応しており、例えば、rubyの1.8, 1.9, jruby1.8など、同じ言語でも異なるヴァージョンでテストできたりします。

基本的にGitHubとの連携で使うみたいです。

ここの解説が詳しくていいです。
http://mochizblog.heroku.com/21

.travis.ymlというYAMLファイルに設定を記述します。
私の環境だと↓のような感じ。

language: ruby
rvm:
 - 1.8.7
 - 1.9.3
 - jruby-18mode # JRuby in 1.8 mode
env:
 - ROS_MASTER_URI=http://localhost:11311 ROS_PACKAGE_PATH=$HOME RUBYLIB=$HOME/builds/OTL/rosruby/rosruby/lib
  • rvm rubyの実行環境の切り替えの設定
  • env 環境変数の切り替えの設定。複数ある場合は横にならべる。
rubyで、version1.8.7, 1.9.3, jrubyの1.8モードでビルドします。
envに複数書くと、それとversionの掛け算の数だけタスクが生成されます。
つまり、

  • 1.8.7 & ENV1
  • 1.9.3 & ENV1
  • jruby & ENV1
  • 1.8.7 & ENV2
  • 1.9.3 & ENV2
  • jruby & ENV2
の6回テストしてくれる。

なお、実行されるコマンドは言語ごとに違いますが、rubyの場合は、リポジトリのルートで
$ bundle exec rake
が実行されます。

なので、Gemfileに必要なgemを入れて(rakeを含む)、rakeでテストが走るようにしておけばOK。 rake testではないのがポイント。
Gemfileは以下のようにしてみました。rakeもいれないといけないって書いてありました。

source 'https://rubygems.org'
gem 'rosruby_msgs'
gem 'rake'
gem 'yard'

# ここからはROS情報

なお、rosrubyはテストの実行にroscoreとROSのメッセージファイルを必要とします。
Travis CIではaptで必要なソフトを入れられるんですが、本家とlaunchpadのみ。
で、ROSは独自なので困りました。
そこで、ノリで
  • ruby版のroscoreの作成
  • gemでrosruby_msgs(rosruby用コンパイル済みメッセージ)を公開
という2つをやりました。
gem install rosruby_msgsでrosrubyであらかたコンパイルしたメッセージがインストールできるようにしました。(ほとんど意味ないです。)

ruby版roscoreは簡単かと思いましたが案外難しかった。仕様が明らかじゃないし。