ラベル 雑談 の投稿を表示しています。 すべての投稿を表示
ラベル 雑談 の投稿を表示しています。 すべての投稿を表示

2012年11月2日金曜日

ROS界隈のニュース

ごぶさたしております。

生存確認代わりに最近のROSっぽいところのニュースと所感を書いておきます。
ここの読者からすると今更感がたっぷりなニュースです。

TexaiからBeamへ!

Willow GarageからスピンアウトしたSuitable Technologies inc.が作ったテレプレゼンスロボットが公開されました。Beamです。


特徴は17インチの巨大モニターだと思います。
操作者の存在感を出すにはそれくらい必要なんですかね。

RethinkRoboticsのBaxter発表!

そしてなんといってもBaxterですよね。
約200万円という価格が特徴ですね。



で、ROSは?

ということで、これらとROSって何か関係あるのか?
ってことなんですけど、まさにこの2つのロボットはどっちもROSを使っているんです。
(Beamは言うまでもないですが、BaxterはROSメーリスにROSベースのSDKの人材募集していましたから間違いないでしょう)

しかし、両者ともROSへの言及は全くといっていいほどありません。
そして、これらのロボットは全くオープンじゃないです。
(そのうちSDKくらいは出してくるかもしれませんが)

ROSはもうおもちゃじゃなく、製品に確実に乗ってきています。

ROSはもう表に出ず、裏方でこっそり使われるというフェーズになったように感じます。
今後もたぶん、ROSはますます影を潜め、そして、どんどん浸透していくでしょう。

日本としてはなんか怖いような、でも同じく苦境にあるアメリカに是非大成功して欲しいような、そんな今日この頃です。

2012年3月18日日曜日

ROS Fuerte アルファ版試してみる

Fuerteのアルファ版がでています。
普通に

$ apt-get install ros-fuerte-desktop-full

などとするとインストールできます。
では中身を見てみますか。

$ ls -F /opt/ros/fuerte/
bin/ etc/ lib/ setup.sh share/
env.sh* include/ setup.bash setup.zsh stacks/

おー、構成が結構変わってますね。ではbinは・・・・

$ ls /opt/ros/fuerte/bin/
add_gaussian_noise pcd_viewer
boundary_estimation plane_projection
catkin-build-debs-of-workspace registration_visualizer
catkin-bump-version rosbag
catkin-generate-debian rosboost-cfg
catkin-parse-stack rosclean
catkin-topological-order roscore
catkin-version roscreate-pkg
catkin_install_parse rosgraph
catkin_util.sh roslaunch
cluster_extraction roslaunch-deps
compute_cloud_error roslaunch-logs
concatenate_points_pcd rosmake
convert_pcd_ascii_binary rosmaster
crop_to_hull rosmsg
elch rosmsg-proto
em rosnode
extract_feature rospack
fpfh_estimation rosparam
gen_cpp.py rosrun
gen_lisp.py rosservice
genmsg_py.py rossrv
gensrv_py.py rosstack
git-catkin rostest
git-catkin-generate-debian rostopic
git-catkin-import-upstream rosunit
git-catkin-set-upstream rosversion
git-catkin-track-all roswtf
gp3_surface rxbag
icp rxconsole
icp2d rxgraph
marching_cubes_reconstruction rxloggerlevel
mesh2pcd rxplot
mesh_sampling spin_estimation
normal_estimation swig
octree_viewer timed_trigger_test
outlier_removal transform_point_cloud
passthrough_filter vfh_estimation
pcd2ply virtual_scanner
pcd2vtk voxel_grid
pcd_convert_NaN_nan

おー、たっぷり入っています。
しかし、すべてがこっちに来たわけじゃないみたいです。
たとえばrvizはまだstacksの下にありますね。

$ roscd
No ROS_WORKSPACE set. Please set ROS_WORKSPACE to use roscd with no arguments.

あ、roscdの仕様もいつのまにか変わっていますね。引数なしの場合に
任意の場所(ROS_WORKSPACE)に飛べるようになっていますね。

$ roscd std_msgs
すると
/opt/ros/fuerte/share/std_msgs
に飛びます。

fuerteはstacksとros直下が入り乱れる過渡期のdistroになりそうです。

2012年3月2日金曜日

Fuerte Turtleでの変更点

次のROSのリリースFuerteについて書きます。
http://ros.org/wiki/fuerte

