ROS: рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ "рдХрдо рд░рдХреНрдд" рдкрд░ рдЧрд╣рд░рд╛рдИ рдХрд╛ рдирдХреНрд╢рд╛

рдЫрд╡рд┐

рдпрджрд┐ рдЖрдк рд░реЛрдмреЛрдЯ рдмрдирд╛рддреЗ рд╕рдордп ROS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред рдЖрдк, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЗ рджреГрд╢реНрдп рднрд╛рдЧ рдпрд╛ рдПрдХ рдмрд┐рдВрджреБ рдмрд╛рджрд▓ рдХрд╛ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдирдХреНрд╢рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рд░рд╛рд╕ рдореЗрдВ рд░рд╛рд╕реНрдкрдмреЗрд░реА-рдЖрдзрд╛рд░рд┐рдд рд╕реНрдЯреАрд░рд┐рдпреЛ-рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрд╢реНрд╡рд╕реНрдд рдерд╛ рдХрд┐ рдЧрд╣рд░рд╛рдИ рдХрд╛ рдирдХреНрд╢рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдУрдкрдирд╕реАрд╡реА рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХрднреА рднреА рдЖрд░рдУрдПрд╕ рд╕реЗ рдирд┐рдкрдЯрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдореИрдВ рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬрдиреЗ рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рд░рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

1. рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдХреЛрдИ рдЖрд░рдУрдПрд╕ рд╣реИ?


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдЖрд░рдУрдПрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рдерд╛ред Google рдиреЗ рдореБрдЭреЗ рдЬреЛ рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдмрддрд╛рдИ рдереА, рд╡рд╣ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ ROS рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдереА, рдЕрд░реНрдерд╛рддреН рдпрд╣ ROS рд╡рд┐рдХреА рдкреГрд╖реНрда

рдЦреИрд░, рд╡рд╣рд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рд╣реИ! рдореБрдЭреЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдпрд╛рдж рд╣реИ рдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА (рд▓рдЧрднрдЧ рдЖрда рдШрдВрдЯреЗ) рдкрд░ рдУрдкрдирд╕реАрд╡реА рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА рдХрд╛рд░реНрдб рдХреА рддреИрдпрд╛рд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

2. рдХреНрдпрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рд▓рд┐рдП ROS рдХреЗ рд╕рд╛рде рдХреЛрдИ рддреИрдпрд╛рд░ рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА рдХрд╛рд░реНрдб рдЪрд┐рддреНрд░ рд╣реИрдВ?


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

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

рджреВрд╕рд░рд╛ ubuntu рдкрд░ Ubiquiti рд░реЛрдмреЛрдЯрд┐рдХреНрд╕ рд╕реЗ рдЫрд╡рд┐рдпрд╛рдБ рд╣реИ ред

рдЦреИрд░, рджреВрд╕рд░рд╛ рд╕рд╡рд╛рд▓ рднреА рдХрд╛рдлреА рдЬрд▓реНрджреА рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдЧрд╣рд░рд╛ рдЧреЛрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

3. рд░рд╛рд╕реНрдк рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?


рдФрд░ рдХреМрди рд╕реЗ рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░реЛрдВ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЖрд░рдУрдПрд╕ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдореИрдВрдиреЗ рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░реЛрдВ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдХреЛ рджреЗрдЦрд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрд░рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдШреЛрд╖рд┐рдд рдХреА рдЧрдИ рдереА, рдпрд╣ рдПрдХ:

wiki.ros.org/Sensors

рджреЛ рдЦрдВрдб рдереЗ:
2.3 3D рд╕реЗрдВрд╕рд░ (рд░реЗрдВрдЬ рдлрд╛рдЗрдВрдбрд░реНрд╕ рдФрд░ RGB-D рдХреИрдорд░реЗ)
2.5 рдХреИрдорд░рд╛
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЦрдВрдб рдореЗрдВ рди рдХреЗрд╡рд▓ рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░реЗ, рдмрд▓реНрдХрд┐ рдЯреАрдУрдПрдл рд╕реЗрдВрд╕рд░, рдФрд░ рд╕реНрдХреИрдирд┐рдВрдЧ рд▓рд┐рдбрд╛рд░ рднреА рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ - рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдм рдХреБрдЫ рдЬреЛ рддреБрд░рдВрдд 3 рдбреА рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░реЗ рд╣реИрдВред рдХрдИ рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░реЛрдВ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдиреЗ рдореЗрд░реА рдЦреБрд╢реА рдХреЛ рдирд╣реАрдВ рдмрдврд╝рд╛рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЛрдб рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рд╡рд┐рд╕рд░реНрдЬрди рдкрд░ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдерд╛ред

рдареАрдХ рд╣реИ, рдПрдХ рдХрджрдо рдкреАрдЫреЗ рд╣рдЯреЛред рдЖрд░рдУрдПрд╕ рдореЗрдВ рд╕рд┐рдВрдЧрд▓ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдХреЗ рд╕рд╛рде рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рддреАрди рд╕реБрдЦрдж рдЖрд╢реНрдЪрд░реНрдп рдореБрдЭреЗ рдпрд╣рд╛рдБ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

  • рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрд░рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░рд╛рд╕реНрдкрд┐рдХреИрдо_рдиреЛрдб рдиреЛрдб рд╣реИ
  • рдЧрд┐рдереБрдм рдкрд░ рдиреЛрдб рдЭреВрда рдХреЗ рдкреНрд░рдХрд╛рд░, рдХреЛрдб рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ: github.com/UbiquityRobotics/raspicam_node
  • рд░реЛрд╣рди рдЕрдЧреНрд░рд╡рд╛рд▓ рдиреЛрдб ( @Rohbotics ) рдХреЗ рд▓реЗрдЦрдХ рдПрдХ рдРрд╕реА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИ

рдореИрдВрдиреЗ github рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА raspicam_node рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдореБрджреНрджреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ред рд╡рд╣рд╛рдБ рдореБрдЭреЗ рдЬрд╡рд╛рдм рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛, рд▓рдЧрднрдЧ рд╕рд╛рдд рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рдХреИрдкреЗрд╕рд┐рдЯрд┐рд╡ рдирд╛рдо "рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб" рдХреЗ рд╕рд╛рде рдПрдХ рдЦреБрд▓рд╛ рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ред рджрд░рдЕрд╕рд▓, рдЗрд╕рдореЗрдВ рд╕рднреА рдШрдЯрдирд╛рдПрдВ рдЖрдЧреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реБрдИрдВред

4. рдХрдЯреНрдЯрд░ рдпрд╛ рдирд╣реАрдВ?


