рдПрдХ рдмрдбрд╝реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП - рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдпрд╛ рдмреАрдЧрд▓рдмреЛрди рдмреНрд▓реВ рдкрд░ рдЖрд░рдУрдПрд╕ рдХреЗ рд╕рд╛рде рдпреВрдПрд╕рдмреА рдХреИрдорд░рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ



рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдПрдХ USB рдХреИрдорд░рд╛ рдХреЛ рдПрдХ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдпрд╛ рдмреАрдЧрд▓рдмреЛрди рдмреНрд▓реВ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдФрд░ ROS (рд░реЛрдмреЛрдЯ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо) рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ - ROS image_view рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреИрдорд░реЗ рд╕реЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП!

рд╡реАрдбрд┐рдпреЛ рдХреЗ рдЕрдВрдд рдореЗрдВ EduMip рд░реЛрдмреЛрдЯ рдкрд░ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рд╣реИред

1) рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдПрдХ рд╡рд┐рддрд░рд┐рдд рдЖрд░рдУрдПрд╕ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдВрдЧреЗред

2) рд░рд╛рд╕рдХреЛрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЪрд┐рддреНрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ (рджрд╛рд╕) рдкрд░ рдкреАрд╕реА (рдорд╛рд╕реНрдЯрд░) рдФрд░ рдХреИрдорд░рд╛ рдиреЛрдб рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

3) рдорд╛рд╕реНрдЯрд░ рдФрд░ рджрд╛рд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреЛрдиреЛрдВ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

4) рд╡рд┐рдЬрд╝рд╛рд░реНрдб рдкрд░: рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛ рдвреВрдВрдвреЗрдВред рдИрдерд░рдиреЗрдЯ рдХреЗ рд▓рд┐рдП, net_dev рдпрд╛ рддреЛ enpXXs0 рдпрд╛ ethX рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

$ ifconfig {net_dev} ifconfig enp61s0   ifconfig 

5) ROS_IP рдЪрд░ рдХреЗ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ IP рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 $ export ROS_IP="10.42.0.1" 

6) рдФрд░ ROS_MASTER_URI рдХреЗ рд▓рд┐рдП:

 $ export ROS_MASTER_URI="http://10.42.0.1:11311" 

7) рдпрджрд┐ рдЖрдк рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрди рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ .bashrc рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдорд╛рдиреЛрдВ рдХреЛ рд╕рд╣реЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ:

 $ echo 'export ROS_IP="10.42.0.1"' >> ~/.bashrc $ echo 'export ROS_MASTER_URI="http://10.42.0.1:11311"' >> ~/.bashrc 

8) ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:

 $ ssh {user}@{raspberry_ip} 

9) рдЖрд░рдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП, рджрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ, ROS_MASTER_URI рдХреЗ рд▓рд┐рдП рдорд╛рд╕реНрдЯрд░ IP рдкрддрд╛ рдЬреЛрдбрд╝реЗрдВ

10) рдФрд░ ROS_IP рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХрд╛ рдЖрдИрдкреА рдкрддрд╛

 $ export ROS_IP="10.42.0.65" $ export ROS_MASTER_URI="http://10.42.0.1:11311"  $ echo 'export ROS_IP="10.42.0.65"' >> ~/.bashrc $ echo 'export ROS_MASTER_URI="http://10.42.0.1:11311"' >> ~/.bashrc 

11) рдЕрдм рдпреВрдПрд╕рдмреА рдХреИрдорд░рд╛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред

12) рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреИрдорд░рд╛ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИ ::

 $ lsusb $ ls /dev | grep video* 

13) рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд╕рд╛рде usb_cam ROS рдиреЛрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 $ sudo apt install ros-kinetic-usb-cam 

14) usb_cam рд╣реЛрд╕реНрдЯ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓реЙрдиреНрдЪ рдлрд╝рд╛рдЗрд▓ рд╣реИ:

 $ cat /opt/ros/kinetic/share/usb_cam/launch/usb_cam-test.launch 

15) рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдорд╛рд╕реНрдЯрд░ рдкрд░ ROS рдХрд░реНрдиреЗрд▓ рдЪрд▓рд╛рддреЗ рд╣реИрдВ:

 $ roscore 

16) рдФрд░ рдЕрдм рдЧреБрд▓рд╛рдо рдкрд░ usb_cam рдиреЛрдб рдЪрд▓рд╛рдПрдВ:

 $ roslaunch usb_cam usb_cam-test.launch 

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

