LIFE LOG(ここにはあなたのブログ名)

あつあつ備忘録

ソフトやハード、時にはメカの備忘録をまとめていきます

【ROS】rviz・rqt_plot

f:id:AtsuyaKoike:20190421152613p:plain
画像元

rviz

ROSの可視化といえばrviz

$ rosrun rviz rviz

で起動


Turtlebotのシミュレータを使用してみる

$ sudo apt-get install -y ros-kinetic-turtlebot-gazebo
$ source ~/.bashrc
$ roslaunch turtlebot_gazebo turtlebot_world.launch

f:id:AtsuyaKoike:20190514164017p:plain:w600

$ roslaunch turtlebot_gazebo amcl_demo.launch 
$ rosrun rviz rviz
  1. 左下のAddをクリック
  2. RobotModelを選択

f:id:AtsuyaKoike:20190514164135p:plain:w600
すると、TurtleBotが表示される

  1. Addをクリックし、ByTopicタブを選択
  2. /mapのmapを選択し、OKをクリック

f:id:AtsuyaKoike:20190514164444p:plain:w600
この地図は予め製作されたもので、Gazeboの画面と比較すると同じようになっていることが分かる。
次に/camera/depth/pointsを追加する。

  1. AddからBy topicを選択し、/camera/depth/pointのPointCloud2を選択する

f:id:AtsuyaKoike:20190514164931p:plain:w600
次にKinectのセンサ情報をロボットの現在位置に重ねる

  1. /odom/Odometry
  2. /move_base/NavfnROS/plan/path

を追加する。

f:id:AtsuyaKoike:20190514165233p:plain:w600
赤い矢印がロボットモデルに重ねて表示される
この画面で、左のメニューのOdometryを開きCovarianceのチェックを外す

このようにrvizではPublishされているTopicから表示したいTopicを選択すると3次元的に表示させることができる
要するに、rostopic echoで表示される文字列がrvizで可視化できる


また、rvizでは出力だけでなく入力もできる

f:id:AtsuyaKoike:20190514174634p:plain:w600
上のメニューの2D Nav Goalを選択し、

f:id:AtsuyaKoike:20190514174754p:plain:w600
このように矢印をひっぱりると

f:id:AtsuyaKoike:20190514174830p:plain:w600
このように赤い矢印が表示される。


f:id:AtsuyaKoike:20190514175424p:plain:w600
別の角度で実行してみると、緑の線が出ていることも分かる。

赤い矢印が履歴として表示され、緑の細い線(/move_base/navfnROS/plan)がロボットがどこに移動使用しているのかを表している。

rqt

rqt_ez_publisherを使う

Topicをスライダーなどを使ってpublishできる

$ sudo apt-get isntall ros-kinetic-rqt-ez-publisher
$ roscore
$ rosrun turtlelesim turtlesim_node
$ rosrun rqt_ez_publisher rqt_ez_publisher 

f:id:AtsuyaKoike:20190514181125p:plain:w600
そして、/turtle1/cmd_velを選択

f:id:AtsuyaKoike:20190514181304p:plain:w600

  • 画面を最大化するとスライダーを動かしやすくなる
  • このGUIで亀を動かすことができる
  • スライダを動かすたびにMessageがpublishされる

rqt_plotを使ってみる

$ rqt_plot 

f:id:AtsuyaKoike:20190514181745p:plain:w600
Topic名と変数を繋いで書くことでPlotしたい要素を指定

f:id:AtsuyaKoike:20190515104135p:plain:w600
リアルタイムで描画される