рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдкрд░ рдордЫрд▓реА рдХреА рдЖрдВрдЦ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрд░рдУрдПрд╕ рдХреЗ рд╕рд╛рде - рднрд╛рдЧ 1

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

рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВ рдордЫрд▓реА рдЖрдБрдЦ рдХреИрдорд░рд╛? рдореИрдВрдиреЗ рджреГрд╢реНрдп рдУрдбреЛрдореЗрдЯреНрд░реА рдФрд░ рдПрд╕рдПрд▓рдПрдПрдо рдХреЗ рд▓рд┐рдП рдЪреМрдбрд╝реЗ-рдХреЛрдг рдХреИрдорд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд▓реЗрдЦ рджреЗрдЦреЗ рд╣реИрдВред рдордЫрд▓реА рдХреА рдЖрдВрдЦ рдХреЗ рдмрдбрд╝реЗ рджреЗрдЦрдиреЗ рдХреЗ рдХреЛрдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреИрдорд░рд╛ рджреГрд╢реНрдп рдУрдбреЛрдореЗрдЯреНрд░реА рдХреА рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрд░рдУрдПрд╕ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдХреИрдорд░реЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдореИрдВрдиреЗ $ 28 рдХреЗ рд▓рд┐рдП dx.com рдкрд░ 160 рдбрд┐рдЧреНрд░реА рдХреЗ рдХреЛрдг рдХреЗ рд╕рд╛рде рдПрдХ рдХреИрдорд░рд╛ рдЦрд░реАрджрд╛ред рдХреИрдорд░рд╛ рдХрд┐рдЯ рдореЗрдВ рдирд╛рдЗрдЯ рд╡рд┐рдЬрд╝рди рдХреЗ рд▓рд┐рдП рджреЛ IR рд▓реИрдВрдк рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

рдЫрд╡рд┐

рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЖрд░рдУрдПрд╕ рдореЗрдВ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдмреЛрд░реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдбреНрд░рд╛рдЗрд╡рд░, рдУрдкрдирд╕реАрд╡реА 3 рдФрд░ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ 3 рдкрд░ рдордЫрд▓реА рдЖрдВрдЦ рдХреИрдорд░рд╛ рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛


рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ RPi 3 рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

ssh -Y <user>@<ip> 

-рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдХреБрдЫ GUI рдПрдкреНрд▓рд┐рдХреЗрд╢рди (OpenCV рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реЗ рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде Qt, рд╡рд┐рдВрдбреЛ) рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп "рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛" рд╣реЛрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рдФрд░ рдЬрд╛рдиреЗрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд░рд╛рд╕реНрдкреА-рдХреЙрдиреНрдлрд┐рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреИрдорд░рд╛ рдбреНрд░рд╛рдЗрд╡рд░ рд╕рдорд░реНрдерди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд░рд╛рд╕реНрдкрд┐рдпрди рдореЗрдВ, рдпрд╣ рд╕реЗрд╡рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдХреНрд╖рдо рд╣реИ, рдЙрдмрдВрдЯреВ рдореЗрдВ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 sudo apt-get install raspi-config 

рд░рд╛рд╕реНрдкрд┐-рд╡рд┐рдиреНрдпрд╛рд╕ рдЪрд▓рд╛рдПрдБ:

 sudo raspi-config 

рдЗрдВрдЯрд░рдлреЗрд╕рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдЪреБрдиреЗрдВ, рдлрд┐рд░ рдкрд╛рдИ рдХреИрдорд░рд╛ рдФрд░ рд╣рд╛рдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдФрд░ рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВред
рдЬрд╛рдБрдЪ рд▓реЗрдВ рдХрд┐ рдХреИрдорд░рд╛ рд╕рдорд░реНрдерди рд░рд╛рд╕реНрдкрд┐рд╕реНрдЯрд┐рд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ:

 raspistill -o mypicture.jpg 