18) CTRL + Z рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП bg рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдВред (рдЙрдмрдВрдЯреВ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдкреВрд░реНрдг рдбреЗрд╕реНрдХрдЯреЙрдк рдирд╣реАрдВ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд┐рдирд╛, рдмрд╕ рдПрдХ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ)

19) рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╡рд┐рд╖рдп рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП:

 $ rostopic list 

20) ... рдпрд╛ рдЪрд┐рддреНрд░рдордп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ:

 $ rqt_graph 

21) Image_view рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреИрдорд░рд╛ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛:

 $ rosrun image_view image_view image:=/usb_cam/image_raw 



22) рдпрд╛ rqt_image_view рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░

23) рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдп рдХреЛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд▓рд╛рдУ:

 $ fg 

24) рдЖрдЬ рддрдХ рдХрд╛ рдирд╡реАрдирддрдо рдкреНрд░рдпреЛрдЧ рд╡реЗрдм рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╣реИ

25) рдЖрд░рдУрдПрд╕ рд╣реЛрд╕реНрдЯ рд╡реЗрдм рд╡реАрдбрд┐рдпреЛ рд╕рд░реНрд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛:

 $ sudo apt install ros-kinetic-web-video-server 

26) рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдХрд╕реНрдЯрдо рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдХреИрдЯрдХрд┐рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░ рдмрдирд╛рдПрдВ:

 $ mkdir -p ~/rosvid_ws/src $ cd ~/rosvid_ws $ catkin_make $ source devel/setup.bash 

27) рдлрд┐рд░ рдЖрд░рдУрдПрд╕ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ:

 $ cd src $ catkin_create_pkg vidsrv std_msgs rospy roscpp 

28) рдиреИрдиреЛ, рд╡рд┐рдо, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред:

 $ mkdir -p vidsrv/launch $ nano vidsrv/launch/vidsrv.launch 

рдпрд╣рд╛рдВ рд╕реЗ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ

A4Tech USB рдХреИрдорд░рд╛ рдХреЗ рд╕рд╛рде рдмреАрдЧрд▓рдмреЛрди рдмреНрд▓реВ рдкрд░, рдЗрд╕ рдХреЛрдб рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛:

 <launch> <!-- This node description you can take from usb_cam-test.launch --> <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" > <param name="video_device" value="/dev/video0" /> <param name="image_width" value="352" /> <param name="image_height" value="288" /> <param name="pixel_format" value="mjpeg" /> <param name="camera_frame_id" value="usb_cam" /> <param name="io_method" value="mmap"/> </node> <!-- This node will launch web video server --> <node name="web_video_server" pkg="web_video_server" type="web_video_server" \ /> </launch> 

29) рдкреИрдХреЗрдЬ рд▓реАрдЬрд┐рдП:

 $ cd .. $ catkin_make 

30) рдлрд┐рд░ рд╕реЗ рдорд╛рд╕реНрдЯрд░ рдкрд░ ROS рдХрд░реНрдиреЗрд▓ рдЪрд▓рд╛рдПрдВ:

 $ roscore 

31) рдФрд░ рдмрдирд╛рдИ рдЧрдИ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЪрд▓рд╛рдПрдВ:

 $ roslaunch vidsrv vidsrv.launch 

32) рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реЗрдм рд╡реАрдбрд┐рдпреЛ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ 8080 рд╣реИ

33) рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд░ рдореЗрдВ рдпреВрдЖрд░рдПрд▓ рдЦреЛрд▓реЗрдВ: {RPi_IP}: 8080

рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓рд┐рдВрдХ:

тЖТ рд╡реАрдбрд┐рдпреЛ рд╕рд░реНрд╡рд░ рдиреЛрдб
тЖТ USB рдХреИрдорд░рд╛ рдиреЛрдб
тЖТ rtt рдЫрд╡рд┐ рджрд░реНрд╢рдХ
тЖТ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреИрдорд░рд╛ рдореЙрдбреНрдпреВрд▓ рдиреЛрдб

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

рдпрд╣ рдП 4 рдЯреЗрдХ рдХреИрдорд░рд╛ рдХреЗ рд╕рд╛рде рдмреАрдЧрд▓рдмреЛрди рдмреНрд▓реВ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:



рдмреАрд▓реЗрдмреЛрди рдмреНрд▓реВ рдпреВрдПрд╕рдмреА рдХреИрдорд░рд╛ (рдорд╛рд╕реНрдЯрд░ ROS рдХреЗ рд╕рд╛рде рдПрдХ рд▓реИрдкрдЯреЙрдк рдкрд░ рдорд╛рдиреНрдпрддрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдкрд░ рдПрдХ рдЯреНрд░рд┐рдкрд▓ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВред

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


All Articles