Note: This tutorial assumes that you have completed the previous tutorials: TurtleBot Care and Feeding. |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
3D視覚化
Description: 三次元情報とkinect/asusからのカメラデータを視覚化するKeywords: turtlebot kinect asus
Tutorial Level: BEGINNER
Contents
3Dセンサの起動
センサをネットブックに接続します。
これらのデバイスは未だUSB2.0にしか対応していないため、 USB3.0ポート接続(これらはすべてとは限らないが、大抵は3.0の類いであることが示されている)ではないことを確認してください。
既にTurtleBotのソフトウェアが起動していることを前提とし、(turtlebot bringup tutorialを参照)、 その状態から3Dセンサ機能の起動を続行できます。
> roslaunch turtlebot_bringup 3dsensor.launch
初期設定では, このコマンドは全ての処理モジュールがオンになった状態で3Dセンサを立ち上げます. launchコマンドに適当な引数を送ることでこれらをオフにすることができます(詳細については, 3dsensor.launchファイルの中身を確認してください).
TurtleBotのアプリ自体がこれを行います - アプリはタスク実行のために処理するべき情報量を最小化して、まさにアプリが必要とするものだけを使用可能にします。
Rvizを起動する
ワークステーションのコンピュータ上で、ロボットとセンサの出力を視覚化するための設定が既にできているrvizを起動しましましょう。
> roslaunch turtlebot_rviz_launchers view_robot.launch
これは同時に, ロボットの様々な他の特徴も提供することを確認しましょう。
観測する表示を有効化する
表示したいものを視覚化するには、チェックボックスをクリックします。 これらが表示されるセンサ類です:
DepthCloud
Registered DepthCloud
- Image
PointCloud
Registered PointCloud
例えば, 以下のキャプチャ画像では, LaserScanとRegistered DepthCloud が有効化されています.
3Dデータ構造に関する補足
Groovyはほとんどの場所でデフォルトで現在使用されているデータ形式であるdepth_imageを導入しました。 未処理では、 openniのノードレットは単にdepth imageを生成します。 これは、 openniの三次元情報を収集するドライバによって生成される未加工のデータ構造です。何らかの処理を有効化した上で、 より活用しやすいPCL形式に変換されます。
Rvizは現在、 両方のデータ形式に対してビューを提供しており、 両方のデータ形式の視覚化は同一のものであることに気づくでしょう - つまり、 三次元点群はOpenGLによって描画されているのです。 rvizを実行している時、 両方のプラグインの存在をview_robot.launchから確認することができます。
Q) 深度画像と点群はTurtlebotでどのように使われているのでしょう?
低レベルの操作に対して - 深度画像が使われています。未変換のため, より高速です。 depthimage_to_laserscanパッケージがこれを行っています。さらに複雑なturtlebot_followerのような操作では、点群ライブラリ内のアルゴリズムのホストにアクセス権を持つPCL形式が使用されます。
利便性のため、既定の3dsensor.launchファイルは3Dセンサが処理済みの3Dデータ(レジストレーション、点群、擬似レーザースキャン)を提供します。 FollowerのようなTurtleBotのアプリはそれぞれ3dsensor.launchを呼び出し、roslaunch引数を適切に利用すれば、必要とされる処理モジュールのみ有効化します。
次は?
キーボード・テレオペレーション または TurtleBot のメインページに戻りましょう。