著者アーカイブ Kei Okada

著者:Kei Okada

How to Ask Question質問の仕方


メール,掲示板での質問の仕方の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

ですね.

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

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


Today, we’ll show some tips on how to ask question on mailing list or message board. If you are beginner and asked question, sometimes you’re required to provide more information. So most of cases, we believe people have trouble because they do know to know how to ask question. One criteria is “Do you provide enough information that others can RE-PRODUCE your problem”. Let’s see some examples.

If you’re using general program, which someone may using. Information such as

  I executed rviz program by
  $ rviz

Or,

  I typed as follows
  $ roslaunch urdf_tutorial xacrodisplay.launch model:=`rospack find pr2_description`/robots/pr2.urdf.xacro

enable others reproduce your situation.

If you’re using a program that no other people is using, you can create compressed files as running following command at catkin workspace and attach your question e-mails.

  $ tar -cvzf my_package.tgz ./src

If you’re asking to the mailing list or board which can not use attached file, a common way is to upload a entire source code to GitHub, if you are not familiar with GitHub, http://qiita.com/dev-neko/items/28ac253ea295ad6c2b73 may help.

If your code contains non-disclosed information and does not allow to upload on public place, you can re-define the problem without private information and upload that pgram. Or, you may ask for professional consultants as us.

Sometimes, the problem can be solved by looking at output log of the program, without re-produce the situation. In this case, it is very important not to edit your self by judging this part is important and this part is not, but to put entire log information.

To get output log of ROS program has several ways.

If you started your programs with roslaunch, you can find `logging to..` message as follows

  $ 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

Then, if you provide all files under /home/tork-a/.ros/log/abfd7cb2-b476-11e6-907c-e4a7a00bd84e/ directory, people who questions also understand what exactly going one. You may find latest logfile from ~/.los/log/latest/
You may use tar command as we described earlier or gist.github.com is widely used recent days as a public textfile upload service.
If you haven’t used gist, you can refer http://tyoshikawa1106.hatenablog.com/entry/2013/04/10/000026

Other way is to run command like

  $ rviz 2&>1 > rviz.log

to output both standard output and error to files. In this command all information is redirected to the file and no message appeared to the file. tee command will split input information into both standard output and file

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

without unbuffer command, rviz output is buffered and there is delay in the message. If you do not have unbuffer command, try`sudo apt-get install expect-dev`.

sometimes roslaunch do not outputs standard output information of each node, to enable this,use –screen option as follows.

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

To create log file, you can use

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

or

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

Sometimes people hesitate to attach large text files or information, but without that information, we can not solve your problem. So everyone need huge information.

Whenever you ask someting, please keep in your mind that “Does other people can reproduce your program?” “Did you provide enough information that equivalent to reproduce your program” and attach enough information with your question.

著者:Kei Okada

MoveItの起動プランをロボットに送る前に確認する方法 Visualize MoveIt! planned trajectory before sending to a robot


