
Panduan ini adalah tentang menghubungkan kamera USB ke Raspberry Pi atau BeagleBone Blue dan menggunakannya dengan ROS (Sistem Operasi Robot) - untuk membaca data dari kamera melalui ROS image_view dan bahkan streaming streaming video ke browser web!
Di akhir video ada demonstrasi di robot EduMip.
1) Sebagai bonus, kami akan membuat sistem ROS terdistribusi.
2) Aplikasi Roscore dan aplikasi untuk melihat gambar akan berfungsi pada PC (master) dan node kamera pada Raspberry Pi (slave).
3) Untuk mengkonfigurasi master dan slave, kita perlu memperbarui variabel lingkungan di kedua perangkat.
4) Pada wisaya: temukan alamat IP perangkat. Untuk ethernet, net_dev dapat berupa enpXXs0 atau ethX:
$ ifconfig {net_dev} ifconfig enp61s0   ifconfig 
5) Gunakan alamat IP sebagai nilai untuk variabel ROS_IP:
 $ export ROS_IP="10.42.0.1" 
6) Dan untuk ROS_MASTER_URI:
 $ export ROS_MASTER_URI="http://10.42.0.1:11311" 
7) Jika Anda ingin menggunakan nilai-nilai ini untuk sesi mendatang, Anda dapat menyimpan nilai dalam file .bashrc di direktori home Anda:
 $ echo 'export ROS_IP="10.42.0.1"' >> ~/.bashrc $ echo 'export ROS_MASTER_URI="http://10.42.0.1:11311"' >> ~/.bashrc 
8) Sambungkan ke Raspberry Pi via ssh:
 $ ssh {user}@{raspberry_ip} 
9) Untuk RPi, sebagai seorang budak, tambahkan alamat IP master untuk ROS_MASTER_URI
10) Dan alamat IP Raspberry Pi untuk 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) Sekarang saatnya menghubungkan kamera USB.
12) Periksa apakah kamera dikenali oleh sistem ::
 $ lsusb $ ls /dev | grep video* 
13) Instal simpul usb_cam ROS dengan dependensi yang diperlukan:
 $ sudo apt install ros-kinetic-usb-cam 
14) Tuan rumah usb_cam sudah memiliki file peluncuran uji:
 $ cat /opt/ros/kinetic/share/usb_cam/launch/usb_cam-test.launch 
15) Sebelum memulai file ini, mari kita jalankan kernel ROS pada master:
 $ roscore 
16) Dan sekarang jalankan node usb_cam pada slave:
 $ roslaunch usb_cam usb_cam-test.launch 
17) Sekarang kita bisa melihat topik yang dibuat. Kita bisa memeriksanya di master atau slave.
18) Pindahkan proses saat ini ke latar belakang menggunakan CTRL + Z dan jalankan perintah bg untuk terus berjalan di latar belakang. (pada versi Ubuntu tidak desktop penuh dan tanpa layar, cukup luncurkan terminal lain)
19) Untuk melihat topik di terminal:
 $ rostopic list 
20) ... atau dalam antarmuka grafis:
 $ rqt_graph 
21) Membaca data kamera menggunakan image_view:
 $ rosrun image_view image_view image:=/usb_cam/image_raw 

22) Atau menggunakan rqt_image_view
23) Bawa tugas latar belakang ke latar depan:
 $ fg 
24) Eksperimen terbaru hingga saat ini adalah streaming web
25) Menginstal server video web host ROS:
 $ sudo apt install ros-kinetic-web-video-server 
26) Untuk melakukan ini dengan benar, buat ruang kerja untuk catkin untuk file startup kustom kami:
 $ mkdir -p ~/rosvid_ws/src $ cd ~/rosvid_ws $ catkin_make $ source devel/setup.bash 
27) Kemudian buat paket ROS:
 $ cd src $ catkin_create_pkg vidsrv std_msgs rospy roscpp 
28) Buat file startup menggunakan nano, vim, dll .:
 $ mkdir -p vidsrv/launch $ nano vidsrv/launch/vidsrv.launch 
kirim 
kode dari siniPada Beaglebone Blue dengan kamera usb A4Tech, kode ini berfungsi untuk saya:
 <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) Kumpulkan paket:
 $ cd .. $ catkin_make 
30) Jalankan kernel ROS pada master lagi:
 $ roscore 
31) Dan jalankan file startup yang dibuat:
 $ roslaunch vidsrv vidsrv.launch 
32) Port server video web default adalah 8080
33) Buka URL di browser web: {RPi_IP}: 8080
Tautan dokumentasi:
→ 
Node server video→ 
simpul kamera USB→ 
penampil gambar rqt→ 
Modul Modul Kamera Raspberry PiKamera USB dapat digunakan hampir semua yang memiliki driver untuk linux, Anda juga dapat menggunakan tautan Modul Kamera Raspberry Pi yang serupa di atas.
Contoh cara kerjanya di BeagleBone Blue dengan kamera A4Tech:
Cari kartu rangkap tiga di video dari kamera BealeBone Blue USB (algoritma pengenalan berfungsi pada laptop dengan master ROS).
