Vous êtes sur la page 1sur 48

GROUP ASSIGNMENT

TECHNOLOGY PARK MALAYSIA


AI METHODS
CT002-3-2-AIM
UC2F1508SE (T2)
Group Members

Tan Bee Lan

TP032074

Chin Jess Nny

TP032137

Leong Sen Fong

TP031954

Lecturers Name

Ms. Sarerusaenye Binti Ismail

Hand In Date

21st December 2015

AI Methods [CT002-3-2-AIM]

Table of Contents
1.0 Design............................................................................................................. 3
1.1. Introduction................................................................................................. 3
1.2. Specification of the simulated environment and the robot..........................4
1.3. Method in detecting obstacle and size of robot...........................................7
1.4. Robot simulation.......................................................................................... 8
1.5. Introduction of team work and Gantt chart...............................................11
1.6. Proposed Scenario..................................................................................... 12
1.7. Sample of existing robot............................................................................13
1.8. Problems statements & objectives............................................................15
1.9. Project development purposes..................................................................16
2.0 Research........................................................................................................ 17
2.1. Cleaning Robot and the Machine Learning................................................17
2.2. Storyboard................................................................................................. 22
2.3. Algorithm................................................................................................... 24
3.0 Module Integration......................................................................................... 25
3.1. Robot Component...................................................................................... 25
3.2. Testing....................................................................................................... 32
4.0 Conclusion..................................................................................................... 33
4.1. Overall of the project................................................................................. 33
4.2. Achieving Learning Outcomes...................................................................34
4.3. Constraints and Limitations.......................................................................35
4.4. Future Enhancements................................................................................ 37
5.0 Proposal......................................................................................................... 38
5.1. Latest Proposal.......................................................................................... 38
5.2. Old Proposal.............................................................................................. 42
6.0 References..................................................................................................... 46
7.0 Task Allocation............................................................................................... 48

Page 2 of 48

AI Methods [CT002-3-2-AIM]

1.0 Design
1.1. Introduction
In this new era, many people are trying to catch up with the latest technologies so
that they would not leave behind and always get updated, even the elder generations.
Technologies are not only applied in IT, science, medical or business scope, it also can
apply in sports zone.
As we all know, Badminton is a very legendary and well-known sport in
Malaysia, which was brought up by Datuk Lee Chong Wei. Hence, they need an
abundant supply of manpower to support the whole event. Examples of the tasks are
collecting shuttlecocks, distributing the waters, cleaning the courts, time keeper, and
so on.
In order to reduce the workloads of the workers, the project team has come up
with an idea, in which they will be designing and developing a Cleaning Robot. This
robot is able to detect and avoid the obstacles, and able to clear objects or trashes in
the court.

Overview of The Proposed Robot


Basically, it helps human to collect the items such as shuttlecocks that have
been left in the badminton court after the players training session and also
clean the dust and sweats on the court. It will collect the items from the bottom
and they will then be stored inside the robot. Apart from that, it has a LED
light which will be designed at the top of the robot to indicate that the robot is
functioning. Furthermore, it has Distance Sensors for detecting distances and
avoiding obstacles, and also Camera for capturing images. Thus, the people
will not have to move their exhausted body to pick up the shuttlecocks or
rubbish one by one. However, it is specifically designed for cleaning the
badminton court.

Page 3 of 48

AI Methods [CT002-3-2-AIM]

1.2. Specification of the simulated environment and the


robot
The Cleaning Robot in this project is created by using Webots simulator. As a
Cleaning Robot that is specifically designed for badminton sports, the environment of
the project is constructed as similar as a badminton court with the possible objects
such as badminton racquet, shuttlecocks, badminton net and poles, walls, and a box
that keeps the sports items. There are several steps to create the court, walls, poles,
net, and obstacles.

Court
i.
A Solid node is added.
ii.
Open this Solid node.
iii.
Children field is selected and a Transform node is created under the children.
iv. Open this Transform node and add a Shape node under the Children field by using
v.

the Add New and New node buttons.


Select and insert a Plane in its geometry field. The size will be defined. A URL in
the Texture Image node will be determined.

Walls
i.
A Solid node is added.
ii.
Open this Solid node.
iii.
Children field is selected and a Shape node is created under the children.
iv. Open this Shape node and insert an Extrusion under the geometry field by using
v.

the Add New and New node buttons.


The crossSection and spine under the geometry field will be defined. For

vi.

Appearance, Diffused Color in the Material node is specified.


In order to prevent the robot passing through the walls, the boundingObject field
of the walls is created by inserting a new Shape node into a Transform node under

vii.
viii.

the Children field in boudingObject field.


Select and add Box in the geometry field. Set the size of the Box.
Then, for the boundingObject of the other three walls, another Transform node is

ix.

added.
Open this Transform node, under Children filed, the previous Shape node in (vi) is

selected and used.


Poles
i.
After the court has inserted successfully, add another Solid node under the
ii.
iii.

Children field in the first Solid node.


Open this new Solid node.
Children field is selected and a Shape node is created under the children.

Page 4 of 48

AI Methods [CT002-3-2-AIM]

iv.

Open this Shape node and insert a Cylinder under the geometry field by using the
Add New and New node buttons. The size will be defined and boundingObject of

v.

the pole is created.


Same procedures above are repeated to create the second pole.

Net
i.
A Solid node is added.
ii.
Open this Solid node.
iii.
Children field is selected and a Shape node is created under the children.
iv. Open this Shape node and insert a Box under the geometry field by using the Add
v.
vi.

New and New node buttons.


The size will be defined. A URL in the Texture Image node will be determined.
In order to prevent the robot passing through the net, the robots height has been
designed to be lower than the net. Also, the boundingObject field of the net is
created. The shape of the bounding object is added in the geometry field and the
size of the bounding object is the same as the walls.

Obstacle
i.
A Solid node is added.
ii.
Open this Solid node.
iii.
Children field is selected and a Shape node is created under the children.
iv. Open this Shape node and insert a Box under the geometry field by using the Add
v.

New and New node buttons.


