🌊

Rviz2: .rvizファイルの記述方法について

2022/10/15に公開

海洋ロボコンをやってた人です。
今回は、.rvizファイルの書き方を引き継ぎも兼ねて記述しておきます。

経緯としては、descriptionやmoveit、SLAM等で.rvizファイルを呼び出すときに、自分好みの状態でRvizを起動させたかったからです。
また、.rvizファイルについての記事も少なかったので、雑に備忘録としてまとめます。

皆様のお力添えになれば幸いです。

Rviz2: .rvizファイルの記述方法について

本内容を説明する上で使用するモデルは、アイコンでも表示されているマンタ型ロボットで紹介していきます。
なお、ロボットのハード設計からソフト設計まで全て私が担当しており、所属研究室の教授からも承諾を得ています。

また、Rvizとはja/rviz-ROS Wiki に記載があるように、ROS用の3D可視化ツールです。

ROSで使用される様々なデータをGUI等で可視化でき、ロボットの状態や外部情報を直感的に認識できるので、幅広く使われていますね。

ここではRvizの基本的な操作は省略していますので、ご了承ください。

それでは、xxx.rvizファイルの記述について説明していきたいと思います。

Panels

まずはPanelsについてです。Panelsは

  • Displays
  • Selection
  • Toop Properties
  • Views

の4つの設定ができ、RvizではDefaultでDisplaysとViewsが表示されています。

またheaderのPanelsボタンからチェックを入れると、他のパネルも使用することができます。

Panelsは、以下のように記述されていることが多いです。

urdf.rviz
Panels:
  - Class: rviz_common/Displays
    Help Height: 78
    Name: Displays
    Property Tree Widget:
      Expanded:
        - /RobotModel1
      Splitter Ratio: 0.5
    Tree Height: 591
  - Class: rviz_common/Selection
    Name: Selection
  - Class: rviz_common/Tool Properties
    Expanded:
      - /2D Pose Estimate1
      - /Publish Point1
    Name: Tool Properties
    Splitter Ratio: 0.5886790156364441
  - Class: rviz_common/Views
    Expanded:
      - /Current View1
    Name: Views
    Splitter Ratio: 0.5

Displaysに表示するクラスが増えてくると、各Displayの詳細が広がっており見にくいことがあります。
そういう場合は、Expanded下の記述を削除してあげると、Displaysパネルがスッキリして見やすくなります。

urdf.rviz
    Property Tree Widget:
      Expanded:
-        - /RobotModel1


Visualization Manager

.rvizファイルではVisualization Manager下で

  • Displays
  • Selection
  • Toop Properties
  • Views

の詳細を自由に記載することができます。

私自身、.rvizファイルを扱うときはDisplays下を編集することが多いです。

