This project is made for the Digilent Hardware Design Contest Europe Region 2016 and it is a begginging version to our project.
This instructable is designed for those who have little experience and want to build a robot with Zynq Board (ZYBO) witch contains an embedded Linux operating system. This robot will be able to bring an object from any location to another. This task needs to solve problems such as odometry, localisation, mapping, continuous communication with the user(s) and detect and handle unplanned barriers.
We use a lot of sensors such as ultrasonic range sensors, compass, RFID reader which we have built onto a robot platform what includes other sensors as well (Distance measurement, front bumpers, etc).
In the OS we will use the peripherals of the ARM processor and we will define our unique hardware int the FPGA part. In the robot controller software we include all the driver for the sensors and actuators, and built our own artificial intelligence for determine the shortest route on the map.
We made a PC application what creates the connection between the robot and the user(s). With this application we can build our own map as an image, and upload it to the robot. The app transforms this image into a inside format. The robot continuously send its position and some other relevant information back to the PC. This user interface also allows you to remotely control the robot.
Step 1: What You Need:
- Linux OS
- Xilinx Vivado
- Xilinx SDK
- Digilent's ZYBO
- Linux-Digilent-Dev master-next branch
- u-boot-Digilent-Dev master-next branch
- A robot platform (we use Roomba iRobot create open interface)
- 6 piece of ultrasonic range finder
- 3 axis digital compass
- Wifi module
- RFID reader
- An android mobile phone for video stream (optional)
- Bluetooth module (optional)
- DC-DC converter
- A lot of time
Step 2: Setting Up the SD Card for the Zybo
We will need an SD card with at least 2 gigs free space. Then we have to create two partitions on it. The first is a FAT32 file system, the size is about 100Mb. Set the label of this slice to "BOOT". The second partition is an EXT4 filesystem, and you can use the remaining space on the SD card to create it.
- SD card:
- 4Mb unallocated area (optional)
- 100Mb FAT32
- Remaining space EXT4
In the picture you can see the SD card with the partitions and the files we will have to create to boot linux from the zybo.
You can download the files for the 100Mb partition from here:
The linaro filesystem can be downloaded from here:
Probably the latest version is ok, you just have to sync the filesystem to the EXT4 partition.
You can find a proper tutorial at the following link if you want to build your own project:
Step 3: Set Up the User Interface
The user interface (UI) has written in C#, and including all what you need. You can download the UI from the project's website:
First download the User Interface and unzip it. If you have active connection with the robot's wifi, run the exe file in
GUI.zip\GUI\GUI\bin\Debug\GUI.exe . If you dont have, make one. You need a router, and the robot's wifi module. Condigure a static ip with 192.168.0.111 ip, this will the robot's ip. Now you can run the UI.
Step 4: Set Up the Robots Software
To set up the robot software, which include the artifact intelligance, the sensors drivers etc. download the code
from our website: http://shrek.unideb.hu/~erdosa/DigilentContest201...
Put the unzipped sources via ssh to the robot. compile and run the .make file. Thats all you need to do.