The size and color will be defined. A URL in the Texture Image node or Diffused

vi.

Color in the Material node will be set.


In order to prevent the robot passing through the obstacles, the boundingObject
field of the obstacles is created by referring to the size of the obstacles shape
defined.

The robots body is designed based on the idea of the classic vacuum cleaner with two
wheels. This Cleaning Robot has cameras, distance sensors, and a LED light.

Camera:
The camera is used to videotape and to record the environment that occurs around
the Cleaning Robot.

Distance sensor:
The distance sensor is used to measure the distance between the robots body and
the obstacles so as to avoid the robot to be collided with the walls or any
obstacles.

LED light:

Page 5 of 48

AI Methods [CT002-3-2-AIM]

The LED light is used to indicate that the robot is turning on and working.

Page 6 of 48

AI Methods [CT002-3-2-AIM]

1.3. Method in detecting obstacle and size of robot


1.3.1

Method in detecting obstacles


The distance sensor is being placed around the upper part of the robots body to
ensure the robot has no blind spots on detecting the obstacles. Besides, the camera
is used to detect the obstacles and capturing the images of the environment. The
Cleaning Robot is a wheel-based robot with two thick wheels to allow the robot to
move stably. It is able to collect items which detected by the camera under the
robots body. Besides, the height of the robot is set to be lower than the badminton
net so that the robot will not get stuck by the net.

1.3.2

Process in avoiding obstacles


The robot is moving randomly within the badminton court. When the robot detects
the obstacles which have sensed by the infrared distance sensors, the robot will
move slightly backwards and turn to another direction. Then, it will continue
collecting items again.

1.3.3

Size of robot
The Cleaning Robot is made up of different types of shapes. The characteristic of
the Cleaning Robot is stated below.
Top Camera

height 0.03, radius 0.01

Lower Middle Camera

height 0.03, radius 0.007

Bottom Camera

height 0.03, radius 0.007

Body

height 0.08, radius 0.045

Wheels (Left & Right)

height 0.03, radius 0.025

Distance Sensors

height 0.004, radius 0.008

LED light

radius 0.01

Page 7 of 48

AI Methods [CT002-3-2-AIM]

1.4. Robot simulation


In this project, Webots software is used to create the Cleaning Robot. As a student, the
developers have implemented the Off-Line Programming instead of On-Line
Programming. Simulation and robot programming are mentioned below.

1.4.1

Overview of Simulation
In robotics field, simulation is defined as a process that is used to create and
develop a computer-generated model of a robot which comprising its design and the
programming code (Calin, 2014). Besides, simulation appears to be an essential step
in developing a robot. This is due to the fact that simulation acts as a tool which
enables the developers to simulate the real-world process by testing the virtual
model in a specific environment or software. In addition to that, the end-users or
clients are able to understand how a system works easily through a prototype that is
using simulation process. Aquino mentioned that Simulation gives customers
unfamiliar with robotics a better idea of what robots can do by literally showing
them the process. (Brumson, 2009) Examples of software that are using simulation
are Webots, RoboLogix, RobotExpert, and Workspace. The pro of simulation is that
it does not require physical model. The virtual model can adapt large changes. Thus,
the developers can modify the design or code at ease without additional costs and
this will definitely save their time and money during the development process
(Calin, 2014).

1.4.2

Types of Simulation
Typically, there are two types of simulation: Discrete Event Simulation and
Continuous System Simulation (Jambak, Haron, Ibrahim & Abd Hamid, 2010). First
of all, Mike & Albrecht (2010) defined Discrete Event Simulation (DES) as a
process of keeping track and manipulating the behavior of a real-system model that
involves mathematical and logical concept by dividing the continuous process into
several individual parts to make the analysis easier. The state variables may change
promptly at a specific point in time when a certain event occurs. This technique is

Page 8 of 48

AI Methods [CT002-3-2-AIM]

suitable to be used only when the system is operating in a sequential approach


(zgn & Barlas, 2009). In contrast, Continuous System Simulation refers to
equational model of a real-system that does not depict the specific time like DES
(Mike & Albrecht, 2010). The state variables in a continuous approach are changing
constantly with advancing time (Fayek, 2002).

1.4.3

Robot Programming
Mittal & Nagrath (2003) stated that robot programming is referred as the
teaching cycle, where the robot is required to be taught on what and how it should
perform, by human (usually the programmers). This is because robots do not have
any knowledge or intelligence. They cannot learn things by themselves unless the
programmers enter the commands into the robot manipulator. Furthermore, a robot
programming language is represented as an interaction tool or an interface between
the programmers and the robot manipulator to communicate with each other. There
are two ways to executing robot programming, which are On-Line Programming
and Off-Line Programming.
-

On-Line Programming
Principally, the robot manipulator in on-line programming will execute the
commands immediately once it has received the instructions given by the
programmers (Mittal & Nagrath, 2003). Through this technique, the
programmers are able to observe the behavior of the robot and verify whether it
has carried out the desired execution and met the expected performance.
Moreover, the advantage of this technique is that the programmers can acquire
the accurate measurements of the output due to the fact that the robot is
programmed before the experiment is being carried out (Jambak, Haron,
Ibrahim & Abd Hamid, 2010). However, it consumes high costs of production as
the robot is in a physical form (real-system). Nowadays, most of the industries
are using a teach pendant to control the functions or actions of a robot. Figure 1
and 2 shows the example of KUKA, which is an arc welding robot that is using
this teach pendant (Robotwelding, n.d.).

Page 9 of 48
Figure 1: KUKA Robot

Figure 2: Teach Pendant

AI Methods [CT002-3-2-AIM]

Off-Line Programming
On the other hand, off-line programming does not access to the robot
manipulator and does not
require
any machines.
It is being tested in a
Figure
3: On-Line
Programming
computerized graphical environment that simulates the outcome of what and
how a system behaves (Mittal & Nagrath, 2003). As can be seen in Figure 4,
the robot is programmed and developed by using a simulation software to
debug the programming code. Because of that, it has no loss of production,
which appears to be the major advantage of off-line programming (Jambak,
Haron, Ibrahim & Abd Hamid, 2010). The robot can run continuously in the
simulated environment. Examples of programming language that can be
used in off-line programming are Java and C/C++. This technique is not only
applied in industries, but also brought over to academic aspect, which often
used by the engineering students.

Figure 4: Off-Line Programming


Page 10 of 48

AI Methods [CT002-3-2-AIM]

1.5. Introduction of team work and Gantt chart


1.5.1

Team Work
This project involved 3 group members, and the purpose of this project is to build a
prototype of a badminton shuttlecock collector robot on schedule. The roles of the
group members are listed as below:
1. Tan Bee Lan
2. Chin Jess Nny
3. Leong Sen Fong

1.5.2

As a programmer
As a robot designer
As an environment designer

Gantt Chart

Figure 5: Gantt Chart

Page 11 of 48

AI Methods [CT002-3-2-AIM]

1.6. Proposed Scenario

First Scenario: Finding Object


1)
2)
3)
4)

A staff is busy with some tasks and not free to clean the court.
He or she activates the Cleaning Robot when the court is unoccupied.
The robot start moving and collecting items or objects.
The staff leaves the robot to perform its duty automatically and continue his or her
tasks.

Second Scenario: Scoping Environment


1)
2)
3)
4)
5)
6)

The Cleaning Robot is implemented in badminton court.


The badminton players leave the badminton court after training.
Many objects such as shuttlecocks or racquets are placed or being left on the floor.
A player or staff activates the Cleaning Robot.
The robot moves to all badminton courts to clean the floor.
If the container or storage is full, it stops working until the items are released by

human.
7) After emptying the storage, it will continue to clean the courts again.

Page 12 of 48

AI Methods [CT002-3-2-AIM]

1.7. Sample of existing robot


Cleaning Robot is an autonomous mobile robot that is only used to collect the items
on the ground floor. Some samples of existing robots that perform the similar action
as the Cleaning Robot are mentioned below.

Robot Vacuum Cleaner

Figure 6: Robot Vacuum Cleaner

Robot vacuum cleaner is an autonomous robot that has implemented with


intelligent program. Its function is to absorb the dust and mop the floor, except the
areas where it cant move to. It also has an infrared sensor in front of its body so that
it can prevent the collision with obstacles from a certain distance and prevent it from
falling down the stairs. Once the robot has finished cleaning or when the bin is full or
battery is in low battery status, it will automatically return back to the charging dock
to charge the battery (Gibbs, 2015). Currently, the owner of the robot vacuum cleaner
is required to manually empty the bin after it has finished cleaning and return back to
the docking station.

Page 13 of 48

AI Methods [CT002-3-2-AIM]

Robotic Trash Collector

Figure 7: Robotic Trash Collector

Robotic Trash Collector is a new modern autonomous robot which is designed


to collect rubbish or trash through the streets. The research program costs around $3.9
million and it started in 2006 and end in this year. Robotic Trash Collector is not just
only collect the trash but also gather the data with on-board sensors that can monitor
atmospheric pollutants such as nitrogen dioxide and sulfur dioxide. The robot also
shows its intelligence by classifying the trash as organic, recyclable, or waste.
Besides, it is installed with pre-loaded maps about its environment and sensors so that
it can help to avoid the fixed obstacles and collision with other objects (Ganapati,
2009).

Page 14 of 48

AI Methods [CT002-3-2-AIM]

1.8. Problems statements & objectives


1.8.1

Problem Statement
In fact, every system will have its constraints no matter how good it is.
Same goes to the proposed robot as well. The first issue will be time-consuming.
It might take a longer time to move around the courts to collect the items because
it needs to sense the surrounding objects carefully.
The next implication of the robot is the cleanliness of storage, which is to
store the items temporarily inside its structure. This is because the robot is
collecting items such as dust and sweats. Thus, the storage of the robot will be
fouled up with filthy dirt and this will bring inconveniences to the users because
they might have to clean the storage of the robot after each time it has finished
collecting. Also, it can be ineffective during the cleaning process if its structure is
filled with dirt.
Apart from that, this proposed idea has a narrow scope. It is only
designed for badminton sports. It is not recommended to use in other sports field
due to the roughness of the courts surface.

1.8.2

Objectives
The objective of implementing the idea of this Cleaning Robot is to replace
manpower and act as a human assistant so that it can save time and make
people life easier and convenience. By using it, the people can leave it alone to
carry out its task while they can do something else that they wish to do. Other than
that, the project team is passionate to design and implement an intelligent
system that models the human behavior. The project team will make sure that the
system can identify, analyse and make decision for the related area in terms of
artificial intelligence when it is carrying out its task.

Page 15 of 48

AI Methods [CT002-3-2-AIM]

1.9. Project development purposes


The purpose of this project is to learn how to model a robot, the interaction between
the robot and the environment, and how the robot controller is being programmed to
respond with intelligent action. Cleaning Robot is mainly performing certain actions
such as collecting dusts, sweats, or shuttlecocks. Therefore, a land-based wheeled
robot is the most suitable types of mobile robot for this project as it is designed as a
simple structure robot, which is able to move swiftly and control easily.

Land-based Wheeled Robot


Wheel is one of the common components that facilitate the robot movement by
reducing its friction. A land-based wheeled robot is one of the mobile robots types
that include wheels. Besides, it is one of the popular methods to provide robot
mobility. Different sizes of wheel can be used for different sizes of robot (Benson,
2012). There are several advantages for land-based wheeled robot, which has been
stated as below:
Low production cost Cheaper price compare to other methods
Flexibility Diameter, width, material, weight, treads and
others can be modifying according to the developers needs
Light weight Shuttlecocks that are collected from the floor
are light weight so that it does not require to have heavy
wheels to support its weight.
Simplicity Only fewer components required that lower the
risk of getting damaged.
Environmental-friendly Several types of
material which are used to build the wheels are
biodegradable.

As mentioned earlier, land-based wheeled robot is very simple to control and use.
It is suitable for any kind of users. Therefore, it is considered as a user-friendly
robot for users to interact with.

