рдЖрд░рдУрдПрд╕ рдХрд╛рд░реНрдЯ рдЯреНрд░рдХред рднрд╛рдЧ 2. рд╕реЙрдлреНрдЯрд╡реЗрдпрд░

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

рдореБрд╕реНрдХреБрд░рд╛рддреЗ рд╣реБрдП рдЖрдЧреЗ рдмрдврд╝рдирд╛


рдЕрдВрддрд┐рдо рдкреЛрд╕реНрдЯ рд╕реЗ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ "рдмрд░реНрдЧрд░" рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж , рд╣рдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред

рдЪреВрдВрдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреВрд░реА рд╣реЛ рдЪреБрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рджрд┐рдП рдЧрдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рджреЗрдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред рд╡реЗ рдпрд╣рд╛рдВ рд╣реИрдВ ред

рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдПрдХ рд╣реА рдЬрдЧрд╣ рдореЗрдВ рдЖрдк рд░рд╛рд╕реНрдкрд┐рдпрди рд╕реНрдЯреНрд░реЗрдЪ + рдЖрд░рдУрдПрд╕ + рдУрдкрдирд╕реАрд╡реА рд╕реЗ рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХреЗ рд▓рд┐рдП рдПрд╕рдбреА рдХрд╛рд░реНрдб рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред (рдЖрд░рдУрдПрд╕ рдХрд╛рдЗрдиреЗрдЯрд┐рдХ, рдУрдкрдирд╕реАрд╡реА 3.4.1ред рд╣рд╛рдВ, рдПрдХ рдирдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рд╕реНрд░реЛрдд рд╕реЗ рд╕рдм рдХреБрдЫ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕реЗ рд▓реЗрдирд╛ рдФрд░ рдЬрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ)ред

рдлрд┐рд░ рднреА, рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдореБрдЭреЗ рдЕрднреА рднреА рдЫрд╡рд┐ рдХреЛ рдереЛрдбрд╝рд╛ рд╕реБрдзрд╛рд░рдирд╛ рдкрдбрд╝рд╛ред рдЪреВрдВрдХрд┐ рдЗрд╕рд╕реЗ рдореВрд▓ рдЫрд╡рд┐ рдХреЗ рдХреБрдЫ рдЕрд╕рд╣рдЬ рд╡рд┐рд╡рд░рдг рдирд┐рдХрд▓ рдЧрдП:

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

рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдпрд╣рд╛рдВ рд╣реИ , рдФрд░ рдЖрдЧреЗ рдХрд╛ рдХрд╛рдо рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ (рд╡рд╛рдИ-рдлрд╛рдИ) рдФрд░ рдЖрд░рдУрдПрд╕-рдорд╛рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

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

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

interface wlan0 static ip_address=192.168.43.174/24 static routers=192.168.43.1 static domain_name_servers=192.168.43.1 

/Etc/dhcpcd.conf рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ

рдЗрд╕рд▓рд┐рдП, рдЖрдк рд╕рдм рдХреБрдЫ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реЗрд╕ рдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╕ рдкрд╛рдереЛрд╕ рдиреЗрдо рдмреЙрд╕ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб 1234554321 рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХреНрд╕реЗрд╕ рдкреНрд╡рд╛рдЗрдВрдЯ рдмрдирд╛рдПрдВред рд░рд╛рд╕реНрдкрдмреЗрд░реА рдХрд╛ рдкрддрд╛ 192.168.43.174 рд╣реЛрдЧрд╛ред Ssh рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдк VNC: рд▓реЙрдЧрд┐рди - рдкрд╛рдИ, рдкрд╛рд╕рд╡рд░реНрдб - 123qweasdzxcV рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдЗрд╕ рдкрддреЗ рдкрд░ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдЗрдП ROS рдорд╛рд╕реНрдЯрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рдЯрд┐рдкреНрдкрдгреА, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЖрд░рдУрдПрд╕ (рд░реЛрдмреЛрдЯрд┐рдХ рдСрдкрд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо) рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдПрдХ рдЖрд░рдУрдПрд╕ рдорд╛рд╕реНрдЯрд░ рдПрдХ рдордзреНрдпрд╕реНрде рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдиреЛрдбреНрд╕ рдЖрд░рдУрдПрд╕ (рдиреЛрдбреНрд╕, рд╕реЗрд╡рд╛рдУрдВ, рдЖрджрд┐) рдореЗрдВ рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрд░рдУрдПрд╕ рдорд╛рд╕реНрдЯрд░ рдЧрд▓рдд рдкрддреЗ рдкрд░ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдиреЛрдб рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗред

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

