Halo semuanya!
Hari ini saya ingin memberi tahu Anda tentang perangkat keras baru kami yang didasarkan pada Modul Komputasi Raspberry Pi, yang dirancang untuk mempelajari visi komputer dan menginstal pada robot dan drone. Bahkan, ini adalah kamera stereo "pintar" - ini mendukung bekerja dengan dua kamera pada saat yang sama, memiliki raspberry nyata sebagai "hati" dan, yang paling penting, bekerja dengan versi stok Raspbian.
Inilah yang terlihat seperti solusi rakitan, dengan dua kamera terpasang dan modul Pi Compute.

Perangkat ini bekerja dengan versi stok Raspbian. Anda hanya perlu menyalin file dtblob.bin kami untuk mengaktifkan dukungan kamera ganda.
Ini berarti Anda dapat menggunakan raspividill, raspistill, dan utilitas lain yang biasa digunakan untuk bekerja dengan gambar dan video.
Untuk referensi, dukungan untuk mode stereo sudah muncul di Raspbian sudah di 2014, bersamaan dengan rilis versi pertama dari Raspberry Pi Compute. Anda dapat melihat riwayat pengembangan dukungan stereo
di forum Raspberry.Sebelum menjelaskan rincian teknis, izinkan saya menunjukkan kepada Anda beberapa contoh dunia nyata tentang cara kerja perangkat.
1. Pengambilan Gambar
Kode:
raspistill -3d sbs -w 1280 -h 480 -o 1.jpg
dan Anda mendapatkan yang berikut ini:

Anda dapat mengunduh gambar yang diambil asli di
sini .
2. Pengambilan video
Kode:
raspivid -3d sbs -w 1280 -h 480 -o 1.h264
dan Anda mendapatkan yang berikut ini:

Anda dapat mengunduh file video asli (dikonversi ke mp4)
dari tautan ini .
3. Menggunakan Python dan OpenCV untuk membangun peta mendalam

