рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░!
рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ Intel RealSense рдХреИрдорд░рд╛, рдореЙрдбрд▓ d435 рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХрдИ рдорд╢реАрди рджреГрд╖реНрдЯрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рдХреИрдорд░реЗ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрдВрд╢рд╛рдВрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реБрдЖ рдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рд╣рдо рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреБрджреНрдзрд┐рдорд╛рди рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП ROS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░реВрд╕реА рднрд╛рд╖рд╛ рдХреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХреЛрдИ рд╕рдордЭрджрд╛рд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдпрд╣ рдкреНрд░рдХрд╛рд╢рди рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╢рд░реНрдд
рдЪреВрдВрдХрд┐ ROS рдпреВрдирд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдорд╛рди рд▓реВрдВрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрдмрдВрдЯреВ 16.04 рд╕рд┐рд╕реНрдЯрдо рдЙрдкрд▓рдмреНрдз рд╣реИред рдореИрдВ рд╡рд┐рд╕реНрддреГрдд рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рд╡рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдХреЗрд╡рд▓ рд╕рдВрдмрдВрдзрд┐рдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рд▓рд┐рдВрдХ рджреВрдВрдЧрд╛ред
sudo apt-get install python-opencv
RealSense рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
- рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░реЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рдХреИрдорд░реЗ рдХреЗ рд▓рд┐рдП ROS рдкреИрдХреЗрдЬ рдпрд╣рд╛рдБ рд╣реИ ред рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд╕рдордп, рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 2.0.3 рдерд╛ред рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ ROS рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЕрдирдЬрд╝рд┐рдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд▓рд╛, рд╣рдореЗрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
catkin_make clean catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release catkin_make install echo "source path_to_workspace/devel/setup.bash" >> ~/.bashrc source ~/.bashrc
рдХреИрдорд░реЗ рдХрд╛ рдкрд░реАрдХреНрд╖рдг
рдХреИрдорд░рд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдЙрдиреНрд╣реЗрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо USB рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрдорд░рд╛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбреЗрдореЛ рдЪрд▓рд╛рддреЗ рд╣реИрдВ:
roslaunch realsense2_camera demo_pointcloud.launch
рдпрд╣ рдХрдорд╛рдВрдб ROS рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдЦреЛрд▓реЗрдЧрд╛, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдЯреЙрдкрд┐рдХ /camera/depth/color/points
рдореЗрдВ рджрд░реНрдЬ рдкреЙрдЗрдВрдЯреНрд╕ рдХреЗ рдХреНрд▓рд╛рдЙрдб рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдХреИрдорд░рд╛ рдЕрдВрд╢рд╛рдВрдХрди
рдиреАрдЪреЗ OpenCV рд╕реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рд╣реИред
import numpy as np import cv2 import glob
рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХреИрдорд░реЗ рд╕реЗ рдХрдо рд╕реЗ рдХрдо 10 рд╢рддрд░рдВрдЬ рдХреА рдЫрд╡рд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрдореЗрдЬ_рд╡реНрдпреВ рдЖрд░рдУрдПрд╕ рдкреИрдХреЗрдЬ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬреЛ рдпреВрдПрд╕рдмреА рдХреИрдорд░рд╛ рд╕реЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдХреИрдкреНрдЪрд░ рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдХрд┐рд╕реА рднреА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЫрд╡рд┐ рдЙрджрд╛рд╣рд░рдг:

рд╣рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЕрдВрд╢рд╛рдВрдХрди рдкрд░рд┐рдгрд╛рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗ
calibration.npy
ред рдпрд╣ рдбреЗрдЯрд╛ рддрдм рдирд┐рдореНрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
calibration_data = np.load('path_to_images/calibration.npy') mtx = calibration_data[0] dist = calibration_data[1] rvecs = calibration_data[2] tvecs = calibration_data[3]
рдирд┐рд╖реНрдХрд░реНрд╖
рд╣рдо OpenCV2 рдФрд░ ROS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ RealSense d435 рдХреИрдорд░рд╛ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреИрд▓рд┐рдмреНрд░реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред рдХреИрд▓рд┐рдмреНрд░реЗрд╢рди рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдЯреНрд░реИрдХрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯ, рдЖрд░реНрдХреЛ рдорд╛рд░реНрдХрд░, рд╕рдВрд╡рд░реНрдзрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдФрд░ рдХрдИ рдЕрдиреНрдп рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрд░реВрдХреЛ рдорд╛рд░реНрдХрд░реЛрдВ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред