Projects:2015s1-15 AI for a Trash Collecting Robot

From Projects
Revision as of 14:34, 23 August 2015 by A1601549 (talk | contribs) (Pickup and Drop/ Main Camera Sensor)
Jump to: navigation, search

Project Information

The purpose of this project proposal is to present a project plan for the objective of creating an AI for the Trash Collecting Robot project as well as to describe the proposed strategy to achieve the project goal. The goal of this project is to test and design the Street Engine that will it work in the real life. It is an experiment for testing Street Engine, which created by the University of Adelaide [1]. The aim of this project is to design and construct an agent-based AI using the newly founded Street Language. Moreover, the project team can combine some of the behaviour from different animals or insects to improve the AI.

Environment

The AI for the autonomous robot is to be designed, programmed and tested in a Virtual Reality Development Environment (VRDE) before being implemented and tested on a physical robot.

Virtual Robot Development Environment

The VRDE is where the robot’s AI performance will be tested. The VRDE will simulate real life environment so that the AI can be tested in virtual reality to analyze and evaluate its performance. The simulated environment can be modified to simulate different scenarios for different test purpose. The VRDE was created by the previous team using Unity3D game engine [3]. Unity3D is a game engine to design a 2D or 3D game. In this project, it will become the interface of virtual robot and an experiment platform of Street Engine. The justification of using Unity3D is that it can support two program language to run in one project, which are JavaScript and C#.

Unity-JavaStreet Communication Layer

The Communication layer is the nerve of the robot. It convert and pass through the signal between AI agent and VRDE. This is an important system to success the project. The communication layer receive and convert all the feedback from unity in JSON formal, then it pass the condition token to AgentStreet. Also, it will receive the output token from AgentStreet and convert it into JSON formal, then send it into VRDE. JSON is a language-independent date format to use for data transfer in the network. The benefit of using JSON to transfer the data between Unity and Communication layer is that the JSON data can apply with many programming language.

JavaStreet Design structure.jpeg

AI Agent (JavaStreet)

The AI agent is the brain of the robot. It manage all the inputs and outputs as well as make decisions and execute tasks for the robot which makes it the very definition of an autonomous trash collecting robot [2]. The agent will be programmed using Street Language and implemented using JavaStreet. Street Language is a new programming language for the processer, and the operation of processer is running in parallel. The basic idea of street language is that it will take all of the condition in working memory and then find the matched condition requirement and vary the working memory, such as ‘if’ loop.

As there are currently no test available for implementation, a project was set up to create a basic performance test bench for the computer. The project was chosen to be an automated trash collecting robot as this would test the autonomy and cognitive capability of the computer to make decisions as well as handle input and output data.

Street.jpg

Outcomes

JavaStreet Design Structure

The JavaStreet Design Structure is a concept structure of Street Language and Communication layer, and the design base on the state machine given by Braden [18]. It will include all the subsystem and the relationship between those subsystems in AgentStreet.

State transition.jpg

Random Movement

The Random movement is the basic design of the robot movement and use for testing with other design, such as Bumper Sensor, Pickup and Drop etc. This function will be replaced by foraging behavior in the future.

Random movement design structure.jpg

Bumper function

The Bumper function can able to protect the robot and avoid the collision. This idea based on the behavior of bat and cat [6, 7]. Once the robot was colliding the wall or obstacle, this action state should be able to avoid the collision again. In the version 3 of bumper function, the robot only rotate 45 degree on the left hand side and back to the forward function.

The robot may bump the wall at the same position in the quadrilateral place, and it may have a forever loop in the robot’s track by applying forward & bumper sensor only. The ideal diagram of that issue shown as below.

Forever loop robot's track.jpg Bumping again.jpg

Pickup and Drop/ Main Camera Sensor

Pickup and Drop-trash are basic set up function for the robot. This function will handle the action of pick-up and drop-trash in AgentStreet.

Main Camera sensor v1 design structure.jpg

Basic Homing Vector

The idea of homing vector based on the homing behavior of ant and Monarch butterflies. The homing behavior will separate into two part, which are ‘basic homing’ and ‘homing vector’, in order to it will be design the structure easily in street language.

Basic homing.jpg

Team

Students

  • Eik Xiang Yu
  • Keng Nam Leung

Supervisors

  • Dr Braden Phillips
  • Mr Mike Liebelt

Reference