Dalam hal ini, saya menggunakan kode yang sedikit dimodifikasi dari proyek 3Dberry sebelumnya (
https://github.com/realizator/3dberry-turorial ).
Untuk mendapatkan gambar dan video ini, kami menggunakan sepasang kamera ini:

Untuk pemasangan di drone, kita sering menggunakan sudut lebar (160 derajat), ini adalah:

Sekarang sedikit tentang besi itu sendiri
Rincian teknis
Tampak depan:

Tampilan atas:
Fitur Utama:Dimensi: 90x40 mm
Kamera: 2 x CSI 15 jalur kabel
GPIO: 40 GPIO Raspberry PI klasik
USB: 2 x USB tipe A, 1 USB pada sebuah pin
Ethernet: RJ45
Memori: Micro SD (untuk CM3 Lite), untuk sisanya NAND (flash)
Monitor: HDMI out
Catu Daya: 5V DC
Raspberry yang didukung: Raspberry Pi Compute Module 3, Raspberry Pi CM 3 Lite, Raspberry Pi CM 1
Jenis kamera yang didukung: Kamera Raspberry Pi OV5647, Kamera Raspberry Pi Sony IMX 219, HDMI In (mode tunggal)
Untuk firmware NAND: Konektor MicroUSB
Sakelar daya: Ya, ya, itu saja. Tidak ada lagi plug-in MicroUSB untuk menyalakan kembali daya!
Sedikit sejarah
Secara umum, ide itu sendiri muncul kembali pada tahun 2015. Versi pertama lahir pada akhir 2015. Beberapa orang tahu bahwa tim kami memiliki "mode" pada kendali jarak jauh dari berbagai alat mekanik, jadi pada rilis pertama dipasang chip tambahan, yang memberi kami 16 output PWM - untuk kemudi, motor, dan hal-hal berguna lainnya.

Pada saat itu, hanya ada versi pertama dari modul Compute di pasaran, di papan yang merupakan prosesor lama dari raspberry pertama. Sepotong besi melakukan pekerjaan yang bagus untuk menangkap, mengompresi, dan streaming video, tetapi pada akhirnya kami berlari ke prosesor. Sebagai contoh, itu sudah tidak cukup untuk stream H264 ke pilot dan stream RTMP ke server pada saat yang sama. Dan untuk pembuat robot, keinginan utama adalah untuk membangun peta ruang angkasa menggunakan peta kedalaman dan SLAM - di sini prosesornya benar-benar kurang.

Di sini Anda memiliki versi Modul Hitung 3 yang keluar. Mereka langsung "melompat" dari versi pertama ke yang ketiga, menempatkan prosesor dari Raspberry ketiga. Sekarang kekuatannya sudah cukup untuk menghitung sesuatu dengan cepat.
Namun, ternyata generasi tersebut tampaknya kompatibel, tetapi tampaknya mereka tidak terlalu kompatibel. Kenyataan bahwa Modul Hitung 3 adalah satu milimeter lebih luas tidak mengganggu kami. Tetapi kebutuhan nutrisi telah berubah secara serius.
Selain itu, kami telah mengumpulkan komentar tentang hasil bekerja dengan versi pertama, dan kami memutuskan untuk merilis yang baru, di mana kami membuat semua perubahan yang terakumulasi.
Apa yang diperbaiki pada generasi kedua
Dukungan tambahan untuk Modul Hitung 3Kami memiliki skema daya yang dapat dialihkan, jadi jika Anda mau, Anda dapat bekerja dengan raspberry pertama. Pilihan di sini sederhana: jika Anda hanya perlu menyiarkan video, raspberry pertama sudah cukup sempurna. Sebagai bonus, ia hadir dengan konsumsi daya hampir tiga kali lebih sedikit dan pembuangan panas. Dan Anda perlu menghitung sesuatu yang lebih serius (beberapa video atau visi komputer) - letakkan yang ketiga.
Modul yang digunakan "chip dari papan"Pada versi pertama, tipe konektor SoDIMM di papan dicampurkan, sebagai akibatnya, modul komputer bangun dengan chip "to mother". Pada Compute Module 1, ini tidak menimbulkan masalah - persen sedikit memanas, dan memiliki cukup bottleneck di antara papan untuk pendinginan normal. Dengan sepertiga, trik seperti itu tidak akan terguling, jadi kami "membalikkan" konektor, yang mengharuskan kabel kembali seluruh papan dari awal.
Dukungan microSD asliModul komputer pertama secara default memiliki FLASH bawaan di papan dan tidak dapat bekerja dengan microsd. Kami mencoba menambahkan MicroSD di sana sebagai drive kedua, tetapi kami mengalami kesulitan besar untuk mendukungnya. Komunikasi dengan pekerja kernel di forum raspberry menunjukkan bahwa masalahnya tidak mudah (saat memuat, modul memilih secara acak NAND atau MicroSD untuk boot). Akibatnya, pada revisi saat ini kami membuat kabel seperti pada papan referensi raspberry. Jika Hitung Modul
Lite - tanpa NAND bawaan - kami bekerja dengan microsd seperti pada raspberry biasa. Jika versinya bukan Lite atau modul pertama, microsd tidak tersedia.
Pindahkan konektor kamera ke atas dan berjarak 65 mmPada versi pertama, konektor diarahkan sepanjang bidang papan. Agak, tetapi setelah banyak instalasi dalam kasus ini, beberapa masalah menjadi jelas.
- Lingkaran kamera menjulur keluar dari konektor, yang disarankan untuk tidak menekuk (terutama bagian yang diperkuat biru). Ini dengan bodohnya mengambil ruang yang tidak perlu dalam case dan mencegah instalasi.
- Konektornya sangat dekat - ini mencegah bekerja dengan kabel.
- Kamera-kamera dalam kasing biasanya berdiri di atas dasar stereo 65 mm, dan kabel-papan pada papan ada di dekatnya. Ternyata setiap loop harus ditekuk secara tidak wajar - istirahat, air mata, muncul dari konektor.
Menghapus chip dan 16 PWM tambahanSetelah menganalisis banyak proyek terbaru, kami menyadari bahwa fitur ini tidak relevan. Paling sering, perangkat lunak Raspberry PWM sudah cukup.
Sakelar daya ditambahkanMereka yang setidaknya bekerja sedikit dengan raspberry mengerti tentang apa itu :-)
Menambahkan USB ketiga pada pin di sampingDalam proyek raspberry kami, kami sering membutuhkan dongle USB. Jika mereka tersangkut di konektor di papan, kami memiliki modul yang menonjol keluar. Mencoba menggunakan kabel ekstensi USB memperburuk masalah. Hanya ada satu opsi - menyolder kabel langsung ke raspberry. Pin samping yang kami tambahkan memungkinkan kami membuat kabel ekstensi sederhana dan menempatkan dongle USB (biasanya WiFi atau 4G) langsung di sepanjang papan, dan seluruh ekonomi ini sangat cocok dalam casing yang ringkas.
Berikut ini adalah kisah yang ingin saya sampaikan kepada Anda hari ini. Terima kasih atas perhatian Anda dan siap menjawab pertanyaan.