今回もまたMoveIt関連のお話です(MoveIt関連の以前の投稿は([1][2],[3]).

実機につなげて実験している方から,moveit_commanderを利用していて計画した軌道を,ロボットに送る前にrvizで確認したい,という要望を時々尋ねられることがあります.実はこれ,ものすごく簡単にできるんです.

http://wiki.ros.org/rtmros_nextage/Tutorials/Programming_Hiro_NEXTAGE_OPEN_MOVEITで紹介しているnextage_moveit_sample.pyのプログラムで,

rarm.go()

の代わりに

import moveit_msgs.msg
plan = rarm.plan()
print("visualize plan")
display_trajectory = moveit_msgs.msg.DisplayTrajectory()

display_trajectory.trajectory_start = robot.get_current_state()
display_trajectory.trajectory.append(plan)
display_trajectory_publisher = rospy.Publisher(
    '/move_group/display_planned_path',
   moveit_msgs.msg.DisplayTrajectory, queue_size=10)
   display_trajectory_publisher.publish(display_trajectory)
raw_input("wait for display...")

として,rvizDisplayタブから

movie-add-trajectory

のようにmoveit_ros_visualization->Trajectory を追加し,
Loop AnimationShow Trailにチェックすると以下のようにアニメーション表示することができます.

moveit-show-trail

これで,安心して

rarm.execute(plan)

を実行できますね!


Today, we’ll introduce another tips for using MoveIt! (Out previous blog about MoveIt can be found at [1][2],[3]).

We have been asked several times about a way to visualize a planned trajectory path using moveit_commander before sending to a real robot, specially those who using the system while connecting to the real robot.
And, of course, MoveIt! can do this very easily!

Looking into the sample program nextage_moveit_sample.py at
http://wiki.ros.org/rtmros_nextage/Tutorials/Programming_Hiro_NEXTAGE_OPEN_MOVEIT wiki page. First replace

rarm.go()

with

import moveit_msgs.msg
plan = rarm.plan()
print("visualize plan")
display_trajectory = moveit_msgs.msg.DisplayTrajectory()

display_trajectory.trajectory_start = robot.get_current_state()
display_trajectory.trajectory.append(plan)
display_trajectory_publisher = rospy.Publisher(
    '/move_group/display_planned_path',
    moveit_msgs.msg.DisplayTrajectory, queue_size=10)
    display_trajectory_publisher.publish(display_trajectory)
raw_input("wait for display...")

The,
Add moveit_ros_visualization->Trajectory in the Display tab in rviz as

movie-add-trajectory

and add check to the Loop Animation and Show Trail displays animation as follows.

moveit-show-trail

Now, you can run

rarm.execute(plan)

command without any worries.

著者:Kei Okada

ROS Workshop at Municipality相模原ロボット制御用オープンソース講習会を開催しました

We held ROS Workshop at Sagamihara ROBOT SUPPORT CENTER (SIC) and Okada-Lab at Tamagawa University on 16th, 30th Jan, and 6th Feb.

SIC is an industrial training facility in the city of Sagamihara in Kanagawa prefecture, where global and local businesses are located in electronics and heavy industry. The center aims to assist the local economy by providing training and support for the robotics technologies.

We, TORK, have been holding technical workshop for opensource robotics for several dozen times at different levels (this, this, this, and this to name a few). This time we worked with SIC to give a series of dedicated workshop for the engineers and managers from the local tech companies.

The contents consists of following three parts. We also would like to thank to students from Okada-Lab@Tamagawa University for their assistance.

  • 1. ROS Workshop for beginners.
    • Learning basics of ROS system through the hands-on workshop.
      • ROS Setup
      • Recognition human hand with vision sensor(LeapMotion)
      • Recognition based motor control
  • 2. ROS Workshop for intermediates
    • Learning how to control original robot arm. This tutorial uses original manipulator using Dynamixel servo motors. Learn how to create URDF model and MoveIt Setup.
      • Robot arm modeling and visualization
      • Connecting real robot and robot on rviz
      • Control simulated robot on rviz using MoveIt!
      • Control real robot using MoveIt!
      • Recognizing AR marker and transformations
      • Wringing vision based robot motion control program
  • 3. ROS + Nextage/HIRO Dual-arm robot
    • Learning ROS and OpenRTM using HIRO robots, including how to plan motions using MoveIt!, using Kinect Depth sensor for realtime obstacle avoidance, grasping object using hand-eye cameras.

IMG_20160206_100355IMG_20160206_100714IMG_20160206_154010IMG_20160130_154328IMG_20160206_154043IMG_20160130_144350

1月16日,30日,2月6日と,三回にわたって相模原ロボット導入支援センター様および玉川大学岡田研究室にてロボット制御用オープンソース講習会を開催しました.

内容は以下の三回構成.地域の経営者,技術者の皆さんにオープンソースのロボット制御方法を学んでいただきました.玉川大学の岡田研究室の学生の皆さんに運営サポートで参加していただき大変助かりました.ご参加いただいた皆様,運営の皆様,玉川大学岡田先生と学生の皆さん,お疲れ様でした.ありがとうございました!

  • 第一回( ROSワークショップ初級編)
    • ロボットの基本ソフトである ROS の概要を基礎から紹介する.ワークショップを通して手を動かしROSの概要を知る.ROS を使ったプロジェクトを始めようと考えている初学者に適している.
      • ROS 開発環境設定
      • 認識センサ(LeapMotion)を用いた手の検出プログラム
      • 認識に基づくサーボモータ制御
  • 第二回(ROSワークショップ中級編)
    • オリジナルのロボットアームを作成して動かす場合に必要な知識の獲得を目的とする.具体的には,Dynamixel サーボモータを使用した4軸ロボット「StackIt!」により,マーカのついたパックの pick&place を通じてロボットモデル(URDF)の作成方法や MoveIt! の設定方法を学ぶ.
      • ロボットアームのモデル作成と表示
      • 実物のロボットとシミュレータ(RViz)上のロボットの接続
      • MoveIt! を使ってシミュレータ(Rviz)上のロボットを動かす
      • MoveIt! を使って本物のロボットを動かす
      • カメラによる AR マーカの認識と座標変換
      • ロボットの動作プログラムの作成
  • 第三回(ROS+HIROセミナー特別編)
    • ロボット制御用のオープンソースソフトウェア ROS と OpenRTM を用いたロボットの動作例として双腕ロボット.動作計画ツール MoveIt!,体外に設置した点群カメラを用いた障害物を考慮した動作生成や,手先カメラで認識したマーカを掴む等,既存ユーザから要望の高い認識を用いたアプリケーション例を体験する.

IMG_20160206_100355IMG_20160206_100714IMG_20160206_154010IMG_20160130_154328IMG_20160206_154043IMG_20160130_144350

著者:Kei Okada

NEXTAGE Open in Singapore[ユーザ事例] NEXTAGE Open @ シンガポール

NEXTAGE Open (Hironx) を利用されているユーザ様事例を紹介します.
ROS をサポートしている NEXTAGE Open (カワダロボティクス社) は海外ユーザにも好評です.最近の大学ランキングでは京大,東大よりも上位で評価されている Nanyang Technological University (NTU) もその一つ.
NEXTAGE Open を使ってティーチングシステムの研究をされています.


TORK は NEXTAGE Open のオープンソース・ソフトウェアに関するサービスを行っております.


Let’s look at another usecase of NEXTAGE Open (Hironx), this time from Singapore.

ROS-capable dual-arm robot NEXTAGE Open (Kawada Robotics) has got a momentum over the world and south-east Asia isn’t an exception. At Nanyang Technological University (NTU), one of the most prominent research institutes, researchers are working on teaching system.


TORK has been providing software solution for NEXTAGE Open.

著者:Kei Okada

[ユーザ事例] NEXTAGE Open Xtion センサヘッドNEXTAGE Open Xtion sensor head


NEXTAGE Open (Hironx) を利用されているユーザ様事例を紹介します.
玉川大学岡田浩之研究室様のロボットは,頭部のカメラを Asus 社の Xtion PRO LIVE (RGB-Dセンサ) に換装しポイントクラウド処理を実現されています.このための launch ファイルも公開済み.カメラを覆う頭部のカバーは NEXTAGE Open / Hironx の Xtion ユーザ向けに私達 TORK が製作・販売しています.
NEXTAGE Open で実世界認識処理に興味をお持ちの方は是非お試し下さい.


Another usecase of NEXTAGE Open (Hironx) is up!
Hironx at Hiroyuki Okada’s lab at Tamagawa University in Japan exchanged her/his head with the custom cover that is tailor-made for Asus’ Xtion PRO LIVE (RGB-D sensor) for point cloud application. ROS launch file configured for Hironx robot is opensourced as well.
Enjoy the real world perception application with NEXTAGE Open / Hironx, and if you’re interested in this custom head mount where Xtion camera nicely resides in, please contact us.

2015-12-05 14.04.54 d4b1f154-9b5b-11e5-9cd1-94e9b30672cd


(頭部の中に組み込まれているのが RGB-D センサ,その上に付いているのはマイクです.マイクは岡田研究室の特別仕様品)


# RGB-D sensor is embedded inside of the head-mount and a custom microphone sits on its top.

著者:Kei Okada

Pepper Robot at Beaujolais Nouveau PartyKOTO-BA交流会(ボジョレーの会)でPepperロボットを紹介しました


Following mid November’s winery tradition is not just a human’s thing – Robots do too!

At “Shared Office KOTO-BA” where our headquater is located, Beaujolais Nouveau Party has been annually held, and this year we made an introductory appearance together with Softbank’s Pepper Robot.

Pepper can be operated via ROS, same as NEXTAGE Open, Baxter and numerous other robots.

Atelier Aldebaran Akihabara kindly offered the robot, which is located in walking distance from our office. Many thanks to Mr Kawada from SoftBank Inc.

The picture below is how the robot saw the party (taken from a visualizer software RViz. Apparently the robot’s sight was much distorted — that’s what a party is!

Screenshot from 2015-11-20 19_46_54

 


私達のオフィスがある湯島のシェアオフィスKOTO-BAでボジョレーヌーボ交流会があり,TORKとPepperロボットの紹介を行いました.

実はPepperもNextageOpenやBaxterと同じくROSで動くロボットなのです.

ロボットはご近所さんであるアトリエAldebaranからキャリーで直接運んできていただきました.
ソフトバンク ロボティクス株式会社 河田様,ご協力ありがとうございました!

以下はロボットから見た交流会の様子.ロボットもちゃんと楽しめたでしょうか.

Screenshot from 2015-11-20 19_46_54

 

著者:Kei Okada

NEXTAGE OPEN ソフトウェア向けサービスの進展

2015年8月8日,おかげさまで TORK は設立2年を迎えることができました.これからも,お客様のご要望に応え,産業・学術界でのオープンソースロボティクスの進展に寄与できるよう,より一層努力して参ります.

設立以来実施してきた事業の一つである NEXTAGE OPEN ロボットの ROS 版オープンソースソフトウェアのインストールサービスも,順調にサービスをご提供してきております.製造元である川田工業様・カワダロボティクス様をはじめ,NEXTAGE OEPN / Hironx のオープンソース環境の維持と発展にご協力頂いている方々に感謝します.

また,ソフトウェア・サポートサービスを購入頂いたお客様方からは,開始した2014年1月以降,合計で74件のサポートリクエストを頂きました.当社はご質問にお応えするほか,時にはオープンソース・コミュニティと協力してソフトウェアの不具合修復/機能追加を行うなどして,お客様の開発活動をご支援してまいりました.

    • NEXTAGE OPEN ユーザ様事例:

 

    • Tecnalia 社 (スペイン) は,航空機製造大手の Airbus 社向けの工場自動化に取り組んでいます.多様化する製造内容への迅速な対応,人が行う作業との協調による効率化などの要件に対応する策としてオープンソースである ROS・hrpsys 搭載の NEXTAGE OPEN を選択されており,その成果は学術誌[1]で報告されています.

[1] Herrero, H, et.al, “State Machine Based Architecture to Increase Flexibility of Dual-Arm Robot Programming”, Bioinspired Computation in Artificial Systems, Lecture Notes in Computer Science Volume 9108, 2015, pp 98-106

ROS が使える双腕協働ロボット NEXTAGE OPEN の今後も引き続きよろしくお願いいたします.


(写真は第四回 ROS 勉強会より.実機の要らないシミュレーションを提供していることもあり,勉強会参加者等こういったロボットプログラミング,ROS 等に興味をお持ちの方にも気軽に使って頂けるようになっています)

著者:Kei Okada

PS4Eye Stereo カメラの ROS パッケージのリリースをお手伝いしました

PS4Eye Stereo カメラの ROS パッケージのリリースをお手伝いしました! といっても私達はほとんど何もしていません...

皆さんの力を合わせてより使いやすい環境を準備しロボット技術を前進させていきましょう!

TORK (東京オープンソースロボティクス協会)

著者:Kei Okada

ROS セミナー基礎編・産業用双腕 Baxter



Baxterセミナーの名称をROS セミナー基礎編・産業用双腕 Baxterとして,本日も日本バイナリ株式会社様のオフィスをお借りしてをセミナーを開催しました.
最近アップデートが盛んなBaxter,今回が最後のHydro環境での講習会かもしれません.
学生の方もオープンソース協力特別無料コースでご参加いただけます.

ROSセミナー基礎・産業双腕Baxter

ROSセミナー基礎・産業双腕Baxter

著者:Kei Okada

Lunar Rover ROS/Gazebo SimulationHAKUTO ロボットシミュレータを開発しました


We worked with HAKUTO project, a Google Lunar XPRIZE contender from Japan, and helped their robots to thrust on the moon’s surface, virtually.

From its wiki page, you can try using ROS/Gazebo simulator of their robot.

hakuto-moon

Video


月面着陸するミッションに挑戦する Google XPrize で日本から唯一参加する HAKUTO のロボットの ROS/Gazebo シミュレータを開発しました.
是非 wiki ページ からダウンロードしてみてください.

hakuto-moon

動画

著者:Kei Okada

nextage_ros_bridge 0.6.1リリース!

 

 

nextage_ros_bridge 0.6.1 をリリースしました!
これまでのいくつかの不具合が解消されています.

NEXTAGE OPENサポートに入られていてアップデートに興味の有る方は是非ご連絡ください.

著者:Kei Okada

TORK mentors for GSoC15GSoC15 のメンターを引き受けます


TORK will be mentoring a student for Google Summer of Code 2015 organized by OSRF (Opensource Robotics Foundation), once a student is assigned to our project.
Please see project description at OSRF web site for more information. Discussion about our project happens here.


OSRF (Opensource Robotics Foundation) が実施する Google Summer of Code 2015 のメンターを引き受けることになりました.
興味の有る方はプロジェクト説明をご覧いただくか,お気軽にお声がけください.プロジェクトに関する議論はこちらで行っています.

gsoc15-gazebo-isaac

著者:Kei Okada

NEXTAGE OPEN チュートリアル信州大学山崎研


TORK


柔軟物操作,データ指向ロボティクスの研究で活躍されている信州大学山崎研究室でNEXTAGE OPENのミニチュートリアルを開きました.学生さんの熱心な質問攻撃にタジタジ.今後もぜひNEXTAGE OPENを活用して素晴らしい研究成果を挙げてくださることを期待します.

Exif_JPEG_PICTURE

NEXTAGE OPEN

信州大学自律知能システム研究室