рдЖрд░рдУрдПрд╕ рдЯреНрд░рдХ рдЯреНрд░реЙрд▓реАред рднрд╛рдЧ 5. rviz рдФрд░ gazebo рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдирд╛: xacro, рдирдП рд╕реЗрдВрд╕рд░

рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкреЛрд╕реНрдЯ:
8. рд╣рдо рдлреЛрди-рдЖрд░рдУрдПрд╕ рдХрдВрдЯреНрд░реЛрд▓, рдЬреАрдкреАрдПрд╕-рдиреЛрдб рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
7. рд░реЛрдмреЛрдЯ рд╕реНрдерд╛рдиреАрдпрдХрд░рдг: рдЬреАрдПрдордкреА, рдПрдПрдорд╕реАрдПрд▓, рдХрдорд░реЗ рдХреЗ рдирдХреНрд╢реЗ рдкрд░ рд╕рдВрджрд░реНрдн рдмрд┐рдВрджреБ
6. рдкрд╣рд┐рдпрд╛ рдПрдирдХреЛрдбрд░, рдХрдорд░реЗ рдХреЗ рдирдХреНрд╢реЗ, рд▓рд┐рдбрд╛рд░ рдХреЗ рд╕рд╛рде рдУрдбреЛрдореЗрдЯреНрд░реА
5. рд╣рдо rviz рдФрд░ gazebo рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: xacro, рдирдП рд╕реЗрдВрд╕рд░ред
4. rviz рдФрд░ gazebo рд╕рдВрдкрд╛рджрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░реЛрдмреЛрдЯ рд╕рд┐рдореБрд▓реЗрд╢рди рдмрдирд╛рдПрдВред
3. рддреЗрдЬреА рд▓рд╛рдиреЗ, рдХреИрдорд░рд╛ рдмрджрд▓рдиреЗ, рдЧреЗрдЯ рдХреЛ рдареАрдХ рдХрд░реЗрдВ
2. рд╕реЙрдлреНрдЯрд╡реЗрдпрд░
1. рд▓реЛрд╣рд╛

рдкрд┐рдЫрд▓реА рдмрд╛рд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рдХреНрд╖реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗ:

  • рд░реЛрдмреЛрдЯ рдХрд╛ urdf-description рдпреБрдХреНрдд xacro-file рдмрдирд╛рдХрд░ рд░реЛрдмреЛрдЯ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ;
  • рджреЛ рд▓реЙрдиреНрдЪ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдЖрдкрдХреЛ рд╕рдВрдкрд╛рджрдХ-рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЧрдЬрд╝реЗрдмреЛ рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЛ рд░рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ;
  • рдХреАрдмреЛрд░реНрдб рд╕реЗ рдЧрдЬрд╝реЗрдмреЛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВред

рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ, рд╣рдо xacro рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдкрдардиреАрдп рд╣реЛ рдЬрд╛рдП (рдкрд╣рд▓реЗ, рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдкреВрд░реЗ рд╡рд┐рд╡рд░рдг рдХреЛ рдПрдХ xacro рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдзрдХреЗрд▓ рджрд┐рдпрд╛)ред рдПрдХ рдЖрднрд╛рд╕реА рд╡реАрдбрд┐рдпреЛ рдХреИрдорд░рд╛ рдЬреЛрдбрд╝реЗрдВ рдФрд░ imuред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЖрд╕рдкрд╛рд╕ рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╡рд┐рджреЗрд╢реА рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдЧрдЬрд╝реЗрдмреЛ рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред

рдкрд╣рд▓реЗ, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ roscd рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЯрд░реНрдорд┐рдирд▓ ROS рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ:

roscd rosbots_description/launch 

рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ catkin_ws рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 source devel/setup.bash 

рдЕрдм рд░реЛрдмреЛрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ:

 roscd rosbots_description/launch 

рдкрд╣рд▓реЗ рдмрдирд╛рдИ рдЧрдИ рд╕реНрдкреЙрди.рд▓рдВрдЪ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:

 <param name="robot_description" command="cat '$(find rosbots_description)/urdf/rosbots.xacro'" /> 

Cat рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ rosbots.xacro рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ robot_description рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

Xacro рдХрдорд╛рдВрдб рдлреЙрд░реНрдореЗрдЯ рдХрд╛ рдкреВрд░рд╛ рдлрд╛рдпрджрд╛ рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЙрдкрд░реЛрдХреНрдд рдкрдВрдХреНрддрд┐ рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:

 <param name="robot_description" command="$(find xacro)/xacro.py '$(find rosbots_description)/urdf/rosbots.xacro'" /> 

рдЕрдм рд╕рд┐рд╕реНрдЯрдо roacbots.xacro рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП xacro.py рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рджреВрд╕рд░реЗ рд▓реЙрдиреНрдЪ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдкрд░рд┐рд╡рд░реНрддрди рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреЗ - rviz.launchред

рдмрджрд▓

 <param name="robot_description" command="cat '$(find rosbots_description)/urdf/rosbots.xacro'" /> 

рдкрд░

 <param name="robot_description" command="$(find xacro)/xacro.py '$(find rosbots_description)/urdf/rosbots.xacro'"/> 

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рдирдП рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, rviz рдПрдбрд┐рдЯрд░ рдореЗрдВ рдореЙрдбрд▓ рджреЗрдЦреЗрдВ:

 roslaunch rosbots_description rviz.launch 

рдлрд┐рд░, rviz рдХреЛ рдмрдВрдж рдХрд░рдХреЗ, рдЧрдЬрд╝реЗрдмреЛ рдореЗрдВ рдЬрд╛рдВрдЪреЗрдВред

рдкрд╣рд▓рд╛ рдЯрд░реНрдорд┐рдирд▓:

 roslaunch gazebo_ros empty_world.launch 

2:

 roslaunch rosbots_description spawn.launch 

* рдЖрдк рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ
рдкреАрд▓рд╛ рд░рдВрдЧ


 xacro: Traditional processing is deprecated. Switch to --inorder processing! To check for compatibility of your document, use option --check-order. For more infos, see http://wiki.ros.org/xacro#Processing_Order xacro.py is deprecated; please use xacro instead 


рд╡реЗ рдореМрд╕рдо рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред

рддреЛ, рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдм рдХреЗрд╡рд▓ xacro рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡рд╣ рдХреНрдпрд╛ рджреЗрддрд╛ рд╣реИ? рдпрд╣ рдкреНрд░рд╛рд░реВрдк рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдкреБрдирд░реНрдЧрдард┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЬреИрд╕реЗ рд╣реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдврд╝рддреА рд╣реИ, рдЗрд╕рд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмреЗрд╣рддрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ред

Xacro рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛


рдЕрдм рдпрд╣ rosbots.xacro рдХреЛ рдЕрдкрдиреЗ рдШрдЯрдХ рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ xacro рдХрд╛ рд▓рд╛рдн рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдПрдХ рдирдИ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП rosbots.xacro рд╕реЗ рдЧрдЬрд╝реЗрдмреЛ рд╕рдВрдкрд╛рджрдХ (рдЧрдЬрд╝реЗрдмреЛ рдЯреИрдЧ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред
URL рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ rosbots.gazebo.xacro рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

 nano rosbots.gazebo.xacro 

рдФрд░ рд╡рд╣рд╛рдВ рдХреЛрдб рдбрд╛рд▓реЗрдВ:

rosbots.gazebo.xacro
 <?xml version="1.0"?> <robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="rosbots" > <gazebo> <plugin name="differential_drive_controller" filename="libgazebo_ros_diff_drive.so"> <legacyMode>false</legacyMode> <alwaysOn>true</alwaysOn> <publishWheelTF>true</publishWheelTF> <publishTf>1</publishTf> <publishWheelJointState>true</publishWheelJointState> <updateRate>100.0</updateRate> <leftJoint>wheel_left_joint</leftJoint> <rightJoint>wheel_right_joint</rightJoint> <wheelSeparation>1.1</wheelSeparation> <wheelDiameter>0.52</wheelDiameter> <wheelAcceleration>1.0</wheelAcceleration> <torque>20</torque> <commandTopic>/part2_cmr/cmd_vel</commandTopic> <odometryTopic>odom</odometryTopic> <odometryFrame>odom</odometryFrame> <robotBaseFrame>base_link</robotBaseFrame> </plugin> </gazebo> </robot> 


рдЯреИрдЧ рдХреЗ рднреАрддрд░ рд╕рдорд╛рди рдХреЛрдб
 <gazebo> </gazebo> 
rosbots.xacro рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╣рдЯрд╛рдПрдВред

рдЕрдм рд╣рдо рдирд╡рд╕реГрдЬрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ rosbots.xacro рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдХрд╣реАрдВ рд╕реЗ, rosbots.xacro рдХреЗ рдЧрдЬрд╝реЗрдмреЛ рдШрдЯрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдорд╛рди рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП!

рддрджрдиреБрд╕рд╛рд░, rosbots.xacro рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:

 <xacro:include filename="$(find rosbots_description)/urdf/rosbots.gazebo.xacro" /> 

рдЯреИрдЧ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрди рдХреЗ рдмрд╛рдж рдЗрд╕ рд▓рд╛рдЗрди рдХреЛ рдбрд╛рд▓реЗрдВ
 <robot> 
ред рдЕрдм рдлрд╛рдЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдЗрд╕ рддрд░рд╣ рд╣реЛрддреА рд╣реИ:

 <robot name="rosbots" xmlns:xacro="http://www.ros.org/wiki/xacro"> <xacro:include filename="$(find rosbots_description)/urdf/rosbots.gazebo.xacro" /> 

рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдирдпрд╛ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

рдкрд╣рд▓рд╛ рдЯрд░реНрдорд┐рдирд▓:

 roslaunch gazebo_ros empty_world.launch 

2:

 roslaunch rosbots_description spawn.launch 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП, рд╕рд┐рдореБрд▓реЗрд╢рди рдореЗрдВ рдореЙрдбрд▓ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЕрдкрдиреА рдЬрдЧрд╣ рдкрд░ рд░рд╣рддрд╛ рд╣реИ, рдХрдорд╛рдВрдб рд╕рдорд╛рди рд╣реИрдВред

рдирдП рд╕реЗрдВрд╕рд░ рдЬреЛрдбрд╝реЗрдВ


рдЕрдм рдЬрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдиреЗ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рдВрд░рдЪрд┐рдд рд░реВрдк рд▓реЗ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реЗрдВрд╕рд░ рд╕рдВрд▓рдЧреНрди рдХрд░реЗрдВрдЧреЗред

"рдмреЙрдбреА рдХрд┐рдЯ" рдХреЗ рд╕рд╛рде рд░реЛрдмреЛрдЯ рдХреЛ рдЬреЛрд░ рд╕реЗ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреЗрд╡рд▓ рджреЛ рд╕реЗрдВрд╕рд░ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ: рдПрдХ рдХреИрдорд░рд╛ рдФрд░ рдЗрдореВ (рдЬрдбрд╝рддреНрд╡реАрдп рдорд╛рдкрдХ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдЬрд╛рдЗрд░реЛрд╕реНрдХреЛрдк)ред

рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ rosbots.xacro рдФрд░ rosbots.gazebo.xacro рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЪрд▓реЛ рдХреИрдорд░рд╛ рдФрд░ rosbots.xacro рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬреЛ рд╕рдВрд╡реЗрджрдХ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

  • рд╕рдВрдЪрд╛рд░ (рд▓рд┐рдВрдХ)ред рдпрд╣ рдПрдХ рдбреАрдИрдИ рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • рд╕рдВрдпреБрдХреНрдд, рдЬреЛ рдХреИрдорд░реЗ рдХреЛ рд░реЛрдмреЛрдЯ рдХреЗ рд╢рд░реАрд░ рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред

рдПрдХ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рдореЗрдВ - rosbots.gazebo.xacro - рд╣рдо рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ:

  • рдПрдХ рдкреНрд▓рдЧрдЗрди рдЬреЛ рд╕реЗрдВрд╕рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ред

рд╣рдо рдЗрд╕реЗ рдЯреИрдЧ рдХреЗ рднреАрддрд░ rosbots.xacro рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ (рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрд╕реЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ):

rosbots.xacro
 <joint name="camera_joint" type="fixed"> <origin xyz="0.49 -0.03 0.75" rpy="0 0.21 0" /> <parent link="base_link"/> <child link="camera_link" /> </joint> <link name="camera_link"> <visual> <geometry> <mesh filename="package://rosbots_description/meshes/camera.dae" scale="4.0 4.0 4.0"/> </geometry> <origin xyz="0.0 0 0" rpy="0 0 0"/> </visual> <collision> <geometry> <mesh filename="package://rosbots_description/meshes/camera.dae" scale="4.0 4.0 4.0"/> </geometry> <origin xyz="0.0 0 0" rpy="0 0 0"/> </collision> </link> 


рдКрдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдХреЛрдб рд╣рдорд╛рд░реЗ рдХреИрдорд░реЗ рд╕реЗ рд▓рд┐рдВрдХ рдФрд░ рд╕рдВрдпреБрдХреНрдд рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЗрд╕реЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕реЗ рджреЗрдЦреЗрдВред

рдкрд╣рд▓рд╛ рдЯрд░реНрдорд┐рдирд▓:

 roslaunch gazebo_ros empty_world.launch 

2:

 roslaunch rosbots_description spawn.launch 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ, рддреЛ рдЖрдк рд░реЛрдмреЛрдЯ (рд╕рдлреЗрдж) рдкрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдХреИрдорд░рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



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

рдпрд╣ рдЧреЗрдЬреНрдмреЛ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╛рд░реА рд╣реИред

рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

rosbots.gazebo.xacro
рдЯреИрдЧ рдХреЗ рдЕрдВрджрд░

 <robot> </robot> 

рдЬреЛрдбрд╝реЗрдВ:

 <gazebo reference="camera_link"> <sensor type="camera" name="camera1"> <update_rate>30.0</update_rate> <camera name="head"> <horizontal_fov>1.04</horizontal_fov> <image> <width>320</width> <height>240</height> <format>R8G8B8</format> </image> <clip> <near>0.1</near> <far>50</far> </clip> </camera> <plugin name="camera_controller" filename="libgazebo_ros_camera.so"> <alwaysOn>true</alwaysOn> <updateRate>0</updateRate> <cameraName>camera1</cameraName> <imageTopicName>image_raw</imageTopicName> <cameraInfoTopicName>camera_info</cameraInfoTopicName> <frameName>camera</frameName> <hackBaseline>0.07</hackBaseline> <distortionK1>0.0</distortionK1> <distortionK2>0.0</distortionK2> <distortionK3>0.0</distortionK3> <distortionT1>0.0</distortionT1> <distortionT2>0.0</distortionT2> </plugin> </sensor> </gazebo> 


рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдб рдореЗрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╣рдордиреЗ рдХреИрдорд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдП:

  • update_rate: рдбреЗрдЯрд╛ рдХрд┐рддрдиреА рдмрд╛рд░ рдЖрдПрдЧрд╛
  • рдЪреМрдбрд╝рд╛рдИ / рдКрдВрдЪрд╛рдИ: рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рд╕рдВрдХрд▓реНрдкред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, 320x240ред
  • рдкреНрд░рд╛рд░реВрдк: рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рд░реВрдк (R8G8B8)ред
  • imageTopicName: рдЙрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдирд╛рдо рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛
  • рдлреНрд░реЗрдордирд╛рдо: рд▓рд┐рдВрдХ-рд▓рд┐рдВрдХ рдЬрд┐рд╕рд╕реЗ рдХреИрдорд░рд╛ рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ред

рдЕрдм рд╕рдм рдХреБрдЫ рдХреИрдорд░реЗ рдФрд░ рдЗрд╕рдХреЗ рд╕рд┐рдореБрд▓реЗрд╢рди рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

рдпрджрд┐ рдЖрдк рдЕрдм рд╕рд┐рдореБрд▓реЗрд╢рди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рд╖рдпреЛрдВ рдХреА рд╕реВрдЪреА рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреИрдорд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╡рд┐рд╖рдп рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВ:

 rostopic list 

 /rosbots/camera1/camera_info /rosbots/camera1/image_raw /rosbots/camera1/image_raw/compressed /rosbots/camera1/image_raw/compressed/parameter_descriptions /rosbots/camera1/image_raw/compressed/parameter_updates /rosbots/camera1/image_raw/compressedDepth /rosbots/camera1/image_raw/compressedDepth/parameter_descriptions /rosbots/camera1/image_raw/compressedDepth/parameter_updates /rosbots/camera1/image_raw/theora /rosbots/camera1/image_raw/theora/parameter_descriptions /rosbots/camera1/image_raw/theora/parameter_updates /rosbots/camera1/parameter_descriptions /rosbots/camera1/parameter_updates 

рд╡рд┐рд╖рдпреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рд╣реИ! рд▓реЗрдХрд┐рди, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рд╕рднреА рдХреЛ рдкрд╣рд▓реЗ рддреАрди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЗрддрдиреА рдмрд╛рд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЧрдЬрд╝реЗрдмреЛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╕реЗ rviz рдореЗрдВ рдЫрд╡рд┐


* рдпрд╣рд╛рдВ рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрдм рдЖрдк рд╡рд░реНрдЪреБрдЕрд▓ рд╡реАрдбрд┐рдпреЛ рдХреИрдорд░реЗ рд╕реЗ rviz рдкрд░ рдкреНрд░рд╕рд╛рд░рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рддреЛ VMWare рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдЧрдЬрд╝реЗрдмреЛ рдХреЗ рд▓рд┐рдП рдЗрдореЗрдЬ рдХреЗ рд╡рд░реНрддрдорд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдЬрдм рд╕рд┐рдореБрд▓реЗрд╢рди рдореЗрдВ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ rviz рдЪрд▓рд╛рдПрдВ рдФрд░ рд░реЛрдмреЛрдЯ рдХреЗ рд╕рд╛рдордиреЗ рдХреБрдЫ рдСрдмреНрдЬреЗрдХреНрдЯ рд░рдЦреЗрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдЧрдЬрд╝реЗрдмреЛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред

Object.urdf рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ ~ / catkin_ws / src / рдореЗрдВ рдбрд╛рд▓реЗрдВ

рдЪрд▓реЛ рдЗрд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВред

рдкрд╣рд▓рд╛ рдЯрд░реНрдорд┐рдирд▓:

 roslaunch gazebo_ros empty_world.launch 

2 (рдореЙрдбрд▓ рд░рдЦреЗрдВ):

 rosrun gazebo_ros spawn_model -file /home/pi/catkin_ws/src/object.urdf -urdf -x 1 -y 0 -z 1 -model my_object 

 roslaunch rosbots_description spawn.launch 

рд╕рд┐рдореБрд▓реЗрд╢рди рдореЗрдВ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдорд┐рд▓рддреЗ рд╣реИрдВ:



рдПрдХ рд░реЛрдмреЛрдЯ рдореЙрдбрд▓ рдФрд░ рдПрдХ рдкреЛрд╕реНрдЯ рдЬрд┐рд╕реЗ рдПрдХ рдореЙрдбрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред

рдЖрдЗрдЯрдо рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ рд╕рдВрдкрд╛рджрдХ рдХреЗ рдЕрдВрджрд░ рдЯреИрдм рд╕реЗ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рдЧрдЬрд╝реЗрдмреЛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ:



рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд░реЛрдмреЛрдЯ рдХреНрдпрд╛ рджреЗрдЦрддрд╛ рд╣реИред

рджреЛ рдкрд┐рдЫрд▓реЗ рдЯрд░реНрдорд┐рдирд▓реЛрдВ рдХреЛ рдмрдВрдж рдХрд┐рдП рдмрд┐рдирд╛, рд░реЛрдмреЛрдЯ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде rviz рдЪрд▓рд╛рдПрдВ:

 roslaunch rosbots_description rviz.launch 

рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░рджрд░реНрд╢рди рдЬреЛрдбрд╝реЗрдВ, рдЬрд┐рд╕реЗ "рдЫрд╡рд┐" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:



рдХреИрдорд░рд╛ рдЗрдореЗрдЬ рд╡рд╛рд▓рд╛ рдПрдХ рдирдпрд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдФрд░ ... рдЧрдЬрд╝реЗрдмреЛ рдПрдбрд┐рдЯрд░ рдЙрдбрд╝ рдЬрд╛рдПрдЧрд╛ред

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

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



рдЕрдм рдЖрдЗрдП рдореЙрдбрд▓ рдореЗрдВ IMU рдЬреЛрдбрд╝реЗрдВред

IMU (рдЬрд╛рдЗрд░реЛрд╕реНрдХреЛрдк)


рдЗрдореВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдХреИрдорд░рд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, rosbots.gazebo.xacro рдЦреЛрд▓реЗрдВ рдФрд░ рдмрдирд╛рдПрдВ

рдХреЛрдб
 <gazebo> <plugin name="gazebo_ros_imu_controller" filename="libgazebo_ros_imu.so"> <!-- <robotNamespace></robotNamespace> --> <topicName>imu/data</topicName> <serviceName>imu/service</serviceName> <bodyName>base_link</bodyName> <gaussianNoise>0</gaussianNoise> <rpyOffsets>0 0 0</rpyOffsets> <updateRate>30.0</updateRate> <alwaysOn>true</alwaysOn> <gaussianNoise>0</gaussianNoise> </plugin> </gazebo> 


рд╣рдо рдЗрд╕ рдХреЛрдб рдФрд░ рдЯреИрдЧ рдХреЗ рднреАрддрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗ

  <robot></robot> 

рдЬреИрд╕рд╛ рдХрд┐ рдХреЛрдб рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рд╡рд┐рд╖рдп / рдЗрдореВ / рдбреЗрдЯрд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдЧрд╛ред

рдЕрдм, рдпрджрд┐ рдЖрдк рдЧрдЬрд╝реЗрдмреЛ рдореЗрдВ рд░реЛрдмреЛрдЯ рдореЙрдбрд▓ рдХреЛ рдлрд┐рд░ рд╕реЗ рд░рдЦрддреЗ рд╣реИрдВ рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ: рдкрдбрд╝реЛрд╕реА рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ rostopic list , рдЖрдк рджреВрд╕рд░реЛрдВ рдХреЗ рдмреАрдЪ рдЗрдореВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рд╡рд┐рд╖рдп рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:



рдЖрдк рдЗрд╕ рдкрд░ рднреА рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░ рдХреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 rostopic echo /imu/data -n1 



рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, imu рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:

  • рдЕрднрд┐рд╡рд┐рдиреНрдпрд╛рд╕: рдПрдХреНрд╕, рд╡рд╛рдИ, рдЬреЗрдб, рдФрд░ рдбрдмреНрд▓реНрдпреВ рдХреБрд▓реНрд╣рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд░реЛрдмреЛрдЯ рдХрд╛ рдЙрдиреНрдореБрдЦреАрдХрд░рдгред
  • angular_velocity: рд░реЛрдмреЛрдЯ рдХреА рдХреЛрдгреАрдп рдЧрддрд┐ред
  • linear_acceleration: рд░реИрдЦрд┐рдХ рддреНрд╡рд░рдгред

рдереЛрдбрд╝рд╛ рд╕реНрдкрд░реНрд╢ рд╣реБрдЖ

ред
Rosbots.gazebo.xacro рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рд╕рдм рдХреБрдЫ рдЯреИрдЧ рдХреЗ рднреАрддрд░ рднреА рд╣реИ

рдХреЛрдб
 <gazebo reference="wheel_left_link"> <mu1>1.0</mu1> <mu2>1.0</mu2> <kp>1000000.0</kp> <kd>100.0</kd> <minDepth>0.001</minDepth> <maxVel>1.0</maxVel> </gazebo> <gazebo reference="wheel_right_link"> <mu1>1.0</mu1> <mu2>1.0</mu2> <kp>1000000.0</kp> <kd>100.0</kd> <minDepth>0.001</minDepth> <maxVel>1.0</maxVel> </gazebo> <gazebo reference="base_link"> <material>Gazebo/Blue</material> <mu1>0.3</mu1> <mu2>0.3</mu2> <sensor type="contact" name="bumpers"> <always_on>1</always_on> <update_rate>50.0</update_rate> <visualize>true</visualize> <contact> <collision>base_footprint_collision_base_link</collision> </contact> </sensor> </gazebo> <gazebo reference="camera_link"> <mu1>0.2</mu1> <mu2>0.2</mu2> </gazebo> 


рдпрд╣ рдХреЛрдб рд░реЛрдмреЛрдЯ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдЧрд╛: рдкрд╣рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдШрд░реНрд╖рдг рдЧреБрдгрд╛рдВрдХ, рдЧрдЬрд╝реЗрдмреЛ рдореЗрдВ рд░рдВрдЧ, рд╕рдВрдкрд░реНрдХ рд╕реЗрдВрд╕рд░ред рд░реЛрдмреЛрдЯ рдмрдореНрдкрд░ рдмрд╛рдзрд╛ рдХреЛ рдЫреВрдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рд╕рдВрдкрд░реНрдХ рд╕реЗрдВрд╕рд░ рдЪрд╛рд▓реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдм рдЧрдЬрд╝реЗрдмреЛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рдореЙрдбрд▓ рд░рдЦреЗрдВ, рдФрд░ rviz рдореЗрдВ рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ imu рдбрд┐рд╕реНрдкреНрд▓реЗ рдЬреЛрдбрд╝реЗрдВ, рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдЬреЛрдбрд╝реЗрдВ:



рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЗрдореВ рд╡рд┐рд╖рдп рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, рд╣рдо рд╕рд┐рдореБрд▓реЗрд╢рди рдореЗрдВ рд░реЛрдмреЛрдЯ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдбреЗрдЯрд╛ imu рдХреЗ рд╕рд╛рде рдмрджрд▓рддрд╛ рд╣реИ:

рдкрд╣рд▓рд╛ рдЯрд░реНрдорд┐рдирд▓:

 roslaunch gazebo_ros empty_world.launch 

2:

 roslaunch rosbots_description spawn.launch 

 roslaunch rosbots_description rviz.launch 

3:

 rosrun teleop_twist_keyboard teleop_twist_keyboard.py /cmd_vel:=/part2_cmr/cmd_vel 


рдСрдкрд░реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпрд╛рдВ :

1. рд░реЛрдмреЛрдЯ рдореЙрдбрд▓ рдЧрдЬрд╝реЗрдмреЛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ (рдкреИрдХреЗрдЬ [rosbots_description] рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ) - рдирдЬрд╝рджреАрдХреА рдЧрдЬрд╝реЗрдмреЛ, рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╕реНрд░реЛрдд рдбреЗрд╡реЗрд▓ / рд╕реЗрдЯрдЕрдк.рдмреИрд╢ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдЧрдЬрд╝реЗрдмреЛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред
2ред

 gzserver: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreRenderSystem.cpp:546: virtual void Ogre::RenderSystem::setDepthBufferFor(Ogre::RenderTarget*): Assertion `bAttached && "A new DepthBuffer for a RenderTarget was created, but after creation" "it says it's incompatible with that RT"' failed. Aborted (core dumped) 

рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди (рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ):

 https://bitbucket.org/osrf/gazebo/issues/1837/vmware-rendering-z-ordering-appears-random 

Source: https://habr.com/ru/post/hi467665/


All Articles