рд▓реЗрдЦрдХреЛрдВ рд╕реЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рд╕рд╡рд╛рд▓ рди рдкреВрдЫрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдЦрддрд░реЗ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдореБрдЭреЗ рдпрд╣рд╛рдБ рд╕рд┐рд╕реНрдЯрдо рднрд╛рдЧ рдореЗрдВ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдкреА рдереА: github.com/UbiquityRobotics/raspicam_node/tree/kinetic/src
рдЦреИрд░, рд▓реЛрдЧреЛрдВ рдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдПрдордПрдордПрдПрд▓ рд╕реНрддрд░ рдкрд░ рдЧрд┐рд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛ред рдореБрдЭреЗ рдпрд╣ рднреА рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб рдореЗрдВ рд░рд╕рднрд░реА рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рднреА рдЦреБрд▓рд╛ рд╣реИ (рд╡рд┐рдХрд╛рд╕ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдордВрдЪ рдкрд░ рдпрд╣рд╛рдВ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдФрд░ рдПрдХ рдкреВрд░реНрдг-рд╕реНрдЯреАрд░рд┐рдпреЛ рд╕реНрдЯреАрд░рд┐рдпреЛ рдбреНрд░рд╛рдЗрд╡рд░ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ред рдЕрдиреНрдп рдХреИрдорд░реЛрдВ рдХреЗ рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рди рдХреЗрд╡рд▓ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдЪрд┐рддреНрд░реЛрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдмрд▓реНрдХрд┐ рджреЛрдиреЛрдВ рдХреИрдорд░реЛрдВ рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рднреА рджреЗ рд╕рдХрддреЗ рдереЗ, рдПрдХ-рджреВрд╕рд░реЗ рдкрд░ рдЕрдВрд╢рд╛рдВрдХрди рдкрд░рд┐рдгрд╛рдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рдереЗ, рдФрд░ рдХрдИ рдЕрдиреНрдп рдЪреАрдЬреЗрдВ рдХрд░рддреЗ рдереЗред рдЗрд╕рдиреЗ рдПрдХ рдпрд╛ рджреЛ рдорд╣реАрдиреЗ рд▓рдВрдмреЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреН: рд▓реЗрдЦрдХ рдХреЛ рд╕реНрдЯреАрд░рд┐рдпреЛ рд╕рдорд░реНрдерди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╢реНрди рд▓рд┐рдЦреЗрдВ, рдФрд░ рдПрдХ рд╕рд░рд▓, рд▓реЗрдХрд┐рди рд╕реНрд╡рдпрдВ рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред

5. рд▓реЗрдЦрдХ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж


рдЬреАрдердм рдкрд░ рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереНрд░реЗрдб рдореЗрдВ, рдореИрдВрдиреЗ рд▓реЗрдЦрдХ рд╕реЗ рдПрдХ рд╕рд╡рд╛рд▓ рдкреВрдЫрд╛, рдЬрд┐рд╕рдореЗрдВ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ 2014 рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рджреНрд╡рд╛рд░рд╛ рд╕реНрдЯреАрд░рд┐рдпреЛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрд╕реЗ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рднреЗрдЬреЗрдВред рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛ рджреВрдВ рдХрд┐ рдореБрдЭреЗ рдЕрднреА рднреА рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рддрд░рдг рдореЗрдВ рд╕реНрдЯреАрд░рд┐рдпреЛ рд░рд╛рд╕реНрдкрд┐рдпрди рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

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

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЛрд░! рд╣реБрд░реНрд░реЗ! рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ, рдПрдХ рд╕реНрдЯреАрд░рд┐рдпреЛ рддрд╕реНрд╡реАрд░ рдХреЛ рдПрдХ рдбрдл рдХреЗ рд╕рд╛рде рдбрд╛рдВрд╕ рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдореИрдВрдиреЗ рд░реЛрд╣рди рд╕реЗ рдПрдХ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреА рдирд╡реАрдирддрдо рдЫрд╡рд┐ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рд╕реНрдЯреАрд░рд┐рдпреЛ рдЬреЛрдбрд╝реА рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдЬрдЧрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдИред рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛!

рдЫрд╡рд┐

рдЙрд╕рдХреЗ рдмрд╛рдж, рд░реЛрд╣рди рдиреЗ рд▓рд┐рдЦрд╛ рдХрд┐ рд╡рд╣ рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛрдб рдХреЛ рджреЗрдЦреЗрдЧрд╛, рдФрд░ рдХреБрдЫ рдкреНрд░рд╢реНрди рд▓рд┐рдЦреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб рдореЗрдВ рдПрдХ рдЪрд┐рдкрдХреЗ рд╣реБрдП рдЪрд┐рддреНрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рджреЛ - рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдореЗрдВ рдХрд╛рдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреИрдорд░реЗ рдХреЗ рдЕрдВрд╢рд╛рдВрдХрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреВрд╕рд░рд╛ рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВред

рдореИрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреИрдорд░реЛрдВ рд╕реЗ рддрд╕реНрд╡реАрд░реЗрдВ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рдВ, рдЙрдиреНрд╣реЗрдВ рдХреИрдкреНрдЪрд░ рдЯрд╛рдЗрдо рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рдЬреИрд╕реЗ рдмреНрд░рд╛рдЗрдЯ-рдХреЙрдиреНрдЯреНрд░рд╛рд╕реНрдЯ-рд╡реНрд╣рд╛рдЗрдЯ рдмреИрд▓реЗрдВрд╕) рдореЗрдВ рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдХрджрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдиреАрдЪреЗ рдЖ рд╕рдХрддрд╛ рд╣реИред

рд░реЛрд╣рди рдиреЗ рддреБрд░рдВрдд рдПрдХ рдкреИрдЪ рд░реЛрд▓ рдХрд┐рдпрд╛ рдЬреЛ рдЖрдкрдХреЛ рд╕реАрдзреЗ рдЖрд░рдУрдПрд╕ рд╕реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдХреИрдорд░рд╛ рд╕реЗ рдЪрд┐рддреНрд░ рд▓реЗрдирд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪреЗрдХ рдХрд┐рдпрд╛ - рдПрдХ рдХреИрдорд░рд╛ рдХрд╛рдо рдХреЛ рдЪреБрдирдирд╛, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдкрд░рд┐рдгрд╛рдо рд╣реИред

6. рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорджрдж


рдФрд░ рдлрд┐рд░ Wezzoid рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдереНрд░реЗрдб рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡рд╣ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдбрд┐рдмреЛрд░реНрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдИ рдХрдВрдкреНрдпреВрдЯ 3 рдкрд░ рд╕реНрдЯреАрд░рд┐рдпреЛ рдХреИрдорд░рд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд░ рд░рд╣реЗ рдереЗред рдЙрдирдХреЗ рдЪрд╛рд░ рдкреИрд░реЛрдВ рд╡рд╛рд▓реЗ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рд░реЛрдмреЛрдЯ рдиреЗ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрдХ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛, рдХреИрдорд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рджреВрд░реА рдкрд░ рд░рдЦрд╛ (рдкрд░рд┐рдпреЛрдЬрдирд╛ рдпрд╣рд╛рдВ рд╣реИрдХрдбрд╛рдп.рдпреЛ рдкрд░ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рд╣реИ )ред

рдЫрд╡рд┐

рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕ рдХреЛрдб рдХреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рддрд╕реНрд╡реАрд░ рдХреЛ рдкрдХрдбрд╝рд╛, рдЙрд╕реЗ рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рде рдЖрдзреЗ рдореЗрдВ рдХрд╛рдЯ рджрд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреИрдорд░реЛрдВ рдХреЗ рдиреЛрдбреНрд╕ рдХреА рддрд░рд╣ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ред
рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдЬрдЧрд░ рдмрд╣реБрдд рддреЗрдЬрд╝ рджреЛрд╕реНрдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдиреЗ 320x240 рдХреЗ рдХрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдФрд░ рдПрдХ рдЕрдЪреНрдЫреЗ рдЬреАрд╡рди рд╣реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрджрд┐ рд╣рдо рдПрдХ рд╕рд╛рдЗрдб-рдмрд╛рдп-рд╕рд┐рдм рд╕реНрдЯреАрд░рд┐рдпреЛ рдЗрдореЗрдЬ (рдПрдХ рдХреИрдорд░рд╛ рд╕реНрдЯреАрд░рд┐рдпреЛ рдЗрдореЗрдЬ рдХреЗ рдмрд╛рдИрдВ рдУрд░, рджреВрд╕рд░рд╛ рджрд╛рдпреАрдВ рддрд░рдл) рдХреЛ рдкрдХрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЬрдЧрд░ рдХреЛ 240 рдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ рд▓рд╛рдЗрди рдХреЛ рдЖрдзрд╛ рдХрд╛рдЯрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдПрдХ рдКрдкрд░-рдиреАрдЪреЗ рдХреА рддрд╕реНрд╡реАрд░ рдмрдирд╛рддреЗ рд╣реИрдВ (рдмрд╛рдПрдВ рдХреИрдорд░рд╛ рдлреНрд░реЗрдо рдХреЗ рдКрдкрд░реА рдЖрдзреЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╣реИ, рджрд╛рдИрдВ рдУрд░ рдиреАрдЪреЗ рд╣реИ), рддреЛ рдЕрдЬрдЧрд░ рдПрдХ рдСрдкрд░реЗрд╢рди рдореЗрдВ рдЖрдзреЗ рдореЗрдВ рд╕рд░рдгреА рдХрд╛рдЯрддрд╛ рд╣реИред рдЬрд┐рд╕реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ Wezzoid рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╕рд╛рде рд╣реА, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╛рд╕реНрдЯреЗрдмрд┐рди рдкрд░ рдЕрдкрдирд╛ рдЕрдЬрдЧрд░ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдиреЗ рдпрд╣ рдСрдкрд░реЗрд╢рди рдХрд┐рдпрд╛ред рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ:

рдПрдХ рд╕реНрдЯреАрд░рд┐рдпреЛ рдЬреЛрдбрд╝реА рд╕реЗ рджреЛ рдХреИрдорд░реЛрдВ рдХреЗ рдиреЛрдбреНрд╕ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рд╡реЗрдЬрд╝реЙрдЗрдб рдХреЛрдб
#!/usr/bin/env python # picamera stereo ROS node using dual CSI Pi CS3 board # Wes Freeman 2018 # modified from code by Adrian Rosebrock, pyimagesearch.com # and jensenb, https://gist.github.com/jensenb/7303362 from picamera.array import PiRGBArray from picamera import PiCamera import time import rospy from sensor_msgs.msg import CameraInfo, Image import yaml import io import signal # for ctrl-C handling import sys def parse_calibration_yaml(calib_file): with file(calib_file, 'r') as f: params = yaml.load(f) cam_info = CameraInfo() cam_info.height = params['image_height'] cam_info.width = params['image_width'] cam_info.distortion_model = params['distortion_model'] cam_info.K = params['camera_matrix']['data'] cam_info.D = params['distortion_coefficients']['data'] cam_info.R = params['rectification_matrix']['data'] cam_info.P = params['projection_matrix']['data'] return cam_info # cam resolution res_x = 320 #320 # per camera res_y = 240 #240 target_FPS = 15 # initialize the camera print "Init camera..." camera = PiCamera(stereo_mode = 'top-bottom',stereo_decimate=False) camera.resolution = (res_x, res_y*2) # top-bottom stereo camera.framerate = target_FPS # using several camera options can cause instability, hangs after a while camera.exposure_mode = 'antishake' #camera.video_stabilization = True # fussy about res? stream = io.BytesIO() # ---------------------------------------------------------- #setup the publishers print "init publishers" # queue_size should be roughly equal to FPS or that causes lag? left_img_pub = rospy.Publisher('left/image_raw', Image, queue_size=1) right_img_pub = rospy.Publisher('right/image_raw', Image, queue_size=1) left_cam_pub = rospy.Publisher('left/camera_info', CameraInfo, queue_size=1) right_cam_pub = rospy.Publisher('right/camera_info', CameraInfo, queue_size=1) rospy.init_node('stereo_pub') # init messages left_img_msg = Image() left_img_msg.height = res_y left_img_msg.width = res_x left_img_msg.step = res_x*3 # bytes per row: pixels * channels * bytes per channel (1 normally) left_img_msg.encoding = 'rgb8' left_img_msg.header.frame_id = 'stereo_camera' # TF frame right_img_msg = Image() right_img_msg.height = res_y right_img_msg.width = res_x right_img_msg.step = res_x*3 right_img_msg.encoding = 'rgb8' right_img_msg.header.frame_id = 'stereo_camera' imageBytes = res_x*res_y*3 # parse the left and right camera calibration yaml files left_cam_info = parse_calibration_yaml('/home/pi/catkin_ws/src/mmstereocam/camera_info/left.yaml') right_cam_info = parse_calibration_yaml('/home/pi/catkin_ws/src/mmstereocam/camera_info/right.yaml') # --------------------------------------------------------------- # this is supposed to shut down gracefully on CTRL-C but doesn't quite work: def signal_handler(signal, frame): print 'CTRL-C caught' print 'closing camera' camera.close() time.sleep(1) print 'camera closed' sys.exit(0) signal.signal(signal.SIGINT, signal_handler) #----------------------------------------------------------- print "Setup done, entering main loop" framecount=0 frametimer=time.time() toggle = True # capture frames from the camera for frame in camera.capture_continuous(stream, format="rgb", use_video_port=True): framecount +=1 stamp = rospy.Time.now() left_img_msg.header.stamp = stamp right_img_msg.header.stamp = stamp left_cam_info.header.stamp = stamp right_cam_info.header.stamp = stamp left_cam_pub.publish(left_cam_info) right_cam_pub.publish(right_cam_info) frameBytes = stream.getvalue() left_img_msg.data = frameBytes[:imageBytes] right_img_msg.data = frameBytes[imageBytes:] #publish the image pair left_img_pub.publish(left_img_msg) right_img_pub.publish(right_img_msg) # console info if time.time() > frametimer +1.0: if toggle: indicator = ' o' # just so it's obviously alive if values aren't changing else: indicator = ' -' toggle = not toggle print 'approx publish rate:', framecount, 'target FPS:', target_FPS, indicator frametimer=time.time() framecount=0 # clear the stream ready for next frame stream.truncate(0) stream.seek(0) 


7. рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреИрдорд░реЗ рдХреЗ рдиреЛрдбреНрд╕ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ


рдкрд╣рд▓реА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХреЛрдб рдиреЗ рд╢рд╛рдк рджрд┐рдпрд╛ рдХрд┐ рдХреИрдорд░рд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд╛рдИрдПрдордПрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рд░рдВрдЧ рд╡рд╛рд▓реЗ V2 рдХреИрдорд░реЛрдВ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдФрд░ рдпрд╛рдж рдХрд┐рдпрд╛ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреИрдорд░рд╛ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рддреИрдпрд╛рд░ рдлрд╛рдЗрд▓реЗрдВ github рдкрд░ raspicam_node рдореЗрдВ рдЖрдИрдВ : github.com/UbiquityRobotics/raspicam_node/tree/kinetic/camera_info
рдореИрдВрдиреЗ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд┐рдпрд╛, рджреЛ рдкреНрд░рддрд┐рдпрд╛рдВ рдмрдирд╛рдИрдВ рдФрд░ рдЗрд╕реЗ рдмрдЪреЗ рд╣реБрдП рдирд╛рдо рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрд╛ред iym рдФрд░ right.yml, рдЙрдирдореЗрдВ рд▓реЗрдЦрдХ рдХреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреИрдорд░рд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд▓рд┐рдЦрд╛ред рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдмрд╛рдПрдВ рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реБрдЖ:

left.yml
 image_width: 320 image_height: 240 camera_name: left camera_matrix: rows: 3 cols: 3 data: [1276.704618338571, 0, 634.8876509199106, 0, 1274.342831275509, 379.8318028940378, 0, 0, 1] distortion_model: plumb_bob distortion_coefficients: rows: 1 cols: 5 data: [0.1465167016954302, -0.2847343180128725, 0.00134017721235817, -0.004309553450829512, 0] rectification_matrix: rows: 3 cols: 3 data: [1, 0, 0, 0, 1, 0, 0, 0, 1] projection_matrix: rows: 3 cols: 4 data: [1300.127197265625, 0, 630.215390285608, 0, 0, 1300.670166015625, 380.1702884455881, 0, 0, 0, 1, 0] 


рджрд╛рдИрдВ рдУрд░, рдХреИрдорд░рд╛ рдирд╛рдо рдХреЛ рджрд╛рдИрдВ рдУрд░ рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рджрд╛рдИрдВ рдУрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╢реЗрд╖ рднрд╛рдЧ рд╕рдорд╛рди рд╣реИред

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

рдЫрд╡рд┐

рдпрд╣ рдХреЗрд╡рд▓ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд░рд╣рд╛ рдХрд┐ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╣рдорд╛рд░реЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреИрдорд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ rtt_image_view рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ред рдбреНрд░реЙрдк-рдбрд╛рдЙрди рдореЗрдиреВ рдореЗрдВ рдЖрдЗрдЯрдо / рдмрд╛рдПрдВ / рдЫрд╡рд┐_рдкреНрд░рдХрд╛рд╢ рдФрд░ / рджрд╛рдИрдВ / рдЫрд╡рд┐_рд╡рд╣ рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдЬрдм тАЛтАЛрдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЪреБрдирд╛, рддреЛ рдореИрдВрдиреЗ рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ рдХреИрдорд░реЛрдВ рд╕реЗ рдЫрд╡рд┐рдпрд╛рдВ рджреЗрдЦреАрдВред

рдЫрд╡рд┐

рдЦреИрд░, рдпрд╣ рдмрд╛рдд рдЕрд░реНрдЬрд┐рдд рдХреА рд╣реИ! рдЕрдм рдордЬрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

8. рд╣рдо рдЧрд╣рд░рд╛рдИ рдХреЗ рдирдХреНрд╢реЗ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред


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

 left_img_pub = rospy.Publisher('left/image_raw', Image, queue_size=1) 

рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рд╢реБрд░реВ рд╣реБрдЖ:

 left_img_pub = rospy.Publisher('stereo/right/image_raw', Image, queue_size=1) 

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо stere_image_proc рд╕реНрдЯреАрд░рд┐рдпреЛ рдореЛрдб рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдиреЛрдб рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ:

 ROS_NAMESPACE=stereo rosrun stereo_image_proc stereo_ige_proc 

рдЦреИрд░, рд╣рдо рднреА рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЪреМрдХреАрджрд╛рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 rosrun image_view stereo_view stereo:=/stereo image:=image_rect_color 

рдФрд░ рдЧрд╣рд░рд╛рдИ рдХреЗ рдирдХреНрд╢реЗ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЪрд▓рд╛рдПрдВ:

 rosrun rqt_reconfigure rqt_reconfigure 

рдирддреАрдЬрддрди, рд╣рдо рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рддрд╕реНрд╡реАрд░ рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣рд╛рдБ рдереЛрдбрд╝рд╛ рдмрдбрд╝рд╛ рд╣реИ:

рдЫрд╡рд┐

рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ github рдкрд░ рдкреЛрд╕реНрдЯ рдХреА рдЧрдИ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ: github.com/realizator/StereoPi-ROS-depth-map-test

9. рддрддреНрдХрд╛рд▓ рдпреЛрдЬрдирд╛


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

10. рд╕рд╛рд░рд╛рдВрд╢


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

рдЦреИрд░, рдордЬрд╝реЗрджрд╛рд░ рд╕реЗ: рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╡реЗрдЬрд╝реЙрдЗрдб, рдЬрд┐рд╕рдиреЗ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд┐рдпрд╛ рдерд╛, рджреЛ рд╕реНрдЯреАрд░рд┐рдпреЛ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓ рдХрд╛ рд▓реЗрдЦрдХ рдерд╛ред рдЙрд╕рдиреЗ рдЦреБрдж рд╕реЗ рдкреВрдЫрд╛, рдЙрд╕рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред

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


All Articles