рдкреГрдереНрд╡реА рдХреЗ рдШреВрдордиреЗ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИ!
рдЖрдЬ рд╣рдо рдЖрд░рдУрдПрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЛ рдЬрд╛рд░реА рд░рдЦреЗрдВрдЧреЗ, рдЬреЛ рд░реЛрдмреЛрдЯ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдФрд░ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рдкрд╛рда рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП - рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ред
- рд╕реНрдерд╛рдкрдирд╛, рдмреБрдирд┐рдпрд╛рджреА рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ
- рд╣рдо рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╕рдВрджреЗрд╢реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рд╕рд░рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдо
- рд╕реЗрд╡рд╛рдПрдБ рдФрд░ рд╡рд┐рдХрд▓реНрдк
рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╣рдореЗрдВ рдкрддрд╛ рдЪрд▓рд╛ рдерд╛ рдХрд┐ рдЖрд░рдУрдПрд╕ рдХрд╛ рдореВрд▓ рддрддреНрд╡ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИред рд╢реИрдХреНрд╖рд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдордиреЛрд░рдВрдЬрдХ рддрдереНрдп рд╕реЗ рдирд╣реАрдВ рдЧреБрдЬрд░ рд╕рдХрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдЖрд╡рд░реНрдзрдХ рдХрд╛рдВрдЪ рдпрд╛ рдорд╛рдЗрдХреНрд░реЛрд╕реНрдХреЛрдк рдХреЛ рдордЬрдмреВрдд рдХрд░реЗрдВ - рд╣рдо рдЕрдзреНрдпрдпрди рдХрд░реЗрдВрдЧреЗ!
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЖрдкрдХреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреИрдХреЗрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрдЧрд╛ред рдХреБрдЫ рднреА рдЦрд░рд╛рдм рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЕрдЪреНрдЫреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрд░рдУрдПрд╕ рдорд╛рдЗрдХреНрд░реЛрдлреНрд▓реЛрд░рд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рднреА рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдПрдВрдЧреЗред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ ~ / ros рд╣реЛрдЧрд╛ред
. /opt/ros/electric/setup.sh cd mkdir ros cd ./ros export ROS_PACKAGE_PATH="~/ros:/opt/ros/electric/stacks"
рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рддреА рд╣реИ рдЬреЛ рдкрде рдХреЛ рдорд╛рдирдХ рдкреИрдХреЗрдЬ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА (рд╕рдВрдЦреНрдпрд╛ 2) рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрде (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрде рд╕рдВрдЦреНрдпрд╛ 1) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдкрд╛рдардХ рд╕реБрдЭрд╛рд╡ рджреЗ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдХрд╕реНрдЯрдо рд╕реНрдЯреИрдХ рдмрдирд╛рддреЗ рд╣реИрдВред рдХрд╛рд╢, рдпрд╣ рдПрдХ рдЧрд▓рдд рдзрд╛рд░рдгрд╛ рд╣реЛрдЧреА - рд╣рдо stack.xml рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдлрд╛рдЗрд▓ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдареАрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЬрд░реВрд░реА рдирд╣реАрдВ рд╣реИред рдФрд░ рдЕрдм рд╕рдВрд╕реНрдХрд╛рд░ рдХрд╛ рд╕рдордп рд╣реИред
рдХреГрдкрдпрд╛ рд▓рдкреЗрдЯреЗрдВ
рдкреИрдХреЗрдЬ roscreate-pkg рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
$ roscreate-pkg tutorial std_msgs rospy roscpp
рдкрд╣рд▓рд╛ рддрд░реНрдХ рдкреИрдХреЗрдЬ рдХрд╛ рдирд╛рдо рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдирд┐рд░реНрднрд░рддрд╛ рдХреА рд╕реВрдЪреА (рд╣рдо рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ)ред рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдкреИрдХреЗрдЬ рдХреЛ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд┐рдо рдкрд╛рда рдореЗрдВ рдЬреНрдЮрд╛рдд рд░рд╕реНрд╕рд╛рдХрд╕реА рдЯреАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
rospack profile rospack find tutorial /home/crady/ros/tutorial
рд▓рдЧрддрд╛ рд╣реИ рд╕рдм рдареАрдХ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЕрдкрдирд╛ рдкреИрдХреЗрдЬ рдХрд┐рд╕реА рджреВрд╕рд░реА рдорд╢реАрди рдкрд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛? рдФрд░ рдЕрдЧрд░ рдЖрд░рдУрдПрд╕ рдХрд╛ рдПрдХ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ? рдФрд░ рдЕрдЧрд░ рдпрд╣ рд╣реИ, рдФрд░ рдлрд┐рд░ рддреБрд░рдВрдд, рдУрд╣-рдУрд╣-рдУрд╣, рддрдм? рдирд┐рд░реНрднрд░рддрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЛ рдЗрд╕ рд╕рдм рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЖрд░рдУрдПрд╕ рдкреИрдХреЗрдЬ рдХреЗ рдмреАрдЪ 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ - рдкрд╣рд▓рд╛ рдЪрд░рдг рдФрд░ рдЕрдиреНрдп рд╕рднреАред рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдкреНрд░рдХрдЯрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рддреЛ рд╡рд┐рднрд╛рдЬрди рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
cat ./ros/tutorial/manifest.xml
<package> <description brief="tutorial"> tutorial </description> <author>crady</author> <license>BSD</license> <review status="unreviewed" notes=""/> <url>http://ros.org/wiki/tutorial</url> <depend package="std_msgs"/> <depend package="rospy"/> <depend package="roscpp"/> </package> </source>
рдпрд╣рд╛рдВ, <рдирд┐рд░реНрднрд░> рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд╣рд▓реЗ рдЪрд░рдг рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреА рд╣реИред рд╡реЗ рд╕рдм рдЬреЛ рд╡реЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ "рдЕрдкреНрд░рддреНрдпрдХреНрд╖" рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВред рд╣рд░ рдмрд╛рд░ рдкреНрд░рдХрдЯ рдЪрдврд╝рд╛рдИ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдлрд┐рд░ рд╕реЗ рд░рд╕реНрд╕рд╛рдХрд╕реА рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
$ rospack depends1 tutorial std_msgs rospy roscpp $ rospack depends tutorial rospack roslib std_msgs rosgraph_msgs rosbuild roslang rospy cpp_common roscpp_traits rostime roscpp_serialization xmlrpcpp rosconsole roscpp
рдмрд╣реБрдд рдХрдо рд╕рд┐рджреНрдзрд╛рдВрдд рдмрдЪрд╛ рд╣реИ рдФрд░ рд╣рдо рд╕рдмрд╕реЗ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ - рд▓реЗрдЦрди рдХреЛрдб рдкрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗред
рдлрд┐рд░ рд╡рд╣ рдореБрдЭрд╕реЗ рдХрд╣рддрд╛ рд╣реИ ...

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░рд╛ рдкреИрдХреЗрдЬ рддреИрдпрд╛рд░ рд╣реИ рдФрд░ рд╕рдХреНрд╖рдо рд╣реИ ... рдПрдордЖрд░рдПрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рдЪрд┐рддреНрд░ рдХреА рдКрд░реНрдЬрд╛ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо ...ред рд╢рд╛рдпрдж рдХрд┐рд╕реА рджрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рд╣реИ рдФрд░ рдХреНрдпреЛрдВ, рдпрд╣ рдмрд╛рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рд╣рдорд╛рд░реА рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд┐рдЫрд▓реЗ рдкрд╛рда рд╕реЗ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ ROS рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ [рдиреЛрдб] рдиреЛрдб рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ ), рдЗрд╕реЗ рдЗрдирдкреБрдЯ рдкрд░ рдХреБрдЫ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪрд┐рддреНрд░) рдФрд░ рд╡рд╣ рджреЗрдирд╛ (рдХрд╣рдирд╛, рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдпрд╛ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛)ред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд╡рд┐рд╡рд┐рдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред рдпрд╣
рд╕рдВрджреЗрд╢ рддрдВрддреНрд░ (msg) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓рддреА рд╣реИ:
рдкреНрд░рдХрд╛рд╢рдХ (рдкреНрд░рдХрд╛рд╢рдХ) рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ
рд╡рд┐рд╖рдп (рдЯреЙрдкрд░реНрд╕) рдкрд░
рдЧреНрд░рд╛рд╣рдХ (рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░) рдХреЗ рд╕рд╛рде рдЪреИрдЯ рдХрд░рддреЗ рд╣реИрдВред
рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЖрд╡реЗрджрди рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдФрд░ рдХреБрдЫ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдЬреНрдЮрд╛рди рд╣реИред рдпрд╣ рдЗрди рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣рдбреНрдбрд┐рдпреЛрдВ рдкрд░ рдХреБрдЫ рдорд╛рдВрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЖрд░рдУрдПрд╕ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреИрд╕реЗ рджрд┐рдЦрддреЗ рд╣реИрдВред
рдФрд░ рдЗрд╕рд▓рд┐рдП рдЖрдк рдХреЛрдб ...
рд╣рдо рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд╢рдХ рдХреЛ рдЕрджреНрднреБрдд рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред рдмрд▓реНрдХрд┐, рдпрд╣ рдПрдХ рд╣реИрд▓реЛ-рд╡рд░реНрд▓реНрдб рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рд╣рдо рдЕрдкрдиреЗ рддрд░реАрдХреЗ рд╕реЗ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рд╕рдВрджреЗрд╢ рдХреЗ рдкрд╛рда рдХреЛ рдмрджрд▓ рджреЗрдВрдЧреЗ! рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ:
$ cd $(rospack find tutorial)
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ:
$ mkdir scripts
рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЯреЗрдХреНрд╕реНрдЯ рдлрд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
$ vi ./scripts/talker.py
рдЪреВрдБрдХрд┐ рдпрд╣ рдПрдХ рд╡рд╛рд░реНрддрд╛рдХрд╛рд░ рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрди рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
$ echo "string str" > ./msg/Str.msg
рдирд┐рдореНрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:
- int8, int16, int32, int64 (рдФрд░ uint *)
- float32, float64
- рддрд╛рд░
- рд╕рдордп, рдЕрд╡рдзрд┐
- рдЕрдиреНрдп рд╕рдВрджреЗрд╢ рдлрд╝рд╛рдЗрд▓реЗрдВ
- рдЪрд░ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдВрдмрд╛рдИ (рд╕рд░рдгреА [] рдФрд░ рд╕рд░рдгреА [C], рдХреНрд░рдорд╢рдГ рдХреА рд╕рд╛рд░рдгреА)
рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдмрд╕ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЕрдиреБрд░реВрдк 1 рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде, рдкрд╛рда рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рд╣реИред "рдХреНрдпрд╛ рд╡рд╣ рд╕рдм рд╣реИ?" рдкрд╛рдардХ рдкреВрдЫрддрд╛ рд╣реИред рдЦреИрд░, рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рд╛рдБред Msg рдХреЛрдб рд▓реЛрдХрд▓ рдореЗрдХ рджреНрд╡рд╛рд░рд╛ рдЬреЗрдирд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡реИрд╕реЗ, рд╣рдореЗрдВ рдпрд╣ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ
$ vi ./CMakeLists.txt
рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рдХреЛ рдЕрдирд▓рд┐рдВрдХ рдХрд░рдирд╛ рд╣реИ:
rosbuild_genmsg()
рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдПрдЧрд╛ рдХрд┐ рдиреЛрдб рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рдЬрд╛рдирдХрд╛рд░реА рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЙрдкрдпреБрдХреНрдд рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рд╕рднреА, рдХрдВрд╕реЛрд▓ рдореЗрдВ рджрд░реНрдЬ рдХрд░реЗрдВ
$ make $ chmod +x ./scripts/listener.py
рдФрд░ рдЖрдирдВрдж рд▓реЗрдВред рд╣рд╛рдВ, рдпрд╣рд╛рдВ рдкрд╛рдпрдерди рдХреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЗрдХ рдЗрди рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред chmod рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ!)ред
рдЗрд╕ рдмреАрдЪ, рд╣рдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдЕрджреНрднреБрдд рд╕реА ++ рднрд╛рд╖рд╛ рдореЗрдВ рд╡рд╛рд░реНрддрд╛рдХрд╛рд░ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред рд╣рд╛рдБ, msgs рддрдВрддреНрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдФрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдиреЛрдбреНрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдХ рдирдпрд╛ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдБ:
$ roscreate-pkg tutorialSubscriber roscpp std_msgs $ cd tutorialSubscriber/ $ vi ./src/listener.cpp
#include "ros/ros.h" #include "std_msgs/String.h" void chatterCallback(const std_msgs::String::ConstPtr& msg) {

