рд╢реБрдн рджреЛрдкрд╣рд░, рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдореИрдВ рд░реЛрдмреЛрдЯ рдСрдкрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо (рдЖрд░рдУрдПрд╕) рд░реЛрдмреЛрдЯ рдордВрдЪ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдЙрдкрдпреЛрдЧреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВред рдЗрд╕ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдореИрдВ C ++ рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп ROS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реЙрдЧрд┐рдВрдЧ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд╕рд╣рдордд рд╣реЛрдВрдЧреЗ рдХрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп рдмрд╣реБрдд рдорд╣рддреНрд╡ рд░рдЦрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдбрд┐рдмрдЧрд┐рдВрдЧред ROS рд╡рд┐рд╢реЗрд╖ ROS рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рдХрд▓реНрдкрдирд╛ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЪрд▓реЛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдУ!
рдПрдХ рдиреЛрдб рдореЗрдВ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрд╕реЛрд▓.рдПрдЪ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рддреЛ, рдЪрд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдиреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рд╣рдо logging_tutorial рдХрд╣реЗрдВрдЧреЗ:
catkin_create_pkg logging_tutorial roscpp std_msgs
CMakeLists.txt рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
add_executable(logging_node src/main.cpp) target_link_libraries(logging_node ${catkin_LIBRARIES} )
рдЕрдм main.cpp рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХрдВрд╕реЛрд▓ рдЖрдпрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рд▓реЙрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде:
#include <ros/console.h>
рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕рдВрджреЗрд╢ рдЬреЛрдбрд╝реЗрдВ:
int main(int argc, char** argv) { ros::init(argc, argv, "logging_node"); ros::NodeHandle n; ROS_INFO("logging_node start"); return 0; }
рдкреИрдХреЗрдЬ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЪрд▓рд╛рдПрдВ:
cd ~/catkin_ws catkin_make source devel/setup.bash rosrun logging_tutorial logging_node
рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:
[ INFO] [1492194213.009783103]: logging_node start
рд╕рдВрджреЗрд╢ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, 1 рдЬрдирд╡рд░реА, 1970 рд╕реЗ рд╕реЗрдХрдВрдб рдФрд░ рдиреИрдиреЛрд╕реЗрдХрдВрдб рдореЗрдВ рдПрдХ "рд╕реНрддрд░" рдпрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ INFO рд╕реНрддрд░ рд╡рд╛рд▓рд╛ рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИред
рд╣рдо рдкреНрд░рд┐рдВрдЯрдл рдкрджреНрдзрддрд┐ рдХреЗ рд╕рдорд╛рди рд╕рдВрджреЗрд╢ рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
int val = 5; ROS_INFO("message with argument: %d", val);
рдЖрдк рдПрдХ рд╕рдВрджреЗрд╢ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ :: cout:
ROS_INFO_STREAM("message with argument: " << val);
ROS рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд "рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд╕реНрддрд░" (рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдХреЗ рдмрдврд╝рддреЗ рдХреНрд░рдо рдореЗрдВ) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- рдбреАрдмрдЧ
- рдЬрд╛рдирдХрд╛рд░реА
- рдЪреЗрддрд╛рд╡рдиреА
- рддреНрд░реБрдЯрд┐
- рдШрд╛рддрдХ
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрддрд░ рдХрд╛ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: ROS _ \ <LEVEL \>ред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: DEBUG - рд╣рд░рд╛, INFO - рд╕рдлреЗрдж, WARN - рдкреАрд▓рд╛, ERROR - рд▓рд╛рд▓, FATAL - рдмреИрдВрдЧрдиреАред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреАрдмрдЧ рд╕рдВрджреЗрд╢ рдбреАрдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВред
рдХреБрдЫ рдЕрд▓рдЧ рд╕рдВрджреЗрд╢ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдПрдХ рд▓реВрдк рдореЗрдВ рдЪрд▓рд╛рдПрдВред рдореБрдЭреЗ рдирд┐рдореНрди рдлрд╝рд╛рдЗрд▓ рдорд┐рд▓реА:
#include <ros/ros.h> #include <ros/console.h> int main(int argc, char** argv) { ros::init(argc, argv, "logging_node"); ros::NodeHandle n; ros::Rate rate (1); while(ros::ok()) { ROS_DEBUG("debug message"); ROS_INFO("logging_node start"); int val = 5; ROS_INFO("message with argument: %d", val); ROS_INFO_STREAM("stream message with argument: " << val); ROS_WARN("My warning"); ROS_ERROR("Some error"); ROS_FATAL("Fatal error"); ros::spinOnce(); rate.sleep(); } return 0; }
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, DEBUG рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ ROSCONSOLE_MIN_SEINITY рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреНрдпреВрдирддрдо рд╕реНрддрд░, рддрдерд╛рдХрдерд┐рдд "рдорд╣рддреНрд╡ рд╕реНрддрд░" рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред ROSCONSOLE_MIN_SEVERITY рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕реАрдорд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╕рдВрджреЗрд╢ рдиреНрдпреВрдирддрдо рд╕реНрддрд░ рдХреЗ рдмрд░рд╛рдмрд░ рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрддрд░ рд╡рд╛рд▓реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдиреНрдпреВрдирддрдо рд╕реНрддрд░ DEBUG рдкрд░ рд╕реЗрдЯ рд╣реИред рдЖрдк ROSCONSOLE_MIN_SEVERITY рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рд╕рдВрджреЗрд╢ рд╕реНрддрд░ (ROSCONSOLE_SEVERITY_DEBUG, ROSCONSOLE_SEVERITY_INFO, рдЖрджрд┐) рдпрд╛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА (ROSCONSOLE_SEVERITY_NONE) рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдХреНрд░реЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреНрдпреВрдирддрдо рд╕реНрддрд░ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
#define ROSCONSOLE_MIN_SEVERITY ROSCONSOLE_SEVERITY_DEBUG
рдЖрдк CMakeLists.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рд╕рднреА рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдЧрдВрднреАрд░рддрд╛ рд╕реНрддрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
add_definitions(-DROSCONSOLE_MIN_SEVERITY=ROSCONSOLE_SEVERITY_ERROR)
рдЗрд╕ рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ рд╕реАрдорд╛ рд╣реИ: рдХреЗрд╡рд▓ DEBUG рд╕реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдХреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рднрд▓реЗ рд╣реА рд╣рдо рд╕реАрдзреЗ ROSCONSOLE_SEVERITY_DEBUG рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ рдФрд░ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рдПрдХ custom_rosconsole.conf рдлрд╝рд╛рдЗрд▓ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде:
log4j.logger.ros.logging_tutorial=DEBUG
рдЕрдЧрд▓рд╛, рд▓реЙрдиреНрдЪ рд▓реЙрдЧрд┐рдВрдЧ.рд▓рд╛рдВрдЪ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ рдФрд░ ROSCONSOLE_CONFIG_FILE рдЪрд░ рдореЗрдВ custom_rosconsole.conf рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
<launch> <env name="ROSCONSOLE_CONFIG_FILE" value="$(find logging_tutorial)/config/custom_rosconsole.conf"/> <node pkg="logging_tutorial" type="logging_node" name="logging_node" output="screen"/> </launch>
рдпрд╣рд╛рдВ рд╣рдордиреЗ рдЖрдЙрдЯрдкреБрдЯ = "рд╕реНрдХреНрд░реАрди" рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЬреЛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрддрд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ INFO рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╣рдорд╛рд░реЗ рд▓реЙрдиреНрдЪрд░ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ:
cd ~/catkin_ws catkin_make roslaunch logging_tutorial logging.launch
рд╣рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдирд┐рд╖реНрдХрд░реНрд╖ рдорд┐рд▓рддрд╛ рд╣реИ:

ROS рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдирд╛рдо рджреЗрдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╣реЛрд╕реНрдЯ рдирд╛рдо рдорд┐рд▓рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ ROS _ \ <LEVEL \> [_ STREAM] _NAMED рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдирд╛рдо рджреЗ рд╕рдХрддреЗ рд╣реИрдВ:
ROS_INFO_STREAM_NAMED("named_msg", "named info stream message with argument: " << val);
рдирд╛рдо рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдирд╛рдорд┐рдд рд╕рдВрджреЗрд╢ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдиреНрдпреВрдирддрдо рд╕реНрддрд░ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ рдирд╛рдо рдкреИрдХреЗрдЬ рдирд╛рдо рдХреЗ рдмрд╛рдж рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
log4j.logger.ros.logging_tutorial.named_msg = ERROR
рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЗ рддрд╣рдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╕рд╢рд░реНрдд рд╕рдВрджреЗрд╢ рднреА рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, ROS рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ _ \ <LEVEL \> [_ STREAM] _COND [_NAMED]:
ROS_INFO_STREAM_COND(val < 2, "conditional stream message shown when val (" << val << ") < 2");
рд╕рдВрджреЗрд╢ ROS_ \ <LEVEL \> [_ STREAM] _THROTTLE [_NAMED] рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡реГрддреНрддрд┐ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдХрдВрдб рдореЗрдВ рдЖрд╡реГрддреНрддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ:
ROS_INFO_THROTTLE(3, "throttled message with period 3 seconds");
рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП rqt_console рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
Rqt_console рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЪрд▓рд╛рдПрдБ:
rosrun rqt_console rqt_console
рдФрд░ рд▓реЙрдиреНрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдиреЛрдб рд╢реБрд░реВ рдХрд░реЗрдВ:
roslaunch logging_tutorial logging.launch
Rqt_console рд╡рд┐рдВрдбреЛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:

рдпрд╣рд╛рдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЙрд╕рдХрд╛ рд╕реНрддрд░, рдиреЛрдб рдирд╛рдо, рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдФрд░ рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐ рдЬрд╣рд╛рдВ рдпрд╣ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╕рдВрджреЗрд╢ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЖрдк рд╕рднреА рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╣рд┐рд╖реНрдХрд░рдг рд╕рдВрджреЗрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдЖрдЧреЗ рдзрди рдЪрд┐рд╣реНрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝реЗрдВ рдФрд░ "... рдпреБрдХреНрдд" рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ:

рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕реНрддрд░ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░реЗрдВ:

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рд╕реНрддрд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдореИрд╕реЗрдЬ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдЗрд╕ рдкреНрд░рдХрд╛рд░, rqt_console рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдФрд░ рдЖрд░рдУрдПрд╕ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛрдЧреА рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдПрдЧреАред рдореИрдВ рдЖрд░рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдЖрдк рд╕рднреА рд╕рдлрд▓рддрд╛ рдХреА рдХрд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЖрдкрдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ!