2017年始早々 MoveIt! 新バージョンがリリース.NEXTAGE で使ってみる その1

MoveIt! の最新バージョンが公開になりました.昨2016年にメンテナンスチームがリニューアルして以降,MoveIt! の開発が活発になり,それまで溜まっていた問題報告やパッチ候補の処理が加速しました.今日現在利用可能な ROS の3つの異なるディストリビューションそれぞれに最新版がリリースされています (Indigo 0.7.6, Jade 0.8.3, Kinetic 0.9.3).今回のリリースではバグ修正に加え,ユーザの要望の高かった機能も幾つも追加されています.その内の一つの機能をカワダロボティクス社の NEXTAGE Open のシミュレータを用いて見てみます.

1.軌道実行時の際の速度・加速度をの動的に変更

MoveIt! の RViz プラグイン上に新たな機能が追加されました.スピンボックス上の値を 0-1 の間で変更することでロボットアームの軌道実行の速度,加速度を変更できます.
御自身のロボットの3次元モデルファイル (URDF 或いは SRDF) 内に指定している関節速度/加速度を0-1の間でスケールすることができるようになっています.

moveit-rviz_vel-accel_nxo_2

RViz 上でなくプログラマティックに変更したい場合は MotionPlanRequest トピックの値を変更することで runtime/プログラム実行中に変更できます.

次回に続く.


【2016年プレゼント企画】Opensourceに貢献しましょう!

皆様、2016年お世話になりました.また、特にロボティクス関連のオープソースへご協力頂いた皆様、ありがとうございました.
皆様のご貢献への感謝として、ささやかではありますが以下の写真にあるROS初級編資料やROS対応LiveUSBをプレゼントする企画を実施します.

2016年中に皆様自身が行った、

  • ROS JAPAN Users GroupのMLへの投稿やanswers.ros.orgへの質問/回答
  • roswikiへの情報追加・修正
  • githubでのソフトウェア公開

など、オープンソースへの貢献についてリンクを頂いた皆様に、何らかのプレゼントを送付させていただく予定です.是非ご応募下さい.また、質問等されていない方は、ぜひ今からでも間に合いますので、ML等へのご質問をしていただければと思います.

まだオープンソースに貢献できていないけれどどうしても今プレゼントがほしい方も、アンケートにお答えいただければ数がある限り対応いたします.是非アンケートに回答して応募してみてください!
プレゼントは要らないけれどアンケートに答えたい方も大歓迎です!

締め切りは2017年1月10日(火)です.
ご応募お待ちしております!
応募アンケートリンク

※応募多数の場合は抽選になります.ご容赦くださいませ.

弊社の情報発信はこのblogとFacebook、twitterアカウントがあります.
FBにいいね!やtwitter投稿のリツイートもお待ちしております!

2017年もオープンソースコミュニティを盛り上げて行きましょう!
IMG_5633


Opensource にしているおかげで Dynpick 力覚センサ の ROS ドライバの対応機種が増えました

弊社がメンテナンスに貢献している,ワコーテック社の力覚センサ Dynpick の ROS ドライバは,これまで販売終了機種でしか動作確認ができていませんでしたが,販売中の機種でも動作確認ができました.

...といっても弊社が動作確認を行ったのではなく,オープンソースコミュニティのユーザ (独・Fraunhofer IPA の方) がセンサを購入,動作させて報告を下さいました.

対応がとれた機種に関しては,同ドライバの wiki ページに掲載していきます.動作確認の報告は,Github ページで行って頂けると幸いです.



Dynpick (Image source)


トヨタ HSR ユーザ向けセミナを行いました

トヨタ自動車株式会社 (以降トヨタ) 様 の生活支援ロボット “HSR”のユーザ様向け技術者セミナを,全国4箇所にて開催しました.

TORK はこれまでにも2014年の第1回昨・2015年の第2回のハッカソン開催へのご支援を中心に HSR 開発に御協力をさせて頂いてきました.昨年までは HSR を所有するユーザが未だあまり居ない中での開催でしたが,HSR 開発者コミュニティが昨年発足し,HSR を所有する組織が拡大したのを受け,今回はそれら所有者で形成されるコミュニティのメンバー向けでした.

HSR の扱い方や ROS を用いたプログラミングといった技術的内容に加え今回は,トヨタ様の意向もあり,開発者コミュニティの積極的な利用に重きを置きました.
ユーザがネット上でグループを形成し議論する”コミュニティ”は,ROS をはじめ多くのソフトウェアのプロジェクトが汎く普及するにあたってその整備が欠かせないと言われています.HSR 用の開発コミュニティはトヨタ様が直接運営し,メンバ間での情報共有や議論に必要なツールが提供された本格的なものです.コミュニティをうまく利用することにより,御自身の開発を加速できると共に,開発者コミュニティ自体が成長し,それによって御自身の開発に更にメリットが還ってくる,という良い循環が生まれます.そうして一組織だけでなく,HSR 開発者コミュニティ全体で成果を共有し発展していくのが狙いです.

CIMG3657 CIMG3749 tokyo20_crop S2060008 IMG_20161108_112241 IMG_20161108_111225 DSC_0312 DSC_0302

本セミナ期間中は,プログラムを実行しても動かないだとか,実装の方法が分からないといった問題に当たったら,問題解決を自分だけで行うのではなく,コミュニティに質問し意見を伺いながら進めるよう提案しました.質問文を作成すること自体慣れないと時間が取られますし,技術者として他人に質問するのも,研究室ごとの質問に関する文化もあってか,勇気がいることでしょう.最初は中々質問が出ないこともありましたが,トヨタ様はじめ積極的な回答者の適切な回答のおかげもあり,質問するメリットを感じて頂けたかと思います.何より,セミナ実施後は実施前に比べ開発者コミュニティでの情報の流通量が大きく増えました.