рдпрд╣ рдереЛрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ:
vi ./CMakeLists.txt
рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рдореЗрдВ рдкреНрд░рдЪрд▓рд┐рдд рд░реЗрдЦрд╛ рдХреЛ рд▓рд╛рдпрд╛ рдЬрд╛рдП:
rosbuild_add_executable(listener src/listener.cpp)
рд╣рдо рдпрд╣рд╛рдБ рднреА рдмрдирд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдлрд╝рд╛рдЗрд▓ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рд╕рдм рдХреБрдЫ, рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рдо рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ, рд╣рдо 4 рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрд▓рддреЗ рд╣реИрдВ:
- roscore рдорд╛рд╕реНрдЯрд░ рдкреНрд░реЛрд╕реЗрд╕ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛
- rosrun tutorial talker.py рдкреНрд░рдХрд╛рд╢рдХ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛
- rosrun tutorialSubcriber рд╢реНрд░реЛрддрд╛ рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛
- rxgraph рд╣рдореЗрдВ рдиреЛрдб рдХрдиреЗрдХреНрд╢рди рдЖрд░реЗрдЦ рджрд┐рдЦрд╛рдПрдЧрд╛
рдЖрд░реЗрдЦ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрджреЗрд╢ рдкрд╛рда рджреЛ рдмрд╛рд░ рдореБрджреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рд╢реНрд░реЛрддрд╛ рдиреЛрдб рдкрд░ рдФрд░ / rosout, stdout рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧред
рдЗрд╕ рдмреАрдЪ ...
рдЗрд╕ рдмреАрдЪ рдкрд╛рд░реНрдЯреА рд░рдлреНрддрд╛рд░ рдкрдХрдбрд╝ рд░рд╣реА рд╣реИред рд▓реЛрдЧ рдЗрд╕ рд╣рд╛рд▓рдд рдореЗрдВ рдкрд╣реБрдВрдЪ рдЧрдП рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд┐рд▓рд┐рдпрд░реНрдбреНрд╕ рдХрд╛ рдереЛрдбрд╝рд╛ рдЦреЗрд▓ рдЦреЗрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЧрдпрд╛ ...