【ROS】rviz・rqt_plot
rviz
ROSの可視化といえばrviz
$ rosrun rviz rviz
で起動
Turtlebotのシミュレータを使用してみる
$ sudo apt-get install -y ros-kinetic-turtlebot-gazebo $ source ~/.bashrc $ roslaunch turtlebot_gazebo turtlebot_world.launch
$ roslaunch turtlebot_gazebo amcl_demo.launch
$ rosrun rviz rviz
- 左下のAddをクリック
- RobotModelを選択
すると、TurtleBotが表示される
- Addをクリックし、ByTopicタブを選択
- /mapのmapを選択し、OKをクリック
この地図は予め製作されたもので、Gazeboの画面と比較すると同じようになっていることが分かる。
次に/camera/depth/pointsを追加する。
- AddからBy topicを選択し、/camera/depth/pointのPointCloud2を選択する
次にKinectのセンサ情報をロボットの現在位置に重ねる
- /odom/Odometry
- /move_base/NavfnROS/plan/path
を追加する。
赤い矢印がロボットモデルに重ねて表示される
この画面で、左のメニューのOdometryを開きCovarianceのチェックを外す
このようにrvizではPublishされているTopicから表示したいTopicを選択すると3次元的に表示させることができる
要するに、rostopic echoで表示される文字列がrvizで可視化できる
また、rvizでは出力だけでなく入力もできる
上のメニューの2D Nav Goalを選択し、
このように矢印をひっぱりると
このように赤い矢印が表示される。
別の角度で実行してみると、緑の線が出ていることも分かる。
赤い矢印が履歴として表示され、緑の細い線(/move_base/navfnROS/plan)がロボットがどこに移動使用しているのかを表している。
rqt
- Robot + Qt のこと
- Qtはマルチプラットフォームに対応したGUIのフレームワーク
- rqtはQtを使用したロボットのGUIフレームワーク
- rqt_graphやrqt_consoleなどがある
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
そして、/turtle1/cmd_velを選択
- 画面を最大化するとスライダーを動かしやすくなる
- このGUIで亀を動かすことができる
- スライダを動かすたびにMessageがpublishされる
rqt_plotを使ってみる
$ rqt_plot
Topic名と変数を繋いで書くことでPlotしたい要素を指定
リアルタイムで描画される