Visualization Manager:
  Class: ""
  Displays:

    - Class: rviz_default_plugins/Grid
      Color: 160; 160; 164
      Enabled: true
      Line Style:
        Line Width: 0.029999999329447746
        Value: Lines
      Name: Grid
      Normal Cell Count: 0
      Alpha: 0.5
      Cell Size: 1
      Offset:
        X: 0
        Y: 0
        Z: 0
      Plane: XY
      Plane Cell Count: 10
      Reference Frame: <Fixed Frame>
      Value: true

    - Class: rviz_default_plugins/TF
      Enabled: true
      Frame Timeout: 15
      Frames:
        All Enabled: true
      Marker Scale: 0.3
      Name: TF
      Show Arrows: true
      Show Axes: true
      Show Names: true
      Tree:
        {}
      Update Interval: 0
      Value: false

    - Class: rviz_imu_plugin/Imu
      Name: Imu
      Enabled: true
      Topic: /bno055/imu
      fixed_frame_orientation: false
      Axes properties:
        Enable axes: true
        Axes scale: 0.2

    - Class: jsk_rviz_plugin/Plotter2D
      Name: Depth[m]
      Enabled: true
      Topic: /bar30/depth
      width: 100
      height: 100
      left: 50
      top: 50
      auto scale: false
      max value: 5
      min value: -5
      foreground color: 114; 159; 207
      foreground alpha: 0.7

  Global Options:
    Background Color: 48; 48; 48
    Default Light: true
    Fixed Frame: base_link
    Frame Rate: 30

  Tools:
    - Class: rviz_default_plugins/Interact
      Hide Inactive Objects: true
    - Class: rviz_default_plugins/MoveCamera
    - Class: rviz_default_plugins/Select
    - Class: rviz_default_plugins/FocusCamera
    - Class: rviz_default_plugins/Measure
      Line color: 128; 128; 0
    - Class: rviz_default_plugins/SetInitialPose
      Theta std deviation: 0.2617993950843811
      Topic: /initialpose
      X std deviation: 0.5
      Y std deviation: 0.5
    - Class: rviz_default_plugins/SetGoal
      Topic: /move_base_simple/goal
    - Class: rviz_default_plugins/PublishPoint
      Single click: true
      Topic: /clicked_point
  Value: true


  Views:
    Current:
      Class: rviz_default_plugins/Orbit
      Distance: 1.8
      Enable Stereo Rendering:
        Stereo Eye Separation: 0.05999999865889549
        Stereo Focal Distance: 1
        Swap Stereo Eyes: false
        Value: false
      Focal Point:
        X: -0.0016349668148905039
        Y: -0.014781012199819088
        Z: 0.017814036458730698
      Focal Shape Fixed Size: true
      Focal Shape Size: 0.05000000074505806
      Invert Z Axis: false
      Name: Current View
      Near Clip Distance: 0.009999999776482582
      Pitch: 0.46039697527885437
      Target Frame: <Fixed Frame>
      Value: Orbit (rviz)
      Yaw: 0.593582272529602
    Saved: ~

Classのrviz_default_pluginsは、Rvizで用意されているプラグインを呼び出すことができ、Topic名を自由に変更してカスタマイズできます。

クラスの宣言をしたら、Expandした"Show Names: true"や"Show Axes: true"などの設定値を羅列するだけです。

また、jsk_rviz_pluginなど他のプラグインを使う場合も同様に

  • Class: jsk_rviz_plugin/Plotter2D

と定義してTopic名や設定値を記述すれば問題なく動作します。


さらに、ViewsのDistance, Yaw, PitchでどこからのViewにするかを決めることができるので、どの視点からロボットが可視化できてると見やすいかを好みに設定しましょう。

Viewsの画面を真上からのViewに固定したい場合はOrbitからTopDownOrthoに変更します。

rviz
  Views:
    Current:
-      Class: rviz_default_plugins/Orbit
-      Value: Orbit (rviz)

+      Class: rviz_default_plugins/TopDownOrtho
+      Value: TopDownOrtho (rviz)

Window Geometry

最後に、Window Geometryです。
名前の通り、Rvizのウィンドウ設定ができます。

Height・Widthで、Rvizウィンドウの高さ、幅を変更できます。
また、X・Yでウィンドウ表示位置を変更することができます。

Window Geometry:
  Displays:
    collapsed: false
  Height: 800
  Width: 1200
  X: 900
  Y: 450
  Hide Left Dock: false
  Hide Right Dock: false
  QMainWindow State: 000000ff00000000fd000000040000000000000142000002d9fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005d00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000037000002d9000000ca00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002d9fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000037000002d9000000a100fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004c000000044fc0100000002fb0000000800540069006d00650100000000000004c00000026b00fffffffb0000000800540069006d0065010000000000000450000000000000000000000267000002d900000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
  Selection:
    collapsed: false
  Tool Properties:
    collapsed: false
  Views:
    collapsed: false

以上、.rvizファイルを作る時の参考にしていただければ幸いです。

Discussion