Page 16 of 48

AI Methods [CT002-3-2-AIM]

2.0 Research
2.1. Cleaning Robot and the Machine Learning
In the research section, the overall process of Cleaning Robot and the
controller will be discussed. The project team decided to use Supervised Algorithms
for the controller to give direct instructions and command to the Cleaning Robot and
returning corrective actions.
There are several challenges in artificial intelligent. One of them is the
machine learning. Machine learning is a type of artificial intelligence that provides
computers or robots the ability to learn without being explicitly programmed. It is
more focuses on the development of the robots program so that they can teach
themselves to grow and change when discovered new data (Rouse, 2011).
In this project, the Cleaning Robot is more suitable to use supervised learning
because it will provide feedback about how learning is progressing. Supervised
learning is the machine learning task of deducing a function from labelled training
data. The most common technique used by supervised learning for training is neural
networks and decision trees. Both of these techniques are highly depended on the
information given by the pre-determined classifications (aihorizon, n.d.).
For neural network, the classification is used to determine the error of the
network after that only adjust the network to minimize it, while decision tree, the
classification is used to determine what attributes provide the most information that
able to solve the classification puzzle (aihorizon, n.d.).

Page 17 of 48

AI Methods [CT002-3-2-AIM]

Screenshot Codes

Figure 8: Header files

Based on the figure above, it shows the imported header files in shuttlecock_collector
class such as webots/robot.h, webots/differential_wheels.h, webots/distance_sensor.h,
webots/camera.h, webots/led.h, and stdlib.h. All these imported files are very useful
and important because it is an extension that helps the robot to take actions with
different function and features. There are few initialized variables, which are the
NB_SENSORS with the value of 8, SPEED 40, TIME_STEP 64, and RANGE (1024 /
2).

Page 18 of 48

AI Methods [CT002-3-2-AIM]

Figure 9: Distance Sensor codes

Figure 9 shows the distance sensor codes. The function of distance sensor is to avoid
collision with other obstacles within a defaulted distance. Normally, distance sensors
are placed around the robots casing to prevent obstacles in any direction it is moving.
If an obstacle is detected in front, sensor value will be used to change the direction so
that collision is avoided. Besides, wb_distance_sensor_enable(ps[i], TIME_STEP)
means the distance measurement of the distance sensor will be enabled after every
TIME_STEP in millisecond has been performed.

Page 19 of 48

AI Methods [CT002-3-2-AIM]

Figure 10: LED codes

Figure above shows the LED light codes. At first, WbDeviceTag and
wb_robot_get_device() function are required so that the LED device can be accessed.
Random LED color will be displayed on top of the robot such as blue, red, and etc.
When the led_counter[0] is equal to 0, the color of the LED will start changing the
colors by increment the counter.

Figure 11: Camera codes

Figure 11 shows the codes of camera in the shuttlecock_collector file. Firstly, the
camera devices is declared inside the main function. After that, each camera has to be
enabled so that the camera can capture the front image while the robot is moving.
Besides, there are three camera frames which are live stream video that are displayed
on the screen.

Page 20 of 48

AI Methods [CT002-3-2-AIM]

Figure 12: Supervisor file

Figure 12 shows the supervisor file. Supervisor node is inherited from the
DifferentialWheels. Thus, the supervisor needs to get the DEF name of the
DifferentialWheels so that it can access the robot and perform certain action. Once the
robot passes by the red dots on the floor, the robot will remove the red dots
automatically by using wb_display_set_alpha(ground_display, 0.0).

Figure 13: Clean Up code

Figure 13 shows Clean Up function. When the world is devastated, it will perform
the wb_robot_cleanup() operations such as closing files and freeing the plugin
objects. It is called once only and lastly it will return 0 if the compiler cannot find a
device with the specified name in the robot.

Page 21 of 48

AI Methods [CT002-3-2-AIM]

2.2. Storyboard
2.2.1

Robot

Figure 14: Front View of Robot

Figure 15: Side View of Robot

Components:
1) Two red thick wheels to have a balance control when it moves.
2) Eight built-in distance sensors.
3) Three cameras placed on top, lower middle, and bottom.
4) One LED light placed on top of the robot.

Steps:
The robot will wait for the command from user. Once the user clicks a switch, the
robot will start moving and cleaning around the badminton court.

Limitation:
Once the robot storage is full, it will stop moving and wait for the user to empty it. It
does not have the feature of emptying the storage itself.

The challenge:
At first, the robot may collide with the obstacles in the badminton court with a fast
speed. But now, it can self-avoid the obstacles.

2.2.2

Layout

Page 22 of 48

AI Methods [CT002-3-2-AIM]

Figure 16: Top View of the Court

Figure 17: Front View of the Court

Components:
1) Badminton court layout.
2) Badminton shuttlecock storage box use for training.
3) Badminton racquet.
4) Red dots that represent the shuttlecocks.
5) A wall is built at the surrounding of the badminton court. This is to prevent the
robot from moving out the cleaning area.

Page 23 of 48

AI Methods [CT002-3-2-AIM]

2.3. Algorithm
In this project, supervised algorithm will be implemented in the Cleaning
Robot. Firstly, the user is required to press a switch to allow the robot to starts moving
to the badminton court. After it reaches the badminton court, it will start to collect and
clean the items on the floor of the court such as dust, shuttlecocks, feather shuttle,
small stones, and sweats.
The top of the Cleaning Robot has LED light, when the robot starts operating,
the LED light will illuminate different kinds of color. There are eight distance sensors
that are built in the robot. The function of the distance sensors is to detect the
obstacles and prevent collision between the robot and obstacle within a defaulted
distance. Once the robot is near to the objects or obstacles, the robot will
automatically change its direction to the other side to continue cleaning the floor.
Therefore, eight distance sensors will incredibly help the robot to avoid the collision.
The three cameras that have placed on the robot will capture the images and
display it on the screen for the users view. Besides, the images displayed is a live
streaming video but it also allows to capture and save the live video as images. All in
all, the sensors and actuator that mentioned above are all controlled by the controller.
Therefore, the Cleaning Robot itself uses the supervised mechanism and not
autonomous mechanism.

