News

著者:Yumiko Suzuki

第7回IoT/M2M展にてROS化したIMU ADIS16470が展示されます!

先日,ブログでアナログ・デバイセズ株式会社のIMU用パッケージadi_driverについてご紹介しました.

アナログ・デバイセズのIMU用パッケージ”adi_driver”をリリースしました!

TORKがROS化をお手伝いさせていただきました ”IMU ADIS16470モジュール” が 第7回 IoT/M2M展 にて展示されます!
http://www.m2m-expo.jp/Home_Haru/

期間:5月9日(水)から11日(金)
会場:東京ビッグサイト
ブース:西7-48(西ホール1階A会場)

IMUを搭載した自動走行ロボットの静展示とADIS16470のROSのデモが予定されています.
購入相談もできる展示会となっているそうです.
是非,現地会場にて実物とデモをご体験ください!

小型で高性能なIMUのブレイクアウトボードです

著者:Yumiko Suzuki

2018年5月のROSワークショップ日程

以下日程でROSワークショップを行います.
名古屋でも開催いたします!

5月17日(木)13:30~ ROSワークショップ初級編
5月22日(火)13:30~ (名古屋) ROSワークショップ初級編
場所は都内・有楽町の会議室または名古屋市内での実施を予定しています.

プライベートでのお申込みが大変増えております.
人数が揃うようでしたら,プライベートでのワークショップ,出張のワークショップも開催可能です.

中級編については公開されている日程以外はご要望があり次第,日程を調整にて開催いたします.
メイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページまたは中級・自律移動編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Ryosuke Tajima

Let’s Bloom! – ROSパッケージをリリースしよう

パッケージビルド,してますか?

ROSはオープンソースのプロジェクトですが,実はソースコードから使っている人はほとんどおらず,皆さんapt install してバイナパッケージをインストールしているのではと思います.先日のROSについてのアンケートでも,パッケージをコードからビルドしているという人の割合は12%ぐらいでした.

このバイナリパッケージ,誰でも自分で作れて配布できることを知っていましたか?

パッケージはどこから来るの?

パッケージの作成と配布のしくみについては,以下のROS Wikiに説明があります.

この公開用ビルドファーム(Jenkinsサーバ)でビルドされます.

build.ros.orgの画面

眺めていると,たくさんのパッケージが次々とビルドされていきます.ほとんどのパッケージはビルド時にテストも実行されるようになっていて,パッケージが(ある程度)正しく動くことを確認しています.新しくパッケージをリリースしたり,バージョンアップした時にはもちろん,依存しているパッケージが更新された時にもビルドしなおされます.ROSパッケージは他のパッケージに依存していることが多いので,他のパッケージが変更された時にもビルドが失敗することがあります.ビルドに失敗した場合にはパッケージメンテナにメールで通知され,解決にあたります.ROSのシステムは非常に大きいので,整合性を取るにはこのような仕組みが不可欠なのです.

ビルドされたパッケージはしばらくShadowレポジトリに置かれ,動作確認などに使われます.

1か月に1回ぐらい,Syncと呼ばれる操作でShadowレポジトリから公開用レポジトリにコピーされ,一般ユーザがaptで取得できるようになります.ROS DiscourseにSyncのお報せが定期的に投稿されるので,見たことがあるかも知れませんね.

リリースされたROSパッケージの状態は,このページを見るのが便利です.パッケージ名や状態で検索することが可能です.

bloom – リリースのためのツール

この仕組みに自分のパッケージを乗せ,バイナリパッケージをみんなに使ってもらうにはどうすれば良いのでしょうか? bloomというツールを使って,実は意外と簡単にできます.bloomの使い方は,ROS Wikiをご覧ください,

今回,bloomのROS Wikiのうち,必要最小限と思われるところを日本語訳してみました.よく読んで,ぜひパッケージのリリースやメンテナンスに挑戦してみてください.現在はとても少ないですが,日本からのROSパッケージの公開やROSメンテナーが増えて欲しいと願っています.

よく分からないことがある場合には,検索したり,ROS Answersで質問しましょう.一つ注意として,ROS Discourse本体は議論のための場なので,質問を投稿してはいけません.ただし,ROS DiscourseのJapan User Groupは例外的に何を投稿してもよいことになっており,そこで質問しても大丈夫です.日本語でOKです.

また,TORKではROSパッケージのリリースやメンテナンスの代行もお請けしています. ご興味のある方は,info [at] opensource-robotics.tokyo.jpまでご相談ください.

著者:Ryosuke Tajima

対決!低価格LIDAR(4) 屋内実験編

データ比較(屋内)

自宅のリビングルームにて計測を行った結果の動画を以下に示します.ロボットでの使用を考えて,センシングの高さは15㎝としました.センサのまわりを一周歩きまわっています.

RPLIDAR A2 (10Hz)

部屋の形がきれいに写っていて,周りを歩く足もちゃんと半円状に見えています.

Sweep (10Hz)

部屋の形はなんとなく分かります.足も写っていますが,形状までは分からないです.

Sweep (3Hz)

RPLIDAR A2とほぼ同じ解像度の点群になり,部屋の形が分かります.足の形状はぼんやりしていて,更新が遅いので分かりにくいです.

屋内まとめ

屋内で使うのであれば,角度分解能と距離の計測精度の点で,RPLIDAR A2が良さそうですね.これまでの使用でも,通常のリビングやオフィスのような屋内のSLAMで,RPLIDAR A2は全く問題なく機能しました.

次回は,屋外での計測結果を見てみます.

著者:Yumiko Suzuki

ROSワークショップ初級編を開催しました

今回も有楽町にてROSワークショップ初級編を開催しました.
ご参加いただいた皆様,お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内でOSSを運用していく際の疑問点等にも随時お答えしています.

5月のワークショップ日程を公開中です!

出張ワークショップ,プライベートワークショップ,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Ryosuke Tajima

対決!低価格LIDAR(3) ROS対応

ROS対応

RPLIDAR A2とSweepは,それぞれSDKが公開されているので自作のソフトウェアからデータを使うことが可能です.しかしやはりロボットに使うのであれば,ROSを使わない手はないでしょう.ここではROSの対応状況を見てみます.

RPLIDAR, Sweepともに,ROSドライバのコードがすでに作成されています.

Sweepはまだリリースはされておらず,ソースからのビルドが必要です.

RPLIDARはすでにリリースされているので,aptでインストールすることが可能です.

$ sudo apt install ros-kinetic-rplidar-ros

センサの起動

どちらも付属のlaunchファイルで簡単にデータを取得してrvizで見ることができます.

RPLIDAR A2:

$ roslaunch rplidar_ros view_rplidar.launch

Sweep:

$ roslaunch sweep_ros view_sweep_pc2.launch

メッセージの違い

rolidar_rosは,sensor_msgs/LaserScanメッセージを出力します.

一方sweep_rosは,sensor_msgs/PointCloud2を出力します.これは,前述したように,Sweepの計測が回転と同期していないためだと思われます.ただし,scan_tools/pointcloud_to_laserscanを使うことで,PointCloud2メッセージをLaserScanメッセージに変換することができます.

Rvizで表示

同じ場所でデータを可視化してみました.

RPLIDAR A2(10Hz)

RPLIDAR A2はデフォルトの設定で部屋の形がよく分かります.ロボットの地図生成や自律移動に充分使えることも確認しています.

一方のSweepですが,デフォルトの状態で同じ10Hzで回転させた時のデータがこちらです.

Sweep(10Hz, sample_rate=500Hz)

うーん,やはり同じ速度だとSweepの粗さが目立ちますが,しかし,なんだかさすがに解像度が低すぎないかな?

と思ってチェックしたら,sweep_rosノードのデフォルトのサンプルレートが500Hzで最大仕様(1kHz)の半分になっていることに気づきました.うーんこれはデフォルトで最大性能が出るようにしておいてもらいたいところですが,サンプルレートのパラメータsample_rateを1000に設定して,もう一度データをとってみました.

Sweep (10Hz, sample_rate=1kHz)

だいぶ詳細度が上がりました.しかし,RPLIDAR A2に比べると,部屋の形状がかなり分かりにくいですね.

そのまま,スキャン速度を3Hzに落としてみます.

Sweep (3Hz, sample_rate=1kHz)

このくらいなら部屋の形が分かりますね.回転速度が下がった分,RPLIDAR A2よりも更新周期が3倍程度長くなっています.

次は,動画でデータを比べてみましょう.

著者:Ryosuke Tajima

9/14 ROSCon Japan 開催決定!

ROSの開発者会議 ROSConが,今年は日本でも開催されることになりました!

スペイン・マドリッドで開かれるROSCon2018の前前週の9月14日(金)に,東京・秋葉原での開催となります.ROSの創始者のBrian Gerkey氏も来日して基調講演を行うとのことです.

一般の講演も4月中旬から申し込みが開始されます.この機会にご自身のROSプロジェクトなどを発表してみてはいかがでしょうか.

とても楽しみですね! TORKも一緒になって盛り上げて行きたいと思います.

著者:Yumiko Suzuki

2018年4月のROSワークショップ日程

以下日程でROSワークショップを行います.
名古屋でも開催いたします!

4月05日(木)13:30~ ROSワークショップ初級編
4月10日(火)13:30~ (名古屋) ROSワークショップ初級編
4月17日(火)13:30~ ROSワークショップ初級編
4月23日(月)13:30~ (名古屋) ROSワークショップ初級編
4月26日(木)13:30~ ROSワークショップ初級編
場所は都内・有楽町の会議室または名古屋市内での実施を予定しています.

中級編については公開されている日程以外はご要望があり次第,日程を調整にて開催いたします.
メイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページまたは中級・自律移動編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Ryosuke Tajima

対決!低価格LIDAR(2) 仕様編

製品仕様

今回は,双方の仕様を見ながら比較してみましょう.

大事な注意です!

  • 実際に使う場合には,必ずご自分で仕様を確認してください!
  • この記事に誤りがあったせいであなたのプロジェクトが上手くいかなくても,TORKは責任はとれません!

原理

産業用LIDARはToF(Time of Flight)方式による距離の計測が多く使われています.これは,レーザ光が対象物に反射してセンサに返ってくるまでの時間を計測して,距離を計算する方式です.SweepはToF方式による距離計測を行っています.対して,RPLIDAR A2はToFではなく,三角測量の原理を使っています.これは,発光点,反射点,受光点が三角形を構成するようにしてあって,受光点の変位をセンサで測定することで,反射点までの距離を測る方式(分かりますよね?)です.

一般的には三角測量の方が簡単そうですが,反射点までの距離が大きくなると,たとえ反射光を計測できたとしても距離の分解能は落ちていきます.一方ToFは,反射点までの距離が大きくなっても(反射光を計測出来る限り)分解能が落ちないので,最大計測距離を大きくできます.

もうひとつ大きな違いがあります.RPLIDAR A2は,サンプリングが角度に同期して行われています.つまり,計測が行われるレーザの角度は,回転ごとに(微妙なズレはあるにしても)同じです.一方Sweepは,角度が0の位置にスキャン開始は同期しているものの,各距離計測は角度には同期していません.Sweepの仕様はセンサから得られるデータが角度と距離のセットになっています.Sweepが発光するレーザは単発のパルスではなくパターンをもたせていて,そのためにサンプルレートが一定ではない(デフォルトで500~600Hzと幅がある)ので,このようになっていると思われます.

URGやSICKといったハイエンドの2次元LIDARは,角度に同期した距離が取得できる方式ですので,Sweepの方式はちょっと使いにくい気がします.

角度分解能,計測周期,サンプルレート

LIDARで重要な性能として,角度分解能と計測周期があります.角度分解能は計測点の角度の細かさで,分解能が低いと対象物や環境の計測点が少なすぎて,計測したものの形がよく分からなってしまいます.計測周期は1スキャン(1回転)にかかる時間で,計測周期が大きいと,動くものを計測したり,ロボット自身が動いたりしたときに,正確な計測が難しくなります.

2つのセンサはどちらも,光源と計測部分が一体化した部分を回転させて,周囲の計測を行っています.RPLIDAR A2は5Hzから15Hzまで回転速度が可変なのですが,回転速度によらず計測点の数は同じ(400点)です.

Sweepは,1Hzから10Hzまで回転速度が可変ですが,サンプルレートが最大1000サンプル/秒(正確には1000~1025と幅がある)ので,回転速度が早いほど1回転あたりの計測点の点数は少なくなっていきます.

  • RPLIDAR A2 : 400サンプル/回転
  • Sweep : 1000サンプル/秒

もし両方とも,10Hzで回転している場合には,

  • RPLIDAR a2 : 400サンプル/回転
  • Sweep : 100サンプル/回転

となるので,RPLIDAR A2のほうが角度分解能が4倍高いことになります.Sweepで同じ分解能を得たい場合には,周期を1/4(2.5Hz)で回転させる必要があります.

最大計測距離と距離分解能

最大計測距離も重要な性能です.もちろん遠くまで計測できるに越したことはないですが,たとえば経験上,オフィスのナビゲーションであれば10mもあれば充分ですし,自動運転のような用途であれば100mでも足りないでしょう.

RPLIDAR A2は,ややこしいことに,機種によって計測距離が違います.購入の際には,型番に注意が必要です.今回使ったのは計測距離が最大8mのRPLIDAR A2M8です.

  • RPLIDAR A2M4 最大計測距離 6m
  • RPLIDAR A2M8 最大計測距離 8 m
  • RPLIDAR A2M6 最大計測距離16 m

一方Sweepは,最大計測距離が40mとなっています.

ちなみに,近い側の限界である最小計測距離は,両方とも同じくらいです.

  • RPLIDAR A2M8 最小計測距離 0.15 m
  • Sweep 最小計測距離 0.15 m

距離分解能はどうでしょうか.RPLIDAR A2M8の距離分解能は,

  • 1.5m以下の場合 0.5mm以下
  • それ以上の距離では距離の1%以下

とあり,近い方が分解能が高くなっています.近いと物体の形状がちゃんととれる感じです.かわりに,距離が遠くなると,分解能,精度ともに落ちていくことが予想できます(仕様書には誤差についてはデータがありませんでした).

一方,Sweepの方は,計測距離にかかわらず,

  • Sweep 距離分解能 1cm

となっています.Sweepの仕様書には距離の計測誤差のグラフも掲載されていますが,計測距離が長くなっても,誤差が増えていないことが分かります.ToF方式の特徴と言えます.

Sweepの計測誤差 (Sweepマニュアルより抜粋)

 

外形その他

どちらもかなり小型ですが,上部の部品が回転するので,触ったりしないようにする設置が必要です.

  • RPLIDARa2 : 直径 70mm
  • Sweep: 直径 65 mm

Sweepの方は,ケーブルコネクタが横と下の2つの向きになっていて,配線がしやすい感じです.RPLIDARはケーブルが直出しなのでケーブル長を短くするのがちょとやりにくそうです.

Sweepの裏側のコネクタ

どちらも,USBで接続された場合には,USBバスパワーで動作します.また,マイコンなどのUARTで通信することができますが,その場合には別途電源が必要です.

まとめ

外形が同じように見える2つのセンサですが,実は設計思想が少し違うことが分かります.RPLIDAR A2は近距離,屋内用で,Sweepは遠距離,屋外用の仕様であると言えます.ちょっとSweepの角度分解能が低いのが気になります.

次は,ROSで使う際の比較です.

著者:Ryosuke Tajima

アナログ・デバイセズのIMU用パッケージ”adi_driver”をリリースしました!

新しいROSパッケージ,adi_driverをリリースしました!

これは,ADI(Analog Devices Inc.)のセンサのためのドライバパッケージです.現在は,ADIS16470と,ADXL345(実験的)をサポートしています.

小型で高性能なIMUのブレイクアウトボードです

ADIS16470は3軸のジャイロセンサと3軸の加速度センサを組み込んだIMUの新製品です.特徴は,非常に広い計測レンジを持っている点です.角速度のレンジは±2000 [deg/sec],加速度のレンジは±40 [g] です.これは,車輪移動ロボットやドローン,マニュピレータといった様々なロボットに充分すぎるほどの性能です.
センサ単体の価格は199ドル,ブレークアウトボードの価格は299ドルです.詳しくは,製品のページをご覧ください.

センサのブレイクアウトボードと,USB-SPI変換器(USB-ISS)を用意すれば,このパッケージで簡単に3次元の姿勢情報を利用することができます.詳しいやり方は,githubのドキュメントをご覧ください.もし問題にぶつかった場合は,Issuesで報告をお願いします.

どうぞ,ご利用ください!

著者:Ryosuke Tajima

対決!低価格LIDAR(1) RPLIDAR A2 vs Sweep

ロボットのキーデバイス-LIDAR

自律移動ロボットのキーデバイスといえば,LIDAR(Light Detection and Ranging)です.これは,レーザ光線(通常,赤外線レーザ)を周囲に発光して物体に当たった反射光を検出して,対象物までの距離を測るセンサです.

よく使われるのは,一本のレーザ光を回転させて,平面上のセンサからの距離を測る2次元型の製品です.たとえば,SICK社北陽電機の製品です.

SICK社のLIDAR製品

URGシリーズ (北陽電機)

もともと移動ロボットの研究では,環境を計測して地図を作ったり,自律移動をするためにLIDARが使われてきました.また,2007年のDARPA Urban Challengeでは,Velodyne社が画期的な3次元LIDARソリューションを提供し,自動運転車の一つのブレイクスルーを引き起こしました.

LIDARの破壊的イノベーション?

これらのLIDAR製品はもともと産業用で,たとえば工場の生産装置や安全装置に使われています.そのため,頑丈さや防水などの機能を備え,反面かなり高価なものになります.研究開発の業務ならともかく,個人で簡単に買えるようなものではありません.

しかし最近,低価格なLIDARが一般販売されるようになってきています.これは,産業用には性能や信頼性は足りないけれど,ホビーや研究用には充分かつ簡易な機能を提供しています.個人的見解ですが,もしかしたら「破壊的イノベーション」的な製品で,今後,思ってもみない用途に使われていくのではないかと思っています.

今回は,そのうちの2つ,

RPLIDAR A2 (Slamtec社)

Sweep (Scanse社)

を比較しながら紹介します.

 

著者:Ryosuke Tajima

信州大学 山崎研究室でHiroに会いました!

山崎研究室の皆さん

2月某日,信州大学山崎研究室を訪問させていただきました.TORKの最近の活動や,ROSの最新情報などを紹介して意見交換しました.皆さん熱心に聞きながら,質問もたくさん出ました.

なかなかレアな台車付きHiro

山崎研究室に2台あるHiroも見せていただき,最近追加されたMoveIt!の機能の確認を一緒に行ったり,使用している際に出てきた疑問についても,出来る限りお答えしました.

山崎研究室では,タオルやシャツのように布でできた柔軟物を器用に扱うための研究を行っています.どんどん器用になっていくロボットが楽しみですね.

山崎先生と研究室の学生の皆さん,ありがとうございました!

著者:Ryosuke Tajima

ROSワークショップ中級・自律移動編を2月20日(火)に東京で開催します

来たる2月20日(火)に,ROSワークショップ中級・自律移動編を東京にて開催します.ROSでの自律移動(ナビゲーション)を学びたい方は,これを機会にぜひ受講をご検討ください.

基本的にはROSワークショップ初級編を受講した方を対象としておりますが,それに準ずると思われるROSの経験がある方なら,受講いただけます.お申込みは詳細をご確認の上,ページ内のお申込みフォームよりエントリをお願い致します.なお,参加人数には限りがあり,先着順とさせていただきますのでご了承ください.