рдпрджрд┐ рдЖрдкрдиреЗ рдКрдкрд░ рд╕реВрдЪреАрдмрджреНрдз рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЕрдиреНрдпрдерд╛, bashrc рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 nano ~/.bashrc 

рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ, рдЕрдкрдиреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдкрддреЗ (рджреЛрдиреЛрдВ) рдХреЛ рд╕рд╣реА рдХрд░реЗрдВ:

 export ROS_MASTER_URI=http://192.168.43.174:11311 export ROS_HOSTNAME=192.168.43.174 

рд░реАрдмреВрдЯред

рдЕрдм рдЧрд╛рдбрд╝реА рдкрд░ рдЯрд░реНрдорд┐рдирд▓ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛ (рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ):

 For all slaves, "export ROS_MASTER_URI=http://192.168.43.174:11311" 

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ ROS рдорд╛рд╕реНрдЯрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЖрдИрдкреА рдкрддреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╣рдо рд╡рд╛рдИ-рдлрд╛рдИ рдкрд░ рдЯреНрд░реЙрд▓реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ


рд╣рдо рд╢реБрд░реВ рд╕реЗ рд╣реА рдЬрд╛рдБрдЪреЗрдВрдЧреЗ рдХрд┐ рдиреЛрдбреНрд╕ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ:

 rosnode list 

рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

/ рд░рд╕рдирд╛
/ uno_serial_node

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

рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдВрджреЛрд▓рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ 1 рдиреЛрдб рдЪрд▓рд╛рдПрдВ:

 rosrun rosbots_driver part2_cmr.py 

* рд╡рд┐рд╢реЗрд╖ ros рдХрдорд╛рдВрдб рдиреЗ rosbots_driver python рдкреИрдХреЗрдЬ рд╕реЗ part2_cmr.py рдлрд╝рд╛рдЗрд▓ рд▓реЙрдиреНрдЪ рдХреА

рд╕рд┐рд╕реНрдЯрдо рд╕реВрдЪрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдиреЛрдб рдЪрд▓ рд░рд╣рд╛ рд╣реИ:



рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд╣рд┐рдпреЛрдВ рдХреА рддреНрд░рд┐рдЬреНрдпрд╛ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдЖрдк рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдкрде рдХреЗ рд╕рд╛рде рд░реЛрдмреЛрдЯ-рдереНрд░реЗрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдВрджреЛрд▓рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреНрдп рднреА

 /home/pi/rosbots_catkin_ws/src/rosbots_driver/scripts/examples/coursera_control_of_mobile_robots/part2/full/controller 

рдЪреВрдВрдХрд┐ part2_cmr.py рдореЗрдВ рд╕реНрд╡рдпрдВ рдЗрди рдкреИрд░рд╛рдореАрдЯрд░ рдирд╣реАрдВ рд╣реИрдВред рджреВрд╕рд░рд╛ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рд░реЛрдбрд╕реНрдЯреЙрдк рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ:



рдпрд╣рд╛рдВ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рд╖рдп / part2_cmr / cmd_vel рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, / part2_cmr "рд╕реБрдирддрд╛ рд╣реИ" рдЕрдиреНрдп рдиреЛрдбреНрд╕ рдЗрд╕реЗ рдХреНрдпрд╛ рдХрд╣реЗрдВрдЧреЗ рдФрд░, рд╡реЗ рдЬреЛ рдХрд╣рддреЗ рд╣реИрдВ рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдВрджреЛрд▓рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред рдХреНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рд╕реБрдирддрд╛ рд╣реИ", рд▓реЗрдХрд┐рди рдирд╣реАрдВ "рдмреЛрд▓рддрд╛ рд╣реИ" рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 rostopic info /part2_cmr/cmd_vel 



рдпрд╣рд╛рдБ рдЖрдк рдЙрд╕ / part2_cmr рдЧреНрд░рд╛рд╣рдХ (рд╕рдмреНрд╕реНрдХреНрд░рд╛рдЗрдмреНрдб) рдХреЛ рд╡рд┐рд╖рдп рдФрд░ рд╕реБрдирддрд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

* рдЖрдк рдиреЛрдбреНрд╕ рдХреЗ рдмрд┐рдирд╛, рд╡рд┐рд╖рдп рдкрд░ рдЦреБрдж рдХреЛ "рдХреБрдЫ" рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 rostopic pub -1 /wheel_power_left std_msgs/Float32 '{data: 1.0}' 