何気にその変更点の一つを見ていたら結構びっくりすることが書いてあったので紹介します。
http://ros.org/reps/rep-0122.html

ここに書いてあるファイル構成についてです。
今は
$ ls /opt/ros/electric
とすると、
ros/
setup.bash
setup.sh
setup.zsh
stacks/
と表示されると思いますが、

これがFuerteでは


bin/
etc/
include/
lib/
stacks/

となるようです。
しかも、
bin/にはrosのシステム用のバイナリだけじゃなく、ユーザのバイナリが直接置かれるようです。これまではrosrunがあったので、バイナリの名前は適当に付けられましたが、これからは被らないようにしないといけなくなるようです。

stacksは互換性のために一応残すようです。


ライブラリも同様にlibに入れられて、Pythonのライブラリも集められるので、
roslib.load_manifest()といったおまじないが必要なくなります。


これはrosmakeに変わり、catkinというシステムでビルドされるようになるためのようです。

まあ、より自然で使いやすい形になりますね。

これにより、ROSのスタックをprefix(/opt/ros/fuerte)を/usrに変えるただけで、
普通のLinuxのパッケージにできるようになり、
普通のdebian/Ubuntuパッケージとして配布できるようにするのが狙いのようです。
一方で複数のバージョン(cturtle, diamondback,electricなど)を共存させることもできる、ということで、このようなシステムになるみたいです。

ROSが不思議なrospackシステムでガラパゴス化してしまうのを防ぎたいのでしょう。
Fuerteの次のリリースはGROOVY GALAPAGOSですが。

2012年1月16日月曜日

rosjavaについて

rosjavaの記事をここ数日書いてきましたが、開発が激しすぎて、記事にしても
すぐ陳腐化してしまいそうなので、ちょっと削除しました。

が、注意書きを加え、最新版に対応させて、また復活させました。

まだコアライブラリの使い方も定まってなさそうなので、
基本的な文法が全く変わってしまっています。
roscppとかほとんど変化ないから、そんなものかと思っていましたが、
全然違います。

まあ、今までの記事もすでに古くなっているものも多いですから、
記事が古かったらごめんなさい。ということで。。。

2011年11月27日日曜日

MTM07参加します!

