Membangun Tank Lego Otonom Biaya Rendah dengan NVIDIA Jetson Nano & Isaac SDK
Membangun Tank Lego Otonom Biaya Rendah dengan NVIDIA Jetson Nano & Isaac SDK
Dalam panduan ini saya menunjukkan cara mengubah kit LEGO EV3 standar menjadi robot berjejak otonom penuh, yang diberi daya oleh NVIDIA Jetson Nano, Isaac SDK, YDLIDAR‑X4 LiDAR, dan kamera visi Pixy2. Hasilnya adalah alternatif hemat biaya untuk desain referensi Carter dan Kaya, namun tetap mempertahankan semua kemampuan persepsi dan perencanaan canggih dari stack robotika NVIDIA.
Lompat ke Bagian 8 atau Bagian 10 untuk demo navigasi otonom lengkap.
Proyek ini terdiri dari komponen berikut:
NVIDIA Jetson Nano dev board – menjalankan Isaac Robot Engine
EV3 brick – mengontrol motor (termasuk dalam EV3 31313 Robot Kit)
Basis berjejak – dibangun dari bagian LEGO Technic dan dua motor besar (semua disediakan dalam EV3 31313 Robot Kit)
YDLIDAR X4 LiDAR
Pixy2 kamera untuk visi
Mengapa Isaac SDK dan bukan ROS?
Ada banyak tutorial ROS, tetapi hanya sedikit panduan resmi Isaac SDK.
Isaac SDK dibuat khusus untuk hardware Jetson, memberikan performa terbaik pada Nano.
Semua algoritma inti—dari persepsi hingga perencanaan—dipercepat GPU, menjadikan Nano jauh lebih mampu daripada Raspberry Pi 4.
Renderer Unity 3D IsaacSim menyediakan simulasi fotorealistik yang mempersempit kesenjangan kenyataan.
Mengapa bagian LEGO?
Stok bagian yang luas tersedia.
Servo berkualitas tinggi dan konstruksi kokoh.
Tidak perlu solder; sistem sepenuhnya modular.
Casing cetak 3D opsional untuk Jetson Nano (lihat repo PELA‑blocks).
Memilih jalur ini memperkenalkan beberapa tantangan:
Hardware LEGO tidak didukung natively oleh Isaac SDK; hanya referensi Carter dan Kaya yang ada.
Isaac SDK mendukung set komponen hardware yang terbatas.
Kompilasi lintas diperlukan untuk target x86‑64, arm64, dan armv5tejl.
Karena Ubuntu 18.04 (host dan Jetson) menggunakan GLIBC 2.28 sementara ev3dev menggunakan GLIBC 2.24, kita harus kompilasi dengan linking dinamis kecuali untuk library matematika. Sesuaikan file jetson-ev3/toolchain/CROSSTOOL sesuai, atau gunakan image Docker Debian 9.
Subgraph dapat digunakan kembali; stack navigasi dibagikan di semua varian robot.
Bagian 5: Menjalankan Aplikasi Isaac pada EV3
Driver EV3 mengimplementasikan API yang sama dengan basis Segway RMP, memungkinkan penggunaan ulang langsung aplikasi Isaac yang ada seperti pengontrol joystick, distributed GMapping, dan stack navigasi penuh.
Bagian 6: Kalibrasi Odometri
Odometri yang akurat sangat penting untuk operasi otonom. Ev3ControlServer mengekspos dua panggilan RPC:
command(Control) – mengirim kecepatan linier dan sudut.
state() – mengembalikan kecepatan linier dan sudut saat ini.
Menggunakan radius roda dan lebar jejak, hitung kecepatan linier sebagai:
if left == right: v = left elif left == -right: v = 0 else: v = (left + right) / 2
Kecepatan sudut diturunkan dari diferensial kecepatan roda dibagi lebar jejak.
Bagian 7: Navigasi Otonom Dikontrol Suara
Subgraph deteksi suara mendengarkan mikrofon dan memancarkan voice_command_id ketika salah satu kata kunci yang dilatih terdeteksi. Saya melatih RNN pada tiga kata—“jetson”, “left”, dan “right”—menggunakan Isaac Speech Toolkit. Model yang dihasilkan dapat diunduh dari repositori proyek.
Saat perintah diterima, GoalGenerator menerbitkan tujuan ke global planner. Misalnya, untuk memutar robot 90° ke kiri:
auto proto = rx_detected_command().getProto(); int id = proto.getCommandId(); auto goal_proto = tx_goal().initProto(); goal_proto.setStopRobot(true); goal_proto.setTolerance(0.1); goal_proto.setGoalFrame('robot'); ToProto(Pose2d::Rotation(90), goal_proto.initGoal()); tx_goal().publish();
Dalam praktiknya, sistem bekerja dengan andal dalam mode daya 10 W. Pada 5 W, latensi inferensi (≈30 ms) terlalu tinggi untuk operasi yang halus.
Bagian 8: Pemetaan dengan Distributed GMapping
Pemetaan dilakukan pada host PC sementara EV3 menyediakan data LiDAR. Deploy aplikasi distributed GMapping pada Jetson:
./engine/build/deploy.sh --remote_user andrei -p //apps/ev3:gmapping_distributed_ev3-pkg -d jetpack43 -h 192.168.0.218
Pada host jalankan:
bazel run apps/ev3:gmapping_distributed_host
Pastikan file JSON host menunjuk ke IP Jetson yang benar:
Setelah beberapa meni eksplorasi, grid ocupansi resolusi tinggi dihasilkan.
Kesimpulan
Dengan investasi yang seadanya dalam bagian LEGO Technic, YDLIDAR, dan kamera Pixy2, Anda dapat membangun robot berjejak otonom penuh yang memanfaatkan kekuatan penuh dari Isaac SDK NVIDIA. Sistem mendukung perintah suara, pemetaan berbasis LiDAR, dan percepi dipercepat GPU, menjadikannya platform serbaguna untuk penelitian, pendidikan, dan proyek hobi.
Semua kode, file konfigurasi, dan model yang dilatih tersedia di repositori proyek.