Page 24 of 48

AI Methods [CT002-3-2-AIM]

3.0 Module Integration


3.1. Robot Component

Figure 18: DifferentialWheels node

In this project, the Cleaning Robot is defined as MyBot in the DifferentialWheels


node. As can be seen in the figure above, it is made up of many components which
include a cylinder body (Transform), eight distance sensors, two wheels, three
cameras and one LED light.

Page 25 of 48

AI Methods [CT002-3-2-AIM]

Figure 19: Cleaning Robots Body

The Cleaning Robots body is created under the transform node which is a child of
MyBot DifferentialWheels node. A shape node is added in the transforms children in
order to construct the body of the robot. The diffuse color in the appearance node of
the shape is set with the value of 0.27451 which is dark grey. In order to match the
design of the robot which stated in the proposal, geometry node with a cylinder shape
is added and set with a height of 0.08 and radius of 0.045. Besides, based on the
proposals robot design, the robots body does not touch the ground, so the Y value of
translation is set slightly upwards which is 0.0665.

Page 26 of 48

AI Methods [CT002-3-2-AIM]

Figure 20: Cleaning Robots Wheels

The Cleaning Robot comprises two wheels which are placed at the left and right side
of the robots body. Figure 20 has shown the scene tree of the left wheel. The left
wheel of the Cleaning Robot has the appearance node with the diffuse color of 1 0 0
(red color). Besides, the wheel is made from a cylinder shape with height of 0.03 and
radius of 0.025. In order to make the cylinder to appear as similar like a standard
wheel, the rotation of the wheel is changed to 1 0 0 4.98467. Same settings with same
shape, size and color are then applied to the right wheel, only that the X value of
translation is changed to 0.045 (without negative) this time.

Page 27 of 48

AI Methods [CT002-3-2-AIM]

Figure 21: Cleaning Robots Distance Sensor

The Cleaning Robot is required to detect the obstacles and also the walls. Hence,
distance sensor device is used to perform this function. Infrared sensor is often used
in real world. The distance sensors are placed around the upper part of the robots
body to ensure that there are no blind spots appear. The position (translation) of the
distance sensor is important as it will help to detect all the obstacles. The first distance
sensor is named as ir0 and the following sensors will be ir1, ir2, ir3, ir4, ir5, ir6, and
ir7. The distance sensor is created with a cylinder shape with the height of 0.004 and
radius of 0.008. In order to optimize the sensor, the lookup table is set to specify
infrared rays distance so that the robot can determine how far it is between its body
and the obstacles. The lookup table of distance sensor in this project consist of 3
values. The first column of the lookup table will specify the input distance, the second

Page 28 of 48

AI Methods [CT002-3-2-AIM]

column specifies the corresponding desired response values, whereas the third column
will indicate the desired standard deviation of the noise.

Figure 22: Cleaning Robots LED light

In order to indicate that the robot is functioning, a LED light is added to the Cleaning
Robot. When the robot is performing its task, the LED light that is placed on the top
of the robots body will start blinking with different kinds of colors that has been
chosen in the scene tree. The LED light is made from a sphere shape with the radius
of 0.01. The translation of the LED also changed to 0.003 0.11 0.014 to ensure that
the light is placed on top and middle of the body.

Page 29 of 48

AI Methods [CT002-3-2-AIM]

Figure 23: Cleaning Robots Camera

Camera is one of the devices that has implemented in the Cleaning Robot. Each time
the robot has turned on, the camera will switch on as well. The Cleaning Robot has 3
cameras. The figure above has shown one of camera nodes which is the top camera.
The camera is made from a cylinder shape and set with a diffuse color of 1 1
0.501961. The top camera is designed as an inspector and placed on top of the robot
so as to capture a clear view of the images or situation at the front of the robot. Same
settings are applied to the second (lower middle) and third (bottom) camera, but with
different translation and color.

Page 30 of 48

AI Methods [CT002-3-2-AIM]

Figure 24: Supervisor node

The Cleaning Robot intends to clean the dirt on the ground (court) when the robot
passes by the area. Therefore, the supervisor node is required to be implemented to
perform this action. A Display node is added under the Supervisor node. The display
node is named as ground_display which is then used to access and enable the display
device in the coding side.

Page 31 of 48

AI Methods [CT002-3-2-AIM]

3.2. Testing
Although the system was seamlessly designed by the programmers, there are several
errors and malfunctions existed. One of the errors is that the Cleaning Robot will
collect all the items on the ground without filtering it.

Figure 25: Layout/Environment in this project

The red dots that are shown in the figure above is assumed to be the necessary items
which are needed to be collected by the robot. When the robot detects the items, it
will absorb the items like what a vacuum usually does. However, during the testing
process, the robot seems to be unable to detect the images of the red dots. The
Cleaning Robot in this project does not filter what it absorbs. The items include the
shuttlecocks, dust, and sweats.

Page 32 of 48

AI Methods [CT002-3-2-AIM]

4.0 Conclusion
4.1. Overall of the project
After constructed the robot simulator, the developers have concluded the
whole documentation in this section. In this documentation, it is divided into five
parts which are proposal, design, research, module integration and documentation.
The first part was to construct a proposal which helps in introducing the
project background. Besides, the problems that occur in the real world before
implementing the proposed robot are discussed in this stage. Every project will have a
unique objective. Hence, the objective of implementing the Cleaning Robot was
documented in the proposal. In order to demonstrate the process of the robot
behaviors, a flow chart was drafted as a reference.
Moving on to the second part, which is design stage. Throughout the design
process, the purpose of the project and features of the proposed robot are discussed by
the developers. In this project, Webots software was used to create the Cleaning
Robot. In addition, the steps and function nodes used in creating the robot, size of the
robot, the process of avoiding the obstacles, and also the method of detecting the
objects are identified in this stage.
Furthermore, several simulations are outlined in this project. They are Discrete
Event Simulation and Continuous System Simulation. There are two types of robot
programming which are On-Line Programming and Off-Line Programming. These
robot programming are specified by the developers.
Moreover, Gantt Chart is used to show the schedule for the project. The
developers have undergone many researches and they have discovered that the
vacuum cleaner is one of the existing robots which performs the similar function as
the proposed Cleaning Robot that is built by the developers.
Besides, supervised algorithm was selected to be used in this project due to the
function performed by the robots controller. Therefore, the description of supervised
algorithm and learning were discussed and detailed in this stage. The storyboard of
the Cleaning Robot and the suitable algorithm for each agents action of the Cleaning
Robot was listed and defined in this documentation.