またセミナ中,HSR に依存しない問題 (ROS 一般に言える問題等) についてはそれぞれのコミュニティを利用することをお伝えし,コミュニティ例として ROS 日本語ユーザグループ “ros-japan-users” を紹介し,セミナ中に何度か試しに投稿して頂きました.その効果なのかどうか分かりませんが,セミナ開始した2016年10月以降の同グループの投稿数が下図のように一気に増えました.もし本セミナの参加者様が質問することに抵抗が減ったのであったり,セミナ無関係の方でも投稿が増えたのを見て質問する心理的障壁が少しでも下がった結果であったりするなら幸いです.

graph_num-newPost_ros-japan-users_2016

最後に幾つか,各セミナ回の最後に行ったコーディングチャレンジの動画をご紹介して終わります.HSR・ロボットコミュニティの益々の発展に微力ながら貢献できていれば何よりです.







質問の仕方

メール、掲示板での質問の仕方のTipsです.初心者の方は何を質問しても、「それだけだと分からない.もっと情報をください」と言われることが多いかと思います.どのように質問したらいいか?一番の目安は「困っている人のトラブルを再現できるかどうか」です.以下に例を見てみましょう.

もし、他の人も使っている汎用のプログラムだったら、

  $ rviz
  と打ち込み、rvizを実行しました

または、

  $ roslaunch urdf_tutorial xacrodisplay.launch model:=`rospack find pr2_description`/robots/pr2.urdf.xacro
  と打ち込みました.

など、相手も同じ問題を再現する方法が質問に含まれているか確認しましょう.

もし、自分しか使っていないプログラムの場合は、そのプログラム一式を圧縮ファイルにして質問に添付するのが簡単です.圧縮ファイルの作り方は、catkinワークスペースで

  $ tar -cvzf my_package.tgz ./src

としましょう.これで生成されたmy_package.tgzを添付すればOKです.

また、添付ファイルを使えないようなメール、掲示板の場合は、ソースコード一式をGitHubにアップロードする方法もよく使われます.GitHubが初めての場合は、http://qiita.com/dev-neko/items/28ac253ea295ad6c2b73 などが参考になるでしょう.

もし、開発しているソースコードに秘密情報が入っておりアップロードすることが困難な場合は、秘密情報を抜いて一般的な問題として再定義し、そのプログラムを作ってアップロードするとと良いかと思います.また、私達のようなROS専門のコンサルタント業者にお問い合わせいただくことも可能です.

また、困っている人と同じ状況を再現するまでもなく、プログラムの出力ログを見ると原因がわかる場合も有ります.プログラムの出力ログを貼り付ける時は、自分でここは重要な箇所ではない等と判断せずに、プログラムの全ての出力を添付するのが重要です.

ROSプログラムのログの取得方法はいくつか有ります.
roslaunchを使ってプログラムを立ち上げた場合、以下のようにlogging to..というメッセージが紹介されます.

  $ roslaunch urdf_tutorial xacrodisplay.launch model:=`rospack find pr2_description`/robots/pr2.urdf.xacro
  ... logging to /home/tork-a/.ros/log/abfd7cb2-b476-11e6-907c-e4a7a00bd84e/roslaunch-ubuntu-14449.log

このとき、/home/tork-a/.ros/log/abfd7cb2-b476-11e6-907c-e4a7a00bd84e/ にあるファイルを全て提出すれば、質問された人も何が起こっているか理解することができます.
また、最新のログファイルは常に~/.los/log/latest/ から参照できるようになっています.
上記の様にtarコマンドで圧縮ファイルを生成してもよいですし、最近はテキストファイルのアップロード場所として gist.github.com もよく利用されます.
gist が初めての場合は http://tyoshikawa1106.hatenablog.com/entry/2013/04/10/000026 などが参考になるでしょう.

他には

  $ rviz 2&>1 > rviz.log

として標準出力とエラー出力の両方をリダイレクトしてファイルに書き出す方法もよく利用されます.この場合、全ての出力がファイルに書きだされ画面では見ることができないですね.teeコマンドを使うと入力を標準出力に書き出しながらファイルにも書き出します.

  $ unbuffer rviz 2&>1 | tee rviz.log

unbufferを付けないと、rvizの出力がバッファされてなかなか表示されません.unbufferがインストールされていない場合は、`sudo apt-get install expect-dev` として下さい.

roslaunchはデフォルトでは各ノードの出力を標準出力には表示しません.表示したい場合は、

  $ roslaunch --screen urdf_tutorial xacrodisplay.launch model:=`rospack find pr2_description`/robots/pr2.urdf.xacro

と、screenオプションをつけると良いでしょう.ログファイルを作るのは

  $ roslaunch --screen urdf_tutorial xacrodisplay.launch model:=`rospack find pr2_description`/robots/pr2.urdf.xacro 2>&1 urdf.log

または、

  $ unbuffer roslaunch --screen urdf_tutorial xacrodisplay.launch model:=`rospack find pr2_description`/robots/pr2.urdf.xacro 2>&1 | tee urdf.log

ですね.

大量の添付ファイルや情報を添付することに躊躇する方も多いかもしれませんが、それらの情報がなければ問題を解決できないので嫌がれることはありません.

質問する際には、相手が自分と同じ問題を再現できるか、あるいは再現しなくても状況が理解できるような十分なログを提供しているかをぜひ再確認して、質問には十分すぎる情報を添付してみましょう.