Projects:2015s2-207 Tracking, Herding and Routing by Autonomous Smart Cars
Introduction
To aid with the exploration of unknown environments, a platform consisting of a computer base, a quadcopter camera and multiple Arduino robots all communicating through WiFi was designed. The initial requirement of the project, known as tracking, involves tracking a particular mobile target represented by one Arduino robot and initiating a specific formation around it using the remainder of the Arduino robots. The second requirement, known as herding, requires the tracking Arduino robots to maintain the formation around the target object as the target object moves. The final requirement, known as routing, involves the navigation through an unknown environment to find the shortest path out of a maze.
Project Hardware
Arduino Robots
The Arduino Robot, shown in Figure 1, was selected to be the hardware representing the required smart car. The decision was made based on the fact that the unit is readily available in the market for a decent price and will save us the time and effort of developing hardware with similar functionality, enabling us to focus on the scope of this project.
The main features of the Arduino Robot include:
- Ready to use movement and control systems
- Two boards, the motor board for movement control and the control board to read in data from devices such as sensors to provide movement instructions
- Fully programmable using the Arduino Integrated Development Environment (IDE)
- ATmega32u4 microprocessor, which has a reasonable amount of computational power and on-board memory
- Additional on board memory space in case more storage space is required
- Multiple extension slots to easily allow the connection of devices such as sensors, WiFi adapters, gyroscopes and many more that are developed specifically for the Arduino systems
- Technical support readily available through online resources and forums on the Arduino official website
Figure 1: The Arduino Robot
Arduino WiFi Shield
The Arduino WiFi Shield, shown in figures X and Y, was selected as the hardware used to establish the WiFi communication in the system. The primary reason for the selection is due to the ease of integration with the Arduino robot as it was designed specifically for the purpose of connecting the Arduino devices to the WiFi network and technical support is readily available if needed through the Arduino website.
The Arduino WiFi Shield allows an Arduino robot to connect to the internet using the 802.11b/g wireless specification which will allow transmission speeds up to 54 mbps. It supports both TCP and UDP transmission protocols however in this project, we will only use UDP due to it being a lot quicker than TCP and will result in much less latency.
Figure 2: Wifi Shield Front (Left) and Back (Right) View
Computer Base
The computer base was used as the central command unit of the smart cars. Its main function was to receive the input information from the camera via the communication system and process that as well as any other required information and transmit a set of instructions to the smart cars. The computer base was particularly important as the smart have very limited processing power so we intended to do all the processing on the computer and only send out the final results to the smart cars.
IP Camera
iPhone 6Plus camera was used as the IP Camera instead of the quadcopter due to environment restrictions.
Software Development
Tracking Algorithm
This is an algorithm used to calculate the minimum path for multi-robot. According to the calculation, 96 kinds (4 groups, 24kinds of possibilities in each group) will be considered and come out an minimum result for the summation of all the robots.
Path Planning Algorithm
As all robots do not move according to the programmed trajectory, a path planning algorithm was necessary to ensure that the robots moved along the desired trajectory. The path planning algorithm mainly used the input date from image processing. The algorithm took into account the position of the tracking robots and the target to determine the necessary adjustments to the speeds of each of the wheels to ensure correct robot movement.
Collision Avoidance Algorithm
Collision avoidance is vital for the success of any autonomous agent system. It was necessary to design an algorithm to prevent the robots from crashing into one another as well as limit the region of operation within a specified boundary. Similar to the path planning algorithm, the collision avoidance used the data acquired from image processing to determine the course of action to be taken by each of the robots.
Object Detection
The object detection algorithm required the use of the IP Cam to capture a video stream of the platform consisting of the Arduino robots. The video stream was then transmitted wirelessly to the computer base. MATLAB was then used to analyse the image data to extract the spatial coordinates, radius and direction of the robots.
Project Team
Team Members
- Nader Madi
- Peiling Xian
- Jianyang Sun
- Shunming Li
Project Supervisors
- Dr. Peng Shi
- Dr Cheng-Chew Lim
Technical Advisors
- Hongjun Yu
- Dongzhe Wang (Semester 2 2015)
- Zhongrui Hu (Semester 1 2016)