クワマイでもできる

クワマイでもわかる

joint_state_publisher_guiの使い方

f:id:kuwamai:20200229140137p:plain

以前joint_state_publisherのGUI機能(上記スクショの左側のやつ)がjoint_state_publisher_guiとして独立したという話をした。ROS melodic以前の場合はとりあえずjoint_state_publisher_guiをインストールすれば使えるようになるけど、ちゃんとした使い方もメモ。

joint_state_publisher_guiのインストール

下記コマンドでインストール。melodicの部分は使用してる環境に合わせて適宜変更すること。

$ sudo apt-get install ros-melodic-joint-state-publisher-gui

launchファイルの編集

joint_state_publisher_guiをインストールするとdisplay.launch等が問題なく起動する。けど、下記のワーニングが表示されるようになる。

[WARN]: The 'use_gui' parameter was specified, which is deprecated. We'll attempt to find and run the GUI, but if this fails you should install the 'joint_state_publisher_gui' package instead and run that. This backwards compatibility option will be removed in Noetic.

今はjoint_state_publisherの情けでuse_guiがTrueになってるとGUIが表示されてるけどROS Noetic以降では使えないらしい。例として以前作った三輪車ロボットのdisplay.launchのuse_guiを消してjoint_state_publisher_guiを加えてみた。

本文にも書いとくとこんな感じ。

<launch>
  <!-- arguments -->
  <arg name="model" default="$(find mabot_description)/robots/mabot.urdf.xacro"/>
  <arg name="gui" default="True" />
  <!-- prameters -->
  <param name="robot_description" command="$(find xacro)/xacro --inorder $(arg model)"/>
  <!-- nodes -->
  <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
  <node if="$(arg gui)" name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
  <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
  <!-- rviz -->
  <node name="rviz" pkg="rviz" type="rviz" args="-d $(find mabot_description)/launch/config/urdf.rviz" required="true" />
</launch>

追加した箇所は9行目。これでワーニングが出なくなった。if="$(arg gui)"を付けてあげることで今まで通りgui:=FalseにしたらGUIが起動しないようになってる。試しに下記コマンドで実行するとGUIが表示されない。

$ roslaunch mabot_description display.launch gui:=False

関連記事