
рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдПрдХ 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> <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> <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 рдХреЗ рд╕рд╛рде рдПрдХ рд▓реИрдкрдЯреЙрдк рдкрд░ рдорд╛рдиреНрдпрддрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдкрд░ рдПрдХ рдЯреНрд░рд┐рдкрд▓ рдХрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗрдВред
