rvizは、ROSのデータの3次元の可視化を行います。特に、3次元座標は座標値を数値で表示しても分かりにくいため、デバッグ効率は低下してしまいます。3次元で斜め上から見た状態を可視化すれば、ロボットの位置や姿勢が一目で分かります。
rvizでは、URDFを使って作成したロボットのデータの3次元形状を移動、回転した状態で表示することができます。また、レーザーセンサーから取得した壁や障害物までの距離データや、カメラから取得した映像などを表示することもできます。
ROSのWikiページに解説があります。
ターミナルを開き、下記のコマンドを実行すると、rvizを起動できます。
$ rviz
rvizの基本操作のビューの操作は、gazeboとは異なります。
視点を上下左右に移動するパン操作は、Shiftキーを押しながらドラッグするか、マウスホイールを押しながらドラッグすることで行うことができます。
視点を回転し画面上の位置をいろいろな方向から見る操作は、マウスのドラッグ(左ドラッグ)で行うことができます。
視点を近づけたり遠ざけたりするズーム操作は、マウスホイールを回転するか、マウスの右ドラッグで行うことができます。
rvizのメニューは、画面左上に表示されます。
Fileメニューでは、表示状態をファイルに保存したり、読み込んだりすることができます。
Panelsメニューでは、表示するパネルを選択して、画面構成を変えたりすることができます。
3DView画面は、rvizの画面中央に表示されるメイン画面で、ロボットの状態の表示や、センサーの状態の表示など、さまざまなデータを3次元表示するときに使用されます。
Displaysパネルは、画面左側のパネルとして表示され、表示したいTopicなど、3FViewに表示する内容を変更する画面です。
領域下部にあるAddボタンで、表示したい内容を追加できます。
表示タイプ名 | 表示内容 |
---|---|
Axes | 座標軸を表示 |
Camera | カメラ視点から表示した画像を別ウィンドウに表示 |
DepthCloud | 深度画像で表示された点群を表示 |
Effort | ロボットの各関節に加わる力を表示 |
FluidPressure | 空気、水などの流体の圧力を表示 |
Grid | グリッドを表示 |
GridCells | グリッドの各セルを表示 |
Group | グループ化 |
Illuminance | 照度を表示 |
Image | 画像を別ウィンドウに表示 |
InteractiveMarkers | インターラクティブマーカーを表示 |
LaserScan | レーザースキャナーが計測した距離データを表示 |
Map | ナビゲーション用の地図を表示 |
Marker | マーカーを表示 |
MarkerArray | マーカーを複数表示 |
Odometry | オドメトリの変化を矢印で表示 |
Path | ロボットの経路を表示 |
PointCloud | 深度カメラのセンサーデータを点群で表示 |
PointStamped | 丸型ポイントを表示 |
Polygon | ポリゴンの外形を表示 |
Pose | 位置と姿勢を表示 |
PoseArray | 位置と姿勢を複数表示 |
Range | 距離センサーの測定範囲などの円錐を表示 |
RelativeHumidity | 相対湿度を表示 |
RobotModel | ロボットモデルを表示 |
TF | 座標変換の相対座標を座標軸を表示 |
Temperature | 温度を表示 |
WrenchStamped | ねじれを表示 |
ツールは、画面上部のメニューの下に表示されるボタンで、各種操作をすることができます。
ボタン名 | 操作内容 |
---|---|
Interact | インターラクティブマーカーの操作 |
Move Camera | カメラの移動 |
Focus Camera | カメラのピント合わせ(焦点の変更) |
Measure | 距離測定 |
2D Pose Estimate | 2次元の現在位置の設定 |
2D Nav Goal | 2次元ナビゲーションの目標位置の設定 |
Publish Point | パブリッシュする位置の決定 |
Viewsパネルは、画面右側のパネルとして表示され、3次元ビューの視点を設定できます。
視点タイプ | 表示方法 |
---|---|
FPS(FirstPersonView) | 1人称視点(ユーザが見ているような画像)で表示 |
Orbit | 指定した地点を中心に、回り込んで表示 |
ThirdPersonFollower | 3人称視点(俯瞰画像)で表示 |
TopDownOrtho | 上から正射影して表示 |
XYOrbit | XY平面上の指定した地点を中心に、回り込んで表示 |
Timeパネルは、画面下側のパネルとして表示され、現在時間(Wall Time)とROS時間(ROS Time)を表示します。Resetボタンで、時間をリセットすることができます。
下記の画像は、rvizに、DisplaysパネルのAddコマンドの「RobotModel」でロボットモデルを表示し、「LaserScan」でレーザースキャナーが計測した距離データを表示し、「Map」で作成中のナビゲーション用の地図データを表示している画面です。