06 ROS Tools
06 ROS Tools
Textbook
P. 128~147
1
Index
Textbook
P. 128~147
2
Various Development Tools for ROS
Provides various development tools needed for robot development
Improving the efficiency of robot development
Command-Line Tools
• Robot access only with commands provided by ROS without GUI
& Use almost all ROS features
RViz
• Provides powerful 3D visualization tool
• Visualizes sensor data such as laser, camera, etc.
• Represents robot configuration and planned motion
RQT
• Provides Qt-based framework for developing graphic interface
• Displays nodes and connection information between them (rqt_graph)
• Floats encoder, voltage, or number that changes over time (rqt_plot)
• Records data in message form and play back (rqt_bag)
Gazebo
• 3D simulator which supports physics engine, robot, sensor, environmental model, etc.
• High compatibility with ROS
http://www.ros.org/core-components/ 3
Visualization Tool: RViz
4
RViz (ROS Visualization Tool)
• 3D visualization tool for ROS
• Visualization of sensor data
• Distance data of LASER distance sensor(LDS)
• Point cloud data from depth camera such as ‘RealSense’, ‘Kinect’, ‘Xtion’, etc.
• Image data of camera
• Inertia data of IMU sensor ...
• Navigation
• Manipulation
• Tele-operation
RViz Example #1
• Point cloud data of ‘Kinect’
https://youtu.be/OqOkpZBOpxY 6
RViz Example #2
• Distance data of LASER distance sensor(LDS)
https://youtu.be/qtoAJ1wzB6s 7
RViz Example #3
• Inertia data of IMU sensor
https://youtu.be/j5v5fKppcQo 8
RViz Example #4
• Video of point cloud, color, depth of ‘RealSense’
https://youtu.be/Jf4kgPEzY4s 9
RViz Example #5
• Show skeleton and direction of a person
https://youtu.be/ath8uNv9c_Q 10
RViz Example #6
• R2-D2 robot model
$ sudo apt-get install ros-kinetic-urdf-tutorial
$ roslaunch urdf_tutorial display.launch model:='$(find urdf_tutorial)'urdf/05-visual.urdf
11
RViz Example #7
• Environment model, robot, path
https://youtu.be/9lbuLAD1c_4 12
RViz Example #8
• Map display, navigation, and assign destination
https://youtu.be/VYlMywwYALU 13
RViz Example #9
• IK target position and path display using interactive markers
14
RViz Example #10
• Disaster relief robots (2015 DARPA Robotics Challenge)
https://www.youtube.com/user/DARPAtv 15
RViz Installation and Test
• RViz Installation
$ sudo apt-get install ros-kinetic-rviz
* If you installed ‘ros-kinetic-desktop-full’, RViz will be installed by default
• Run RViz
$ rosrun rviz rviz
or
$ rviz
16
RViz initial screen (not configured yet)
17
Screen configuration of RViz (for LDS)
③ ①
④ ⑤
② 1. 3D view
2. Display
3. Menu
4. Tools
5. View types
6. Time
⑥ 18
Display type of RViz (Click ‘ADD’ in Display Menu)
Axes Path
Camera Point cloud
Depth cloud Point cloud2
Effort Point stamped
Fluid pressure Polygon
Grid Pose
Grid cells (used for map) Pose array
Group Range
Illuminance Temperature
Video Robot model
Interactive marker TF
Laser scan Relative Humidity
Map WrenchStamped
Marker
Marker array
Odometry
19
With ‘RViz’,
Sensor and Robot Related
Data Visualization becomes Very Simple!
20
GUI Tool Box: RQT
21
RQT: Plug-in Type Comprehensive GUI Tool for ROS
• Starting with the ROS Fuerte version, the existing ‘rxbag’, ‘rxplot’, ‘rxgraph’, etc. have
been merged with ‘rqt’. It is now available as comprehensive GUI tool for ROS with
plug-ins such as ‘rqt_bag’, ‘rqt_plot’, ‘rqt_graph’, etc.
• Since ‘rqt’ is developed with ‘Qt’, users can freely add and develop plugins
• Let’s take a look at ’rqt_image_view’, ‘rqt_graph’, ‘rqt_plot’, ‘rqt_bag’ which are
representative plugins of ‘rqt’
• RQT Run
$ rqt
RQT Plug-in #1
1. Action
• Action Type Browser | Check the data structure of action type
2. Configuration
• Dynamic Reconfigure | Change the GUI setting value to change the setting value provide by the nodes
• Launch | GUI version of ‘roslaunch’
3. Introspection
• Node Graph | Graph view showing relationship diagrams and message flow of running nodes
• Package Graph | Graph view showing node dependencies
• Process Monitor | Check CPU utilization, memory usage, and number of threads of running nodes
4. Logging
• Bag | ROS data logging
• Console | Check for messages such as warning, error that occur on the nodes
• Logger Level | Select and display logger information such as Debug, Info, Warn, Error, Fatal
24
RQT Plug-in #2
5. Miscellaneous Tools
• Python Console | Python console screen
• Shell | Activate shell
• Web | Activate web browser
6. Robot
• Depending on the robot, add a plug-in such as a dashboard
7. Robot Tools
• Controller Manager | Plug-in required to control the controller
• Diagnostic Viewer | Check robot device and error
• Moveit! Monitor | Check ‘Moveit!’ data used in robot arm planning
• Robot Steering | Robot adjustment GUI tool, used in remote control to steer the robot
• Runtime Monitor | Check for errors and warning on nodes in real time
25
RQT Plug-in #3
8. Services
• Service Caller | Connect to the running service server and request service
• Service Type Browser | Check the data structure of the service type
9. Topics
• Easy Message Publisher | Publish topic in GUI environment
• Topic Publisher | Create and publish topic
• Topic Type Browser | Check the data structure of the topic type
• Topic Monitor | Check the information of selected topic
10. Visualization
• Image View | Check image data of camera
• Navigation Viewer | Check location and target point of robot navigation
• Plot | 2D data plot GUI plug-in, 2D data plotting
• Pose View | Show current TF location and model location
• RViz | Rviz plug-in which is 3D visualization tool
• TF Tree | Graph view showing tf relation as a tree structure
26
RQT Example
http://www.ros.org/core-components/ 27
RQT Practice #1: rqt_image_view
$ rosrun uvc_camera uvc_camera_node
or
$ rqt_image_view
28
RQT Practice #2: rqt_graph
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
$ rosrun uvc_camera uvc_camera_node
$ rosrun image_view image_view image:=image_raw
or
$ rqt_graph
29
RQT Practice #3: rqt_plot
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
or
$ rqt_plot /turtle1/pose/
30
RQT Practice #4: rqt_bag
$ rosrun uvc_camera uvc_camera_node
$ rosbag record /image_raw
or
$ rqt_bag
31
Using RQT
1. ROS available in GUI form
2. Easy to create GUI Tool!
32
3D Simulator: Gazebo
33
Gazebo
• Gazebo is 3D Simulator with Physics Engine, Robot model, Sensor,
Environment model, and so on. It helps you to get data similar to the one in
real environment.
• Gazebo is regarded as the best simulator among recently-introduced Open
Simulator. In addition, it is selected as an official simulator for DARPA
Robotics Challenge
• It is highly compatible with ROS.
http://gazebosim.org/ 34
Gazebo
https://youtu.be/R3xUKYcG_bc 35
Key Point?
If you need Simulation,
It is easy to work with ROS &
Gazebo!!
Question Time!
Advertisement #1
Download link
Language:
English, Chinese, Japanese, Korean
Direct Link
Advertisement #3
www.robotsource.org
The ‘RobotSource’ community is the space for people making robots.