シミュレーション環境での自律移動

ワークショップでは,まずシミュレータを動かしながら自律移動の概要を学ぶハンズオンを行います.次に,掃除ロボットRoomba(ルンバ)とラズベリーパイ(Raspberry Pi),低価格なレーザセンサRPLIDARで構成された自律移動ロボット”Roomblock”を用いて,実機の操作,地図の生成,自己位置推定といった自律移動の機能とプログラミング方法を学びます.最後に,ROSの自律移動の構成とその要素について,より詳しく解説していきます.シミュレータと実機を用いた実践的なワークショップとなっています.

自律移動ロボットRoomblock

来年度のロボット開発に向けて,今年度中にROSをマスターするチャンスです.ぜひご検討ください.

著者:Ryosuke Tajima

新型aiboがやってきました!

ソニーのペットロボット”aibo”がTORKにも届きました!

名前は「TORKちゃん(♀)」としてみました.

発表時に,「ROSが搭載されている」ということが明言されていて話題になっていましたが,本当に搭載されているようです.

搭載されているオープンソースソフトウェアの一覧とライセンスは,以下のページで確認することができます.

また,そのうちソースコードの公開が必要なものに関しては,ここからダウンロードできるようになっています.

ちょっと調べた感じでは,ユーザからaiboのシステムにアクセスできそうな手段は見つからないのですが,そのうちSDKなどが公開されるのではないかと期待できます.それまではとりあえず,このかわいいペットロボットを楽しみましょう!

 

著者:Yumiko Suzuki

ROS開発におけるエディタ選択 ( Visual Studio Code + ROS 編 )(2)

前回は, Visual Studio Code にROSのプラグインをインストールした環境でパッケージ作成するお話をしました.
今回はこの環境を使ってC++プログラムを作成していきます.

 

C++でコード作成

今回はros wikiのチュートリアルで用いられているコードを元に進めます.コードの詳細についてはこちらからお願いします.

パッケージが作成されていると左側のエクスプローラーのcatkin_ws/src/sample_vs_code以下にsrc,includeディレクトリが作成されています.srcディレクトリを選択し右クリックで「新しいファイル」を選択し,talker.cpp,listener.cppを作成します.

talker.cpp

#include "ros/ros.h"
#include "std_msgs/String.h"

#include 

int main(int argc, char **argv)
{
  ros::init(argc, argv, "talker");

  ros::NodeHandle n;

  ros::Publisher chatter_pub = n.advertise("chatter", 1000);

  ros::Rate loop_rate(10);

  int count = 0;
  while (ros::ok())
  {
    std_msgs::String msg;

    std::stringstream ss;
    ss << "hello world " << count;
    msg.data = ss.str();

    ROS_INFO("%s", msg.data.c_str());

    chatter_pub.publish(msg);

    ros::spinOnce();

    loop_rate.sleep();
    ++count;
  }

  return 0;
}

listener.cpp

#include "ros/ros.h"
#include "std_msgs/String.h"

void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
  ROS_INFO("I heard: [%s]", msg->data.c_str());
}

int main(int argc, char **argv)
{
  ros::init(argc, argv, "listener");

  ros::NodeHandle n;

  ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);

  ros::spin();

  return 0;
}

 
この時のCMakeListは以下のようになります.
CMakeLists.txt

cmake_minimum_required(VERSION 2.8.3)
project(sample_vs_code)

## Find catkin and any catkin packages
find_package(catkin REQUIRED COMPONENTS roscpp std_msgs genmsg)

## Generate added messages and services
generate_messages(DEPENDENCIES std_msgs)

## Declare a catkin package
catkin_package()

## Build talker and listener
include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})

add_executable(listener src/listener.cpp)
target_link_libraries(listener ${catkin_LIBRARIES})

これらはROS Wikiのチュートリアルをそのまま引用しています.上記のコードをコピーアンドペーストしたらCtrl+sで保存します.

 

catkin_make

それではコンパイルしてみます.コンパイルはcatkin_makeコマンドにより行います.VS Codeでは上記のメニューバーから「タスク」➡︎「ビルドタスクの実行」(もしくはCtrl+Shift+b)で「catkin: make」を選択します.すると下部にターミナルが生成され,catkin_makeが実行されます.

 

rosrun & roslaunch

コンパイルが完了したら実際に実行します.catkin_makeによりtalkerとlistenerというノードが作成されましたので,これらを起動します.

まずはroscoreを立ち上げます.roscoreはコマンドパレットを起動し,「ROS: Start Core」を選択して起動します.起動ができていると左下のROS Masterという項目にチェックが入ります.

roscoreが立ち上がったら試しにrosrunコマンドでtalkerノードを起動してみます.VS Codeからrosrunコマンドを使用するには,F5を押して「ROS」➡︎「rosrun」でパッケージ名,ノード名を入力し起動します.そうすると下部にデバッグコンソールが立ち上がり,hello worldと回数が表示されます.

続いて複数ノードの起動ですが,VS Codeでは元々複数の実行ファイルの起動ができないので,talker,listenerノードをlaunchファイルでまとめて起動します.sample_vs_codeディレクトリ以下にlaunchディレクトリを作成し,以下のコードをchatter.launchというファイル名で保存します.

chatter.launch

<?xml version="1.0"?>
<launch>
    <node pkg="sample_vs_code" name="talker" type="talker" />
    <node pkg="sample_vs_code" name="listener" type="listener" />
</launch>

 
roslaunchコマンドはrosrunコマンドの時と同じくF5を押して「ROS」➡︎「roslaunch」でパッケージ名,launchファイル名を入力して起動します.これらはターミナルに結果を出力するのでVS Code上で表示の確認ができないのですが,ここではきちんとノードが起動されているかどうかの確認のみを行います.一旦別途ターミナルを起動してrosnode listにより起動できているか確認します.

/listener
/rosout
/talker

と出ていればOKです.

 

終わりに

VS Codeのプラグインを使用することによってIDEを使用する感覚でROSプログラミングをすることができました.シミュレータや可視化ツールなどを同時に起動しているとPCの挙動が重くなってしまうのですが,VS Codeはそのものが高速かつ軽量なため,バックグラウンドで立ち上げっぱなしにしていても問題ないのが魅力です.

段々とLinux環境での開発に慣れてくるとコマンドラインベースでrosrunやroslaunchをした方が早く感じるかもしれませんが,それでもエディタやコンパイルツールとしてVS Codeを使うのは比較的おすすめなやり方だと思うので是非使ってみてください.

--
CIT 山本龍

著者:Yumiko Suzuki

ROS開発におけるエディタ選択 ( Visual Studio Code + ROS 編 )(1)

前回はVisual Studio Codeの環境でC++のプログラムを実行する手順をご紹介しました.
今回はROSプラグインを活用する方法について説明します.

Visual Studio Codeのプラグイン

ROSプログラミングで度々面倒になるのが,一旦エディタを閉じてワークスペーストップまで戻りコンパイル,複数のターミナルを開いてノードを実行と言った手間です.できれば一つのターミナル,欲を言えばエディタを開いたまま全て完結させたいものです.

前回VS Codeを使用しプログラミング,コンパイルを一つのエディタ上で行う方法の話をしました.今回は前回の拡張として,ROSプログラミングをVS Code上で完結するためのプラグインのお話をします.

 

ROSプラグインのインストール

ここからは

  1. Ubuntu環境にROSがインストール済み(今回はUbuntu16.04,ROS Kinetic)
  2. ROSのワークスペースが作成済み(今回はcatkin_wsという名前で作成)
  3. ワークスペースのパスが通っている(ここではsource ~/catkin_ws/devel/setup.bashがターミナル上で実行済み)

であるという前提で進めます.

左の拡張機能パネルを表示し,検索フォームに「ROS」と入れて一番上に表示されているものをインストールします.

 
インストールが完了しプラグインがアクティベートされると,ROSプラグインの機能が使えるようになります.
以下にROSプラグインを入れることによりVS Codeで使用できる機能を示します.

    • パッケージの作成
    • catkin_makeの実行
    • roscoreのスタート/ストップ
    • rosrun,roslaunchの実行
    • ROSトピックやサービスの確認

これらは全てVS Code上でバッグクラウンドで実行されます.これでターミナルを複数起動したり画面分割したりと言った手間がなく簡単に行うことができます.

 

ROSプラグインを使ってみる

それでは実際にROSプラグインを使ってみます.ターミナルから~/catkin_wsに移動し,code .で起動します.もしくはVS Codeを開き,メニューバーからcatkin_wsディレクトリを開きます.

ROSでコマンドを使用する際は基本的に全てターミナルからコマンドを打って操作しますが,VS Code内では全てコマンドパレットから操作します.

 

パッケージの作成

まずはパッケージを作成します.Ctrl+Shift+pでコマンドパレットを起動し,検索フォームにrosと入力するとVS Codeで使用できるコマンドの候補がいくつか出てきます.

「ROS: Create Catkin Package」がパッケージを作成するコマンドになりますのでこれを選択,パッケージ名を入力しEnterを押します.ここではsample_vs_codeと入力します.
続いて使用する依存パッケージの入力をします.ここではroscpp,std_msgs,genmsgを使用するので,roscpp std_msgs genmsgと入力します.ここまで行うとパッケージの作成が完了します.

試しにターミナルで

$ ls ~/catkin_ws/src

として確認するときちんとsample_vs_codeが作成されていると思います.

 
次回はVisual Studio Code + ROSの環境でのC++プログラム作成のお話をします.


CIT 山本龍

著者:Yumiko Suzuki

ROS開発におけるエディタ選択 ( Visual Studio Code編 ) (2)

前回はVisual Studio Codeについてご紹介しました.
今回はVisual Studio Codeの環境でC++のプログラムを実行する手順です.

C++プログラムのコンパイル

起動できたら,実際に簡単なC++プログラムを書いてコンパイル,実行してみます.

必要なプラグインのインストール

まず初めにC++コードをコンパイル,実行するのに必要なプラグインをインストールします.左側に拡張機能のパネルがありますのでそちらを表示し,検索フォームに「C++」と入力します.

そうしたら検索結果で一番上にでてきたものをインストールしましょう.インストールが完了したら設定を読み込ませるために再読み込みボタンを押して読み込ませます.これで必要なプラグインをインストールできました.その他にもプラグインを入れたい場合はそれぞれ検索してインストールすることで設定ファイルを書くことなくプラグインを入れることができます.非常に簡単です.

ファイル新規作成

C++プログラムをコンパイルする際は一旦事前に任意のフォルダを作成し,そこにファイルを新規作成します.ここではホームフォルダにtestというディレクトリを作成し,test.cppというファイルをコンパイルすると言った例で進めます.ターミナルを開き,

$ mkdir ~/test

としてフォルダを作成します.そうしたらVS Codeを開き上部メニューバーから「ファイル」➡︎「フォルダを開く」で先ほど作成したフォルダを開きます.ファイル新規作成はエクスプローラーから先ほど開いたフォルダを右クリックし「新規ファイル作成」で作成することができます.ここではtest.cppとしましょう.test.cppの中身は,例のごとくHello Worldを表示するプログラムにします.

#include 
#include 

int main(int argc, char *argv[])
{
    std::cout << "Hello, World!" << std::endl;
    getchar();
    return 0;
}

上記コードをコピーしたらCtrl+sで保存します.

コンパイル・実行

続いてコンパイルですが,ここは少し手間が必要になります.まずCtrl+Shift+pを押してコマンドパレットというものを表示し,検索フォームにtaskと入力します.いくつか候補が出てきますが,その中の「タスク:タスクランナーの構成」を選択します.そうするとtask.jsonというファイルが生成されます.task.jsonの中身は,以下のようにします.

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "command": "g++",
    "isShellCommand": true,
    "args": ["-O2", "-g", "test.cpp"],
    "showOutput": "always"
}

Linuxはコンパイラにg++を使用し,コンパイル時にはターミナルを開いてg++コマンドにより行います.task.jsonはそれらをVS Codeから行うために必要になります.

task.jsonを書き換えたらCtr+Shift+bでコンパイルし,エラーが表示されなければ,カレントディレクトリにa.outという実行ファイルが生成されます.

実行ファイルが生成されたら,F5を押してデバッグを開始すると,launch.jsonファイルが生成されます.このファイルはVS Code上でデバッグするためのファイルになります.Linuxですとgdbというデバッガを使用するため,launch.jsonを以下のように書き換えます.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceRoot}/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceRoot}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb"
        }
    ]
}

書き換えたら再度F5を押すとターミナルが別途表示され,「Hello, World!」と表示されていたら成功となります.

コードを変更した場合は都度保存してCtrl+Shift+bでコンパイルし実行します.

 

まとめ

VS Codeを使うことによりコマンドラインを使用することなくLinuxでプログラミングすることができました.またVS CodeではROSの開発をサポートするためのプラグインが公開されており,これらを使用することでターミナルをほぼ使わずにROSプログラミングをすることができます.

 
次回はそのROSプラグインを活用する方法について説明します.
--
CIT 山本龍

著者:Yumiko Suzuki

ROS開発におけるエディタ選択 ( Visual Studio Code編 ) (1)

はじめに

ROSプログラミングをするにあたり,対象のOSがLinuxであることから,コンソールベースでの開発に慣れていない方にとっては少々困惑することがいくつかあると思います.

プログラマが一般的に使用する一般的なエディタではVimやEmacsなどが知られているかと思われますが,これらは設定方法や操作方法など少し癖があったり,それらを行うために知らなければならないことがあったりするので少々敷居が高いかもしれません.

一方Windows OSでの開発に使用されているIDEとしてVisual Studioが多く使用されますが,対応OSがWindowsのみでありUNIX系OSで使用することができないのが惜しい点でした.

そこで2015年にMicrosoftから「Visual Studio Code(以下VS Code)」というツールがリリースされました.VS Codeは,WindowsだけでなくMacやLinuxでも動作し,インストールパッケージを用いることで簡単にインストールすることができます.LinuxをインストールしてROSで開発したいけど,Linuxのターミナルの使い方がよくわからない,どのエディタを使ってプログラミングすればいいかわからない,と言った方にVS Codeは非常にオススメできるツールだと思います.

 

Visual Studio Codeのインストール方法

今回はUbuntu16.04 ROS Kineticで実施しました.こちらのサイトにアクセスしてVisual Studio Codeをダウンロードします.Linux環境でアクセスするとdebパッケージがダウンロードできるボタンがあるのでそちらをクリックしてダウンロードします.ダウンロードが完了したらそのままdebパッケージをクリックするか,以下のコマンドをターミナルで入力するとインストールされます.

$ sudo dpkg -i <ダウンロードされたファイル名>

 

基本的な使い方

起動

インストールが完了したら,左上のドックからVisual Studio Codeと打つと候補で出てくるのでクリックすると起動します.

ちなみにターミナルからも起動することができます.ターミナルを開いている場合は以下のように

$ code

と入力すれば起動します.また,

$ code .

とするとカレントディレクトリを開いた状態でVS Codeが起動します.

次回は,Visual Studio CodeでC++プログラムのコンパイルについて解説します.


CIT 山本龍

著者:Yumiko Suzuki

THK株式会社様を訪問しました!

本日は,THK株式会社様を訪問して,ROS対応についてのお話をさせていただきました.

こちらのロボットはROSでも動くのです!
受注生産方式で購入できるそうです.
気になった方は以下のリンクをご参照ください.
お問い合わせ先:SEED Solutions

ROS導入,パッケージリリースや情報展開のご相談,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Ryosuke Tajima

ROSワークショップ中級・自律移動編を名古屋で開催しました

名古屋伏見でやってます

ROSワークショップ中級・自律移動編を名古屋にて開催しました.中級ともなりますと,ROSをすでにかなり使いこなしている方が参加されていて,非常にスムースにカリキュラムを進めることができました.

自律移動の体験

自律移動編では,シミュレーション上で一通りの機能を試してもらった後,ルンバベースの教材ロボットRoomblockを部屋やオフィスの廊下で動作させて地図を作っていただき,実機での運用を体験していただきます.その後,ROSでの自律移動の構成を説明していきます.カリキュラム以外のROSやロボティクスに関する質問,疑問にも出来る限りお答えします.

自律移動ロボットRoomblock

11月のワークショップ日程を公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Yumiko Suzuki

2017年11月のROSワークショップ日程

以下日程でROSワークショップを行います.
名古屋でも開催いたします!

11月07日(火)13:30~ ROSワークショップ初級編
11月14日(火)13:30~ (名古屋) ROSワークショップ初級編
11月15日(水)13:30~ ROSワークショップ初級編
11月20日(月)13:30~ (名古屋) ROSワークショップ初級編
11月28日(火)13:30~ (名古屋) ROSワークショップ中級・自律移動編
11月30日(木)13:30~ ROSワークショップ初級編

場所は都内・有楽町の会議室または名古屋市内での実施を予定しています.

中級編については公開されている日程以外はご要望があり次第,日程を調整にて開催いたします.
メイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページまたは中級・自律移動編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Ryosuke Tajima

Indigoの開発環境をDockerで構築(1)

Indigo? Kinetic?

ROSはどんどん新しくリリースされていきます.最新バージョンはLunar Loggerhead(Lunar)で,その前が,Kinetic Kame(Kinetic), その前がJade Turtle(Jade)という名前です.伝統的に,亀にちなんだ名前がつけられています.

しかし,実際にはその前のバージョンであるIndigo Igloo(Indigo)を使っている人もまだ多いかと思います.IndigoにはリリースされてるのにKinetic以降にはまだリリースされていないパッケージが数多くあり,移行したくてもできない,という場合が多いようです.同様の理由で,TORKでもワークショップ教材や受託開発には現在もIndigoを用いています.

IndigoはUbuntu14.04ベースですが,KineticとLunarはUbuntu16.04以降がベースで,14.04ではサポートされていません.しかし,Indigoを使うためだけに,いまさらUbuntu14.04をPCにインストールするのもちょっとイマイチです.

VMWareやVirtualBoxなどの仮想マシン(VM)を用いる,という解決策もあります.しかし,ハードウェアを使おうとした時に問題になります.たとえば,USBカメラのパフォーマンスが非常に悪いとか,USB3.0に対応していない,など,デバイスドライバの問題もありがちです.

そこで,最近はやりのDockerを用いると,Ubuntu16.04をインストールしたPC上で,デバイスやGUIも使えるインタラクティブなIndigoの開発環境を簡単に動かすことができます.

Dockerのインストール

まずはDockerのインストールをしておきます.Ubuntuのaptで入るものは用いないで,Dockerのページにある手順に従って最新版をインストールしましょう.Community Edition(CE)というのを使います.

IndigoのDockerイメージの準備

IndigoのDockerコンテナは,まずはOSRFがDockerHubに用意しているものを利用するのが簡単です.

以下のコマンドでIndigoのコンテナを取得します.

$ docker pull osrf/trusty-ros-indigo:desktop

ちなみにこのosrfのコンテナにNextage OpenなどのTORKワークショップに対応したパッケージを追加したものをTORKでも公開しています.必要ツールなどが豊富なので,こちらを使うのもおすすめです.

たとえば取得したDockerコンテナを立ち上げ,コマンド’lsb_release’でバージョンを確認したい場合には,

$ docker run osrf/trusty-ros-indigo:desktop lsb_release -a

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04
LTSRelease: 14.04
Codename: trusty