рдмрд╛рдПрдВ рдкрд╣рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдореБрдбрд╝реЗрдВ

 rostopic pub -1 /wheel_power_left std_msgs/Float32 '{data: 0.0}' 

рдмрд╛рдпрд╛рдВ рдкрд╣рд┐рдпрд╛ рдмрдВрдж рдХрд░реЛ

 rostopic pub -1 /wheel_power_left std_msgs/Float32 '{data: -1.0}' 

рдПрдХ рдкрд╣рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдкреАрдЫреЗ рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ

 rostopic pub -1 /wheel_power_left std_msgs/Float32 '{data: -0.5}' 

рдмрд╛рдПрдВ рдкрд╣рд┐рдП рдХреЗ рдзреАрдореЗ рд╕реЗ рдореБрдбрд╝реЗрдВред

рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ: рд░реЛрд╕реНрдЯреЛрдкрд┐рдХ рдкрдм - рд╡рд┐рд╖рдп рдореЗрдВ рдмреЛрд▓рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛, -1 - рдПрдХ рдмрд╛рд░ рдХреА рдЗрдЪреНрдЫрд╛, / wheel_power_left - рд╡рд┐рд╖рдп рдЬрд╣рд╛рдВ рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ, std_msgs / Float32 - рднрд╛рд╖рд╛ (рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рд░реВрдк), '{рдбреЗрдЯрд╛ -0.5}' - рд╣рдо рдХреНрдпрд╛ рдХрд╣рддреЗ рд╣реИрдВред

рдЕрдм рд╡рд┐рд╖рдп / part2_cmr / cmd_vel рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдЪрд▓рд╛рдПрдВред рдпрд╣ рдиреЛрдб рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдХреАрдмреЛрд░реНрдб рдХрдорд╛рдВрдб рд╣реЛрдЧрд╛ред

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

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

* рдЪреВрдВрдХрд┐ рдкреНрд░рдХрд╛рд╢рди рд╡рд┐рд╖рдп рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╣реИ / cmd_vel, рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
/ cmd_vel: = / part2_cmr / cmd_vel рддрд╛рдХрд┐ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ / part2_cmr / cmd_vel рдореЗрдВ рдбрд╛рд▓рд╛ рдЬрд╛рдПред

рдирд┐рдпрдВрддреНрд░рдг рдиреЛрдб рд╢реБрд░реВ рд╣реБрдЖ рдФрд░ рдЖрдк рдХреАрдмреЛрд░реНрдб рдкрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджрдмрд╛рдХрд░ рд╕рд╡рд╛рд░реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:



рдпрджрд┐ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ, рдпрд╛ рдкрд╣рд┐рдпреЛрдВ рдХреЗ рдиреАрдЪреЗ рд╕реЗ рдПрдХ рд╕реВрдХреНрд╖реНрдо рдЪреАрдЦрд╝ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдиреЛрдб рдХреЗ рд╕рд╛рде рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ "w" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЧрддрд┐ рдХреЛ рдмрдврд╝рд╛рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд╣реА (рд╡реГрджреНрдзрд┐ рдпрд╛ рдХрдореА) рд░реЛрдЯреЗрд╢рди рдХреА рдЧрддрд┐ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ - "рдИ" рдмрдЯрдиред рд░рдирд┐рдВрдЧ рдиреЛрдб рдХреЗ рд╕рд╛рде рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд░рд╣рдирд╛ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдпрджрд┐ рдирд┐рдпрдВрддреНрд░рдг рдмрдЯрди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВред рдХрдВрдЯреНрд░реЛрд▓ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ "k" рдмрдЯрди рдПрдХ рд╕реНрдЯреЙрдк рд╣реИред

рдПрдХ рдЕрд▓рдЧ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рджреЗрдЦреЗрдВ / part2_cmr / cmd_vel:



рдЕрдм рд╡рд┐рд╖рдп / part2_cmr / cmd_vel рдореЗрдВ рд╡рдХреНрддрд╛ рдФрд░ рд╢реНрд░реЛрддрд╛ рджреЛрдиреЛрдВ рд╣реИрдВред

OpenCV рдкрд░ рд▓рд╛рдЗрди рдХреА рд╕рд╡рд╛рд░реА


рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдХрд╣реАрдВ рдЬрд╛рдПрдВ, рдЖрдкрдХреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд░реЛрдмреЛрдЯ рдХреАрдмреЛрд░реНрдб рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдпрд╛рддреНрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЯрд┐рдкреНрдкрдгреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреАрдмреЛрд░реНрдб рд╕реЗ рдирд┐рдпрдВрддреНрд░рдг рдХрд░рддреЗ рд╕рдордп, рдмрд╛рдИрдВ рдУрд░ рдореБрдбрд╝рдХрд░ j рдХреБрдВрдЬреА рджрдмрд╛рдиреЗ рдкрд░ рджрд╛рдПрдВ l (рд▓реИрдЯрд┐рди l), рдЖрдЧреЗ i, back, (рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдмрд░реНрдЧрд░ 4,5,6,7 arduino рдореЗрдВ arduino рдкрд░ рдЗрдВрдЬрди рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдкреИрд░реЛрдВ рддрдХ рдЖрдиреЗ рд╡рд╛рд▓реЗ рддрд╛рд░ рдЬреЛрдбрд╝реЗ рдХреЛ рдмрджрд▓рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ: 4,5 рд╕реЗ 6,7 рдпрд╛ 4 рдФрд░ 5,6 рдФрд░ 7 рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдЪреЗрдВрдЬ рдХрд░рдирд╛ рдПрдХ рдФрд░ рдЬрд╣рд╛рдВ рдкрд╣рд┐рдпреЛрдВ рд╕реНрдкрд┐рди рдЬрд╛рдПрдЧрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ Arduino рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдкрде рдХреЗ рд╕рд╛рде рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдХреЗ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - /home/pi/gitspace/rosbots_driver/platformio/rosbots_firmware/examples/motor_driver/src/main.cpp

 #define M_LEFT_PWM 6 #define M_LEFT_FR 7 #define M_RIGHT_PWM 5 #define M_RIGHT_FR 4 

рдФрд░ рдЗрд╕реЗ arduino рдкрд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдкреБрдирдГ рд▓реЛрдб рдХрд░рдирд╛:

 upload_firmware ~/gitspace/rosbots_driver/platformio/rosbots_firmware/examples/motor_driver 

рдЪрд▓реЛ рдлреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ

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

рдЖрдЗрдП рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдПрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ:

 cd /home/pi/rosbots_catkin_ws/src/rosbots_driver/scripts/rosbots_driver python bgr-to-hsv.py 

* рдзреНрдпрд╛рди рджреЗрдВ! рдпрджрд┐ рдЖрдк rosbots рд╕реЗ рдореВрд▓ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдореЗрд░рд╛ рдирд╣реАрдВ, рддреЛ рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд╣реАрдВ рд╣реИред

рджреЛ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдЦреБрд▓реЗрдВрдЧреА:



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

h1, s1, v1 - рдирд┐рдЪрд▓рд╛ рдФрд░ h2, s2, v2 - рдХреНрд░рдорд╢рдГ, рдКрдкрд░реА рд╕реАрдорд╛ред

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



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

рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ ctrl + c рджрд░реНрдЬ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЛ рдмрдВрдж рдХрд░реЗрдВ рдФрд░ HSV рдкрд░реНрд╡рддрдорд╛рд▓рд╛ рдХреЛ follow_line_step_hsep.py рдкрд░ рдЬреЛрдбрд╝реЗрдВ:

 cd /home/pi/rosbots_catkin_ws/src/rosbots_driver/scripts/rosbots_driver nano follow_line_step_hsv.py 

рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ:

 lower_yellow = np.array([21,80,160]) upper_yellow = np.array([255,255,255]) 

рд╣рдордиреЗ рдЕрдкрдиреЗ рдПрдЪрдПрд╕рд╡реА рдкрд░реНрд╡рддрдорд╛рд▓рд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд░рдЦрд╛ред

рд▓рд╛рдЗрди рдХреА рд╕рд╡рд╛рд░реА рдХрд░рдиреЗ рдХрд╛ рд╕рдордп

рд╣рдо рдЯрд░реНрдорд┐рдирд▓ 1 рдореЗрдВ рдореЛрдЯрд░ рдиреЛрдб рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:

 rosrun rosbots_driver part2_cmr.py 

рджреВрд╕рд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХреИрдорд░рд╛ рдиреЛрдб рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:

 sudo modprobe bcm2835-v4l2 roslaunch usb_cam usb_cam-test.launch 

рддреАрд╕рд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ opencv рдиреЛрдб рдЪрд▓рд╛рдПрдВ:

 cd /home/pi/rosbots_catkin_ws/src/rosbots_driver/scripts/rosbots_driver python follow_line_step_hsv.py 

рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рд░реЛрдмреЛрдЯ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдЬрд╛рдПрдЧрд╛, рдФрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:



рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдмрд┐рдЬрд▓реА рдХреЗ рдЯреЗрдк рдХреЛ рдПрдХ рд▓рд╛рд▓ рд╕рд░реНрдХрд▓ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

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

рдЕрдВрдд рдореЗрдВ, рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ - рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдФрд░ рдореБрд╕реНрдХреБрд░рд╛рд╣рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


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

рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЪреЗрд╣рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрд▓рд┐рдпреЛрдВ рдХреА рддрд╕реНрд╡реАрд░реЗрдВ рдЙрдкрдпреБрдХреНрдд рд╣реИрдВред

1 рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдХреИрдорд░рд╛ рдиреЛрдб рдЪрд▓рд╛рдПрдБ:

 cd /home/pi/rosbots_catkin_ws/src/rosbots_driver/scripts/rosbots_driver python pi_camera_driver.py 

рджреВрд╕рд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдореЛрдЯрд░ рдиреЛрдб:

 rosrun rosbots_driver part2_cmr.py 

рдмрд┐рд▓реНрд▓реА рдЦреЛрдЬ рдиреЛрдб рдХреЗ рддреАрд╕рд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ:

 cd /home/pi/rosbots_catkin_ws/src/rosbots_driver/scripts/rosbots_driver python follow_cat2.py 

рдЧрд╛рдбрд╝реА рдзреАрд░реЗ-рдзреАрд░реЗ рдмрд┐рд▓реНрд▓реА рдХреЗ рдкрд╛рд╕ рдЬрд╛рдПрдЧреА:



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

рдмрд┐рд▓реНрд▓реА рдХреЗ рдЦреЛрдЬ рдиреЛрдб рдХреЗ рддреАрд╕рд░реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдЖрдк рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - ctrl + c рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЬреНрдЮрд╛рдд рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЪреЗрд╣рд░реЗ рдкрд░ рдореБрд╕реНрдХрд╛рди рдХреА рдЦреЛрдЬ рд╢реБрд░реВ рдХрд░реЗрдВ:

 python follow_smile.py 

рдЧрд╛рдбрд╝реА рдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ, рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдЬреНрдЮрд╛рдд рд╡реНрдпрдХреНрддрд┐ рдХреА рдореБрд╕реНрдХрд╛рди рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:



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

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, 320x240 рдФрд░ 15 рдПрдлрдкреАрдПрд╕ рдХреА рдХреИрдорд░рд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд░рд╛рд╕реНрдкрдмреЗрд░реА 3 рдмреА рдкрд░ рдкреНрд░рджрд░реНрд╢рди рдмрд╣реБрдд рд╡рд╛рдВрдЫрд┐рдд рд╣реИред рдмрдврд╝рддреЗ рд╕рдордп рдХреЗ рд╕рд╛рде рджреЗрд░реА рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рд╣рд░ рдмрд┐рд▓реНрд▓реА рдЗрд╕реЗ рдЦрдбрд╝рд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреАред

рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реБрдзрд╛рд░рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЕрдиреБрдХреВрд▓рд┐рдд opencv рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдПрдбреНрд░рд┐рдпрди рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (https://www.pyimagesearch.com/2017/10/09/optimizing-opencv-on-the-raspberry-pi/)? рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдкреАрд╕реА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ? рдЬреЗрдкреАрдЖрд░ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВ рдЬреЛ рд╣реИрд░ рд╣реИрдВрдбрд▓рд░ рдХреЗ рд▓рд┐рдП рдЙрдбрд╝рддреЗ рд╣реИрдВ? рдФрд░ рдПрдХ рдФрд░ рдмрдбрд╝рд╛ рдорд╛рдЗрдирд╕ - рдмрд┐рд▓реНрд▓рд┐рдпрд╛рдВ рдмрдбрд╝реА рдФрд░ рд╕рд╛рдордиреЗ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред A4 рд╢реАрдЯ рдкрд░ 15 рд╕реЗрдореА рдХреА рджреВрд░реАред рдХреИрдорд░реЗ рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдкрд░, рдмрд┐рд▓реНрд▓реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╣рдЪрд╛рдирдиреЗ рдпреЛрдЧреНрдп рдФрд░ рдЕрдЬреЗрдп рд╣реИред 8x рдмрдврд╝рд╛рдИ рдХреЗ рд╕рд╛рде рдХреИрдорд░реЗ рдкрд░ рдПрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдореЛрдиреЛрд╕реЗрд▓ рд░рдЦреЛ?

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

 python follow_fullbody.py python follow_upperbody.py python follow_lowerbody.py 

рдЪреЗрд╣рд░рд╛ рдпрд╛ рдЖрдБрдЦ:

 python follow_face.py python follow_right_eye.py 

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

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


All Articles