MTM07(http://www.oreilly.co.jp/mtm/07/)に出展します。

出展名はOTL++で、Oriental Robotics (http://orientalrobotics.blogspot.com/)さんといっしょにやります。
タイトルはDIYロボティクスとかにした気がします。

目玉はFRISK Roomba。フリスクケースにルンバ操作用Bluetoothモジュールが入っています。
http://orientalrobotics.blogspot.com/2011/02/friskroomba.html

こいつとKinectがあればROSの自律移動も試せるし、いろいろ遊べます。
私がこれまでに上げた動画でもこれを使っています。


Kinectでもなんでもつながります。

パソコンからプログラム余裕です。



あとはテレプレゼンスロボットを持って行きますので、「東京の会場までいけないよ」という人は自宅からMTM07に参加できちゃいます!
ブラウザから操作可能にしていますので後ほどアドレスを書きますので乞うご期待。


他にもいろいろ持っていくので、ロボット好きなひとは是非遊びに来てくださいね。

2011年9月8日木曜日

iheart roboticsさんからTシャツもらった

iheart roboticsさんからROS Tシャツとiheartroboticsグッズを貰いました。

エアメールで頂きました。

みなさんもblogを一度は見たことがあると思います。
Tシャツちょっと長いけどうれしい!

さっそくみんな自慢しましたがここでも自慢させてください。
周りには通じる人少ないんで。


お返しに折り紙の本でも贈ろうかと思っています。

2011年8月19日金曜日

Point Cloud Libraryを試す(その0)

かなり遅くなりましたが今後このブログでPoint Cloud Library (PCL)を試したいと思います。

PCLはKinectやレーザーレンジファインダで獲得できる3次元の点群を使った認識を行うためのライブラリです。(たぶん)
(including filtering, feature estimation, surface reconstruction, registration, model fitting and segmentation)とあります。


HPを見るとスポンサーとして、intel, nvidia, willowなどが並び、日本でも産総研、東大、トヨタが付いているようですね。


私はPCLはかなり前から注目していましたが、正直何に使っていいか分かりませんでした。
Kinectが発売され、誰でも使えるようになり、さらに注目度が増していたわけですが、
やはりどうロボットにいれていいかわからず手がでませんでした。
6軸以上のアームがあれば物体認識に使えるんでしょうけど、
そんなもの持っていませんし、作るにもお金とスキルと時間が必要です。

また、なんとか私が持っているロボット(移動台車、Kinect、2軸アーム)での利用法をさがそうとしていましたが、
やはり思いつきませんでした。
(1つ考えていますが、あまり面白くないです。誰かネタがあったら教えてください。)

でも勉強していくうちに思いつくかもしれない、と思って見切り発車でやっていこうと思います。

PCLはROS依存とROS依存じゃないところをちゃんと意識して作っているっぽいので、ROSじ
ゃない方面からやるか、ROSでやるか、という2つのやり方があると思います。
ドキュメントの再利用性を考えて、ROS非依存で進めて、最後にROSからだとこうなる、という感じで進めようかと思います。
最後にルンバにKinectを載せてなんかやるでしょう。

ではでは。

2011年6月13日月曜日

Minecraft

こんばんわ。おひさしぶりです。

最近本当にネタがありませんので
私が最近はまっているゲームを紹介します。

マインクラフトです。
http://www.minecraft.net/
15ユーロくらいします。↓は公式PV。


FPS視点で、素材を集めて、道具を作り、またその道具で素材を集める。
集めた素材で家を作ったり、トロッコを走らせたりさせます。

ロボットとか作っちゃう男の子にはたまらないゲームです。
マルチプレイにも対応しており、複数人で協力して巨大建造物を作ったりもできます。


あとは、このゲームをプレイしている人の作る動画が面白い。


Classic版は無料なのでWeb上で試してみたらいかがでしょうか。
http://www.minecraft.net/play.jsp

もちろん私は買いました。
意外とまだ長時間やっていません。いったんやりだすと止まらないので自重しております。

以上完全に雑談でした。

2011年4月27日水曜日

雑談:人間のステレオ視について

今日は雑談です。

Kinectのおかげで最近は手軽に物体の3次元位置を取得できるようになりつつありますが、
ロボット界では2つのカメラを使ったスレテオ視というのがむか〜しから研究されています。

これは人間の両眼を模擬したシステムですよね。

でも私は常日頃、片目でも物の奥行きとか分かるわけで、人間はそんなにスレテオ視を利用していないんじゃないかなぁ。記憶とか、常識とか、そういうもので奥行きを判断しているんじゃないかなぁ、と思っていました。


で、先日、私事ですが、右目の角膜が一部剥がれてしまい、右目の視力が0.01くらいまで低下し、1週間ほど眼帯をしていました。
今はほとんど治りましたのでご心配なく。

で、片目で生活していたのですが、結構不自由する場面があったのです。
それは手に持った何かと何かの位置合わせをする時です。

手と手、手と体とかなら問題ないのですが、
手に持った何かと、何か、の位置合わせが片目だと全くできませんでした。
手と物体、でもなんとかなります。タイピングも問題ない。

でも手にもった何かをどこかに作用させる(包丁で何かを切る、目薬の蓋をもどす)動作になると極端に精度が落ちるのです。

一方で遠距離のものに関してはほとんど支障がありませんでした。
っていうか、手が届かないからあたりまえか。

でもなんか自分的にはこれは大発見でした。

人間は近距離のみステレオ視をしている!
考えてみれば遠いところは視差がでにくいので当たり前ですが。

だから、ロボットに必要なステレオ視は近距離だな〜ってなんか思いました。
いや、実感したというべきか。。。

2010年2月17日水曜日

ROSチュートリアル in ICRA2010

ICRA2010という学会でROSのチュートリアルがあるみたいですね。

http://www.ros.org/wiki/Events/ICRA2010Tutorial

2日間にわたりがっつりです。
内容はこのブログと似た感じになりますね。

2010年2月5日金曜日

WGのpr2とrobotの考え方の推測

ROSについて少し誤解をしていました。

今までPR2というのはWGのロボットの一つ、だと思っていて、
「pr2_*というプログラムは、当然robot_*というプログラムを継承して作ってある、PR2用のプログラムである」
と思っていました。

事実、
pr2_mechanism_controllersに対して、robot_mechanism_controllersが存在します。
なので、当然pr2_mechanism_controllersの中身はrobot_mechanism_controllersの何らかのクラスを継承しているものだと勘違いしていました。

そして、pr2_*が78ものパッケージが存在するのに対し、robot_*が11しか存在しないことに疑問を持ち、
「WGはロボットの仮想化に興味がないのか?PR2意外のロボットはやる気がない?ROSっていろんなロボットを動かすためにあるんじゃないの?なんなの?」
と常々疑問に思っていました。

しかし、最近シミュレータコントローラーを書くためにいろいろ格闘した結果、ひとつの結論に達しました。

「ROSにおいてpr2は一般的に言う所のrobotを意味する」

なので、pr2_*というパッケージ名にだまされてはいけません。

pr2_controller_managerは一般的な思想でいうところのrobot_controller_managerを意味するのです。
なので、pr2_*で始まるパッケージを自信を持って自分のロボットに使えばいいです。
もちろんそういうふうに使えるように書かれています。

(”OpenHRPでいうところのHumanoid”=”ROSでいうところのPR2”
とでも考えればいいと思います。ってマニアックすぎて意味分からないですね。)


ということで次回堂々とpr2_*なプログラムを自分ロボットに使います。

全然勘違いしてたらすみません。つっこみ歓迎です。

2010年1月27日水曜日

今後の進め方 4

このBlogの個人的な目標は

・PR2の動かし方を理解すること
・オリジナルロボットをROSで動かすこと
・オリジナルロボットをシミュレータ上で動かすこと
・C++を勉強すること

でした。

PR2の動かし方の基本的な部分は大体分かりました。
あとは上位の動作計画系と、実時間制御の部分が残っています。

オリジナルロボット(改造i-SOBOT)をROSで動かすまではとりあえずできたことにして、
当面、オリジナルロボット(改造i-SOBOT)をシミュレータ上で動かすことを目標にしてやっていきたいと思います。

ROSではロボットモデル(関節構造は)urdfという形式で扱っています。
そして、これに表示用メッシュを足してgazebo用モデルにしていると思います。
また、このurdfモデルを使って逆運動学を解いています。

なので、urdf、gazeboを見て、PR2の逆運動学を見て、その勢いでPR2の上位系をさらっと
やりたいと思います。

もちろん途中でi-SOBOTっぽいモデルをgazebo上に表示したいと思います。
C++は少しずつ本を読んで勉強中です。

2010年1月17日日曜日

ROS JP Wave

Google WaveにROSのWaveができたみたいなんで、
興味のある方は覗いてみてください。

https://wave.google.com/wave/?#restored:wave:googlewave.com!w%252BFK23iN6cA

waveのアカウントない方はInviteしますのでお気楽にご連絡を。

ros-jpメーリングリストも作りたいですね。

追記:ありました。知りませんでした。
こういう情報が簡単に共有されていくといいですね。
https://lists.sourceforge.net/lists/listinfo/ros-users-ja

2010年1月10日日曜日

ROSを使うための前提知識

ROSの勉強記録を書いていますが誰が読むんだろう・・・ということを考えます。

ROSを利用・勉強するための必要条件を以下に挙げてみます。

  • 英語
  • Unix/Linuxの基本的知識
  • ロボティクスの基本知識(大学院レベル)
  • C++
  • Python
  • グラフィックカードつきPC
以上はほぼすべてが必須なものです。
こう挙げてみると、英語なんてなんの問題にもならないくらい低いハードルですね。

2009年12月31日木曜日

今後の進め方 その3

いい加減地味なのにも飽きてきました。

チュートリアルリストを眺めています。
http://www.ros.org/wiki/AllTutorials


  1. ROS・・・本体
  2. camera_drivers
  3. common・・・actionlib, filterなどROSの根幹をなすものの一つ。
  4. diagnostics・・・自己診断。実機でやるなら必須かな。
  5. geometry・・・すでにやった(tf)
  6. image_common・・・この辺は画像処理
  7. image_pipeline
  8. imu_drivers
  9. joystick_drivers・・・PS3とか使えるみたいなのでそのうちやる。
  10. laser_drivers・・・・北陽とSICKだけみたい。
  11. laser_pipeline・・・パイプラインってのを使うらしい。そのうち軽く見ないと。
  12. motion_planning・・・PR2でのアームの軌道計画。
  13. navigation・・・・自律移動
  14. pr2・・・・計画系をいれない、ロボットを直接動かすレベル。
  15. pr2_mechanism・・・・リアルタイム層の制御。歩行入れるならここのレベルを勉強する必要あり。
  16. pr2_simulator・・・・上のpr2 stackでちゃんとシミュレータが動くのだろうか?互換性があるならpr2 stackだけ勉強すればいいはず。
  17. robot_model・・・・RRDFフォーマットでのロボットモデルの作り方。オリジナルロボットを作るならここ。
  18. ros_experimental・・・・roslispについて。lisperは必見。
  19. ros_pkg_tutorials・・・パッケージのつくり方。作ったソフトを公開とかする段になればまじめに勉強すべきかな。
  20. ros_tutorials・・・・すでにお世話になってるturtlesimとか。
  21. simulator_gazebo・・・3DシミュレーションのgazeboをROSでどう使うか。
  22. simulator_stage・・・・同じく2D移動シミュレータのstageへのインタフェース
  23. slam_gmapping・・・・自律移動の地図自動生成ソフトのgmapping
  24. sound_drivers・・・・音です。
  25. trex・・・・TREXというライブラリへのインタフェース。
  26. vision_opencv・・・・言わずと知れたOpenCVへのインタフェース
以上でチュートリアルの存在するスタックはおしまい。

最初は無限に存在するかのように思えたROSライブラリ群もこんなもんです。
他にチュートリアルが存在しないけど重要そうなのは、
を見ると、
  • kinematics
  • manipulation_common
  • opencv
  • openrave_planning
などがありますが、いずれも上のチュートリアルをやる中で出てくると思うので、
そのつど中を気にしながらやっていきましょう。

ようやく全容がなんとなく見えてきた気がします。

2009年12月28日月曜日

ROS日本語チュートリアルのwiki

 よく見たらありましたね。

http://www.ros.org/wiki/ja/ROS
http://www.ros.org/wiki/ja/ROS/Tutorials

このかたみたいですね。

僕もコミットしたほうがいいのかなぁ。
まあ、まだいいか。

ソフトでコミットしよう。
そうしよう。

2009年12月26日土曜日

今後の進め方 その2

もう少し調べていくと、ROSでの標準的なロボットの動かしかたを理解するには

  • tf ・・・・・・座標系の関係を規定するライブラリ
  • actionlib・・・ロボットを動かすときの標準インタフェース
などを勉強する必要がありそうです。
思ったより道は険しいですね。

ロボット動かしたいですが、結局デモを動かして終了だと何にも作れるようにならないので、
非常につまらないですが、ひとつひとつこなしていこうと思います。

デモ動かしたければ、チュートリアルに書いてあるようにコマンド叩けばロボットは動きますんで、それでストレス解消してください。

今後の進め方

ROSはどう勉強を進めていいか分かりづらいですね。
やっとつまらないチュートリアルが終わって、これから本番なのですが、
どこから手をつけていいやら・・・。
そんなあなたは私についてきてくださいね。

今後やりたいことはとりあえず以下の3つです。

  • PR2シミュレータのアームを動かせるようにする
  • PR2シミュレータの車輪による移動をできるようにする
  • 自分のオリジナルロボットで上2つをやる

これをやるためのシステムは
Gazebo <-> PR2モデル <-> Controller
という接続になるはずです。
まずロボットを動かしてみて(なるべく低レベルのインタフェースでロボットを動かします。)、Gazeboの基本をおさえて、
PR2のシミュレータモデルの代わりにオリジナルロボットを入れていきます。
モデルはurdfというフォーマットを使っているみたいですね。


ちょっと気になるページを抜き出して置きます。


http://www.ros.org/wiki/pr2_simulator/Tutorials
http://www.ros.org/wiki/simulator_gazebo/Tutorials
http://www.ros.org/wiki/pr2_simulator/Tutorials/WorkingWithGazeboOverRos
http://www.ros.org/wiki/pr2_controller_manager
http://www.ros.org/wiki/pr2_mechanism_controllers/Pr2BaseController
http://www.ros.org/wiki/move_arm/Tutorials/
http://www.ros.org/wiki/move_base
http://www.ros.org/wiki/pr2_gripper_action
http://www.ros.org/wiki/pr2_mechanism
http://www.ros.org/wiki/urdf
http://www.ros.org/wiki/urdf/Tutorials/Create%20your%20own%20urdf%20file

次回はとりあえずアームかな。