のようにします.このとき実行されるコマンドのユーザ権限はデフォルトでrootになります.ユーザ権限やデバイスに対するアクセス権限を変更するには,別途docker runの際のオプションを設定する必要があります.このあたり詳しくは,Docker run referenceを参照してください.

ユーザやホームディレクトリを共有したインタラクティブな起動

ここでやりたいのは,対象のコンテナを立ち上げつつ,自分のユーザ権限でシェルを実行し,ホームディレクトリ内でインタラクティブに作業をすることです.そのために必要ないくつかの設定を行うスクリプトを作成しました.

$ ./docker_shell osrf/trusty-ros-indigo:desktop

とすると,あたかもOSだけがTrusty + ROS Indigoになったかのようなシェルが起動します.

$ . /opt/ros/indigo/setup.bash

とすれば通常のIndigo環境として用いることができます.ただし,ベースシステムでKineticを使っている場合には,ワークスペースをビルドする際にKineticなのかIndigoなのかで混乱してしまいがちなので,注意が必要です.

NVidiaのドライバを使用している場合

PCが特殊なXグラフィクスドライバを用いていない場合には,rvizなどのGUIも使用することができます.しかし例えば,PCがNVidiaのドライバを使用している場合,rvizなどのOpenGLを含むアプリが動作しません.この解決法は次回以降に紹介します.

著者:Ryosuke Tajima

World MoveIt! Day Tokyo ありがとうございました!

 

World MoveIt! Day Tokyo,無事に終了いたしました.当日は30人ほどの方にお越しいただきました.参加していただいた皆様,スポンサーの皆様,開催をサポートしていただいたすべての方々に感謝したいと思います.

Baxter

日本バイナリー様のご協力により,当日の主役はこのロボットでした.オシャレなLEAGUE有楽町のフロアでかなりの存在感を出していました.

JACO2, HEBIアーム

また,同じく日本バイナリー様はJaco2アームとHEBIアームを展示していただきました.HEBIアームをMoveIt!とGazeboで動かそうとチャレンジした上級者もいらっしゃいました.

時差の少ないシンガポールARTCとビデオチャットでつないでご挨拶してみました.

終始なごやかな雰囲気でした

皆さん,軽食を取りながらMoveIt!シミュレータやロボットを試してみていました.インストールや動作のトラブルにはスタッフが出来る限り対応しました.

報告いただいた方にはROSConグッヅをプレゼント!

ほんんどの方が,自分のPCでMoveIt!やシミュレータを動作させることができました.実際にBaxterを動かしたり,moveit_commanderを使ったプログラミングに挑戦したりしている方もおり,それぞれのレベルや関心に応じて有意義な成果が得られました.最後に今日の成果を皆で報告していただきました.

ありがとうございました!

日本でもたくさんの方がMoveIt!に関心を持っていることが分かりました.今後もMoveIt!およびROSをみんなで使って,フィードバックやコミットで改良していきましょう.

著者:Ryosuke Tajima

World MoveIt! Day 2017 Tokyoを開催します!

MoveIt!は主にロボットマニュピレータを対象としたROSの主要パッケージの一つです.MoveIt!の利用者,開発者のための世界的なイベント”World MoveIt! Day 2017″のローカルイベントを,今年は東京でも開催します.

  • 内容: World MoveIt! Day Tokyo
  • 日時: 10月19日(木) 11:00 〜 18:00 (時差で欧米の開催地から1日遅れた開催です)
  • 場所: [LEAGUE有楽町]イベントスペース
  • 参加費: 無料

詳細なプログラムと参加登録は,以下のサイトをご覧ください.なおスケジュール等は予告なく変更される場合があります.

とってもゆるい感じのイベントになると思います.MoveIt!を利用されている方はもちろん,関心はあってもまだ利用していない方,全く聞いたことのない方,どなたでも参加できます.ささやかながら飲み物,食べ物もご用意いたします.

ROSをインストールしたご自分のノートPCを持参していただければ,シミュレータもしくはロボット実機で,MoveIt!を中心としたロボットソフトウェアを体験することができます.弊社スタッフや参加者同士で教えあうことで,使い方を学ぶことができます.

また,MoveIt!自体の機能追加や不具合修正についての情報交換も行われます.みんなでMoveIt!を盛り上げていきましょう!

著者:Ryosuke Tajima

Nextage Openの日本語版チュートリアルを新たに公開しました!

Nextage Open

これまでもNextage OpenのROSパッケージについての包括的なチュートリアルは公開されていましたが,世界中のユーザの利用を前提として英語での提供でした.このたび,日本のユーザからの要望が多かったチュートリアルの日本語版を作成し,公開することができました.

Nextage Open 日本語版チュートリアル

すでにNextage Openをご活用頂いているユーザの皆様には,これまで以上に研究開発のお役に立てることができれば幸いです.また,Nextage Open の導入を検討される方にも,参考になる内容となっていると思います.

もちろん,英語版のチュートリアル(http://wiki.ros.org/rtmros_nextage/Tutorials)もこれまでどおりご利用いただけます(日本語版へのリンクも追加されています).

著者:Ryosuke Tajima

ROSワークショップ中級・自律移動編を10月31日(火)に名古屋で開催します

来る10月31日(火)に,ROSワークショップ中級・自律移動編を名古屋にて開催します.ROSでの自律移動(ナビゲーション)を学びたい方は,これを機会にぜひ受講をご検討ください.

基本的にはROSワークショップ初級編を受講した方を対象としておりますが,それに準ずると思われるROSの経験がある方なら,受講いただけます.お申込みは詳細をご確認の上,ページ内のお申込みフォームよりエントリをお願い致します.

シミュレーション環境での自律移動

ワークショップでは,まずシミュレータを動かしながら自律移動の概要を学ぶハンズオンを行います.次に,掃除ロボットRoomba(ルンバ)とラズベリーパイ(Raspberry Pi),低価格なレーザセンサRPLIDARで構成された自律移動ロボット”Roomblock”を用いて,実機の操作,地図の生成,自己位置推定といった自律移動の機能とプログラミング方法を学びます.最後に,ROSの自律移動の構成とその要素について,より詳しく解説していきます.シミュレータと実機を用いた実践的なワークショップとなっています.

自律移動ロボットRoomblock

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

著者:Yumiko Suzuki

2017年10月のROSワークショップ日程

以下日程でROSワークショップを行います.
名古屋でも開催いたします!

10月04日(水)13:30~ ROSワークショップ初級編
10月10日(火)13:30~ (名古屋)ROSワークショップ初級編
10月18日(水)13:30~ ROSワークショップ初級編
10月20日(金)13:30~ (名古屋)ROSワークショップ初級編 日程変更になりました
10月23日(月)13:30~ (名古屋)ROSワークショップ初級編
10月24日(火)13:30~ ROSワークショップ初級編

場所は都内・有楽町の会議室または名古屋市内での実施を予定しています.

中級編についてはご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページまたは中級・自律移動編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Yumiko Suzuki

ROSワークショップ初級編を開催しました

今回も有楽町にてROSワークショップ初級編を開催しました.
初めてでLinux環境を準備できなくてもLiveUSBを使って完遂できました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内でOSSを運用していく際の疑問点等にも随時お答えしています.

10月のワークショップ日程を公開中です!

10月は中級・自律移動編も実施いたします!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Ryosuke Tajima

バンクーバーでのROSCon 2017に参加しました!

9月21日,22日にバンクーバーで開催されたROSCon2017に参加しました!

会場のVancouver Convention Centerからの風景

ROSConは年に一回,ユーザ,開発者,企業,大学といった様々な立場でROSに関わる人が集まり,情報交換をするための会議です.

Brian Gerkey氏によるオープニング

TORKは事前に発表を申し込んでいたわけではありませんが,ライトニングトークという3分間の枠で活動内容を報告することができました.

TORKからも新しいパッケージを報告しました

今回のROSConでも,新しいロボット,新しいデバイス,ロボット研究開発の内容など,非常に多様な国と組織からの発表がありました.また,今回はROS2の話題が多く聞かれるようになってきました.

ROSの開発者やユーザにとってはとにかく楽しい会議ですので,今後の参加を検討されてはいかがでしょうか.なお,来年の開催地とスケジュールはまだ決定されていないとのことです.

著者:Ryosuke Tajima

2017年10月の名古屋 ROSワークショップ日程

10月は以下の日程でROSワークショップを行います.

場所: COffice名古屋伏見 (伏見駅,名古屋広小路伏見中駒ビル5F)

ROSの初歩をスピーディに習得したい方,ROSの疑問点を解消したい方,中部地方の方の参加をお待ちしております.

もちろんこれまでどおり東京でもワークショップを開催しておりますので,お選びいただけます.

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

また,ROSワークショップ中級編についても名古屋にて開催できるようになりました.ご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.ただし,初級編を受講した方を対象としております.

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

著者:Ryosuke Tajima

ROS + Snappy Ubuntu Core (4) : Raspberry Pi 3へのUbuntu Coreのインストール

このページの内容に従い,Raspberry Pi 3にUbuntu Coreをインストールしてみます.

以下の作業は,Ubuntu 16.04の環境で行いました.まず,Ubuntu Core imageにある,’Ubuntu Core 16 image for Raspberry Pi 3’のイメージファイルをダウンロードします.320MBありました.

つぎにこれをMicroSDカードにコピーします.手元の環境ではMicroSDカードをカードリーダに挿すと/dev/sdaとして認識されたので,

$ xzcat ubuntu-core-16-pi3.img.xz | sudo dd of=/dev/sda bs=32M
$ sync

としました.

RaspberryPi3を先ほど作成したMicorSDカードで起動します.

Raspberry Pi 3 の起動画面

最初の起動の際には,コンソールからのログインが必要なので,キーボードとディスプレイを接続しておきます.

進むにはubuntu.comのアカウントが必要

いきなり詰まってしまいました.login.ubuntu.comのアカウントのメールアドレスを入力せよ,と言われます.Ubuntu Coreの使用には,ubuntu.comのアカウント登録が必要のようです.インストールにはインターネット接続が前提なので,proxy環境などでは困りそうです.

別のPCからlogin.ubuntu.comにアクセスして,アカウントを作成します.

ubuntu.comのアカウント作成画面

さらに,そのままだとssh keyが無いといわれます.login.ubuntu.comのsshのページでsshの公開鍵を設定しておく必要があるようです.この公開鍵に対応する秘密鍵による認証で,Raspberry Pi 3にsshでログインすることができます.

SSH Keysの設定

自分のマシンがUbuntuの場合,自分のマシン上で

$ ssh-keygen

とコマンドを打ち,パスワード等を設定します.~/.ssh/id_rsa.pubというファイルができるはずなので,その中身をコピーして,SSH Keysのフォームに貼り付けます.

SSH Keysのページでssh keyを設定したマシンからは,Raspberry Piにsshでログインできるようになります.usernameは,ubuntu.comで設定したユーザ名です.Raspberry Pi3のIPアドレスは,DHCPで取得され,コンソール画面に表示されています.

$ ssh username@192.168.0.10

初期状態では,コマンドやアプリはほとんど入っていません.Ubuntuでお馴染みのaptやdpkgと言ったコマンドも使えません.今後,snappyパッケージを入れることで拡張していきますが,まずパッケージ一覧をWebブラウザで見るためのsnapwebパッケージをインストールしてみましょう.

$ sudo snap login username@example_domain.com
$ sudo snap install snapweb
$ snap list
Name        Version       Rev   Developer  Notes
core        16-2          1443  canonical  -
pi2-kernel  4.4.0-1030-3  22    canonical  -
pi3         16.04-0.5     6     canonical  -
snapweb     0.26-10       305   canonical  -

Webブラウザで,”http://192.168.0.10:4200/”にアクセスしてみます.

snapwebの画面

snapwebの画面

今インストールされているパッケージ一覧が見えたりします.ストアもあるようですが,

App storeの画面

App storeの画面

うーん,よくわかりませんが,ほとんどアプリは無いように見えます.

著者:Yumiko Suzuki

ROSワークショップ初級編を開催しました

今回も有楽町にてROSワークショップ初級編を開催しました.
準備万端でご参加いただきサクサクと進みました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内でOSSを運用していく際の疑問点等にも随時お答えしています.

9-10月のワークショップ日程を公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Ryosuke Tajima

名古屋でのROSワークショップ,始めます!

これまで東京都内を中心に開催してきた弊社のROSワークショップですが,
2017年9月から,名古屋でもROSワークショップの開催を始めます!

(受付終了しました) 9月5日(火)13:30~ (名古屋) ROSワークショップ初級編
(受付終了しました) 9月15日(金)13:30~ (名古屋) ROSワークショップ初級編

場所: COffice名古屋伏見 (伏見駅,名古屋広小路伏見中駒ビル5F)

ROSの初歩をスピーディに習得したい方,ROSの疑問点を解消したい方,中部地方の方の参加をお待ちしております.

もちろんこれまでどおり東京でもワークショップを開催しておりますので,お選びいただけます.

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

また,ROSワークショップ中級編についても名古屋にて開催できるようになりました.ご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.ただし,初級編を受講した方を対象としております.

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

著者:Yumiko Suzuki

2017年9月-10月のROSワークショップ日程

以下日程でROSワークショップを行います.
9月から名古屋でも開催いたします!

 9月05日(火)13:30~ (名古屋)ROSワークショップ初級編
 9月07日(木)13:30~ ROSワークショップ初級編
 9月15日(金)13:30~ (名古屋)ROSワークショップ初級編
 9月27日(水)13:30~ ROSワークショップ初級編
10月04日(水)13:30~ ROSワークショップ初級編
10月18日(水)13:30~ ROSワークショップ初級編
10月24日(火)13:30~ ROSワークショップ初級編

場所は都内・有楽町の会議室または名古屋市内での実施を予定しています.

中級編についてはご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページまたは中級・自律移動編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Ryosuke Tajima

ROS + Snappy Ubuntu Core (3) : SnappyなROSパッケージの中身

Snappy + ROS, https://www.crowdsupply.com/krtkl/snickerdoodle/updates/1890

作成したSnappyのパッケージはどういう仕組みで動いているのでしょうか?

$ which talker-listener.listener 
/snap/bin/talker-listener.listener
$ ls -l /snap/bin/talker-listener.listener 
lrwxrwxrwx 1 root root 13 Jul 21 16:04 /snap/bin/talker-listener.listener -> /usr/bin/snap

となっています.これは,以下を実行するのと等価になるようです.

$ snap run talker-listener.listener

snapファイルは,単に/snap/に展開されるだけです.currentというのが最新版ですが,これはx1へのシンボリックリンクになっています.容易にロールバックできるようにするためなのでしょう.

$ ls -l /snap/talker-listener/
total 0
lrwxrwxrwx  1 root root   2 Jul 21 16:04 current -> x1
drwxrwxr-x 10 root root 222 Jul 21 16:00 x1
$ ls /snap/talker-listener/current
bin                       command-roscore.wrapper  etc  meta  snap  var
command-listener.wrapper  command-talker.wrapper   lib  opt   usr

command-listener.wrapperというのが目に付きます.中身を見ると,

#!/bin/sh
export PATH="$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/sbin:$SNAP/bin:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu"
export ROS_MASTER_URI=http://localhost:11311
export ROS_HOME=${SNAP_USER_DATA:-/tmp}/ros
export LC_ALL=C.UTF-8
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$SNAP/lib:$SNAP/usr/lib:$SNAP/lib/x86_64-linux-gnu:$SNAP/usr/lib/x86_64-linux-gnu
export PYTHONPATH=$SNAP/usr/lib/python2.7/dist-packages:$PYTHONPATH
export PATH=$PATH:$SNAP/usr/bin


# Shell quote arbitrary string by replacing every occurrence of '
# with '\'', then put ' at the beginning and end of the string.
# Prepare yourself, fun regex ahead.
quote()
{
    for i; do
        printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/"
    done
    echo " "
}

BACKUP_ARGS=$(quote "$@")
set --

if [ -f $SNAP/opt/ros/kinetic/setup.sh ]; then
    _CATKIN_SETUP_DIR=$SNAP/opt/ros/kinetic . $SNAP/opt/ros/kinetic/setup.sh
fi

eval "set -- $BACKUP_ARGS"

export LD_LIBRARY_PATH="$SNAP/opt/ros/kinetic/lib:$SNAP/usr/lib:$SNAP/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH=$SNAP_LIBRARY_PATH:$LD_LIBRARY_PATH
exec "rosrun" roscpp_tutorials listener "$@"

となっており,ROSの環境設定などはこのラッパーファイルで行われた上で,コマンドが実行されるようです.つまり,いつもROSでやっているような”source setup.bash”などは必要ないことになります.楽になりそうですね.

snapパッケージにはほかに何が含まれているのでしょうか.

$ tree -L 3 -d /snap/talker-listener/current/
/snap/talker-listener/current/
├── bin
├── etc
│   ├── ca-certificates
│   │   └── update.d
│   ├── dpkg
│   │   └── dpkg.cfg.d
│   ├── emacs
│   │   └── site-start.d
│   ├── gss
│   │   └── mech.d
│   ├── ldap
│   ├── openmpi
│   ├── perl
│   │   ├── CPAN
│   │   └── Net
│   ├── python2.7
│   ├── python3.5
│   ├── sgml
│   ├── ssl
│   │   ├── certs
│   │   └── private
│   ├── systemd
│   │   └── system
│   └── xml
├── lib
│   └── x86_64-linux-gnu
├── meta
│   └── gui
├── opt
│   └── ros
│       └── kinetic
├── snap
├── usr
│   ├── bin
│   ├── include
│   │   ├── apr-1.0
│   │   ├── arpa
│   │   ├── asm-generic
│   │   ├── boost
│   │   ├── c++
│   │   ├── console_bridge
│   │   ├── drm
│   │   ├── gtest
│   │   ├── hwloc
│   │   ├── infiniband
│   │   ├── libltdl
│   │   ├── linux
│   │   ├── log4cxx
│   │   ├── misc
│   │   ├── mtd
│   │   ├── net
│   │   ├── netash
│   │   ├── netatalk
│   │   ├── netax25
│   │   ├── neteconet
│   │   ├── netinet
│   │   ├── netipx
│   │   ├── netiucv
│   │   ├── netpacket
│   │   ├── netrom
│   │   ├── netrose
│   │   ├── nfs
│   │   ├── numpy -> ../lib/python2.7/dist-packages/numpy/core/include/numpy
│   │   ├── openmpi -> ../lib/openmpi/include
│   │   ├── protocols
│   │   ├── python2.7
│   │   ├── rdma
│   │   ├── rpc
│   │   ├── rpcsvc
│   │   ├── scsi
│   │   ├── sound
│   │   ├── uapi
│   │   ├── uuid
│   │   ├── video
│   │   ├── x86_64-linux-gnu
│   │   └── xen
│   ├── lib
│   │   ├── compat-ld
│   │   ├── dpkg
│   │   ├── emacsen-common
│   │   ├── gcc
│   │   ├── gold-ld
│   │   ├── lapack
│   │   ├── ldscripts
│   │   ├── libblas
│   │   ├── mime
│   │   ├── openmpi
│   │   ├── pkgconfig
│   │   ├── python2.7
│   │   ├── python3
│   │   ├── python3.5
│   │   ├── sasl2
│   │   ├── sbcl
│   │   ├── ssl
│   │   ├── valgrind
│   │   └── x86_64-linux-gnu
│   ├── sbin
│   ├── share
│   │   ├── aclocal
│   │   ├── applications
│   │   ├── apps
│   │   ├── apr-1.0
│   │   ├── bash-completion
│   │   ├── binfmts
│   │   ├── boostbook
│   │   ├── boost-build
│   │   ├── bug
│   │   ├── ca-certificates
│   │   ├── cmake-3.5
│   │   ├── debhelper
│   │   ├── dh-python
│   │   ├── distro-info
│   │   ├── doc
│   │   ├── doc-base
│   │   ├── docutils
│   │   ├── dpkg
│   │   ├── emacs
│   │   ├── glib-2.0
│   │   ├── icu
│   │   ├── libtool
│   │   ├── lintian
│   │   ├── man
│   │   ├── mime
│   │   ├── mpi-default-dev
│   │   ├── numpy
│   │   ├── openmpi
│   │   ├── perl
│   │   ├── perl5
│   │   ├── pixmaps
│   │   ├── pkgconfig
│   │   ├── pyshared
│   │   ├── python
│   │   ├── python3
│   │   ├── sgml
│   │   ├── sgml-base
│   │   ├── xml
│   │   └── xml-core
│   └── src
│       └── gtest
└── var
    └── lib
        ├── sgml-base
        ├── systemd
        └── xml-core

144 directories

ワオ! talker-listenerのsnapパッケージには,ROSはもちろん,必要なLinuxシステムのディレクトリ構造がまるごと含まれています.ちょっと無駄な気がしますね…しかし,これがdockerなどで最近の流行りの,アプリごとに1つのコンテナを持つ(コンテナ仮想化),というやり方なのですね.

ちなみに,生成されたsnapファイルは,

$ ls -sh talker-listener_0.1_amd64.snap 
154M talker-listener_0.1_amd64.snap

なんと154Mbyteもあります.こんなに大きくて,パッケージが増えた時には大丈夫なんでしょうか…どう見ても必要のないファイルがパッケージにたくさん含まれているので,このへんはおそらく解決する方法があるのでしょう.

著者:Ryosuke Tajima

Roomblock(5): 3Dプリンタで出力可能なフレーム構造

ルンバ,ラズベリーパイ,モバイルバッテリ,そしてレーザー距離センサといったRoomblockの部品を紹介しました.これらをルンバの上に載せるための,3Dプリンタで出力できる構造材を紹介します.

Battery stage

Battery stage

棚のような構造で,1番下の段にモバイルバッテリ,2番目の段にラズベリーパイ,1番上の段にRPLIDAR A2を載せます.動作中にモバイルバッテリが落ちてしまうことがあるので,1番下の段にはバッテリー固定用のベルトがつけられるようになっています.

Raspberry Pi stage

Raspberry Pi stage

部品をブロックのように交換したり追加したりして,機能を拡張することを狙っているので,”Roomblock”と名付けました.安直ですね.ラズベリーパイ用のボードカメラを固定するための部品も追加しました.

Roomblock's frame

Roomblock’s frame

ルンバとフレーム部分はベルクロテープで固定されているので,取り外しも簡単です.

この構造材は,比較的安価な3Dプリンタでも出力できるサイズで設計されています.確認には UP! plus2を使いましたが,ワークエリアが15cm x 15cm程度の3Dプリンタであれば,大抵の機種で出力できると思います.3Dデータ(STLファイル)は,Thingiverseからダウンロードすることができます.

Roomblockの詳細な作り方については,Instructablesで公開しています.ただし当社は,これらの内容によって生じるいかなる損害についても責任を負いません.興味がわいた方はあくまで自己責任で,チャレンジしてくださいね.

著者:Yumiko Suzuki

ROSワークショップ初級編を開催しました

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

今回も有楽町にてROSワークショップ初級編を開催しました.
小さな疑問点にも都度お答えしながらの密度の高いワークショップとなりました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内でOSSを運用していく際の疑問点等にも随時お答えしています.

9-10月のワークショップ日程を公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Yumiko Suzuki

ROSワークショップ初級編を開催しました

今回も有楽町の会議室にてROSワークショップ初級編を開催しました.
参加者の方が検討中のシステムについてのご相談もお受けしました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

8月のワークショップ,いまなら間に合う!

9-10月のワークショップ日程を公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Ryosuke Tajima

ROS + Snappy Ubuntu Core (2) : SnappyなROSパッケージを作ってみよう

前回はUbuntu Coreについて紹介しましたが,いわゆる”Snappyな”パッケージシステムは,Ubuntu Coreをインストールしなくても試すことができます.Ubuntu CoreはあくまでSnappyをパッケージシステムとして使っているにすぎません.今回は,通常のUbuntuの上で,”Snappyな”ROSパッケージを作ってみようと思います.

Snappy + ROS, https://www.crowdsupply.com/krtkl/snickerdoodle/updates/1890

SnappyなROSパッケージの作り方のチュートリアルは,ここにあります.とりあえずこの通りに従ってみましょう.

ただし,これをやる前に,Snapcraft Tourのチュートリアルを一通り読むことをお勧めします.

以下の手順は,Ubuntu 16.04 + ROS Kineticで試したものです.
まず,SnappyのパッケージングツールであるSnapcraftをインストールします.

$ sudo apt install snapcraft

SnappyパッケージにするためのROSパッケージが必要ですが,自分でコードを打ち込むのはめんどくさいので,githubからros_tutorialのソースコードをcloneします.

$ mkdir -p catkin_ws/src
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros/ros_tutorials.git

snapcraftで初期化します.

$ cd ~/catkin_ws
$ snapcraft init

snapというディレクトリができて,その下にsnapcraft.yamlというファイルができます.このファイルを,roscpp_tutorialsの中のバイナリが含まれるように,書き換えます.書き換え方はチュートリアルに解説があるので参照してみてください.雰囲気でわかると思います.

さて,いよいよパッケージを作成します.

$ cd ~/catkin_ws
$ snapcraft

なにやらネットワークからいろいろとダウンロードし始めました…snapcraftはcatkinワークスペースを理解できるので,package.xmlを見て,rosdepで必要なパッケージをダウンロードしているのです. 「必要なROSのパッケージは全部システム入ってるはずだけど?」と思われるかもしれませんが,Snappyパッケージは,アプリに必要なものを仮想コンテナにすべて含んだ形で持つので,作成の際にいちいちパッケージをダウンロードし,ソースコードならコンパイルして,仮想コンテナ内にインストールします. しばらくすると,処理が終わり,

Snapped talker-listener_0.1_amd64.snap

と,snapファイルが生成されます. これをインストールするには,

$ sudo snap install --dangerous publisher-subscriber_0.1_amd64.snap

とします.インストールされたか確かめて見ましょう.

$ snap list
Name Version Rev Developer Notes
core 16-2.26.9 2381 canonical -
talker-listener 0.1 x1 -

では,ノードを順番に起動してみましょう.

$ talker-listener.roscore
$ talker-listener.talker
$ talker-listener.listener

お馴染みの,talker-listenerのノードが動き始めたと思います.

著者:Ryosuke Tajima

ROS + Snappy Ubuntu Core (1) : いったい何なの?

iPhoneのAppStoreやAndroidのGooglePlayのようなアプリのマーケットインフラを,ロボットの世界にも導入するためにはどのような課題があるでしょうか?ROSはその開発当初から「Robot App Store」を視野に入れてきていますが,まだ実現していません.

その中で,最近のUbuntu Snappy Coreと呼ばれる仕組みの登場は,Robot App Storeの開設に大きく貢献するのではないかと思われます.

Snappy + ROS, https://www.crowdsupply.com/krtkl/snickerdoodle/updates/1890

今後,数回に分けて,Ubuntu Snappy CoreとROSについて書いていきたいと思います.

Ubuntuの事情

ROSがメインのベース・オペレーティング・システムとしているUbuntuは,年に2回のRegularリリースがあり,そのサポート期間は9ヶ月です.また,2年おきにLTS(Long Term Support)と呼ばれるリリースがあり,サポート期間は5年です.実用を求める人は安定なLTSを使いつつ,最新技術の取り入れや新規開発はRegularリリースを使う,というサイクルが続いています.

しかし,Ubuntuが対象とするデバイスは,デスクトップPCやサーバだけでなく,IoTやルータなどのエッジデバイスにも広がりつつあります.残念ながらUbuntu Phoneはついに陽の目を見ないことになるようですが…

これらのデバイスでは,セキュリティの観点から,Ubuntuのような同期的なものではなく,もっと不定期かつ細かい間隔の継続的なアップデートが欠かせません.また,耐障害性,たとえば不具合を含むソフトウェアが配信された際にロールバックする,などの機能が必要になります.

Snappy Ubuntu Core

これらの要求に対して,Ubuntuでは,IoTやエッジデバイス向けに,(Snappy) Ubuntu Coreと呼ばれる仕組みが開発されています.

これは,OSとデバイスドライバの分離,またカーネルとアプリケーションを分離して,それぞれを独立に,細かい周期でアップデートできるような仕組みにしよう,というものです.

ROSの事情

ロボットもまたIoTやエッジデバイスの一種と見ることができるため,今後ROSでも,このSnappyなパッケージシステムが主流になる可能性があります.また,ROSのリリースシステムも,ほころびが目立つようになってきています.

これまでROSはUbuntuと同様に,同期的なリリースを行ってきました.しかし,1年に1回のリリースでは,日進月歩の技術を取り入れるのに遅れが大きすぎる気もします.一方で,ROSを業務に使用する場合には,動作させることが優先され,頻繁にアップデートしない(できない)ようになってしまいがちです.

また,ROSのパッケージは,たくさんの外部ライブラリに依存しています.外部ライブラリのAPIが変更になるたびに,ROSのパッケージもそれに対応させる必要があります.仕様が変わる場合には,パッケージを対応させた上に動作確認も必要です.

そのため,リリースされるたびに,リリースから外れていくパッケージが多くなってきました.必要だしよく使われるパッケージであるにもかかわらず,リリースのために修正が必要だけど修正作業を行うメンテナがいない,という理由でリリースされなかったり,リリースが遅れたりするケースもあります.

もしROSを搭載したロボット製品を販売しようと考えた場合,UbuntuやROSが更新されたタイミングで,どのような仕様変更や不具合が混入するかわからず,それに対応するには膨大なリソースが必要であることが予想されます.

以上のようなことから,今後はSnappyなROSシステムが主流になるのではないかと,勝手ながら予想しています.

Canonicalにお勤めのロボットエンジニアの方(Kyle Fazzari氏)が精力的に情報発信をしているのも頼もしいです.4月に公開された以下の一連のブログと動画も必見です.

著者:Ryosuke Tajima

Roomblock(4): 低価格なレーザ距離計 RPLIDAR A2

今回は,自律移動のためのキーパーツである,レーザ距離センサについて紹介します.レーザースキャナ,LIDAR(Laser Imaging Detection And Ranging)とも呼ばれます.

弱いレーザービームを発光し,物体への反射光を計測して,その時間差により物体までの距離を測ります.計測部分を回転させながら計測(スキャン)すれば,平面内の物体までの距離が計測できます.レーザービームを複数並べたり,細かく向きを変える機構を使うことで,平面内だけでなく3次元的な計測点が得られる3次元レーザ距離センサもあります.

一般的にレーザー距離センサは,2次元のものでも数十万円していたので,そう手軽に使えるものではありませんでした.しかしRoomblockで使っている SlamTech社のRPLIDAR A2 は,なんと5万円程度と破格なのです.

自律移動のキーパーツ,LIDAR

自律移動のキーパーツ,LIDAR

RPLIDAR用のROSドライバが公開されています.

$ sudo apt install ros-kinetic-rplidar-ros

として,

$ roslaunch rplidar_ros view_rplidar.launch

とするだけで,rvizで計測した点が表示されるお手軽さです.

rvizで表示した距離データ

rvizで表示した距離データ

計測可能距離は16m, 更新周期は10Hzと,高価なレーザスキャナと比べて性能では劣るものの,通常の屋内であれば地図生成や自己位置推定に問題はありません.スキャンは1度刻みで360度なので死角がありませんが,センサ上部がむき出しのままぐるぐると回転するので,動作中に触ってしまわないように注意が必要です.インターフェースはUSB2.0で,バスパワー駆動なのもうれしいところです.

laser_scan_matcherパッケージで少し遊んでみましょう.

$ roslaunch rplidar_ros view_rplidar.launch

としてセンサを起動した後,

$ rosrun laser_scan_matcher laser_scan_matcher_node _base_frame:=laser

として,センサの水平を保ちながら,ゆっくりと動かしてみます.

スキャンマッチング

スキャンマッチングの様子

初期状態ではworld座標系と一致していたlaser座標系が,センサの動きに応じて位置と姿勢がレーザのスキャンマッチングにより更新されていきます.センサを元の位置,姿勢に戻すと,だいたいworld座標系に一致しています.ただ,レーザのスキャンマッチングでは,フレーム間の移動量を推定してこれを積算するので,長く移動させるとエラーも積算されていきます.これを避けるためには,より高度な自己位置推定のアルゴリズムが必要になります.

Roomblockの詳細な作り方については,Instructablesで公開しています.ただし当社は,これらの内容によって生じるいかなる損害についても責任を負いません.興味がわいた方はあくまで自己責任で,チャレンジしてくださいね.

著者:Ryosuke Tajima

ルンバとラズベリーパイとレーザ距離センサによる自律移動ロボット Roomblock(3)

前回はルンバと通信するためのROIコネクタについて紹介しました.今回はルンバと通信するための計算機として用いている,ラズベリーパイ(Raspberry Pi)について書きます.

ラズベリーパイについては改めて言うまでもないかもしれませんが,低価格なARM搭載のボードコンピュータです.Roomblockで用いているのはラズベリーパイ2です.通常のPCと同じように,Ubuntuをインストールしたあと,ROSをインストールすることができます.

IMG_2457

Raspberry Pi 2

ルンバのROIコネクタとラズベリーパイは,USB-シリアル変換器を使って接続します.変換器を内蔵したケーブル秋月電子で購入できます)を使うと,ミニDINコネクタとはんだ付けするだけで写真のようなケーブルが出来上がります.Roomblockで唯一のはんだ付けが必要な部品ですが,3,4箇所をはんだ付けするだけなのでそれほど難しくないと思います.