Page 33 of 48

AI Methods [CT002-3-2-AIM]

Lastly, the module integration part, in which the robots components, robots
illustration and screenshots of the robots parts were discussed. The testing process
was carried out to discover the problems or errors was also mentioned in this stage.
In a nutshell, the Cleaning Robot is built with an appropriate AI technique and
robotic knowledge which has shown some intelligent behaviors. As part of the course
work, every members have gained some new knowledge of AI and have more
understanding of robotic field.

4.2. Achieving Learning Outcomes


The overall learning outcome on AI in this assignment has achieved its
objective. In this project, the Cleaning Robot has implemented the supervised
algorithm. The robot demonstrates its ability to prevent the collision from the
obstacles and also able to move backwards while it detects an obstacle in front.
Besides, the robot has the ability to detect the color, for example, when the robot
found a red dot on the floor, it will automatically erase the red dot. This assignment
has brought valuable knowledge of artificial intelligent to the project team. While
developing the Cleaning Robot, the project team has done a lot of researches and
found lots of useful materials about Webots simulator through various websites, so
that they are able to implement some extra features in Cleaning Robot. Nowadays,
artificial intelligent is very important and it brings a great impact to the human life. It
helps human to do various things such as self-driving car, speech recognition, and car
installation. In conclusion, the Cleaning Robot was successfully built in this
assignment and it should be able to improve it by solving the limitations or
implementing some additional features in the future.

Page 34 of 48

AI Methods [CT002-3-2-AIM]

4.3. Constraints and Limitations


During the process of constructing the robot, the developers has figured out
the codes by referring to the sample worlds. However, the developers were having a
difficult time to understand the codes because they have not learnt the codes before
the project started. Thus, the developers have researched the Webots features from the
Cyberbotics website and they are able to understand parts of the codes implemented
in the project.

Figure 26: Supervisor codes

Figure 26 shows the supervisor codes which is handle by the supervisor node. It was
used in this project so as to allow the robot to clean the ground floor of the badminton
court. Before implementing supervisor node, MyBot is needed to be instantiated as
the DEF name of the DifferentialWheels. By calling WbNodeRef class and
wb_supervisor_node_get_from_def() function, the supervisor node will then refer and
access MyBot DifferentialWheels by getting its DEF name. Besides, the background
is

needed

to

be

initialized

by

calling

WbImageRef

class

and

use

wb_display_image_load() function to set the background as the image that the


developers want. Otherwise, an empty floor will be displayed. In order to perform the

Page 35 of 48

AI Methods [CT002-3-2-AIM]

cleaning action, wb_display_set_alpha() function was used and set as 0.0 to fully
transparent the image loaded when the robot passes by.

Figure 27: LED change color codes

Other than Supervisor node, LED is another new device that the developers have
learnt throughout the project. Figure 27 shows the codes of changing the LEDs color
randomly by increment the counter. The colors will be referred from the colors that
have been selected by the developers in the scene tree under the LED node.

Apart from the codes, due to the issue of Webots version, the developers
with Windows 8/8.1 operating system are not able to retrieve the project. The software
stops working immediately each time it retrieves. In addition to that, the cracked
version of Webots is also unable to build project after changing the codes and it is
very inconvenience for the developers.
Moreover, at first, the developers proposed that the Cleaning Robot will able
to collect the shuttlecocks in the badminton courts by identifying its size and release
them into a box which is used to store the shuttlecocks. Nevertheless, the proposed
idea is being forced to change. In this case, due to the limited knowledge that the
developers have, they are only able to make the robot clean all the items on the court
despite the objects size or appearance when the robot passes by. The items may
include sweats, dust, shuttlecocks (which is represented by red dots in the simulator),
and other trashes. Furthermore, it is not able to identify the size of the shuttlecocks
which was the original plan that was going to implement by the developers. In the real
situation, this constraint might lead the robot to stop moving forward when it absorbs
items which are oversize. Also, the robots storage is limited. The amount of items
being collected by the robot might also affect the robots speed as the body will
become heavier as it collects every single items on the floor of the court.

Page 36 of 48

AI Methods [CT002-3-2-AIM]

4.4. Future Enhancements


Although the Cleaning Robot is the project teams first generation robot for
the project, it seems to have a great potential for further improvements. There are
various enhancements that can be implemented in this robot. For example, the
developer can install a pair of arms for the robot so that it can pick up the item like
shuttlecocks instead of absorbing other substances such as dust, small stones, or
rubbish.
Besides, Natural Language Processing (NLP) can be implemented and
replaced the various features button on top of the robot. The robot also can have a
voice recognition feature to receive the commands or orders from the human. In this
case, the user will be able to use their voice to transmit the commands to the robot to
execute such as give instructions and asking the robot to go to a specific location, and
so on.
Not only these, an auto-remove feature can be added into the robot to release
the shuttlecocks from the robots storage to a box when the storage is full. This will
help the human to reduce their workloads and make their life easier.

Page 37 of 48

AI Methods [CT002-3-2-AIM]

5.0 Proposal
5.1. Latest Proposal
1. INTRODUCTION AND PROJECT BACKGROUND
In this new era, many people are trying to catch up with the latest technologies so
that they would not leave behind and always get updated, even the elder generations.
Technologies are not only applied in IT, science, medical or business scope, it also can
apply in sports zone.
As we all know, Badminton is a very legendary and well-known sport in
Malaysia, which was brought up by Datuk Lee Chong Wei. Hence, they need an
abundant supply of manpower to support the whole event. Examples of the tasks are
collecting shuttlecocks, distributing the waters, cleaning the courts, time keeper, and
so on.
In order to reduce the workloads of the workers, the project team has come up
with an idea, in which they will be designing and developing a Cleaning Robot. This
robot is able to detect and avoid the obstacles, and able to clear objects or trashes in
the court.
Besides, the project team consists of three members which are the Programmer,
Tan Bee Lan, followed by the Environment Designer, Leong Sen Fong and also
Robot Designer, Chin Jess Nny.

a) Overview of The Proposed Robot


Basically, it helps human to collect the items such as shuttlecocks that
have been left in the badminton court after the players training session and
also clean the dust and sweats on the court. It will collect the items from the
bottom and they will then be stored inside the robot. Apart from that, it has a
LED light which will be designed at the top of the robot to indicate that the
robot is functioning. Furthermore, it has Distance Sensors for detecting
distances and avoiding obstacles, and also Camera for capturing images.
Thus, the people will not have to move their exhausted body to pick up the
shuttlecocks or rubbish one by one. However, it is specifically designed for
cleaning the badminton court.

Page 38 of 48

AI Methods [CT002-3-2-AIM]
LED Light

b) Design of Robot

Camera

Distance Sensors

c) Gantt Chart

Page 39 of 48

AI Methods [CT002-3-2-AIM]

2. PROBLEM STATEMENT
In fact, every system will have its constraints no matter how good it is. Same goes
to the proposed robot as well. The first issue will be time-consuming. It might take a
longer time to move around the courts to collect the items because it needs to sense
the surrounding objects carefully.
The next implication of the robot is the cleanliness of storage, which is to store
the items temporarily inside its structure. This is because the robot is collecting items
such as dust and sweats. Thus, the storage of the robot will be fouled up with filthy
dirt and this will bring inconveniences to the users because they might have to clean
the storage of the robot after each time it has finished collecting. Also, it can be
ineffective during the cleaning process if its structure is filled with dirt.
Apart from that, this proposed idea has a narrow scope. It is only designed for
badminton sports. It is not recommended to use in other sports field due to the
roughness of the courts surface.

3. OBJECTIVE
The objective of implementing the idea of this Cleaning Robot is to replace
manpower and act as a human assistant so that it can save time and make people
life easier and convenience. By using it, the people can leave it alone to carry out its
task while they can do something else that they wish to do.
Other than that, the project team is passionate to design and implement an
intelligent system that models the human behavior. The project team will make sure
that the system can identify, analyse and make decision for the related area in terms of
artificial intelligence when it is carrying out its task.

Page 40 of 48

AI Methods [CT002-3-2-AIM]

4. FLOW CHART

5. CONCLUSION
All in all, as mentioned above, the robot has two main functions, which will
help it to perform its purpose of collecting items on the court. Although there are few
implications for the proposed robot, but this idea will definitely work if it is welldesigned. The project team will try their best to solve the problems with suitable
solutions to create a superior system. Literally, as an intelligent system, the robot will
act as human and this could save a lot of time for people. The product might seem
unsophisticated, but it has high possibility of creating an impact or changes in the
artificial intelligence scope and also in badminton sports.

Page 41 of 48

AI Methods [CT002-3-2-AIM]

5.2. Old Proposal


1. INTRODUCTION AND PROJECT BACKGROUND
In this new era, many people are trying to catch up with the latest technologies so
that they would not leave behind and always get updated, even the elder generations.
Technologies are not only applied in IT, science, medical or business scope, it also can
apply in sports zone.
As we all know, Badminton is a very legendary and well-known sport in
Malaysia, which was brought up by Datuk Lee Chong Wei. Hence, they need an
abundant supply of manpower to support the whole event. Examples of the tasks are
collecting shuttlecocks, distributing the waters, cleaning the courts, time keeper, and
so on.
In order to reduce the workloads of the workers, the project team has come up
with an idea, in which they will be designing and developing a Badminton
Shuttlecock Collector Robot. This robot has three functions. It is able to detect and
avoid the obstacles, able to identify the images, shapes, sizes, and also able to find the
location (storeroom or basket) which is on top of a charger.
Besides, the project team consists of three members which are the Programmer,
Tan Bee Lan, followed by the Environment Designer, Leong Sen Fong and also
Robot Designer, Chin Jess Nny.

d) Overview of The Proposed Robot


Basically, it helps human to collect the shuttlecocks that have been left
in the badminton court after the players training session. It will collect the
shuttlecocks by collecting it from the bottom and the shuttlecocks will then be
pushed upwards to the top of the robot for storing. Apart from that, it has a
siren which will be designed at the side of the robot as it will notify when the
storage is full. If it detects a full storage, it will look for the assigned basket by
using infrared to detect the position of the charger and pour out the
shuttlecocks from the top into the basket.

Page 42 of 48

AI Methods [CT002-3-2-AIM]

Furthermore, it has Camera for avoiding obstacles and capturing


images, and also Infrared for detecting the charger position and the distances
between obstacles. If it is running out of battery, it will charge automatically.
Thus, the people will not have to move their exhausted body to pick up the
shuttlecocks one by one. However, it is specifically designed for collecting
badminton shuttlecocks.
e) Design of Robot

External Design

Internal Design

f) Gantt Chart

Page 43 of 48

AI Methods [CT002-3-2-AIM]

2. PROBLEM STATEMENT
In fact, every system will have its constraints no matter how good it is. Same goes
to the proposed robot as well. The first issue will be time-consuming. It might take a
longer time to move around the courts to collect the shuttlecocks because it needs to
sense the surrounding objects and looks for the shuttlecock image.
The next implication of the robot is the limited storage, which is to store the
shuttlecocks temporarily inside its structure. This is because every shuttlecock has a
standard size that can easily occupy the space. Thus, it will have to dispose the
collected shuttlecock at the destination or an assigned storeroom then only continue to
start collecting again.
Apart from that, this proposed idea has a narrow scope. It is only designed for
badminton sports as the robot will only recognize the shuttlecock image by its
standard size. It is not able to use in other sports field.
Lastly, it has high possibility of collecting unnecessary things, such as the dusts.
Thus, the storage of the robot will be fouled up with filthy dirt and this will bring
inconveniences to the users because they might have to clean the storage of the robot
after each time it has finished collecting.

3. OBJECTIVE
The objective of implementing the idea of this Badminton Shuttlecock
Collector Robot is to replace manpower and act as a human assistant so that it can
save time and make people life easier and convenience. By using it, the people can
leave it alone to carry out its task while they can do something else that they wish to
do.
Other than that, the project team is passionate to design and implement an
intelligent system that models the human behavior. The project team will make sure
that the system can identify, analyse and make decision for the related area in terms of
artificial intelligence when it is carrying out its task.

Page 44 of 48

AI Methods [CT002-3-2-AIM]

4. FLOW CHART

5. CONCLUSION
All in all, as mentioned above, the robot has three main functions, which will
help it to perform its purpose of collecting shuttlecocks. Although there are few
implications for the proposed robot, but this idea will definitely work if it is welldesigned. The project team will try their best to solve the problems with suitable
solutions to create a superior system. Literally, as an intelligent system, the robot will
act as human and this could save a lot of time for people. The product might seem
unsophisticated, but it has high possibility of creating an impact or changes in the
artificial intelligence scope and also in badminton sports.

Page 45 of 48

AI Methods [CT002-3-2-AIM]

6.0 References
Aihorizon. (n.d.) Machine Learning, Part I: Supervised and Unsupervised Learning.
[Online] Available from:
http://aihorizon.com/essays/generalai/supervised_unsupervised_machine_learning.ht
m [Accessed: 20th December 2015]
Benson, C. (2012) Basics: What Types of Mobile Robots are There? [Online] RobotShop
Inc. Available from: http://www.robotshop.com/blog/en/what-types-of-mobile-robotsare-there-3652 [Accessed: 16th December 2015]
Brumson, B. (2009) Robotic Simulation and Off-line Programming: From Academia to
Industry. [Online] Robotic Industries Association. Available from:
http://www.robotics.org/content-detail.cfm/Industrial-Robotics-IndustryInsights/Robotic-Simulation-and-Off-line-Programming-From-Academia-toIndustry/content_id/1825 [Accessed: 16th December 2015]
Calin, D. G. (2014) Robotics Simulation Softwares With 3D Modeling and Programming
Support. [Online] Into Robotics. Available from:
http://www.intorobotics.com/robotics-simulation-softwares-with-3d-modeling-andprogramming-support/ [Accessed: 16th December 2015]
Fayek, A. M. (2002) Introduction to Combined Discrete-Continuous Simulation Using
SIMSCRIPT II.5. [Online] Available from:
http://www.caciasl.com/cust_center/ss3docs/contin.pdf [Accessed: 16th December
2015]
Ganapati, P. (2009) Robotic Trash Collector Prowls Italian Streets. [Online] Wired.
Available from: http://www.wired.com/2009/07/robot-trash-collector/ [Accessed: 17th
December 2015]
Gibbs, S. (2015) iRobot Roomba 880 review: a robotic vacuum cleaner that's almost a
pet. [Online] Guardian News and Media Limited. Available from:
http://www.theguardian.com/technology/2015/feb/24/irobot-roomba-880-reviewrobotic-vacuum-cleaner-thats-almost-a-pet [Accessed: 17th December 2015]

Page 46 of 48

AI Methods [CT002-3-2-AIM]

Jambak, M. I., Haron, H., Ibrahim, H. & Abd Hamid, N. (2010) ROBOTIC
MODELLING AND SIMULATION: THEORY AND APPLICATION. [Online] March
2010. Available from: http://cdn.intechopen.com/pdfs-wm/10476.pdf [Accessed: 16th
December 2015]
Mike, C. & Albrecht, P. E. (2010) Introduction to Discrete Event Simulation. [Online]
January 2010. Available from: http://www.albrechts.com/mike/DES/Introduction
%20to%20DES.pdf [Accessed: 16th December 2015]
Mittal, R. K. & Nagrath, I. J. (2003) Robotics and Control. [Online] New Delhi: Tata
McGraw-Hill Publishing Company Limited. Available from:
https://books.google.com.my/books?
id=rESVUHwMcvYC&pg=PA26&lpg=PA26&dq=online+programming+robot&source=bl&ots=mUuFUCykIu&sig=NXO4vsCsyIeEUU3
S9yFDmJUsYKI&hl=en&sa=X&redir_esc=y#v=onepage&q=on-line
%20programming%20robot&f=false [Accessed: 16th December 2015]
zgn, O. & Barlas, Y. (2009) Discrete vs. Continuous Simulation: When Does It
Matter? [Online] July 2009. Available from:
http://www.systemdynamics.org/conferences/2009/proceed/papers/P1199.pdf
[Accessed: 16th December 2015]
Robotwelding. (n.d.) On-line programming. [Online] Available from:
http://www.robotwelding.co.uk/online-robot-programming.html [Accessed: 16th
December 2015]
Rouse, M. (2011) machine learning. [Online] TechTarget. Available from:
http://whatis.techtarget.com/definition/machine-learning [Accessed: 20th December
2015]

Page 47 of 48

AI Methods [CT002-3-2-AIM]

7.0 Task Allocation


STUDENT
Tan Bee Lan (TP032074)

TASKS
Part 1: Design (40%)

SIGNATURE

Part 3: Module Integration (20%)


Part 4: Conclusion (20%)
Leong Sen Fong (TP031954)

Overall Documentation
Part 1: Design (30%)
Part 2: Research (80%)

Chin Jess Nny (TP032137)

Part 4: Conclusion (40%)


Part 1: Design (30%)
Part 2: Research (20%)
Part 3: Module Integration (80%)
Part 4: Conclusion (40%)

Page 48 of 48

Vous aimerez peut-être aussi