Skip to content

An UGV-system using SoC-FPGA developed for FPGA design competition held on ICFPT2019

License

Notifications You must be signed in to change notification settings

rits-drsl/ZybotR2-96-fpt19

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZybotR2-96-fpt19

An UGV-system using SoC-FPGA developed for FPGA design competition held on ICFPT2019.

Our team won first place! 🎉 🎉 🎉

ZybotR2-96

Features

  • Localization and Motion Planning are implemented in the UGV-system

    • In the Localization process, observations such as Wheel Odometry are fusioned by Particle Filter
    • In the Motion Planning process, Informed-RRT*, Pure Pursuit, and PID control are used debug
  • Efficient data flow that image data captured by image sensor are processed by FPGA before transferring to DRAM

  • Peripheral devices (e.g. DC motor) can be handled transparently from Zynq PS by a system that synchronize registers between multiple FPGAs with UART

architecture

  • The UGV-system is divided into five layers, and it is descending order of abstraction

system_layer

Main Parts of The Vehicle

Repository Structure

A part of this repository structure is shown below:

ZybotR2-96-fpt19
├── assets
│   ├── cad
│   ├── script
│   └── tools
├── cmod-a7
│   └── vivado
│       ├── prj
│       └── src
└── ultra96
    ├── BOOT_FS
    ├── ROOT_FS
    │   ├── app
    │   │   ├── fad
    │   │   └── other
    │   ├── driver
    │   │   ├── cp210x
    │   │   ├── usbserial
    │   │   └── v4l2
    │   ├── dts
    │   ├── firmware
    │   ├── lib
    │   │   ├── control
    │   │   ├── improc
    │   │   ├── optor
    │   │   ├── planner
    │   │   └── zynqpl
    │   └── package
    └── vivado
        ├── ip
        ├── prj
        └── src
  • assets/
    • 3DCAD data for the vehicle parts, scripts which install libraries such as OpenCV, and tools are stored
  • cmod/vivado/
    • RTL files and scripts which create project are stored
    • A Registers synchronization module, a motor controller, and an OLED controller are implemented
  • ultra96/BOOT_FS/
    • Binary files for booting Linux on Ultra96 are stored
    • These files are prepared with reference to ikwzm/ZynqMP-FPGA-Linux
  • ultra96/ROOT_FS/app/
    • An application of FAD(FPGA Autonomous Driving), test applications of devices, and so on are stored
  • ultra96/ROOT_FS/lib/
  • ultra96/ROOT_FS/driver/
    • Device drivers are stored
    • v4l2 which is Linux V4L2 driver which deals with the Xilinx VDMA IP is prepared with reference to fixstars/ultra96_design
  • ultra96/ROOT_FS/dts/
    • DTS(Device Tree Source) files are stored
    • We reflect some of device information to kernel using Device Tree Overlay which is feature of Linux kernel
  • ultra96/ROOT_FS/firmware/
    • A bitstream file and firmware of wireless LAN modules are stored
    • A bitstream file is loaded with FPGA Region which is feature of Linux kernel
  • ultra96/ROOT_FS/package/
    • Debian packages of linux-headers and linux-image are stored
    • There are also prepared with reference to ikwzm/ZynqMP-FPGA-Linux
  • ultra96/vivado/

Future Work

  • Offload computation heavy processes such as Informed-RRT*, Particle Filter, path tracking algorithms, and calculating Visual Odometry
  • Implement more accurate image recognition algorithms

Links

Authors

References

Y. Kudo, A. Takada, Y. Ishida, and T. Izumi, "An SoC-FPGA-based Micro UGV with Localization and Motion Planning," in Proceedings of 2019 International Conference on Field-Programmable Technology (ICFPT), 2019, pp. 469-472.

License

MIT