IMG_2328IMG_1720 (1)
USB-シリアル変換ケーブル
「ラズベリーパイ自身がシリアルポートを持っているのではなかった?」と思った方,その通りです.工作の手間ができるだけ少なくなるようにUSB-シリアル変換器を使っていますが,おそらくラズパイの内蔵シリアルポートを配線しても動作すると思います.興味のある方は試してみてください.

ラズベリーパイの電源はどうしましょうか?ルンバのROIポートにも電源が出ているのですが,これはルンバのバッテリの電圧がそのまま出ているので,使う場合には電圧の変換が必要になってしまいます.Roomblockでは市販のUSBモバイルバッテリーを別電源として使用することにしました.10000mAのものが3000円程度で購入できる,良い時代になりました…これでラズベリーパイを数時間は動作させることができます.

IMG_1618

USBモバイルバッテリー

今回はここまでです.次はレーザースキャナについて紹介します.

Roomblockの詳細な作り方については,Instructablesで公開しています.ただし当社は,これらの内容によって生じるいかなる損害についても責任を負いません.興味がわいた方はあくまで自己責任で,チャレンジしてくださいね.

著者:Ryosuke Tajima

ルンバとラズベリーパイとレーザ距離センサによる自律移動ロボット Roomblock(2)

Roomblockに使えるルンバは,500, 600, 700, 800 シリーズと呼ばれるものです.これらの機種は,外部と通信するためのシリアルポートを備えています.ただし,現在の最上位機種のルンバ900シリーズは,画像による地図生成までできるすごいものですが,シリアルポートを備えていないのでRoomblockのベースとしては使用できないので注意してください.

ところでそのシリアルポートはルンバのどこにあるのでしょう?シリーズにより位置が異なります.500シリーズ,600シリーズは,上面のカバーを外さなければなりません.このカバーは4か所のツメで固定されていて,最初は少し硬いので外すのに力が必要です.ケガや破損に十分注意してください.


IMG_2455IMG_2453
Roomba 500シリーズのROIコネクタ
カバーを外すと,ミニDIN7ピンのコネクタが現われます.これがROI(Roomba Open Interface)コネクタと呼ばれるものです.

700シリーズ,800シリーズは,ルンバ上面の取っ手の下にROIコネクタがあります.カバーを外す必要はなく,取っ手を持ち上げるだけでアクセスできます.


IMG_2450IMG_2451
Roomba 700シリーズのROIコネクタ
以前は,このROIコネクタをPCと繋げるためのケーブルや,BluetoothWiFiで無線化するモジュールが販売されていましたが,,今は手に入らなくなっています.Roomblockでは,ルンバの上に搭載した計算機(ラズベリーパイ)をROIコネクタに接続しますが,これについては次回紹介します.

Roomblockの詳細な作り方については,Instructablesで公開しています.ただし当社は,これらの内容によって生じるいかなる損害についても責任を負いません.興味がわいた方はあくまで自己責任で,チャレンジしてくださいね.

著者:Ryosuke Tajima

Roomblock: ループを含む大きな建物での地図生成

名城大学構内で実験させていただいたデータから,ROSの地図生成パッケージで地図を生成してみました.データはROSのbagファイルとして取得したので,同じデータに対して異なる地図生成パッケージを適用することが可能です.

ROSの地図生成のパッケージとして,

  •  gmapping
  •  slam_karto
  • hector_slam
  • Google cartographer

の4つのパッケージを用います.

これまで家屋や廊下など,比較的狭い環境で地図を作ってきました.それらの環境ではどの地図生成パッケージも,(誤差はともかくとして),自律移動に使えないような大きく矛盾する地図を作成することはありませんでした.狭い部屋では,基本的にレーザセンサのデータをずっとつなぎ合わせ続けることで,部屋の地図を作ることが可能です.

しかし,今回のデータは非常に大きな建物の長方形の廊下を一周したものです.廊下を一周回って元の場所に戻ってきた時,それが元の場所であることを認識せず,そのままレーザセンサのデータをつなぎ合わせていくと,最初に作った地図と矛盾したものを上書きし続けてしまいます.これを避けるためには,現在居る場所が以前来たことのある場所であると認識した上で,地図全体を辻褄があうように生成しなければなりません.これは”loop closure”と呼ばれ,地図生成では非常に難しい問題です.

以下の動画は,4つのパッケージで地図を生成した結果をまとめたものです.地図のグリッドサイズは5cmとし,各パッケージのパラメータのほとんどはパッケージの規定値のままで,一部のパラメータのみ少し調整しました.

gmappingは非常に健闘しました.途中の廊下は真っ直ぐになっておらず,地図の形は後半にかけて不正確になっています.これはルンバのあまり正確でないオドメトリを少し信頼しすぎているようです.しかし,一周回ってきた最後に注目してください.以前来たことのある場所だと認識し,辻褄があうように地図全体を変形させました.矛盾のない,ほぼ正しい地図が出来上がりました.

slam_kartoは,今回はloop closureの検出に失敗してしまいました.一周回ってきた後,最初に作った地図を破壊しながら,新しい地図を上書きしていきます.矛盾した地図となってしまいました.

hector_mappingには,じつはloop closureの機能がありません.また,車輪の回転速度(オドメトリ)を使っていません.そのため,この環境ではうまく地図を作ることはできませんでした.

Google cartographerは最後発で,しかもこのような大規模環境の地図を作るために開発されたアルゴリズムです.やはりループを正しく閉じることに成功しました.


