
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).