рдпрджрд┐ рдЖрдкрдХреЛ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ "рдХреИрдорд░рд╛ рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦреЗрдВ рдХрд┐ рдХреИрдорд░рд╛ рдореЙрдбреНрдпреВрд▓ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ тАЭрдпрджрд┐ рдЖрдкрдиреЗ рдХреИрдорд░рд╛ рдХреЛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЖрдк рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░рд┐рдмреВрдЯ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЗрд╕рд╕реЗ рдореБрдЭреЗ рдорджрдж рдорд┐рд▓реА)ред

рдЖрдЗрдП рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

 raspivid -o myvideo.h264 

рдореБрдЭреЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдЬреБрдбрд╝реЗ рдореЙрдирд┐рдЯрд░ рдкрд░ рдПрдХ рдЫрд╡рд┐ рдорд┐рд▓реАред Ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рдореИрдВ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдкреЙрдкрдЕрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдерд╛ред

рдЫрд╡рд┐

рдПрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдПрдХ рдордЫрд▓реА рдЖрдБрдЦ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде OpenCV 3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛


рдкрд┐рдХрд╛рдореЗрд░рд╛ [рд╕рд░рдгреА] рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 pip install "picamera[array]" 

OpenCV рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, apt рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдП рдЧрдП рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВ:

 sudo apt-get update sudo apt-get upgrade 

рдХреБрдЫ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 sudo apt-get install build-essential cmake pkg-config sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev sudo apt-get install libgtk-3-dev sudo apt-get install libatlas-base-dev gfortran sudo apt-get install python2.7-dev python3.5-dev 

рд╣рдо рд╕реНрд░реЛрдд рд╕реЗ рдУрдкрдирд╕реАрд╡реА 3 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред

 cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip unzip opencv.zip 

рд╣рдореЗрдВ opencv_contrib рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip unzip opencv_contrib.zip 

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ OpenCV 3 рдореЗрдВ рдлреАрдЪрд░ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ (рдЬреИрд╕реЗ SIFT рдФрд░ SURF) рдХреЗ рд╕рд╛рде рдкреИрдХреЗрдЬ рдПрдХ рдЕрд▓рдЧ рдХрдВрдЯреНрд░реАрдмреНрдпреВрдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ред рдЕрдм, рдЯреИрдЧ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдВрдЯреНрд░рд╛рдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдм рд╣рдо рдЕрдВрддрддрдГ OpenCV рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде OpenCV рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП cmake рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 cd ~/opencv-3.1.0/ mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D INSTALL_C_EXAMPLES=OFF \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \ -D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \ -D BUILD_EXAMPLES=ON .. 

рдпрджрд┐ рд╕реАрдореЗрдХ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдлрд▓ рд╣реБрдЖ, рддреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 make -j4 

рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп, рдореБрдЭреЗ "рд╡рд┐рднрд╛рдЬрди рджреЛрд╖" рдорд┐рд▓рд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╕рдВрдХрд▓рди рдкрд░рд┐рдгрд╛рдо рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдлрд╛рдИ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рдХрд░реЗрдВ:

 make clean make 

рдореБрдЭреЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдореЗрдВ 3 рдШрдВрдЯреЗ рд▓рдЧреЗред рдЕрдВрдд рдореЗрдВ, OpenCV 3 рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 sudo make install sudo ldconfig 

ROS рдХрд╛рдЗрдиреЗрдЯрд┐рдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рд╣реИред рдпрджрд┐ рдЖрдк Rin рдХрд╛рдЗрдиреЗрдЯрд┐рдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ ROS рд╕реНрд░реЛрдд / рдкрде /ros /kinetic/setup.bash рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рддреЗ рд╕рдордп рд╕рд┐рд╕реНрдЯрдо рдкрде рдореЗрдВ рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ (/opt/ros/kinetic/lib/python2.7/dist-packages) рдХреЗ рд▓рд┐рдП рдкрде рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрд╣ рд╕реНрд░реЛрдд рд╕реЗ OpenCV рдХреА рдмрд╛рдж рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ (рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдпрд╣рд╛рдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ )ред рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, .bashrc рдлрд╝рд╛рдЗрд▓ рд╕реЗ 'source /opt/ros/kinetic/setup.bash' рд▓рд╛рдЗрди рд╣рдЯрд╛ рджреЗрдВред рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛:

 source ~/.bashrc 

рдЖрдЗрдП рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ OpenCV рдЕрдм рдкрд╛рдпрдерди рд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

 mkdir PiCamera && cd PiCamera vim test_cam.py 

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 from picamera.array import PiRGBArray from picamera import PiCamera import time import cv2 # initialize the camera and reference the raw camera capture camera = PiCamera() rawCapture = PiRGBArray(camera) # allow camera to warmup time.sleep(0.1) # grab an image camera.capture(rawCapture, format="bgr") image = rawCapture.array cv2.imshow("Capture", image) cv2.waitKey(0) 

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдПрдБ:

 python test_cam.py 

рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рд╣рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЖрдЗрдП рдЕрдм рдХреИрдорд░реЗ рд╕реЗ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

 vim test_videom.py 

рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВ:

 # import the necessary packages from picamera.array import PiRGBArray from picamera import PiCamera import time import cv2 # initialize the camera and grab a reference to the raw camera capture camera = PiCamera() camera.resolution = (640, 480) camera.framerate = 32 rawCapture = PiRGBArray(camera, size=(640, 480)) # allow the camera to warmup time.sleep(0.1) # capture frames from the camera for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True): # grab the raw NumPy array representing the image, then initialize the timestamp # and occupied/unoccupied text image = frame.array # show the frame cv2.imshow("Frame", image) key = cv2.waitKey(1) & 0xFF # clear the stream in preparation for the next frame rawCapture.truncate(0) # if the `q` key was pressed, break from the loop if key == ord("q"): break 

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

 from picamera.array import PiRGBArray from picamera import PiCamera import time import cv2 import numpy as np # initialize the camera and grab a reference to the raw camera capture camera = PiCamera() camera.resolution = (640, 480) camera.framerate = 32 rawCapture = PiRGBArray(camera, size=(640, 480)) # allow the camera to warmup time.sleep(0.1) # capture frames from the camera for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True): # grab the raw NumPy array representing the image, then initialize the timestamp # and occupied/unoccupied text image = frame.array hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) lower_red = np.array([30,150,50]) upper_red = np.array([255,255,180]) mask = cv2.inRange(hsv, lower_red, upper_red) res = cv2.bitwise_and(image,image, mask= mask) edges = cv2.Canny(res,100,200) # show the frame cv2.imshow("Frame", image) cv2.imshow("Edges", edges) key = cv2.waitKey(1) & 0xFF # clear the stream in preparation for the next frame rawCapture.truncate(0) # if the `q` key was pressed, break from the loop if key == ord("q"): break 

рдпрд╣рд╛рдБ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

рдЫрд╡рд┐

ROS рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛


рдЕрдм рдЖрд░рдУрдПрд╕ рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд▓рд┐рдП рдордЫрд▓реА рдХреА рдЖрдВрдЦреЛрдВ рдХреЗ рдХреИрдорд░реЗ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ V4L2 рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдЖрдк рдпрд╣рд╛рдВ рдФрд░ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ)ред рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

 sudo rpi-update 

рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВред рдЕрдм рдбреНрд░рд╛рдЗрд╡рд░ рдЬреЛрдбрд╝реЗрдВ:

 sudo modprobe bcm2835-v4l2 

рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрдкрдХрд░рдг / dev / video0 рдЙрдкрд▓рдмреНрдз рд╣реИ:

 ll /dev/video0 

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

 crw-rw----+ 1 root video 81, 0 Mar 17 15:47 /dev/video0 

рдбрд╛рдЙрдирд▓реЛрдб usb_cam рдкреИрдХреЗрдЬ:

 sudo apt-get install ros-kinetic-usb-cam source /opt/ros/kinetic/setup.bash 

ROS рдорд╛рд╕реНрдЯрд░ рдЪрд▓рд╛рдПрдБ рдФрд░ rqt_image_view:

 roscore roslaunch usb_cam usb_cam-test.launch rosrun rqt_image_view rqt_image_view 

рд╡рд┐рд╖рдп / usb_cam / image_raw рдЪреБрдиреЗрдВред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

рдЫрд╡рд┐

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

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


All Articles