gmapping_mapkarto_maphector_mapcartographer_map

最終的に生成された地図(左から,gmapping, slam_karto, hector_slam, cartographer)

 

以上の結果は,どのパッケージやアルゴリズムが優れているか,どのパッケージを選ぶべきかということを示すものではないことに注意してください.今回,パラメータはほとんどチューニングしなかったので,それぞれのパッケージの最高の性能が出ているわけではありません.また,それぞれのアルゴリズムには得意不得意があるので,課題に対してどれが良いかは,実際に試してみないと分からないことが多いはずです.

現在のところROSはこのような様々な地図生成パッケージを比較検討できる唯一のプラットフォームです.オープンソースの利点を活かし,ぜひご自分の手で確かめてみることをお勧めします.

TORKでは,自律移動編を含むROS初級,中級のワークショップ,企業や大学でのプライベートワークショップのご依頼も承っております.お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Ryosuke Tajima

ルンバとラズベリーパイとレーザ距離センサによる自律移動ロボット Roomblock(1)

弊社のROS中級ワークショップ・自律移動編では,ルンバをベースとした自律移動ロボット”Roomblock”を教材として使用しています.不定期なエントリとして,このRoomblockの内容を紹介していきます.

まず,Roomblockは車輪移動台車として,iRobot社のお掃除ロボット,ルンバ(Roomba)を使用しています.驚かれる方もいるかもしれませんが,ルンバは実は通信用のシリアルポートを持っていて,パソコン等から操作したりセンサ情報を取得することが可能なのです.ルンバのこの機能は,発売当初から一部のエンジニアやホビイストの間で話題になり,ルンバを操作して楽しむ”Roomba Hacking”がブームとなったほどです.ROSが登場するよりもずっと前の話です.

IMG_1704

もう壊れてしまいましたが,2007年に私が初めて購入したRoombaです

iRobot社からは,”iRobot Create”という,掃除機能を省いた教育向けのルンバが発売されていたこともありました.ROSでも初期のTurtlebotプラットフォームは,このCreateをベースにしていました.現在はiRobot Createの販売は終了しており,TurtlebotもKobukiを用いたTurtlebot2, そしてRobotis社による独自プラットフォームTurtlebot3へと進化しています.

そんな中,なぜ今お掃除ロボット,ルンバを教材のベースとしたのでしょうか?3つ理由があります.

1つめは,ロボットの全体の価格をできるだけ抑えるためです.発売当初は割高に感じたルンバも,普及が進み今では3万円台から手に入るようになっています.屋内での自律移動に適したサイズ,車輪,センサなどを備えたロボットとしては破格です.

2つめは,ROSのパッケージがすでに存在していることです.それらを利用して,自律移動技術の本来的な目的である,地図生成や経路計画のソフトウェアの学習をすぐに始めることができます.

3つめは,ルンバが掃除をしてくれるからです…当たり前ですね.しかし,余暇にロボティクスを勉強したいエンジニアが,家族に「自律移動ができる10万円のロボットを買いたい」と言って納得してもらえるでしょうか?「ルンバなら掃除もしてくれるよ!」というとみんな喜んでくれます.

IMG_2278

最近では「ルンバ対応」のリビングチェアなるものまであります

おっと,つい話が長くなってしまいました.私ルンバが大好きなもので….今回はここまでです.

Roomblockの詳細な作り方については,Instructablesで公開しています.ただし当社は,これらの内容によって生じるいかなる損害についても責任を負いません.興味がわいた方はあくまで自己責任で,チャレンジしてくださいね.

著者:Kei Okada

Kinetic 用 ROS USB カメラドライバのリリース

長らく懸案だったKinetic用のROS USBカメラドライバが一斉リリースされました.

これらのパッケージ,Indigoまでは数多く利用されていましたが,最近はメンテナが不在になっており,ながらくKineticでは利用できませんでした.
このたび,Orphaned Package Maintainersという有志グループが立ち上がり,Kinetic移行でもリリースされる体制が確立されました.

これに従来からリリースされていた以下の加えて6つのドライバから自由に選ぶことが出来るようになりました.ROSを使った画像処理プログラミングをお楽しみ下さい.

kinetic-usb-camera

著者:Ryosuke Tajima

名城大学にて自律移動ロボットのデモ&実験をさせていただきました

 
ROS初級と中級・自律移動編を受講頂いた名城大学メカトロニクス工学科様のご好意で,自律移動ロボット”Roomblock”のデモンストレーションをさせていただきました.

ものの数分で部屋の地図を作った後,障害物を避けながら自律的に移動するロボットに,学生さんたちも興味津々でした.

2017-06-28 12.32.23 navigation_stage_3
その後,名城大学の真新しくてモダンな構内で,ロボットを動かしてデータを取る機会をいただきました.大きな長方形の通路を一周し,これまでにない大きなループの経路のデータを取ることができました.果たして,RoomblockとROSの地図生成パッケージはちゃんと地図を作ることができたのか,後ほど報告したいと思います.

IMG_2401 IMG_2414
名城大学の目黒先生,学生の皆様方,ご協力どうもありがとうございました.

TORKでは,自律移動編を含むROS初級,中級のワークショップ,企業や大学でのプライベートワークショップのご依頼も承っております.お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Isaac Saito

NEXTAGE OPEN も登場:MoveIt! 5周年記念モンタージュビデオ

ROS の動作計画ライブラリ MoveIt! が,5周年を記念してアプリケーション例のビデオを公開しました.

MoveIt! チームがこのようなビデオを公開するのは4年前・2013年に次いで2度目ですが,ソフトウェア公開間もなかった当時と比べ,だいぶ Pick&Place,物を掴んで目的地に設置するというタスクが多く,技術の進展が窺えます.個人的には MoveIt! の課題領域としても挙げられている台車,水中ローバ等の移動体に取り付けられたアームの制御例が数件含まれ,既に実現されてるのかも気になります (このページの “Mobile base integration”).

また弊社がその opensource 版ソフトウェアのメンテナンスに積極的に関わり,サポートサービスも提供させて頂いているカワダロボティクス社製 NEXTAGE OPEN も登場します.弊社ブログ上でもお馴染み?の Spain のシステムインテグレータ・Tecnalia 社が手がける Airbus 向けアプリと思われます.

Hironx in motion from MoveIt! 5-year montage. Image courtesy of Tecnalia

Hironx in motion from MoveIt! 5-year montage by courtesy of Tecnalia

TORK では2013年の創業以来,ROS,MoveIt! のソフトウェア改良,普及に貢献し続けています.貴社ロボットへの MoveIt! の導入御検討であれば,弊社ワークショップで体験もできますので,参加を是非御検討下さい.

P.S. 今回のビデオの開発者一覧も公開されました.

(0:06) Delft Robotics and TU Delft Robotics Institute
(0:09) Techman Robot Inc.
(0:13) Correll Lab, CU Boulder
(0:37) Nuclear & Applied Robotics Group, Unv Texas
(0:50) Beta Robots
(0:55) GIRONA UNDERWATER VISION AND ROBOTICS
(1:03) Team VIGIR
(1:34) Honeybee Robotics
(1:49) ROBOTIS
(1:58) TECNALIA
(2:05) Correll Lab, CU Boulder
(2:26) TODO Driving under green blocks
(2:38) ROBOTIS
(2:54) Fetch Robotics
(3:05) Hochschule Ravensburg-Weingarten
(3:12) TU Darmstadt and Taurob GmbH – Team ARGONAUTS
(3:20) isys vision
(3:27) Technical Aspects of Multimodal System Group / Hamburg University
(3:33) Clearpath Robotics
(3:43) Shadow Robot

著者:Yumiko Suzuki

ROS Workshop Schedule from July to August 20172017年7月-8月のROSワークショップ日程


Here are the schedule of our ROS workshop series in Summer 2017!

July 05 Wed. 13:30- Introductory
July 12 Wed. 13:30- Introductory
July 19 Wed. 13:30- Introductory
Aug. 02 Wed. 13:30- Introductory
Aug. 08 Tue. 13:30- Introductory
Aug. 30 Wed. 13:30- Introductory
Venue: Yurakucho, Tokyo

Inquiries: info[at]opensource-robotics.tokyo.jp



以下日程でROSワークショップを行います.

7月05日(水)13:30~ ROSワークショップ初級編
7月12日(水)13:30~ ROSワークショップ初級編
7月19日(水)13:30~ ROSワークショップ初級編
8月02日(水)13:30~ ROSワークショップ初級編
8月08日(火)13:30~ ROSワークショップ初級編
8月30日(水)13:30~ ROSワークショップ初級編

場所は都内・有楽町の会議室での実施を予定しています.

中級編についてはご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Isaac Saito

MoveIt! 計画された軌道のビジュアライゼーション

2017年6月初のパッケージ更新により MoveIt! が更新され,これまで要望のあった軌道の目視確認機能が追加されました.
これまでは,生成させた経路を確認するには,RViz 上で “Loop Animation” をオンにして経路を反復再生させる手があったかと思います.この方法だと経路の途中の任意の経由点で止めることはできませんでした.
今回追加された機能を使うと,RViz 上でスライダを移動することにより,軌道の経由点を静止した状態で目視確認できます.

Introspect waypoints in a planned trajectory on MoveIt! on NEXTAGE Open.

As you see on the slider on the left side, you can now introspect each waypoint in a planned trajectory on MoveIt! on NEXTAGE Open.

本機能を有効にする方法はチュートリアルを参照下さい.

著者:Ryosuke Tajima

ROS Intermidiate (Navigation) Workshop in Nagoya 名古屋にてROSワークショップ中級・自律移動編を開催しました

We had the intermidiate ROS workshop on navigation at Meijo University, Nagoya, Aichi. They learned the navigation features of ROS using simulation and a real robot named “Roomblock”, Roomba based robot. Mapping, localization, control are

Thanks everyone, and well done!!


前回の初級編に続き,名古屋市の名城大学メカトロニクス工学科で,プライベートROSワークショップ中級・自律移動編を開催しました.この自律移動編は今年度から新しく始まったもので,初めての開催となります.

中級・自律移動編では,まずシミュレータを用いた自律移動技術のハンズオンを行います.つぎに,iRobot社の掃除ロボット,ルンバをベースにした自律移動ロボット”Roomblock”を用いて実際に地図生成と自律移動を行います.”Roomblock”はラズベリーパイとLIDAR(レーザ距離スキャナ)を備えた立派な自律移動ロボットで,部屋の地図を作り,目的地を設定してそこに移動することができます.最後に,ROSの自律移動機能の解説(全体の構成,関連するtopic, move_baseの仕組みなど)を受け,ハンズオンで出てくる疑問点を解消していきます.

車輪移動ロボットの操作方法,地図の生成,自律移動を実際にやってみることで,自律移動技術の理解がより深まるものと思います.参加者の皆様方,お疲れ様でした.今後の研究開発の一助となれば幸いです.

このように,TORKでは企業や大学でのプライベートワークショップのご依頼も承っております.また,本年からは中部地区での開催を増やしていこうと考えています.お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_2340

IMG_2346

IMG_2347

著者:Ryosuke Tajima

ROS Basic Workshop in Nagoya. 名古屋にてROSワークショップ初級編を開催しました

We had ROS Workshop at Meijo University, Nagoya, Aichi. They run through the basic of ROS, such as sensing, actuating and connecting them together. Many questions and answers was made, for comprehensive understanding to use ROS.

Great work, everyone!!

名古屋市の名城大学メカトロニクス工学科で,プライベートROSワークショップ初級編を開催しました.

初級編では環境の構築からセンシングデバイス(LeapMotion),ラジコンサーボ(Dynamixel)をROSで動かすところまでを半日で行いました.その中で出てくる疑問点(たとえばROSの概念的な部分から具体的な操作など)にもお答えいたしました.

これからバリバリ研究して行こうという学生のみなさんに,まずはROSを効率よく使っていくお手伝いができたのではないかと思います.

ROSを初めて勉強する人へのブログも公開しています. 合わせてご参考になさってください.

このように,TORKでは企業や大学でのプライベートワークショップのご依頼も承っております.また,本年からは中部地区での開催を増やしていこうと考えています.お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_2313

IMG_2308

著者:Yumiko Suzuki

ROS Workshop for Beginners on 14th June ROSワークショップ初級編を開催しました

We had ROS Workshop at Yurakucho, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



今回も有楽町の会議室にてROSワークショップ初級編を開催しました.
参加者の方が開発中のシステムの質問もお受けしました.皆様お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

7-8月のワークショップ日程を公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,その他OSSに関するご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

著者:Yumiko Suzuki

TurtleBot3!

本日は株式会社ROBOTIS日本支店長の柴田さん,森永さんにお越しいただき有楽町にてミーティングを実施しました.
噂のTurtleBot3のプロトタイプをお持ちいただきました!

夏の正式発売を前に最後の追い込み作業中だそうです.発売が楽しみですね!

夏まで待てない人はドキュメンテーションを読んでわくわくしましょう.
http://www.turtlebot.com/
http://turtlebot3.robotis.com/en/latest/
https://github.com/ROBOTIS-GIT/turtlebot3

ROS,OSS,ロボティクスに関するご相談,プライベートワークショップ等,お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_20170605_140619

IMG_20170605_133747

著者:Yumiko Suzuki

ROS Workshop for Beginners on 25th May ROSワークショップ初級編を開催しました

We had ROS Workshop at Yurakucho, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



今回も有楽町の会議室にてROSワークショップ初級編を開催しました.
積極的な質問をいただきながら最後まで完遂しました.皆様お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

4-6月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_20170525_174854

著者:Ryosuke Tajima

ROS Workshop Intermediate Course (Navigation) is coming soonROSワークショップ中級・自律移動編を始めます!

当協会では,

  • ROSワークショップ初級編
  • ROSワークショップ中級・マニピュレーション編
  • ROS ワークショップ初級編・産業用双腕 Baxter

といった,ROSを学習するためのワークショップを開催してまいりました.

2017年度からは新たに,

  • ROSワークショップ中級・自律移動編

の開催を計画しております.

「自律移動編」では,シミュレーションででROSの自律移動を体験していただくハンズオン,ラズベリーパイ(Raspberry Pi)とルンバ(Roomba),RPLIDARを用いた自律移動ロボット“Roomblock”での実際の地図作成,自己位置推定といった自律移動に必要な機能を実践的に学んでいただけます.また,ROSの自律移動機能の全体像や,構成パッケージについても解説いたします.

こちらのセミナーは有償となります.金額については,info[a t]opensource-robotics.tokyo.jp までお問い合わせ下さい.正式な開催日時等決まりましたら,また当ウェブサイトにてお知らせさせて頂きます.出張ワークショップも承っております.お気軽にご相談ください.

引き続き,「初級編」「マニピュレーション編」「Baxter編」の参加者も募集しております.詳細は,上記メールアドレスまでお問い合わせ下さい.

We have been coordinated three workshops for ROS learners:

  • ROS workshop basic course
  • ROS workshop intermediate course (Manipulation)
  • ROS workshop with Baxter

Now, we are pleased to announce a new course will be added soon:

  • ROS workshop intermediate course (Navigation)

This course is focus on the navigation system of ROS. You can learn the advantage of  ROS navigation using simulation. Furthermore, we prepare mobile robot named “Roomblock”, which consists of Roomba, Raspberry Pi and RPLIDAR. The overview of the navigation system and the packages are also lectured.

Same as before we’re coordinating in Japanese language but any interest is appreciated toward info[a t]opensource-robotics.tokyo.jp.

著者:Yumiko Suzuki

ROS Workshop for Beginners on 10th May ROSワークショップ初級編を開催しました

We had ROS Workshop at Yurakucho, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



今回は有楽町の会議室にてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.
一つ一つのタスクに対して積極的な質問をいただきながら最後まで完遂しました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

4-6月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_20170510_171206 IMG_20170510_171247

著者:Isaac Saito

(図面付き) NEXTAGE OPEN の頭部カメラのキャリブレーションHead-mount stereo camera calibration for NEXTAGE OPEN


NEXTAGE OPEN で頭部ステレオカメラを利用する際の,カメラの姿勢を手軽にキャリブレーションする方法を公開しました

ROS では幾つかカメラを用いたキャリブレーション用パッケージが利用できます.ROS 初期の代表的ロボット PR2 向けに作られた calibration,産業用ロボット向けに豊富な機能を持つ industrial_extrinsic_cal,最近ではキャリブレーション結果を用いてロボットのキネマティクス情報を更新してくれる robot_calibration というのもあります.いづれもハードウェア and/or ソフトウェアの前準備が大変だったり,高機能ゆえに計算に時間がかかったりと,扱いに慣れが必要です.

今回ご紹介する方法は基本的にチェッカーボードをロボットに固定さえすれば実施可能です.詳しい方法を ROS wiki に記載しています.ステレオカメラで胸部あるいは腰部に固定したチェッカーボードを認識することにより,頭部カメラのロボット上の相対姿勢を取得します.カメラの据付位置座標が分かれば,Gazebo シミュレータ上でもキャリブレーションを行い相対姿勢を取得することが可能です.


胸部に付けたチェッカーボードを認識中


ロボットに固定したチェッカーボードを認識することで,ROS の座標変換ライブラリ “tf” により,カメラの正確な相対姿勢が判明します.


Gazebo 上の Kinect でチェッカーボードを認識している様子.

なお,キャリブレーションに用いたチェッカーボードの NEXTAGE OPEN 本体への取付けに必要な部品一式の図面もGitHub 上で公開しています.また,TORK では Xtion をかっこ良く頭部に取り付けたい場合 外装を御用意しています (日本国内のみ).

現状では上記 wiki ページで紹介されている方法は Kinect 或いは Xtion を利用しています.NEXTAGE OPEN がデフォルトで搭載する頭部の Ueye カメラ二基を用いても同じ方法は有効のはずですが,Ueye 個別の操作方法は未だ記載していません.ROS wiki は誰でも編集できるので,もし Ueye でキャリブレーションに成功した方がいたら是非情報を追記頂けると,全世界の NEXTAGE OPEN ユーザが喜ぶと思います!


Recently we’ve updated the instruction for the NEXTAGE OPEN’s calibration using head-mount stereo cameras.

There has been mutilple camera/robot calibration packages in ROS; calibration package worked well for the PR2 robot, a high-functional reference model of ROS in the early era until very recently. Then for industrial usage industrial_extrinsic_cal was developed with abundant functionalities to cope with complexed needs. Relatively newer robot_calibration package, which is maintained by the warehouse robot manufacturer Fetch, even updates the robot’s kinematics parameters using the calibration result. Almost all of these practical features come with a cost of labor in hardware and/or software, however.

The approach we’re presenting is simple enough since all you need is a checkerboard — not even a board but a plain or even a piece of paper will do as long as checker matrix is printed on it. Detailed steps are available on ROS wiki. Basically get the pose of the camera mounted on top of the head or actually anywhere on the robot, by recognizing the checkerboard. You can also carry out the calibration on Gazebo simulation as long as you know the location to attach the camera so that you can spawn the camera’s 3D model in the virtual world.


Detecting a checkboard at the chest.


Recognizing the checker pattern, which is in a fixed pose w.r.t the robot, yields the camera’s relative pose w.r.t the robot as a result of “tf” computation.


Seeing checkerboard through a simulated Kinect on Gazebo.

We’ve also made the design of the checkerboard kit publicly available on NEXTAGE OPEN’s GitHub repository so that any handyperson can go through these steps.

As of now the instruction in the wiki above only uses Kinect or Xtion, i.e. the operation of the Ueye cameras that NEXTAGE OPEN comes with by default is a bit different but that’s not documented yet, although the calibration part is intended for any ROS-based stereo camera so it should work for Ueye too. Every one is welcomed to edit ROS wiki to add your findings in this regard. Power of opensource!

著者:Yumiko Suzuki

ROS Workshop Schedule from April to June 20172017年4月-6月のROSワークショップ日程


Here are the schedule of our ROS workshop series during the 2nd three months of 2017!

Apr. 28 Fri. 13:30- Introductory
May 10 Wed. 13:30- Introductory
May 18 Thu. 13:30- Introductory
May 25 Thu. 13:30- Introductory
June 08 Thu. 13:30- Introductory
June 14 Wed. 13:30- Introductory
Venue: Yurakucho, Tokyo

Inquiries: info[at]opensource-robotics.tokyo.jp



以下日程でROSワークショップを行います.

4月28日(金)13:30~ ROSワークショップ初級編
5月10日(水)13:30~ ROSワークショップ初級編
5月18日(木)13:30~ ROSワークショップ初級編
5月25日(木)13:30~ ROSワークショップ初級編
6月08日(木)13:30~ ROSワークショップ初級編
6月14日(水)13:30~ ROSワークショップ初級編

場所は都内・有楽町の会議室での実施を予定しています.

中級編についてはご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

上記以外での日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Yumiko Suzuki

We have moved !移転


We are pleased to announce that our office will be relocated to the following address as of April 1, 2017.

Location:
the 6th floor of the Tokyo Kotsu Kaikan building
2-10-1 Yurakucho
Chiyoda-ku, Tokyo, 100-0006, Japan

Phone number is unchanged.


2017年4月1日に移転いたしました.

移転先住所
〒100-0006
東京都千代田区有楽町2-10-1東京交通会館ビル6F

電話番号に変更はありません.

有楽町・銀座で皆様とお会いできることを楽しみにしております.
引き続きご支援賜りますようお願い申し上げます.


IMG_20170216_143001

著者:Yumiko Suzuki

ROS Workshop for Beginners on 22th March ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



本日も本郷のミーティングスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.
一つ一つのタスクに対して積極的な質問をいただきながら最後まで完遂しました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

4-6月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_20170322_172936

著者:Yumiko Suzuki

ROS Workshop for Beginners on 16th March ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
One participant prepared own Ubuntu PC and installed indigo, the other used our LiveUSB.

You can experience ROS workshop by the LiveUSB without installation of Ubuntu on your machine.

Thanks you for joining us!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
実施時間中にROSに関するお困りごとだけでなく,オープンソースを社内で運用していく際の疑問点等にも随時お答えしています.

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

4-6月のワークショップ開催日程も公開中です!

出張セミナー,カスタマイズワークショップ,個別コンサルティング,プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_20170316_183903 IMG_20170316_183911

IMG_20170316_183919 IMG_20170316_183855

著者:Yumiko Suzuki

ROS Workshop for Beginners on 2nd March ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
One participant prepared own Ubuntu PC and installed indigo, the other used our LiveUSB.

You can experience ROS workshop by the LiveUSB without installation of Ubuntu on your machine.

Thanks you for joining us!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
実施時間中にROSに関するお困りごとだけでなく,オープンソースを社内で運用していく際の疑問点等にも随時お答えしています.

4-6月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

出張セミナー,カスタマイズワークショップ,個別コンサルティング,プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_20170302_161244

著者:Yumiko Suzuki

ROS Workshop for Beginners on 22th Feburary ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



本郷のミーティングスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.
一つ一つのタスクに対して積極的な質問をいただきながら最後まで完遂しました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

4-6月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_20170222_164044

著者:Yumiko Suzuki

ROS Workshop Schedule, from February to March 20172017年2月-3月のROSワークショップ日程


Here are the schedule of our ROS workshop series during the first three months of 2017!

Feb. 22 Wed 13:30- Introductory
Mar. 02 Thu 13:30- Introductory
Mar. 16 Thu 13:30- Introductory
Mar. 22 Wed 13:30- Introductory
Mar. 29 Wed 13:30- Introductory

Venue: Hongo, Tokyo

Inquiries: info[at]opensource-robotics.tokyo.jp



以下日程でROSワークショップを行います.

2月22日(水)13:30~ ROSワークショップ初級編
3月02日(木)13:30~ ROSワークショップ初級編
3月16日(木)13:30~ ROSワークショップ初級編
3月22日(水)13:30~ ROSワークショップ初級編
3月29日(水)13:30~ ROSワークショップ初級編

場所は都内・本郷のミーティングスペースでの実施を予定しています.
中級編についてはご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.
(初級編を受講した方を対象としております.中級マニピュレーション編のページをご参照ください)

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

日程の調整,その他ご相談,開発委託,出張ワークショップ,カスタマイズワークショップも承っております.お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Yumiko Suzuki

ROS Workshop for Intermediate Manipulation on 31th January プライベートROSワークショップ中級・マニピュレーション編を開催しました


We had ROS Workshop for Intermediate Manipulation at Nagoya, Japan.

The participants also joined our Beginners Workshop a few weeks ago, then re-setup own PC and review all contents.

Thanks you for joining us!!


今回は企業様の会議室をお借りして,プライベートROSワークショップ中級・マニピュレーション編を開催しました.

長時間の講習お疲れ様でした.ご依頼いただきありがとうございました.

2017年4-6月の初級編のスケジュールを公開しています.

プライベートワークショップ,出張ワークショップ,カスタマイズワークショップ,その他ご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_20151118_175839

著者:Isaac Saito

2017 MoveIt! 新機能その2;動作の停止.求ム実機テスター!2017 MoveIt! update pt.2; Stopping motion on NEXTAGE needs your help


MoveIt! の年初一発目の更新については前回機能を一つ,NEXTAGE Open を利用してお伝えしました.今日ご紹介する動作計画の停止機能は,弊社でも要望を何度もユーザ様から伺っていた機能です.

平たく言えば,ロボットが任意の動作を実行している最中に,途中で停止する機能です.動作を停止したい状況は安全に関わるケース以外でもいろいろ考えられるため,非常停止装置などを用いて危険回避目的でロボットの全動作を停めるのではなく,プログラミングのレベルで特定の動作だけを停止ができるとアプリケーション開発上嬉しいことがあります.MoveIt! ではこの停止する標準的な方法がなかったのですが,今回追加されました (ちなみに本機能の作成は GSoC で日本人の修士学生が主導した模様).

早速 Pepper のシミュレーションで使ってみました.


In the previous post we introduced one of the many new features that were added to MoveIt! with its first update in 2017. Next feature we want to mention is the “stop motion”, which we’ve received many questions from our NEXTAGE users about.

Other than situations where you need to stop robots to move for the safety reasons, there can be many cases you want to stop/cancel/halt your robot for your application. The standard way to achieve this in MoveIt! had been lacking, which is finally organized this time (lead by a student at GSoC project by the way).

It works well with Pepper robot on simulation. You see the arm stops as soon as the “stop” button on RViz was clicked.



RViz 画面上に新たに追加された “Stop” ボタンを押すと,腕の動作が止まっているのがわかりますでしょうか.

この便利機能なのですが,弊社がサポートする NEXTAGE Open のオープンソースソフトウェアではまだ動作しません.修正パッチが作成され,シミュレーション上では期待通り動作することが確認されましたが,ロボット実機の挙動への影響があり得るため,実機テストが必要となっています.NEXTAGE Open をお持ちの方々で,もしテストに協力しても良いという方がいらっしゃれば,info[a_t]opensource-robotics.tokyo.jp 宛に連絡頂くか,Github 上の当該の問題のチケットに書き込みいただければ,ご支援させて頂きます.


This nice feature, however, does not YET work with the NEXTAGE Open. Don’t worry much, there’s a work going on already and we confirmed a patch submitted from a community member solves the issue on simulation! We just need to test the patch on the real NEXTAGE Open robot, and this is where we need a help from the robot owners. If you think you can help us testing with your own robot, please contact TORK at info[a_t]opensource-robotics.tokyo.jp or joint the discussion at the ticket for this issue on Github so that we’ll communicate with you. Thank you for your understanding toward opensource!

著者:Isaac Saito

First MoveIt! Update in 2017. Using it on NEXTAGE pt.12017年始早々 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の間でスケールすることができるようになっています.


New version of MoveIt! binary 0.7.6 is just released for ROS Indigo, first time in 2017 (for sure!) and first release since June 2016. This version comes with some long-wanted features (along with bug fixes of course) that we’re trying out using NEXTAGE simulator.

1. Changing trajectory velocity and acceleration during runtime

Changing the speed of the trajectory during runtime has been one of FAQs from NEXTAGE users who use MoveIt!, let alone many MoveIt! users on the globe. Now through MoveIt! RViz plugin you can conveniently configure that on the fly on the spinboxes added.

moveit-rviz_vel-accel_nxo_2

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

次回に続く.


To configure that programmatically, see this tutorial that explains chainging MotionPlanRequest topic would do the work.

TORK is very actively contributing the development and maintenance of MoveIt!.

著者:Yumiko Suzuki

【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

著者:Isaac Saito

Dynpick force-torque sensor ROS driver update thanks to opensource contributionOpensource にしているおかげで Dynpick 力覚センサ の ROS ドライバの対応機種が増えました

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

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

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


ROS device driver for force-torque sensor Dynpick, one that TORK joins its maintenance, has been known to work for a discontinued product only so far. Now someone in the opensource community just confirmed that the package works with a product that’s still available!

Products confirmed to work has been and will be updated on the driver’s wiki page. Report, questions can be posted on its Github page.

And as always, may the power of opensource be with you. Happy holidays!



Dynpick (Image source)

著者:Isaac Saito

TORK to co-host Toyota HSR workshop for usersトヨタ HSR ユーザ向けセミナを行いました


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

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

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


TORK has been partnering with the “HSR” welfare robot’s dev team at Toyota Motors Corporation (TMC). In 2014 and the last year 2015 we worked together with them for the hackathon.

This year we worked with TMC again to host developers workshop at 4 venues in Japan. In addition to going over the robot’s unique features and programming using ROS, we particularly focused on utilizing the online community designated for HSR owners, which TMC initiated in 2015 and maintains by themselves (membership-only as of today). Goal is that participants get hands on experience in interacting on the developers community so that they can accelerate their own development, which also contributes to develop the community size and maturity, which the developers ultimately appreciate. That said the seminar series this time is the beginning of building the communiy’s life cycle as TMC’s dev team intended.

CIMG3657 CIMG3749 tokyo20_crop S2060008 IMG_20161108_112241 IMG_20161108_111225 DSC_0312 DSC_0302

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

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


Also discussed is problem isolation – engineers often need to figure out the types of problems and post questions at the best community per incident. This is more an advanced subject, but participants well exceeded our expectation to separately post HSR-specific questions and generic-ROS questions on the forums of each. This may have resulted in the positive spike of the number of posts at the ROS Japanese user groups as you see in the graph below (workshop series started in October).

graph_num-newPost_ros-japan-users_2016


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


Closing this blog post with some videos from the code challenge at the end of the workshops. We truly hope that we’ve contributed to the HSR and the world of robotics community by encouraging community involvement.






著者: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.

著者:Yumiko Suzuki

ROS Workshop Schedule, from October to December 20162016年10月-12月のROSワークショップ日程


Here are the schedule of our ROS workshop series during the last three months of 2016!

Oct. 27 Thu 13:30- Introductory
Nov. 02 Wed 13:30- Introductory
Nov. 22 Tue 13:30- Introductory
Dec. 01 Thu 13:30- Introductory
Dec. 06 Tue 13:30- Introductory
Dec. 09 Fri 13:30- Introductory
Dec. 21 Wed 13:30- Introductory

Venue: Hongo, Tokyo

Inquiries: info[at]opensource-robotics.tokyo.jp



以下日程でROSワークショップを行います.

10月27日(木)13:30~ ROSワークショップ初級編
11月02日(水)13:30~ ROSワークショップ初級編
11月22日(火)13:30~ ROSワークショップ初級編
12月01日(木)13:30~ ROSワークショップ初級編
12月06日(火)13:30~ ROSワークショップ初級編
12月09日(金)13:30~ ROSワークショップ初級編
12月21日(水)13:30~ ROSワークショップ初級編

場所は都内・本郷のミーティングスペースでの実施を予定しています.
中級編についてはご要望があり次第,日程を調整いたしますのでメイルにてお問い合わせください.

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編

日程の調整,その他ご相談,企業内ワークショップ,カスタマイズワークショップも承っております.お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Isaac Saito

catkin-tools – our OSS contribution pt.2 catkin-tools 便利機能に貢献しました その二


Following our previous post about a nice hidden tip for catkin-tools, here’s another one.

When finishes compilation, `catkin build` shows a pop-up window at the top-right on your screen (if you’re on Ubuntu Linux), which indicates `Build Finished` or `Build Failed`. This is nice in that you can work on another windows without payting attention to catkin’s progress. Caveat is, though, that “Finished” and “Failed” aren’t that obviously differentiating whatsoever.

With the newer version of catkin-tools, 0.4.3 or higher, the window pops up with a distinguishable colors; Green for success and red for failure.

This little but significantly effective change is done by our TORK associates again. The change was made swiftly and neatly as it has always been in the opensource software community.


先日ROS の非公式ビルド/コンパイルツールである catkin-tools について便利な技を紹介しましたが,今日ももうひとつ便利機能を紹介します.

`catkin build` を実行してコンパイルしたあと,ディスプレイの右上に `Build Finished` または `Build Failed` というポップアップウィンドウが表示されますね.これで,catkin-tools を実行しているターミナルで以外のウィンドウで作業していても,コンパイルが終わったことを瞬時に知ることができます.でも,これ,英語に慣れていないと,Finished (終了,正常) なのか Failed (失敗) なのかを瞬時に把握するのが難しいですよね.いや,英語に慣れていても紛らわしいですかね.

そこで catkin-tools のバージョン 0.4.3 からは,成功していたら緑色,失敗していたら赤色のアイコンが表示されるように改善されました.

ちなみにこれも TORK 関係者のプルリクエスト (変更案の提供) によるものでした.こういう小さい改良を根気よく皆で続けることがオープンソースの強みですね.

UPDATE 1/6/2017 catkin_tools 0.4.3 がやっとリリースされ,ここで取り上げている機能が使えるようになりました.記事先行してしまいお待たせしていたら失礼しました.

catkintools_failure

catkintools_success

著者:Yumiko Suzuki

ROS Workshop for Intermediate Manipulation on 16th September ROSワークショップ中級・マニピュレーション編を開催しました


We had ROS Workshop for Intermediate Manipulation at Hongo, Tokyo.

The participant also joined our Beginners Workshop a few weeks ago, then re-setup her own PC, purchased robot parts and review all contents.

Thanks you for joining us!!


今回は本郷のオープンスペースにて,ROSワークショップ中級・マニピュレーション編を開催しました.
本郷のオープンスペースはコーヒーが一日中無料です!

本日の参加者の方は初級編の機材一式を購入し復習されたそうです.
長時間の講習お疲れ様でした.ありがとうございました.

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_20160916_164910

著者:Yumiko Suzuki

private OSS meeting on 27th September OSS座談会を開催しました

We had a prvate OSS meeting at a conference room of a company, Tokyo.

Trying to use OSS and ROS in your project, a lot of question will come out.
We can cleay answer you about the procedures and questions on using OSS and ROS.

Private workshops and other consultations are also accepted.
Please do not hesitate to contact us!



今回はある企業様の会議室をお借りしてOSS座談会を開催しました.

社内でROSやOSSを使っていくには,社内で抵抗があったり,心配事やわからないことがあるかと思います.
弊社では,OSSを使っていくにあたっての手順やご質問に,ご希望の場所にお伺いしてお答えしています.

プライベートワークショップ,その他ご相談も承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


OSS産業応用

著者:Yumiko Suzuki

ROS Workshop for Beginners on 13th September ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
One participant prepared own Ubuntu PC and installed indigo, the other used our LiveUSB.

You can experience ROS workshop by the LiveUSB without installation of Ubuntu on your machine.

Thanks you for joining us!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
実施時間中にROSに関するお困りごとだけでなく,オープンソースを社内で運用していく際の疑問点等にも随時お答えしています.

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

出張セミナー,カスタマイズワークショップ,個別コンサルティング,プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_20160913_162032 IMG_20160913_162027

著者:Isaac Saito

catkin-tools tipcatkin-tools 隠れ便利機能その一

ROS ではコンパイルを行う catkin_make という独自ツールが用意されています.CMake というソフト開発でとてもよく使われるコンパイルようツールを拡張したもので,沢山のソフトウェアパッケージを一気にコンパイルする必要も往々にして発生するロボティクスにおいて便利なツールです.一方で,遅い!だとか,コンパイル実行の度にいちいちフォルダ移動めんどい!等課題も多く指摘されており,非公式ではありますが改良版の catkin-tools というのがあります.先に述べたような根本的な問題から,痒い所に手が届く的なウレシイ機能までよく出来たツールで,人気を集めています.

使い方等は上記リンクを辿っていただくことにして,今日はまったく知られていないもののなかなか便利な機能を紹介します.

catkin_make あるいは (catkin-tools だと) catkin build を実行しコンパイルした後に,コンパイル成功したソフトの情報をターミナルに読み込ませるために次のようなコマンドを実行することになっているかとおもいます.

    source ~/catkin_ws/devel/setup.bash

コンピュータ上の path を意識させないのが ROS なので,上のコマンドには違和感を感じ続けてきた方も居たのでしょうか.catkin-tools はやってくれました.まず

    source `catkin locate --shell-verbs`

とすると,catkin source というコマンドがつかえるようになります (back quote に注意).このコマンドは絶対 path を意識せずに環境情報の読み込みが可能にします.例えば,

cd ~/catkin_ws/src/ros_seminar
catkin source

と実行すると,上記の絶対 path コマンドと同じことをしたことになります.どのディレクトリにいても大丈夫なので,例えば次のどれでも結果は同じになります.

 cd ~/catkin_ws/src/ros_seminar
 cd ~/catkin_ws/src/ros_seminar/rosseminar_hironx
 cd ~/catkin_ws/src/

便利ですね!ROS ではコンパイルを行う catkin_make という独自ツールが用意されています.CMake というソフト開発でとてもよく使われるコンパイルようツールを拡張したもので,沢山のソフトウェアパッケージを一気にコンパイルする必要も往々にして発生するロボティクスにおいて便利なツールです.一方で,遅い!だとか,コンパイル実行の度にいちいちフォルダ移動めんどい!等課題も多く指摘されており,非公式ではありますが改良版の catkin-tools というのがあります.先に述べたような根本的な問題から,痒い所に手が届く的なウレシイ機能までよく出来たツールで,人気を集めています.

使い方等は上記リンクを辿っていただくことにして,今日はまったく知られていないもののなかなか便利な機能を紹介します.

catkin_make あるいは (catkin-tools だと) catkin build を実行しコンパイルした後に,コンパイル成功したソフトの情報をターミナルに読み込ませるために次のようなコマンドを実行することになっているかとおもいます.

source ~/catkin_ws/devel/setup.bash

コンピュータ上の path を意識させないのが ROS なので,上のコマンドには違和感を感じ続けてきた方も居たのでしょうか.catkin-tools はやってくれました.まず

source `catkin locate --shell-verbs`

