Note: This tutorial assumes that you have completed the previous tutorials: TurtleBotのメンテナンスと充電.
(!) 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

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

これは同時に, ロボットの様々な他の特徴も提供することを確認しましょう.

観測する表示を有効化する

表示したいものをどんなものでも視覚化するには, ただチェックボックスをクリックしましょう. これらが表示されるセンサ類です:

  • LaserScan

  • DepthCloud

  • Registered DepthCloud

  • Image
  • PointCloud

  • Registered PointCloud

例えば, 以下のキャプチャ画像では, LaserScanとRegistered DepthCloud が有効化されています.

rviz Turtlebot capture

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引数を適切に利用すれば, 必要とされる処理モジュールのみ有効化します.

次に.

Wiki: ja/turtlebot_bringup/Tutorials/groovy/3D Visualisation (last edited 2013-08-27 15:05:15 by YoshimaruTanaka)