とすると,catkin source というコマンドがつかえるようになります.このコマンドは絶対 path を意識せずに環境情報の読み込みが可能にします.例えば,

cd ~/catkin_ws/src/ros_seminar
catkin source

と実行すると,上記の絶対 path コマンドと同じことをしたことになります.どのディレクトリにいても大丈夫なので,例えば次のどれでも結果は同じになります.

cd ~/catkin_ws/src/ros_seminar
cd ~/catkin_ws/src/ros_seminar/rosseminar_hironx
cd ~/catkin_ws/src/

便利ですね!

著者:Yumiko Suzuki

ROS Workshop for Beginners on 7th September ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
The participant prepared own Ubuntu PC and installed indigo.
You can experience ROS workshop by the LiveUSB without installation of Ubuntu on your machine.

Thanks you for joining us!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,オープンソースを社内で運用していく際の疑問点等にも随時お答えしています.

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

出張セミナー,カスタマイズワークショップ,個別コンサルティング,プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_20160907_160749

著者:Yumiko Suzuki

ROS Workshop for Beginners on 2nd September ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
皆さん,ご自身のPCにROSをインストールしてのご参加でした.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp

IMG_20160902_175735 IMG_20160902_175741

著者:Isaac Saito

NEXTAGE Open in Singapore revisited: both hands assembly using camera imageNEXTAGE Open in シンガポールその2:画像処理と両手を使った物品組み立て


ROS が普及したことで,ロボット開発者の間である種の共通言語となりつつあると言っても過言ではありません.既に多くのロボットの可動実績があり,ユーザ数は10万人を超えるとも言われ (2015年 ROSCon より),ロボットのシステム構築において着実に情報が蓄積されており,それを元に更に益々ユーザ層が厚くなるといった良い循環ができています.

とはいえロボット毎のハードウェアの違いを基にした差異は避けられないもの.同じロボットを扱う開発者間の情報は貴重でしょう.
弊社がソフトウェアのメンテナンスを中心となって行わせて頂いている NEXTAGE Open (カワダロボティクス社) も世界中にユーザがおり,私達も情報共有に微力ながら貢献しています.NEXTAGE Open の ROS 版ソフトウェアの利用に際して,議論はメーリングリストへ,御質問は github へどうぞ.


表.github 上で議論中のチケット一覧

nxo_ntu_bothhands_pickplace
今日は,先日もお伝えしたシンガポールの Nanyang Technological University (NTU) の研究者が公開している,NEXTAGE Open の動画を紹介します.今回はカメラからの入力を元に幾つかの Pick&Place を行っているようです.今のところこれら動画中のアプリケーションソフトウェアは公開されていないようですが,御興味があれば動画サイトのコメント機能でコメントで開発者に連絡してみると良いでしょう.


One of its many achievements as ROS being used for more and more robots is that it’s becoming a common language for the robot developers. One estimate (which is actually made by the CEO at OSRF, the maintenance organization of ROS) indicates that the userbase has now well reached 100,000 at the time of 2015 ROSCon. With vast amount of userbase with accumulated information for robot system development, we’re seeing a very successful lifecycle of ROS collectively expanding more info and users.

Still, flesh side of robots – hardware – inevitably differentiates the application level of development per robot, and therefore the conversation among the users of the same robots is valuable. For NEXTAGE Open (Kawada Robotics Inc.), the one that we TORK has been actively maintaining, there are a couple of active forums: discussion can be started at mailing-list and questions at its github.


Table. Current issues of NEXTAGE Open ROS software on github

Today we have a few videos from researchers from NTU (Nanyang Technological University) (there was one blog post before already) in Singapore that utilize vision input for pick & place application. Code for these app are likely not yet publicized but you can contact the researchers’ group by commenting on each video on the video sharing website.



著者:Yumiko Suzuki

Summer Internship 2016 夏季インターンシップ始めました

We actively accept students under an intership program in respose to a request from under graduate students this summer.
Rather than group training, our internship emphasized having students experience ROS with a servo motor and learning the programming with ROS.

He study ROS for the first time this summer.

Welcome to ROS world !


大学3年生のR.S.君がTORKの夏季インターンシップに参加してくれています.
Linuxは大学に入ってから初めて触りました.
この夏,初めてROSを勉強します.

このジROS対応ロボット一覧ページでROSが使われているロボットの数を見ると皆やる気がUPしますね.

涼しい本郷のオープンスペースで暑い夏をROSの勉強で熱く過ごしましょう!


IMG_20160809_145055

著者: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.

著者:Isaac Saito

3周年とサポート・コンサルティングサービスの実績経過TORK’s 3rd year mark and our support/consulting progress


2016年8月8日,おかげさまで TORK は設立3年を迎えました.

ロボティクス技術を使った製品開発に対する世間の関心の高まりに呼応してか,弊社としてもロボットへのオープンソースソフトウェア適用について企業様の関心の高まりを感じる一年でした.2014年度から行ってきた ROS ワークショップ (初級編中級編等) は引き続き好評を頂き毎月開催しています.

また,創業以来続けさせて頂いているカワダロボティクス様の双腕ロボット NEXTAGE Open 用オープンソースソフトウェアのサポートサービスも順調にご利用頂いています.それに加えこの一年で,新たにロボットの種類を限定せずにお問合せに応えるチケット制コンサルティングサービスを開始し,企業様の多種多様なリクエストにより柔軟にお応えできるよう努めてまいりました.

これらのサポート・コンサルティングサービスはこの1年間で合計72回のお問合せを頂き,94%にあたる68件が解決・終了したか,或いは解法案をご提示済です.分野別では NEXTAGE Open で41件,それ以外の分野でのコンサルティングで31件頂戴しました.1年毎のお問合せ件数ですと,2015年8月時点では46.7件のペースでしたので (参考:昨年同時期の記事によると2014年1月から2015年8月までで74件の問合せ),1.5倍超のペースでお問合せ頂いていることとなります.

コンサルティングサービスの内容は,既存のオープンソースロボットに関するもの (BaxterTurtlebotFetch 等),ROS のモジュールの使い方やカスタマイズ方法,自社開発への ROS 適用上のお悩み等を頂いています.カスタマイズのお問合せが転じてカスタム開発の依頼を頂くケースも出てきました.

これからも,お客様のご要望に応え,産業・学術界でのオープンソースロボティクスの進展に寄与できるよう,より一層努力して参ります.


TORK has just passed 3rd annual mark on August 8th, 2016.

Along with the global trend of robotics business and research boost, we’ve been happilly receiving interests and requests for opensource robotics technology development that we’ve contributed to and have been supporting for since our day 1 in 2013. Our ROS workshop series (beginnersintermediate etc.) are successfully running multiple times every month.

Our ticket-based support service for the dual-arm industrial robot NEXTAGE Open (Kawada Robotics) is growing its user base as well. This year round, in addition, we started opensource robotics consulting service. This new service is not restricted to a certain robot nor technology, but only limitation is “opensource robotics”, so that we can work with corporate engineers and managers for their problems regarding their robotics projects.

During the last 1 year period, we’ve received 72 tickets for total, 41 for NEXTAGE Open and the rest of 31 for other subjects. 68 tickets (94% of overall tickets) are solved/closed or possible solution is proposed to the customers. Compared to the previous year, we’re getting 1.5 times more requests (46.7 tickets/year at Aug 2015 according to the last year’s post).

Thank you all for your business with us, and understanding toward the opensource robotics.

TORK Montage 2015-2016

著者:Yumiko Suzuki

ROS Workshop for Beginners on 3rd August ROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.
一つ一つのタスクに対して積極的な質問をいただきながら最後まで完遂しました.お疲れ様でした!

初級編では環境の構築からセンシングデバイス,サーボの実機をROSで動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

7-9月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_20160727_162345

著者:Isaac Saito

How to create a page of your robot on ROS wikiROS wiki に自社/自分のロボットを掲載する方法


ROS で動くロボット,ROS が使われているロボットは一体幾つあるのですか?というのはとてもよく耳にする質問です.全貌の把握を試みるのは別な方に譲るとして,ROS の情報が一元的にまとまっている ROS wiki 上には,ROS 対応ロボット一覧ページがあります.たった今ざっと数えたところ,100種類は確実に超えていることを確認したところで,思考が停止しました.このページは手動で管理されているものなので,勿論これで全部ではないと思うと,多いですね.

このロボット一覧ページは前述の,ROS 対応しているロボットを知りたい,といったニーズに応える現状の最適な場所だと思われます.アクセス数も ROS wiki 全ページ群の中で9番目に多い (2015年7月の調査) とのことで,自社のロボットをここに掲載することはそれだけでロボット業界への効果的な告知になり得る,と考えられるのではないかと重います (ただしあくまで中立のコミュニティですから,やり過ぎな商業的告知には指摘が入る可能性もあります).

さて,ではどうやってこのページヘの自身のロボットを掲載するか.この方法が分からないという声も最近頻繁に耳にするようになりましたので,ROS wiki 上にその方法をまとめました.このページをご覧ください.

#私も自己流で編集して叱られたりコンテンツ削除されたり,時には褒められたりしながら学びました*

本件でご不明点があれば,ROS に関する質問はいつも通りの answers.ros.org か,日本語 ML でお問合せされるのが良いと思います.あと,弊社も有償でコンサルティングサービスを行っています 🙂


One of the common questions surrounding ROS is that how many robots are “ROS-compatible”? While we wait for someone else for figuring out the exact number, on ROS wiki, central source of information regarding ROS, there’s a manually-maintained list of robots that work with/on ROS. Skimming through it yields easily over 100 robots.

This listing page apprently functions as the best monolithic source of all ROSified robots as far as we are aware of, and it’s proven to work for the purpose; access rate of the page is 9th highest among all pages on ROS wiki (according to metrics in July 2015). So it makes a total sense to list your own robot on that page to get a good, effective exposure to the global robotics community (you just have to respect that the entire ROS wiki is commercial-free zone; No aggressive advertisement should take place).

Then, to answer the next common questions we’ve recently heard of, which is how we can add a list on the wiki page, we just added an instruction. Please go to this page on ROS wiki for that.

Questions regarding the instructions should go to answers.ros.org as always.

roswiki_robotspage_denso
Image: Part of the robot list. Robots we (TORK) maintain the ROS packages (NEXTAGE Open, Denso etc.) are there too.

著者:Yumiko Suzuki

Thank you for the wonderful souvenirs ! お土産ありがとうございます!


We had a meeting with a customer at Hongo, Tokyo.
We received Ebi-sembeis as souvenirs today.
This Ebi-sembeis (shrimp cracker) is a very famous gift in Japan.
Thank you for the wonderful souvenirs !!!

ROS Seminar courses will be held in summer 2016 by TORK in Tokyo, Japan. Any inquiry can be posted at info[a-t]opensource-robotics.tokyo.jp


打ち合わせでお客様からお土産を頂きました.お気遣い頂き恐縮です.
坂角総本舗の海老煎餅です!最高です!!ありがとうございます!!!
いつも以上に仕事を頑張っております!

ROSやオープンソースに関わるコンサルティング,出張ワークショップ,カスタマイズワークショップも承っております.
詳細はWebページをご覧いただくか,メールにてお問い合わせ下さい.
info[at]opensource-robotics.tokyo.jp

7-9月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

その他,こういった企画を実施して欲しい等,TORKにやってもらいたいことのご意見ご要望もお待ちしております!
メール以外にもfacebooktwitterアカウントもございますのでそちらにメッセージ,リプライにてご意見いただくことも可能です.
お気軽にお問い合わせください.

IMG_20160727_154445 IMG_20160727_154619

著者:Yumiko Suzuki

ROS Workshop for Beginners on 13th JulyROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.
本日も全員が最後まで完遂しました.お疲れ様でした!

初級編ではROSの環境の構築からセンシングデバイス,サーボの実機を動かすところまで半日で習得できます.
時間中にはROSに関するお困りごとだけでなく,社内で運用していく際の疑問点等にも随時お答えしています.

7-9月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

IMG_20160713_153735

著者:Yumiko Suzuki

ROS Workshop Schedule, from July to September 20162016年7月-9月のROSワークショップ日程


Here are the schedule of our ROS workshop series during the third three months of 2016!

Jul. 07 Thu 13:30- Introductory
Jul. 13 Wed 13:30- Introductory
Jul. 15 Fri 13:30- Introductory
Jul. 22 Fri 10:30- Intermediate
Aug. 03 Wed 13:30- Introductory
Aug. 10 Wed 13:30- Introductory
Aug. 16 Tue 13:30- Introductory
Aug. 19 Fri 10:30- Intermediate
Sept. 01 Thu 13:30- Introductory
Sept. 07 Wed 13:30- Introductory
Sept. 13 Tue 13:30- Introductory
Sept. 16 Fri 10:30- Intermediate
Sept. 27 Tue 13:30- Introductory
Sept. 29 Thu 10:30- Intermediate

Venue: Hongo, Tokyo

Inquiries: info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120



以下日程でROSワークショップを行います.

7月07日(木)13:30~ ROSワークショップ初級編
7月13日(水)13:30~ ROSワークショップ初級編
7月15日(金)13:30~ ROSワークショップ初級編
7月22日(金)10:30~ ROSワークショップ中級・マニピュレーション編
8月03日(水)13:30~ ROSワークショップ初級編
8月10日(水)13:30~ ROSワークショップ初級編
8月16日(火)13:30~ ROSワークショップ初級編
8月19日(金)10:30~ ROSワークショップ中級・マニピュレーション編
9月01日(木)13:30~ ROSワークショップ初級編
9月07日(水)13:30~ ROSワークショップ初級編
9月13日(火)13:30~ ROSワークショップ初級編
9月16日(金)10:30~ ROSワークショップ中級・マニピュレーション編
9月27日(火)13:30~ ROSワークショップ初級編
9月29日(木)10:30~ ROSワークショップ中級・マニピュレーション編

場所については都内・本郷のミーティングスペースでの実施を予定しています.

お申込みは以下より詳細をご確認の上,ページ内のお申込みリンクよりエントリをお願い致します.

ROSワークショップ初級編
ROSワークショップ中級・マニピュレーション編

日程の調整,その他ご相談,企業内ワークショップ,カスタマイズワークショップも承っております.お気軽にご相談ください.
info[at]opensource-robotics.tokyo.jp

IMG_20151112_182120

著者:Isaac Saito

Easy Teaching Operation for NEXTAGE Open by MoveIt! JoystickMoveIt! のジョイスティック機能で NEXTAGE Open を楽々ティーチング


ROS の動作計画アプリ MoveIt! を使った開発を行っている方々の中には,MoveIt! のバイナリ提供は更新が滞ってるから仕方なくソースコードをコンパイル (そしてコンパイルエラーと格闘) して時間を費やしてしまっている方もいるのではないでしょうか.ご安心下さい.最近メンテナンスチームが刷新されソフトウェアの更新が再び活発になってきており,今年に入って既にバイナリは3回更新されました.TORK もメンテナンスに積極的に貢献しています.

当協会のブログでも最近何度か MoveIt! の利用法についてご紹介してきました ([1][2]).今回も新機能のご紹介です.今日紹介するのはジョイスティックから MoveIt! を制御する方法です.ロボットの動作生成・実行が,今までのように Rviz 上でマウスを使うことなく,ジョイスティックで可能になりました.

joystick_moveit-0_7_1_nxo

使い方は簡単.ジョイスティックが刺さったマシン上で,図のように Planning タブの AllowExternalExecution にチェックをして下さい.
あとは,以下の launch ファイルを立ちあげればジョイスティックでロボットを動かすことができます.ジョイスティックのコマンド等詳細な利用方法はこちらの WEB ページをご覧ください.

<!-- https://github.com/ros-planning/moveit_setup_assistant/pull/90 -->
<launch>
  <arg name="dev" default="/dev/input/js0" />

  <!-- Launch joy node -->
  <node pkg="joy" type="joy_node" name="joy">
    <param name="dev" value="$(arg dev)" /> <!-- Customize this to match the location your joystick is plugged in on-->
    <param name="deadzone" value="0.2" />
    <param name="autorepeat_rate" value="40" />
    <param name="coalesce_interval" value="0.025" />
  </node>

  <!-- Launch python interface -->
  <node pkg="moveit_ros_visualization" type="moveit_joy.py" output="screen" name="moveit_joy"/>
</launch>

また,NEXTAGE Open であれば,MoveIt! が起動している状態で次のコマンドひとつ起動すればジョイスティックが有効になります (jsX の値は変えて下さい).NEXTAGE Open 用の利用法をこちらにも記載しています.


One of good news about ROS community is that the maintenance of MoveIt! got revitalized where TORK is contributing to as well. In 2016 there has already been three binary update releases so far. No more building from source if you were forced to!

We’ve mentioned about MoveIt! a few times recently ([1][2]), so do we today again. With the version 0.7.2 (on ROS Indigo), you can operate robot arms by joystick via MoveIt!

joystick_moveit-0_7_1_nxo

Running the feature is as simple as joystick. On RViz on the host where the joystick is plugged, check “Planning” tab –> “AllowExternalExecution” (see the image below).
Then run a launch file, either the one in your XXXX_moveit_config package if there’s already the aforementioned launch file, or simply make a launch file with the following:

<!-- https://github.com/ros-planning/moveit_setup_assistant/pull/90 -->
<launch>
  <arg name="dev" default="/dev/input/js0" />

  <!-- Launch joy node -->
  <node pkg="joy" type="joy_node" name="joy">
    <param name="dev" value="$(arg dev)" /> <!-- Customize this to match the location your joystick is plugged in on-->
    <param name="deadzone" value="0.2" />
    <param name="autorepeat_rate" value="40" />
    <param name="coalesce_interval" value="0.025" />
  </node>

  <!-- Launch python interface -->
  <node pkg="moveit_ros_visualization" type="moveit_joy.py" output="screen" name="moveit_joy"/>
</launch>

For the detail follow the usage page.

To run on NEXTAGE Open, make sure MoveIt! is running then run a single command below (modify jsX). You can also refer to wiki for joystick usage for NEXTAGE Open.

roslaunch nextage_moveit_config joystick_control.launch dev:=/dev/input/js1


(At the top window, the human operator plans the movement on RViz visualizer. Once the plan looks good then operator executes the plan so that the simulated robot in the bottom window conducts the movement. This is a screen capture so joystick isn’t invisible, but yes, all the robot’s movement is commanded from a Sony PS3 joystick.)

 

著者:Isaac Saito

Investigating unexplored region while making a map ROS で地図作成中に未開拓領域を探す

ROS でロボットが地図を作成する際に,大抵の場合はジョイスティックやキーボード等を使い,テレオペレーションでロボットに指示を即時で与えながらロボットを移動させているかと思います.中には,地図を作るためにロボットが”探索”する領域を事前に計画したい方もいるのではないでしょうか.

frontier_exploration というパッケージはそのための ROS インタフェイスを提供しています.今回 Turtlebot に frontier_exploration を組込んでみました.下の動画 (長いです…) では Gazebo シミュレータ上でサンプルの地図上に Turtlebot を出現させ,地図が無い領域/地点にロボットを向かわせています.画面下半分がシミュレータの,上半分が操作用の RViz のウィンドウです.

始めに探索したい領域をポリゴンで指定し,その中の一点を最後にクリックすることで,ロボットがその領域の探索に向かいます.ロボットが移動し始めてからはロボットは自律で移動し,ユーザは一切指示を与えていません.

手早く挙動を確認したい方はこちらの動画を (Turtlebot ではありませんが).

ここでは,探索計画は RViz 上で手動で行っていますが,向かわせたい地点を actionlib で送信しているため,API に従って計画をプログラムすることも可能です.

gmapping で地図作成を行い,move_base で移動を行うロボットであれば適用が可能です (他のパッケージを使う移動ロボットは試していませんが,難しくないはず?).


When making a map using ROS, you’re likely tele-operating your robot for every single move via keyboard or joystick at best. But I know a demand exists for “planning” in advance a region that robot explores to make a map.

That’s where a package called frontier_exploration gets useful; it provides ROS actionlib interface, through which users can send the location to explore. We just made a sample using Turtlebot to show how to integrate frontier_exploration package into your own robot. Resulted package can be seen at turtlebot_samples. As the following movie (It’s long! You’re warned…) shows, you can run by a single command Gazebo simulator, spawn Turtlebot on a sample map and send a command for the exploration.

You set the region to be visited by drawing a polygon on RViz, then after clicking a point within the polygon robot will move. Once it starts moving user isn’t sending anything (robot moves autonomously to the given goal along the computed path).

Shorter video is also available (it’s not Turtlebot. Video was taken by the original developer of the frontier_exploration package)

In these videos the robot is commanded manually on RViz window. You can also send commands programmatically using its API.

So far we confirmed that frontier_exploration can be applied to the robots with gmapping and move_base (incorporating with other navigation packages may be as simple?).

著者:Yumiko Suzuki

ROS Workshop for Intermediate Manipulation on 22th June ROSワークショップ中級・マニピュレーション編を開催しました


We had ROS Workshop for Intermediate Manipulation at Hongo, Tokyo.

The participant also joined our Beginners Workshop a few weeks ago, then re-setup her own PC, purchased robot parts and review all contents. Her fast learning and active question make a lecture really enjoied the event.

Thanks you for joining us!!


今回は本郷のオープンスペースにて,ROSワークショップ中級・マニピュレーション編を開催しました.
本郷のオープンスペースはコーヒーが一日中無料です!

本日の参加者の方は初級編の機材一式を購入し完璧に復習してから中級・マニピュレーション編にご参加いただきました.
「いつも新しい知識を得られるので中級編も参加できてよかったです」とのコメントをいただきました.
長時間の講習お疲れ様でした.ありがとうございました.

7-9月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,出張ワークショップ,カスタマイズワークショップも承っております.
お気軽にお問合せください!
info[at]opensource-robotics.tokyo.jp


IMG_20160622_160213 (1)

著者:Yumiko Suzuki

ROS Private Workshop on 8th June プライベートROSワークショップを開催しました


We also had a private ROS Workshop at the seminar room in the company.

The participants prepared own Ubuntu PC and installed indigo. Their active questions make a lecture really enjoied the event.

Thanks you for joining us!!


本日は某企業様の会議室をお借りして,企業内でのプライベートROSワークショップを開催いたしました.
実践的な質問をいただきながらの活発なワークショップとなりました.
長時間のワークショップ,皆様お疲れ様でした.

出張ワークショップ,カスタマイズワークショップも承っております.
詳細はWebページをご覧いただくか,メールにてお問い合わせ下さい.
info[at]opensource-robotics.tokyo.jp

7-9月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

お申込みお問い合わせお待ちしております!

IMG_20160608_170919 IMG_20160608_170900

著者:Isaac Saito

Thanks to opensource community, issue with NEXTAGE Open software (3D model geometry, tf) got resolved promptlyNEXTAGE Open ソフトウエアに不具合,オープンソースコミュニティにより迅速に修正完了 (3D モデル,tf の問題)

ユーザからの報告により NEXTAGE Open の tf の挙動に問題点がみつかりました.既に修正版をバイナリ (Ubuntu の apt-get でインストールする版のことです) で提供しています.修正版の適用方法等,詳しくは告知をご覧下さい.

製品のソフトウェアをオープンソースにするメリットの一つは,テストし報告してくれる人を多く集められることにあると,TORK は考えています.今回はまさにソフトウェアをオープンソースにしていたから起こり得た問題解決でした.解決までの流れはまさにオープンソースコミュニティのそれで,異なる組織から意見が共有された結果として,迅速に解決することができました;本問題現象を議論する github 上のチケットを時系列で追っていくと:

  • ユーザが問題点を指摘
  • –> メーカ開発者からコメント
  • –> 別の組織のユーザからもコメント
  • –> メンテナンス元 (我々です) が修正候補を作成
  • –> ユーザが修正候補をテストし問題が修復されることを確認
  • –> メンテナンス元修正候補が採用

4つの組織から一週間程度の間に意見が出され,解決にたどり着いているのがわかります.そしてこの特定の問題に義務がある人は (我々以外は) 居ないのです.これだけクイックに組織の壁を超えた問題解決が行えるのはコミュニティがオープンになっているからこそではないでしょうか.

更にその後のバイナリ作成と公開は,(これまで通り) ROS 管理チーム (OSRF) が運営するネット上の仕組みを利用させてもらっています.そこに至る手順は至ってシンプル (*1):

TORK は,ソフトウェアを公開することで,企業様が開発を加速し品質を高めていくことができると信じて,日々オープンソースに貢献しています.

*1 初回公開時にはやや長いプロセスを経る必要があります.しかしひとたび公開作業が終了すれば,その後の更新版の公開は上に書いたようにいたって簡単です.


A user reported an issue in tf with NEXTAGE Open software that got resolved in a quick fashion thanks to opensource collaboration across organizations/userbases. Binaries (the ones installable by apt-get) including the fix is already available online. Please see more detail of the issue and how to apply the fix this ticket on github.

We, TORK, thinks without any doubts that the big advantage of making software public is that you get testers from across the globe. The fix this time is a true realization of this opensource dogma; if I review the ticketed report for this issue on github now, you’ll see the flow:

  • A user reported the issue.
  • –> Someone from robot’s manufacturor gave a comment.
  • –> Another heavy user commented.
  • –> Maintainer (us) created a fix candidate.
  • –> Reporter user tested fix candidate and confirmed that it fixes.
  • –> Maintainer pulled in the fix.

At least four persons from different organizations contributed so far up to this point, within only a week timeframe. And everybody is not obligated to this ticket (but us).

Going further, once the fix is pulled then it’s also important to make the fix easily accessible by the users. Having them as binary form is the way to go. We do that by relying on the platform the ROS maintenance team (OSRF) runs, as have we already done so. Steps for that is really simple (*1):

TORK believes that opensource software development contributes to improving quality and fastening the engineering cycle for the corporations. That’s why we have and will continue contribution to the opensource community.

*1 Initial release takes a bit more steps. But once done so it’s really easy!

著者:Isaac Saito

MoveIt! motion planner 0.7.1 may be a fix to long, unorganizaed planning timeROS, MoveIt! バージョン0.7.1 で経路計算のより安定化が可能に


We talked about the latest MoveIt! update to 0.7.1. That change introduced several important/convenient new features, one of which is that you can now set the default planning algorithm (relevant ticket on github).

Before this change, LBKPIECE was set as a default planner and it wasn’t clear for the users how to make a change for it. The algorithm has reportedly not been finding solutions when working with MoveIt!, e.g. in our ROS introductory workshop we have to ask participants to go through counter-intuitive steps to change the algorithms for DENSO robot.

The new feature allows you to choose algorithm of your choice, e.g. RRTConnect.
If your robot already comes with moveit_config package but has not utilized this feature, you might as well do so.

In NEXTAGE Open's software, you can set the default planner like this in config/ompl_planning.yaml file in your moveit_config package.

In NEXTAGE Open’s software, you can set the default planner like this in config/ompl_planning.yaml file in your moveit_config package (see this pull request for the full change).




前回紹介した MoveIt! バージョン更新により,0.7.1に上がり幾つか新機能が利用可能となりました.
その内の一つがデフォルトの経路探索アルゴリズム指定機能です (github 上の関連チケット)
いままでは起動時の経路探索アルゴリズムは LBKPIECE で,MoveIt! 上で動作させると解を見つけないことも多く,たとえば弊社のワークショップでは DENSO ロボットの MoveIt! 応用をご紹介しますが,その際にややこしい手順を経て経路探索アルゴリズムの変更する手順としていました.
本機能により,RRTConnect 等の解が出やすいアルゴリズムを MoveIt! 起動の際に 選択できるようになりました.もし,ご自分のロボットでデフォルトのアルゴリズムをカスタマイズしていない方がいらっしゃいましたら是非ご参考ください.

In NEXTAGE Open's software, you can set the default planner like this in config/ompl_planning.yaml file in your moveit_config package.

デフォルトプランナの設定は,NEXTAGE Open のソフトウエアの場合,お使いのロボットの moveit_config パッケージの config/ompl_planning.yaml に図のように変更することで行うことができます (参考 pull request).


著者:Isaac Saito

Real-time Impedance Control on NEXTAGE Open Dual-arm Robot Using Dynpick F/T Sensor双腕ロボット NEXTAGE Open での実時間 impedance 制御が Dynpick F/T センサにも対応


カワダロボティクス社製の双腕ロボット NEXTAGE Open (/ Hironx) の力センサを用いた実時間制御は以前のブログ記事でお伝えしました.当時の例で用いていた JR3 力センサは日本国内では販売が終了 (*1) していますが,今回日本国産,ワコーテック社の Dynpick センサに対応しました.



Dynpick 小型静電容量型6軸力覚センサ (画像元)

動画がまだありません,すみません!挙動自体は JR3 のものと同様なので,上記記事中のものと同じ動画でイメージを掴んでいただけるとこれ幸いです.



例によって,必要なソースコードはすべて公開しております ([1], [2]).

実装上の留意点が幾つかあります:

  • 現状では wdf-6m200-3 (廃番,USB-Serial 接続) にのみ対応しています.同社の新型製品 (USB-Serial ではない) ではドライバの都合でそのままでは本機能はおそらくつかえません.
  • 本機能の適用には QNX ライセンスに基づいたコントローラボックス上のソフトウェアの改変が必要なのと,ノウハウが必要なのとで,適用方法は公開しておりません.

FAQs:

  • Q: F/T センサを追加で装着しても,装着前に使っていたグリッパは使えますか? A: はい,問題ありません.気をつけるべきは,キネマティクスが変わるのでロボットの3次元モデルをセンサを含めるよう更新が必要となります.また,センサ装着,グリッパの再装着等の据付作業はお客様御自身で行って頂くこととなります.
  • Q: 配線変更やケーブル追加,その他電子機器の追加設置は必要になりますか? A: はい,F/T センサとその出力をを処理するコンピュータとの通信のために必要です. なお本ページ中で取り上げている JR3・Dynpick は USB/RS232C を使います.
  • Q: F/T センサを Ubuntu に接続してインピーダンス制御機能を利用できますか? A: Dynpick の場合,はい,ただし得られる結果は要件により異なります.Dynpick には ROS で使える Ubuntu 用デバイスドライバパッケージが無償入手でき,デバイスを繋げばすぐ使いはじめることが出来るのですが,Ubuntu は基本的にはリアルタイム性を担保しないため,やや限定的となります.本ページでご紹介しているのは F/T センサを QNX に接続し,そのリアルタイム機能を活かす方法です.インストール方法が複雑となります.
  • Q: インピーダンス制御機能の導入費用は? A: TORK サポート窓口までお問合せ下さい.

なお本件に関わるソースコードの公開は,株式会社豊田中央研究所様の御厚意により実現しています.

*1 米国メーカ JR3 Inc. は今日現在存続しています.連絡したら返信も返ってきました.


Earlier this year we mentioned that for Kawada’s industrial dual-arm robot NEXTAGE Open (/ Hironx), a force-torque sensor “JR3” can be integrated into its real-time control loop. Now that then-sales agency discontinued import so that JR3 becomes not easily available for Japanese users, another sensor support has been desired. Recently we’ve added Wacohtech’s Dynpick to the lineup.



“Dynpick” Miniature capacitive 6-axis force sensor (image source)

Fresh out of the lab, we haven’t shot any video of the robot with this! For now you can get an idea from the same video that uses JR3.



We believe the best practical approach to sustainably develop software is to make it opensouce. So did we put them online as usual ([1], [2]).

To implement the necessary changes, a few thiings to be noted:

  • Currently only the product wdf-6m200-3 is tested (discontinued,USB-Serial), and other newer type of Dynpick products shouldn’t work as it is, since some tweaks are most likely needed for them to work on QNX.
  • Because the work requires modification on the software on ControllerBox (QNX), we have no plan so far to write publicly about how to apply the change.

FAQs:

  • Q: Can the same gripper be used after F/T sensor attached? A: Yes, no problem. Robot’s kinematics changes, however, so updating robot’s 3D model will be necessary. Attaching the F/T sensor and re-attach the gripper is your responsibility.
  • Q: Is adding/changing cabling or electronics to provide communication between sensor and the robot necessary? A: Yes, for the communication between the F/T sensors and the computer. JR3 and Dynpick are USB/RS232C.
  • Q: Can the F/T sensor be connected to Ubuntu for impedance controller feature? A: Depending on the requirement of your application. Dynpick has a device driver package for ROS that works on Ubuntu This works out-of-the-box, but Ubuntu is not a real-time OS perse by default. The solution explained on this page is to connect the sensor to QNX to take advantage of its real-time capability. Installation isn’t easy as mentioned earlier.
  • Q: How much is the cost to activate the impedance control? A: Please contact us.

The opensource contribution of this project was realized thanks to Toyota Central R&D Labs., Inc..

著者:Yumiko Suzuki

ROS Workshop for Beginners on 25th MayROSワークショップ初級編を開催しました


We had ROS Workshop for Beginners at Hongo, Tokyo.
You can experience ROS workshop by the LiveUSB without installation of Ubuntu on your machine.

Thanks you for joining us!!


今回も本郷のオープンスペースにて,ROSワークショップ初級編を開催しました.
本郷のオープンスペースはコーヒー・アイスコーヒーが一日中無料です!

ROSワークショップ初級編はLinuxが初めての人でも参加可能です.
UbuntuPCを準備出来なくても弊社のLiveUSBを使ってワークショップを実施可能です.
時間中時間後にROSを社内に導入する際のお困りごとにもお答えしています.

7-9月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,出張ワークショップ,カスタマイズワークショップも承っております.
詳細はWebページをご覧いただくか,メールにてお気軽にお問い合わせ下さい.
info[at]opensource-robotics.tokyo.jp


IMG_20160727_162345

著者:Isaac Saito

Update; Programming for NEXTAGE Open via MoveIt! motion plannerアップデート) ROS の経路計画用ライブラリ MoveIt! 経由での NEXTAGE Open のプログラミング


ロボットを扱う上で必要な機能がたくさん収められている ROS の中でも,経路計画用ライブラリ MoveIt! は代表的なツールの1つです.

腕をはじめとして,ロボットの体の部位は我々人間のそれと同じように,複数の関節からなりますが,それらを直感的に操作できるようにするためのプログラミング・インタフェイスを備えています.

その機能は当社がソフトウェアのサポートを行っているカワダロボティクス社製双腕ロボット NEXTAGE Open でもフルに活用可能です (既に MoveIt! を用いて NEXTAGE Open を動作させているユーザ様事例がこのページに掲載しております).

MoveIt! を利用してプログラミングを行う際のサンプルの拡充も続けてまいります.既存のユーザ様からよくいただく質問として,”hrpsys ( / OpenRTM) 経由でのプログラミング方法はわかったが,ROS でプログラムを書く方法がわからない” というものがあります.これに応えるために ROS_Client と呼ばれる NEXTAGE Open 専用の ROS クライアントクラスを用意しました.使い方はこちらの wiki をご覧ください.ご不明点などは github 上で聞いていただくと,当社かユーザグループのどなたか 😉 から返信が入ると思います.

また,MoveIt! 自体のメンテナンスにも TORK は積極的に参加しており,最新の機能やバグフィックスの利用を開発者ができるだけ手軽に利用することができるよう貢献しています.

caption_is_here

(MoveIt! が NEXTAGE Open の左腕の関節グループを認識するように設定を行っている所.難しい設定も GUI 上で行うことができます.)



MoveIt! not just comes with state-of-art algorithms but also a programming interface that you can program complicated manipulation tasks in an intuitive fashion.
It’s not an exception with Kawada Robotics’ dual-arm NEXTAGE Open robot, which we provide professional, full-fledged software support for. We’ve been maintaining so-called ROS_Client, a designated ROS programming interface for NEXTAGE Open in Python, to utilize MoveIt!’s simple interface while trying to minimize users’ effort to learn new stuff like MoveIt! as much as possible. If you’re a programmer for NEXTAGE Open and like to write your code in Python and ROS, please have a look at this wiki page. You’re always welcomed for questions and discussions at its github issue page where some of us or developers on the internet land 😉 will respond fairly quickly.

TORK also contributes to maintaining MoveIt! itself, to make the new feature and bugfixes available in the easiest way for all the users in the world.

caption_is_here

(MoveIt! configuration going on for the NEXTAGE Open; grouping joints as “left-arm”. Complicated tasks regarding manipulation becomes handy too with GUI tools on MoveIt!.


著者:Yumiko Suzuki

ROS Workshop for Intermediate Manipulation on 19th May ROSワークショップ中級・マニピュレーション編を開催しました


We also had ROS Workshop for Intermediate Manipulation at Hongo, Tokyo.

They took part a workshop using our LiveUSB. You can experience ROS workshop by the LiveUSB without installation of Ubuntu on your machine.

Thanks you for joining us!!


今回も本郷のオープンスペースにて,ROSワークショップ中級・マニピュレーション編を開催しました.
本郷のオープンスペースはコーヒー・アイスコーヒーが一日中無料です!

UbuntuPCを準備出来なくても弊社のLiveUSBを使ってワークショップを実施可能です.

ROSを使うために新しくマシンを購入されるという方でどんなマシンを購入したらよいかというご質問を受けることがあります.
そんな方は「ゲーミングPC」とカテゴライズされている商品から選ぶと良いかもしれません.
可能であればNvidia搭載のものをおすすめします.

7-9月のワークショップ開催日程も公開中です!

ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

プライベートワークショップ,出張ワークショップ,カスタマイズワークショップも承っております.
詳細はWebページをご覧いただくか,メールにてお気軽にお問い合わせ下さい.
info[at]opensource-robotics.tokyo.jp


IMG_20160519_180008

著者:Yumiko Suzuki

ROS Workshop for Beginners on 11th MayROSワークショップ初級編を開催しました

We had ROS Workshop at Hongo, Tokyo.
We used custom ROS-preinstalled LiveUSB, so people had ROS experience without change your PC environment.
All of attendee ran through the all topics.

Great work, everyone!!



今回も本郷のオープンスペースにてROSワークショップ初級編を開催しました.
ご自分のPCでUubuntu環境が準備できなくても,LiveUSB等でワークショップを体験できます.
本日も全員が最後まで完遂しました.お疲れ様でした!

ROSのワークスペースは複数作ることができます.
まず最初に”catkin_ws”と言う名前でワークスペースを作るお手本が多いですが,
catkin_wsという名前である必要はありません.自分の好きな名前でワークスペースを作ることができます.
バリバリROSで開発されている方にとっては当たり前のことでも,ROSを初めたばかりの人にとっては気付けないことが案外あったりするものです.

ROSワークショップに参加すると実際にROSで開発する際のちょっとしたコツが習得できますよ!
ROSを初めて勉強する人へのブログも公開しています. ご参考になさってください.

6月のワークショップ開催日程も公開中です!

IMG_20160511_183858