CS6510 Dissertation User Guided Behavior-based Robotic System Final Report

advertisement
CS6510 Dissertation
User Guided Behavior-based Robotic System
Final Report
Submitted
To
Dr Andy Chun, Associate Professor
Department of Computer Science
City University of Hong Kong
By
Ho Lok Ping, Wilson
(Student ID: 50355544)
Date: 7 December 2004
ACKNOWLEDGEMENTS
Academic work is not achieved by a mere individual; rather, it is the art of
communication and collaboration. When I first joined the MSCS course offered by the
City University of Hong Kong, I neither imagined that I would write a thesis about
robotics, nor even dreamt of making our real robots. However, it all happened after
subsequent years by meeting people and working with people. Now I am so grateful
for what I have done during my academic years, and what I have done for my thesis
work. Therefore, I would like to express my gratitude to the following people for their
support and assistance in pursuing my academic career.
Firstly, I would like to thank Dr. Andy Chun for giving me an opportunity to work on the
robotic project. He has provided me with everything that I need to complete my thesis
work and my academic career including the support for invaluable academic and
technological advice.
Similarly, I cannot help thanking Mr. Johnny Lung from the Robotics Laboratory of the
City University of Hong Kong for being kind enough to offer me an opportunity to visit
their robotic development works using Lego Mindstorms. I thank my friend and fellow
students, particularly, Mr. Albert Chung, who also work in another robotic project.
Without his help and collaboration, my academic pursuit would not have ended
successfully.
Finally, I would like to thank my family who will ever support me in anything I need.
1
Table of Contents
ACKNOWLEDGEMENTS ............................................................................................ 1
LIST OF PICTURES..................................................................................................... 4
I. INTRODUCTION....................................................................................................... 6
1.1 Background ..................................................................................................... 6
1.2 Objectives ....................................................................................................... 6
1.3 Usefulness of the Topic................................................................................... 7
1.4 Potential Outcome .......................................................................................... 7
II. RELATED WORK..................................................................................................... 9
2.1 Evolution Robotics™ Robot Control Centre (RCC) ........................................ 9
2.2 Robots by Other Robotics Company .............................................................. 9
2.3 Robot Waitress.............................................................................................. 10
III. SYSTEM MODELING AND STRUCTURE ........................................................... 11
3.1 Robot Control Architectures .......................................................................... 11
3.2 Incremental Design ....................................................................................... 13
3.3 System Overview .......................................................................................... 13
3.4 Concurrent Design ........................................................................................ 14
3.5 Static Structure .............................................................................................. 14
3.6 Main Class Diagrams.................................................................................... 15
3.7 System Architecture ...................................................................................... 17
3.8 Simple Robotic Behaviors............................................................................. 19
3.9 Evolution Robotics™ ER1 Robot.................................................................. 21
IV. METHODOLOGY AND ALGORITHMS USED IN THE DESIGN /
IMPLEMENTATION OF THE SYSTEM...................................................................... 23
4.1 Client / Server Architectures ......................................................................... 23
4.2 Real-time Remote Access Control................................................................ 25
4.3 Socket Programming .................................................................................... 25
4.4 Hardware Design .......................................................................................... 25
4.4.1 Robot Kit ............................................................................................. 26
4.4.2 Camera, IR sensors, Gripper and Miscellaneous .............................. 28
4.4.3 Survey................................................................................................. 29
4.5 Software ........................................................................................................ 29
4.5.1 Image Recognition.............................................................................. 30
4.5.2 Sound Recognition ............................................................................. 30
2
4.5.3 Obstacle Avoidance ............................................................................ 30
4.5.4 Navigation Model ................................................................................ 30
4.6 Total Cost for the Robot Development.......................................................... 34
4.6.1 Hardware ............................................................................................ 34
4.6.2 Software.............................................................................................. 34
4.7 Software Design............................................................................................ 35
4.7.1 Robot Control Architecture ................................................................. 35
4.7.2 Communication Protocol .................................................................... 37
4.7.3 Strabo Path Translator........................................................................ 37
4.7.4 Path Editor Converter ......................................................................... 38
4.7.5 ER1 Robot Server Program................................................................ 39
4.7.6 Robotic Command Centre .................................................................. 39
V. ANALYSIS OF ALGORITHM / SYSTEM................................................................ 44
5.1 ER1 Robot Prototype .................................................................................... 44
5.2 Limitations and Possible Solution ................................................................. 44
5.3 Experimental Setup....................................................................................... 46
5.4 Experimental Results .................................................................................... 48
5.3 Discussion..................................................................................................... 51
VI. CONCLUSIONS.................................................................................................... 54
VII. REFERENCES .................................................................................................... 55
APPENDICES ............................................................................................................ 59
Appendix A –Project Planning – key dates ......................................................... 59
Appendix B – Robotic Command Centre API ..................................................... 60
3
LIST OF PICTURES
Figure 1 Robot Waitress - Mei Mei............................................................................. 10
Figure 2 Concurrent Design ....................................................................................... 14
Figure 3 Package Diagram ........................................................................................ 15
Figure 4 Class Diagram - Network ............................................................................. 16
Figure 5 Class Diagram - State .................................................................................. 16
Figure 6 Class Diagram - Command ......................................................................... 17
Figure 7 Class Diagram - Interface ............................................................................ 17
Figure 8 Layered System Architecture....................................................................... 19
Figure 9 Module Diagram........................................................................................... 20
Figure 10 Subsumption Network Design Diagram - A Basic Obstacle Avoidance
Robot................................................................................................................... 20
Figure 11 Evolution Robotics™ Robot Control Centre .............................................. 21
Figure 12 Stimulus-Response Diagram for our subsumption-based Robot Waiter... 22
Figure 13 Communication Diagram of ER1 Robot and Robotic Command Centre .. 24
Figure 14 ER1 Robot from Evolution Robotics™ Holding a Can of Coffee............... 26
Figure 15 ER1 Robot’s Gripper Arm .......................................................................... 26
Figure 16 Customized ER1 Robot ............................................................................. 27
Figure 17 Logitech® QuickCam® Pro 4000 (Left), IR Sensors (Centre), Gripper (Right)
............................................................................................................................ 28
Figure 18 Bundled WebCam...................................................................................... 29
Figure 19 StraboTM Pathfinder main screen ............................................................... 32
Figure 20 Dijkstra path searches ............................................................................... 33
4
Figure 21 A* (Astar) path searches ............................................................................ 33
Figure 22 Connection Screen .................................................................................... 40
Figure 23 Path Editor Screen..................................................................................... 40
Figure 24 Behavior Screen ........................................................................................ 41
Figure 25 Remote Control Screen ............................................................................. 42
Figure 26 Camera Setting Screen.............................................................................. 42
Figure 27 Notes Screen ............................................................................................. 43
Figure 28 About Screen ............................................................................................. 43
Figure 29 Problem of Holding Paper-made Coffee Cup ............................................ 45
Figure 30 Rubber-made Coffee Cup is the minimum requirement of the holding media
............................................................................................................................ 45
Figure 31 Canned Coffee do not pose any problem with the ER1 Gripper ............... 45
Figure 32 Partial Enviroment Setup ........................................................................... 47
Figure 33 Partial Environment Setup - StraboTM ........................................................ 48
Figure 34 “Right Arrow” Sign for Homing ................................................................... 50
Figure 35 "Home" Sign for Homing ............................................................................ 50
Figure 36 ER1 Robot with Torch Light in the Dark..................................................... 51
Figure 37 Capture Image of Front vVew from ER1 with Torch Light ......................... 51
Figure 38 NorthStar Detector (Left) & NorthStar IR Projector (Right) ........................ 52
Figure 39 NorthStar in Operation ............................................................................... 53
5
I. INTRODUCTION
1.1 Background
Traditionally, robot has helped people to finish a lot of pre-defined and autonomous
job. At the turn of the 21st century, implementation of different kinds of practices has
occurred. Until recently, robot has even performed a more solid part in space
exploration which is extremely dangerous for human in this unknown environment. In
view of this, we would like to get a more understanding to the robotic topics. We know
that the development of the intelligent robots are rather slow compare with another
technology, like the increase of the speed of micro-processor doubled every 18
months, etc. However, we hope that the knowledge we gained and the experience we
learned can be significant in the later development and exploration of robotic topics
for our next generation.
1.2 Objectives
In this project, we would like to build a robot which leverages behavior-based
approached with user-friendly guided feature. In so doing, we have examined two
consumer robots which are of different brands, the first one is the Lego®
MindstormsTM Robot and the other one is the ER1 Robot by Evolution Robotics™, Inc,
and both will react with the environment using different pre-defined behaviors
respectively. With this hand-on experience, we are going to make a more formal
robotic project – a robot with localization system using Evolution Robotics’ ER1 Robot
as the framework.
6
1.3 Usefulness of the Topic
This paper will leverage modern technologies to fulfill the requirement. Wireless
802.11g network will be the foundation between the Robotic Command Centre and
the ER1 Robot itself. Different robotic behaviors will be examined with the interaction
among different behaviors. Last but not the least, robotic localization and path-finding
abilities will be incorporated in the robot to build a semi-autonomous robot.
Developing a computer program is generally a time-consuming task, and developing
a robot control program to deal with a machine embedded in the physical world is
even more challenging than the common computer programs that only deal with
abstract entities. To evaluate the performance of the tasks specified in a program, no
matter what the tasks are, the software must be integrated into a robot and tested in
the physical environment. Therefore, the robot, the program, and perhaps the
environment must be arranged for the complete evaluation.
1.4 Potential Outcome
We will create a prototype of a robot which can leverage among different behaviors
with remote control facility. The software will make use of Socket programming
technique, Microsoft® Visual C#, Microsoft® Visual Basic .NET, Strabo PathfinderTM
by Fusion Robotics, and some other open source components if available, etc. A
proposed framework is to design and build a robotic system that is easy to manipulate
and easy to expand for future study.
In the development of the robot, we consider roughly two kinds of tasks,
safety-oriented tasks and navigation-oriented tasks. The safety-oriented tasks include
7
behaviors such as collision detection to ensure collision-free navigation for the robot.
This group of behaviors generally exhibits behaviors in a reactive manner. The
navigation-oriented tasks, on the other hand, involve relatively higher level tasks
compared to the safety-oriented tasks. The behaviors such as environmental
mapping and route planning are typical examples of the navigation-oriented tasks.
There is no choice over which group of tasks is more important than the other.
However, the degree of autonomy a robot may affect the prioritization of tasks. For
example, developing a semi-autonomous robot usually leaves high-level decisions to
the robot and thus prioritizes the safety-oriented tasks. The thesis is founded on an
aspiration of building a semi-autonomous intelligent robot. Therefore, the
safety-oriented tasks are considered as the first priority. A mobile robot is used as a
test bed in the structured indoor environment for experimenting with the robotic
system with localization and path-finding abilities.
8
II. RELATED WORK
Thousands of robot related work have done in the past decades, AI, behaviors,
mechanical robot arm, chess opponent, robot architecture, simulation, circuits, design,
implementation, etc. However, consumer-level robot with localization and path-finding
facilities, and related work is very difficult to find.
2.1 Evolution Robotics™ Robot Control Centre
(RCC)
Evolution Robotics’ Robot Control Centre - Although it is easy to use, it lacks
localization and path-finding facility which hinders its overall function and hinder the
ER1 Robot to a very elementary level which limits its potential. That is also one of the
objective for building the Robotic Command Centre for ER1 Robot.
2.2 Robots by Other Robotics Company
Other research projects by ActivMedia Robotics, LLC, such as some developed using
AmigoBotTM which is of high cost, normally more than HKD30,000 with embedded
system. In view of this, we want to lower the cost for the robot development taken into
consideration for the benefit of the public at large, our target price is HKD20,000.
Moreover, they are more for the researchers than for the consumers. Their systems
developed are too difficult to change without large code re-built which is a major
barrier for the common users.
9
2.3 Robot Waitress
Three is a robot current under experiment which I would also like to implement is a
waitress robot in Chinese dress, called "Mei Mei,", carries a couple of glasses of
water to a customer's table outside Tokyo. The robot moves to tables using an
infrared sensor and serves water and delivers menus to customers with a bow and
words of welcome as Figure 1 shows1.
Figure 1 Robot Waitress - Mei Mei
As can be seen from the above a robot waitress "Mei Mei," can carry a couple of
glasses of water to a customer's table outside Tokyo. The robot moves to tables using
an infrared sensor and serves water and delivers menus to customers with a bow and
words of welcome. However, we would like to build a robotic system which can not
only delivery a cup of coffee to the client’s table which “Mei Mei” does and can also be
easily modified by common users with changing environment with localization and
path-finding abilities.
1
TLC LifeUnscripted, 2003,
http://tlc.discovery.com/convergence/robosapiens/photos/photos_zoom6.html
10
III. SYSTEM MODELING AND STRUCTURE
3.1 Robot Control Architectures
Robotic Control in the Architectural design, including the Deliberative Architecture,
Reactive
Architecture,
Behavior-based
Architecture
(mainly
Subsumption
Architecture) would be studied.
There are three broad types of robot control architectures (Mataric (1997))2: [1]
•
Deliberative
•
Purely Reactive
•
Hybrid
•
Behavior-based
In short, deliberative strategies use a centralized model of the environment to plan
complete paths to goals. These are typically done prior to the robot acting and may be
even done off-line. These strategies can be slow to generate plans and brittle should
the environment change (model updating and replanning is necessary, so action may
be delayed). For uncertain environments (due to sensor or effector noise, or a
changing environment) constant replanning may be necessary.
2
Matt Mitchell, "Robot Control",
http://www.csse.monash.edu.au/courseware/cse3475/Lectures/Module3/module.html, 2003
11
Purely reactive are stimuli/response type architectures. These are typically
pre-programmed condition-actions. Since there is no central world model, there is no
planning or internal search for solution paths.
Hybrids combine aspects of both purely reactive and purely deliberative strategies.
One approach is to have a reactive low level controller and a high-level deliberative
planner. Often the low level controller ensures the immediate safety of the agent,
while the high level planner determines paths to goals. One type of hybrid approach is
the Behavior-based approach. These are more complex than the simple
condition/actions or lookup tables of pure reactive systems. One such Behavioral
architecture builds upon the reactive subsumption architecture3.
The Subsumption Architecture was proposed by Brooks (1986). He argues that many
developers of robots use a model that runs from inputs to outputs though stages of
modeling, planning and task execution. This type of architecture involves a single
synchronous thread of execution from input to output. The modules in such a system
are based on functional components in the system (e.g. planning component,
mapping component). Brooks proposed that robot control systems should be instead
decomposed according to task achieving Behaviors or competencies. This means
instead of viewing processing a sequence of processes moving from inputs to outputs,
control is seen as a stack of competencies achieved through layers of control4. [2] [3]
3
Karl Williams, “Insectronics”, Mc Graw Hill, pp.127-137, 2003
4
Ronald C. Arkin, “Behavior-based Robotics”, The MIT Press, 1998
12
3.2 Incremental Design
The ultimate goal of our robotic experiments is to build a robot which can be used in
the future study of a robotic system. In order to build such a robust and compatible
program, we must build up the program as a complete system with a set of complete
behaviors, which enables the robot to be tested in the real world environment.
Rodney A. Brooks at the MIT AI Laboratory suggested in his famous article that
building complex robots (he calls creatures) which coexist in the world with humans
must be incrementally built in the same manner as biological evolution (Brooks 1991).
For instance, a single-cell amoeba which wanders the world without any goal and a
human who exhibits intelligent behaviors are both complete biological systems
although there is a difference in the degree of intelligence. During the astronomical
time span, biological evolution on earth started from the lower intelligence of amebas
and now has ended up with the human level intelligence up to this point. Brooks’ idea
of building a robot mimics the process of evolution. The concept of this incremental
design helps the entire project of building an intelligent system to advance toward to
the goal steadily one step at a time.
3.3 System Overview
The Robotic Command Centre must be able to open and close network connections,
send command sequences, track and display images, etc based on user input
through a graphical user interface.
13
3.4 Concurrent Design
The Robotic Control Centre will have three parts that can run concurrently (Figure 2):
•
Network – sends and receives data from the network
•
Interface – receives input from the user
•
Control – tracks robot state, organizes actions of other parts
Each of these components will run in their own thread, allowing each to continue
functioning without waiting for other components.
Figure 2 Concurrent Design
Each of these parts can be characterized as a package that implements a specific
aspect of the software. Within each of these packages there will be one or more
classes to implement the required functionality.
3.5 Static Structure
As mentioned in the System Overview, the software will be separated into three
14
packages. The packages are shown in Figure 3. The classes which each package
contains are shown within each package.
The classes are described in more detail by the class diagram section. This shows
the data members and functions for each class.
There are many subclasses of command that all override the same functions, and are
not presented on the class diagram.
Figure 3 Package Diagram
3.6 Main Class Diagrams
Below are the main class diagrams for the Robotic Command Centre, they are
interacting among each others as seen in the package diagram above.
Figure 4 shows the Network Class Diagram. Communication between Robotic
Command Centre and ER1 Robot starts with the network connection, client computer
15
has to open the socket for connection with correct IP address and Port Number in
order to connect successfully.
Figure 4 Class Diagram - Network
Robotic Command Centre will frequently enquire the status of gripper arm, the
Infrared (IR) sensors and the present connection status. Please note that there are
three IR sensors located in different location in the robots, their respective values are
measured by the closeness of the object and other factors, including the sunlight and
other ambient factors. Figure 5 shows the State Class Diagram.
Figure 5 Class Diagram - State
User controls the ER1 robot by sending commands using the Robotic Command
Centre. Beside of send the command one by one, Robotic Command Centre enables
user to send several commands in the list box, save the commands in a file for later
retrieval.
16
Figure 6 Class Diagram - Command
The interface between the Robotic command Centre and the ER1 Robot is the
Graphical User Interface. Carefully organized and user-friendly interface created
under the Microsoft® .NET framework has enhanced usability for users. As Figure 7
shows the different elements in the interface.
Figure 7 Class Diagram - Interface
3.7 System Architecture
The system architecture is an abstract design that organizes the system components.
In the recent robotic literature, most autonomous robots employ a layered
architecture. There are roughly two types in decomposing the system into layers,
functional-based layers and behavior-based layers. Nowadays, the trend in layered
architecture is Brooks’ subsumption architecture, in which the system is decomposed
into task-oriented behaviors (Brooks 1986). In the subsumption architecture, the
independent behaviors exercise their tasks (from sensing to acting) in parallel.
Therefore, the failure of one behavior does not interrupt the entire system execution.
The independence of behaviors also gives the capability of easily adding more
17
behaviors to the system in an incremental manner. Each behavior can either
suppress or inhibit the input/output of other behaviors to interact with the environment,
which causes the emergence of a high-level intelligent behavior without giving the
robot specific instructions of what to do to achieve that particular behavior. Also, the
absence of a central reasoning protocol, no symbolic representation of the world
model, and the direct control of actuators by a behavior are well-known distinctive
characteristics of the subsumption architecture (Brooks 1991). Although each
behavior is independent, the ability of influencing another behavior eventually makes
the system very complicated, and adding another behavior may thus require
enormous efforts. In addition, because of the emergent characteristic of
behavior-based systems, the complexity in analyzing the result of emergent
behaviors may also cause a problem in modifying and configuring the system. The
classical hierarchical approach had been, on the other hand, dominating the robotic
trend for decades until the rise of the subsumption architecture. Unlike the
behavior-based decomposition of the subsumption architecture, the traditional
layered architecture decomposes the system into functional modules such as sense,
plan, and act. This type of architecture has the advantage of having easily separable
functional modules that are associated with an intuitive paradigm in designing the
hierarchical architecture. However, it is often noted that the system is hardly
modifiable once the hierarchy is defined since the functionality of modules is limited to
contribute to certain behaviors (Liscano et al. 1995).
18
APPLICATIONS
VISION
NAVIGATION
INTERACTION
ARCHITECTURE
Client Developed
Software
Robot Control Centre
API
OS & HARDWARE
Figure 8 Layered System Architecture
The robotic system architecture used in this thesis (Figure 8) consists of two layers
taking the advantage of the former two types. Basically, the system has several
behavior-based like structure. Each structure is composed of two functional layers,
Hardware Layer and Component Layer. The Hardware Layer is a collection of
modules communicating with the robot’s hardware devices such as a camera,
infrared sensors and motors. The Hardware Layer is implemented with Microsoft®
Visual C# .NET since the ER1 kit is provided with the development environment that
specifies the language. The SDK (Software Development Kit) already contains
libraries to help in accessing the hardware components of the robot, which reduces
the amount of redundant effort. This layer functions as a bridge between the
upper-level layer and the hardware. The Component Layer contains the intermediate
functional modules which constitute the higher-level behaviors. The Component
Layer is implemented with Microsoft® Visual C#.
3.8 Simple Robotic Behaviors
Below is an example of a common robot using the Subsumption Architectures.
19
avoid obstacle
Sensors
Motors
move forward
Figure 9 Module Diagram
The preliminary design of the robot implement forward movement, when there is
external stimulus encountered, like hit by either left or right touch sensors, it will turn
to the opposite direction. This is a simple model and can be used in robot like Lego®
MindstormsTM Robot, so there are only 2 modules formulated as Figure 9 shows.
left touch sensor
collision resolve
right touch sensor
s
turn right
s
wander
move forward
s
turn left
s
Figure 10 Subsumption Network Design Diagram - A Basic Obstacle Avoidance Robot
Figure 10 shows the augmented finite state machines (AFSM) of the basic robotic
design, it will be further elaborate as follow:
20
•
Wander AFSM: It is the first part of the robot movement until other stimulus
has changed it preliminary direction.
•
Move Forward AFSM: The robot will move forward except it is suppressed by
either Left or Right touch sensors.
•
Turn Left / Turn Right AFSM: It will suppress the move forward AFSM and
move the robot in reverse direction when either Turn Left or Turn Right AFSM
has been triggered.
•
Collision Resolve AFSM: it takes inputs from the left and right touch sensors
and determines which sensor is touched. It will trigger the reverse direction of
the robot movement.
3.9 Evolution Robotics™ ER1 Robot
A chain of behaviors can be constructed using Evolution Robotic Control Centre
(RCC)
Figure 11 Evolution Robotics™ Robot Control Centre
Besides the simple robot behavior, we would like to implement a more complete robot
which behaves grabbing the coffee, deliver it to the destination and homing to the
source, the following behaviors are involved:
•
Wandering: move in a random direction for some time.
•
•
Seeking coffee: Find and move to the target coffee.
Grabbing coffee: When the target coffee found, close its gripper.
21
•
Seeking required table: Locate the table for coffee delivery.
•
•
Coffee delivery: Put down the coffee in the designated table.
Homing: Return to the source (starting point).
Figure 12 illustrates the Stimulus-Response (SR) diagram for this set of behaviors.
Like the previous example, priority-based arbitration is the coordination, and the robot
is executing only one behavioral rule at any time. Note in particular that when the
robot senses the attractor, wandering is suppressed and when the attractor is
grabbed, homing then suppresses grabbing, it is the mechanism of subsumption
architecture.
homing
deliver coffee
seek required table
grab coffee
seek coffee
wander
s
s
s
s
s
Figure 12 Stimulus-Response Diagram for our subsumption-based Robot Waiter
These are the main system modeling and structures, the methods and
implementation details for the robots are going to be described in the next section.
22
IV. METHODOLOGY AND ALGORITHMS USED
IN THE DESIGN / IMPLEMENTATION OF THE
SYSTEM
The main objectives of the project are to study the current technologies in robotic
arena and to build a prototype mobile robot. The prototype should feature some forms
of behavior, such as localization, path-finding and homing, etc.
We have examined the following robots in our project: the Lego® MindstormsTM Robot
and the ER1 Robot from Evolution Robotics™. They can both use current high level
language to further enhance the robotic behaviors to suit one's particular need, such
as Microsoft® Visual C#, Microsoft® Visual Basic .NET, Python, etc.
4.1 Client / Server Architectures
The term client/server was first used in the 1980s in reference to personal computers
(PCs) on a network. The actual client/server model started gaining acceptance in the
late 1980s. The client/server software architecture is a versatile, message-based and
modular infrastructure that is intended to improve usability, flexibility, interoperability,
and scalability as compared to centralized, mainframe, time sharing computing.
A client is defined as a requester of services and a server is defined as the provider of
services. A single machine can be both a client and a server depending on the
23
software configuration. We will use the client / server architecture for our robotic
system development.
Figure 13 Communication Diagram of ER1 Robot and Robotic Command Centre
Two communication modules have been created for both ER1 Robot and the desktop
computer (Robotic Command Centre). They communicate using the same port
number 9000. The ER1 Robot will receive command and send feedback to the
Robotic Command Centre. The desktop computer runs another service in port 81
which is the StraboTM Pathfinder for path navigation as further described as below.
24
4.2 Real-time Remote Access Control
With the creation of the client software (Robotic Command Centre) and the server
program located in the ER1 Robot, the real-time remote-access control can be
achieved. Client can send the robot command one by one to the server (ER1 Robot)
and the server will enforce the action accordingly.
4.3 Socket Programming
To develop client / server applications in the TCP/IP domain, we will make use of
socket programming in which the client and server will communicate among their
same assigned sockets. Its fundamental concepts include network addressing, well
known services, sockets and ports.
4.4 Hardware Design
At first glance, ER1 Robot is just a robot skeleton, it seems to be nothing more than
that, once it has been assembled with a notebook computer, and it can start working.
The attractive point for using ER1 Robot but not others is it is easy to build and can
make use of existing notebook computer as its brain.
25
Figure 14 ER1 Robot from Evolution Robotics™ Holding a Can of Coffee
It comes with several peripherals: One camera and two motors. If we purchase an
expansion kit, there will also have a gripper arm and three more Infra-red sensors for
better obstacle avoidance navigation.
Figure 15 ER1 Robot’s Gripper Arm
4.4.1 Robot Kit
The hardware used in this experiment is a commercial robot kit called the ER1 Robot
by evolution robotics™. The robot kit includes the control software, aluminum beams
and plastic connectors to build a chassis, two assembled scooter wheels powered by
two stepper motors, one 360 degree rotating caster wheel, a power module, a battery
(12V 5.4A), and a web-camera. The experimental robot also carries additional
26
accessories, three infrared sensors and extra beams and connectors for
reinforcement. A laptop computer, IBM™ Thinkpad X40 Notebook Computer (Intel®
Mobile Centrino® processor 1.1GHz with 768 MB RAM) with extended battery
installed which can run for 7.5 hours according to the specification, is used as a
controller device, and Windows XP Professional is loaded as the operating system.
Figure 16 Customized ER1 Robot
The bundled software that comes with the kit provides various tools for the users to
operate the robot with its simple interface such as computer vision, hearing, speech,
networking, remote control, email, and some autonomous behaviors. However, the
furnished high-level behaviors have no flexibility in customization at the algorithmic
level of behaviors which in many cases requires programming for modifications.
Therefore, the experiments have been conducted without using the bundled software.
27
Unlike the software, the hardware of the ER1 robot kit empowers users to customize
the robot for their objectives. The reconfigurable chassis enables us to design a
purposive mobile robot, and the extensions (extra cameras, sensors and grippers)
can be easily added to the system if necessary. The purpose of this experiment is to
build a robot as a test-bed for the future localization and path-finding project.
4.4.2 Camera, IR sensors, Gripper and Miscellaneous
Figure 17 Logitech® QuickCam® Pro 4000 (Left), IR Sensors (Centre), Gripper (Right)
In this experiment, three infrared (IR) sensors and a single web camera are used and
gather information about the environment. Figure 16 depicts the arrangement of
sensors installed on the robot. The camera, Logitech® QuickCam® Pro 4000 (Figure
17 Left) is mounted in front of the robot capturing the front view. The 320 x 240 32-bit
RGB image is updated and saved in memory at the rate of 2 frames per second by
default. The camera is connected to the PC through a USB (Universal Serial Bus)
port. Behaviors such as collision detection and obstacle avoidance are designed to
perform tasks based on the information given by the three IR sensors. Besides, the
gripper is used to grab object, e.g. cup of tea, canned soft drink, coffee, etc. Gripper
has an IR sensor, when object enter into the inner part of the gripper, it will close
automatically. However, there is no pressure sensor which means that soft object may
have problem when it is being gripped.
28
4.4.3 Survey
We have replaced the existing ER1 bundled camera (Figure 17) with the Logitech®
QuickCam® Pro 4000 with improved image quality and more accurate object
recognition. We have conducted an object recognition test in the daytime using the
resolution 320 x 240 32-bit RGB image for over 25 feet and it proved to be successful
to identify the object.
Figure 18 Bundled WebCam
Although the IR sensors are not as accurate as the sonar and laser sensors, with
respect to cost performance, IR sensors are the major solution in the mobile robotics.
In mobile robot navigation, infrared sensors are mostly used in the safety-oriented
tasks such as collision detection and obstacle avoidance because of faster response
time and lower cost (Benet et al. 2002)
4.5 Software
ER1 has its GUI control program called Robot Control Centre (RCC) which is a very
easy to use behavior construction application. If-then construct is easy to build and
users can set over 100 behaviors which act sequentially one after the other. Beside
29
that, we can make use of ERSP - a set of API for ER1 to further tailor its behavior
which leverages Microsoft® Visual C# as the extension to the RCC.
ER1 Robot is good for the following behaviors, though there are still some rooms to
enhance its effectiveness:
4.5.1 Image Recognition
ER1's ability for image / object recognition is undoubtedly one of the main features for
its successful factor. Even large corporation like Sony has made use of the ERSP
software development kit for AIBO in image recognition's ability.
4.5.2 Sound Recognition
ER1 can recognize some sort of "word" or "phrase" for it to trigger with some action
defined in its behavior setting. Their uses can include sending email about unknown
comer to its master when seeing someone going into their home while its master has
gone for work.
4.5.3 Obstacle Avoidance
ER1 has the ability to avoid collision with obstacle and recognize objects while
moving. However, in order to further enhance the obstacle avoidance ability, it is
recommended to install the second camera solely for obstacle avoidance purpose.
4.5.4 Navigation Model
ER1 has its ability to navigate in their space available together with the introduction of
obstacle avoidance ability. A simple view-based navigation which make up of different
location’s pictures for robot to easily move to different location. However, there is no
internal map to hold its location and for path-following navigation.
30
Robin R. Murphy, “Introduction to AI Robotics”, The MIT Press, 2000 which cover a lot
about different areas of robotics, in particular, the navigation model for our reference5.
Complete review of the ER1 Robot can be found in the footnotes6.
We make use of StraboTM Pathfinder for our ER1 Robot navigation implementation
server. StraboTM Pathfinder is Fusion Robotics’s solution to robot navigation.
StraboTM Pathfinder combines advanced artificial intelligence path finding algorithms
with sophisticated wireless networking capabilities to allow the robot to navigate in the
real world without having to grope around in it7.
StraboTM Pathfinder is an HTTP compliant server whose sole mission is to provide
navigational aid to robots via HTTP calls. We use an 802.11g embedded with the IBM
ThinkPad Notebook Computer and access points with StraboTM running on a server.
Maps created in StraboTM Pathfinder can be used by the robot to generate a list of
directions that virtually any robot can follow. StraboTM will also start listening for the
robot on the assigned port number, which is 80 at install time and we have
re-assigned the port number to 81 to eliminate the potential conflict with the web
server.
Strabo’s maps assume the top of the map is facing north. This is the normal standard
used in the western world for centuries. The top left corner is always numbered 1,1.
5
Robin R. Murphy, “Introduction to AI Robotics”, The MIT Press, 2000
6
Evolution robotics, 2002, http://www.evolution.com/product/consumer/er1/, Accessed 2002 Nov 29
7
Strabo Pathfinder, http://www.wehali.com
31
Notice how the tile designation changes in the lower left hand corner as you move the
mouse around the map. This will help you build very precise maps.
Figure 19 StraboTM Pathfinder main screen
There are two path search algorithm support by StraboTM Pathfinder - Dijkstra path
searches and A* (Astar) path searches. These are the two most popular path finding
algorithms used both in GPS navigation and video game navigation systems. They
both get to the same place, but determine their path in quite different ways as shown
below, both getting to the Table 8, but their paths are different.
32
Figure 20 Dijkstra path searches
Figure 21 A* (Astar) path searches
Herding
It is a term that applies to the ability to nudge the robot into a particular path when it is
traveling. The A* algorithm tries to find the easiest path to its destination. By using
difficult, hard, normal and easy tiles in different combinations, A* will seek the easiest
path. Given a choice of easy or difficult space, A* will usually choose the easy route.
We call this herding.
33
4.6 Total Cost for the Robot Development
We try all possible method to lower the cost of the robot development while do not
sacrifice the quality of the product. Below are the breakdown items for the
development. It is around HKD20,000, with about just HKD4,000 more than Sony
Aibo ERS7 Robot dog, so it is quite attractive for the consumer.
4.6.1 Hardware
Hardware Items
Price
ER1 Robot and value-added accessories
HKD7,000
IBM ThinkPad X40 Notebook Computer (Intel® CentrinoTM
HKD11,500
1.1G) with 768MB RAM and extended battery
Logitech® QuickCam® Pro 4000 and Torch
HKD750
Total:
HKD19,250
4.6.2 Software
Bundled ER1 software – Robot Control Centre (RCC), using the Socket API
programming for further experiment
StraboTM Pathfinder (49.95 USD)
Microsoft® Visual Studio .NET - Visual C#, Visual Basic .Net
Software Item
Price
StraboTM Pathfinder (49.95 USD)
HKD390
Total:
HKD390
The total cost of the Robot Prototype is HKD19,640.
34
4.7 Software Design
4.7.1 Robot Control Architecture
The object oriented design technique is used for the design of the robot software.
This allows for a flexible design, enabling new objects and such to be implemented
easily. Also, this design will implement information hiding techniques to reduce the
complexity of code implementation
The system is designed to be flexible and easily changed later. For these purposes
abstraction, polymorphism and information hiding have been utilized. As can be seen
from Section 3, UML diagrams have been created to provide easy understanding of
the interaction and dependencies between each class. The class diagram show an
outline of how the classes are dependent on each other and how each will be used.
The package diagram illustrates what classes are grouped together for a common
purpose.
In order to execute multiple tasks on a single processing unit, the robot control
architecture must be carefully designed in a way that the robot would choose the right
action among many candidates. While the classical hierarchical architecture and
Brooks’ subsumption architecture with respect to the system organization has been
discussed. In this section, we discuss issues within the robot control spectrum rather
than the system design. The control method theoretically lies between two extremes,
the planner-based centralized approach and the decentralized purely reactive
approach (Mataric´ 1992). The former is a control method which makes a global
decision on the robot’s action by building a complete internal model of the
35
environment using a-priori knowledge and perceived data. On the other hand, the
reactive approach normally maintains no internal model and locally decides the robot
action based on the sensor inputs using simple if-then rules. In the recent robotics
literature, non-extreme control models such as hybrid and behavior-based systems
gained popularity because of their moderation that is relatively applicable to the
realistic situations which usually require real-time sensitivity and planning capability.
Various methodologies (e.g. behavior-based, blackboard, and agent-based systems)
are found in many projects on mobile robot navigation. In terms of the control
mechanism, the subsumption architecture seems valid and attractive because of its
parallelism in a decentralized fashion and also because of its instantaneous
decision-making process. However, behavior-based autonomous robots are hardly
seen beyond research domains because of the structural complexity (designating the
inhibition and suppression among multiple behaviors could be a complex and messy
job) and the verification difficulty (due to the decentralized nature the robot may
express highly unexpected (emergent) behaviors which makes it difficult to analyze
the robot’s behavior patterns). Besides, since the truly distributed model requires
multi-processing units, the concept does not completely match the objective of using
a commercial robot kit as the robot’s framework. Therefore, the behavior-based
system may not be the perfect model for building the robot control program this time.
Blackboard architecture in robot navigation is its adaptability for the application
needed to make dynamic control decisions. However, because of the presence of a
global database, reactivity to the dynamic environment may not be instantaneous.
Also, the existence of a control module (sometimes called an inference engine) may
imply that blackboard systems are not as robust and reliable as behavior-based
36
systems. Once the control module stops functioning, the whole system collapses. On
the other hand, having a malfunctioned behavior (or agent), the subsumption system
still operates unless all behaviors stop functioning at the same time.
Besides, multi-agent systems are instead winning a vote as a revolutionary method in
controlling an autonomous robot. A number of multi-agent control systems are found
in the recent AI literature (Soler et al. 2000; Sierra, L´opez de M`antaras, and
Busquets 2001). These systems are basically an extended form of the blackboard
system because of the fact that multi-agent systems in a way share some
characteristics with blackboard systems. For example, a multi-agent system has a
collection of agents (also called knowledge sources (KSs) in a blackboard system)
which collaborates in problem solving forming the “cooperating expert”.
The goal of this thesis is to design and implement a robust and easily expandable
robot control system with localization and path-finding abilities, starting with the
commercial robot kit as a test bed. The system takes advantages of different
contemporary technology and some form of behavior-based approaches.
4.7.2 Communication Protocol
We have enacted a simple communication protocol between the ER1 Robot and the
Robotic Command Centre. To make it short, if we want the robot to move six feet, we
simply send the command "move 6 feet", etc.
4.7.3 Strabo Path Translator
Strabo’s direction and step can be translated to a valid ER1 Robot’s movement
command by calling this module. It takes into the consideration that accurate path
37
and step are still essential for ER1 Robot to move to the target location.
The translator module will take into consideration to the heading of the ER1 Robot, so
that it will not run into wrong direction. And the steps returned will be parsed into ER1
movement commands.
For example, the following navigation string is returned by Strabo from a client
computer and the first brace is the start point, the middle is the direction and steps,
and finally, we have the destination point at the end.
[3,2] [S,S,E,E,E,E,E,E,N] [9,3]
Supposedly, the robot is facing South and the unit for the movement is feet, it will
interpreted as move 1 feet, move 1 feet, rotate -90 degree, move 1 feet, move 1 feet,
move 1 feet, move 1 feet, move 1 feet, move 1 feet, rotate -90 degree, move 1 feet for
the ER1 Robot movement command.
4.7.4 Path Editor Converter
It is a point to point drawing pad which is inspired by Canvas implementation for
Microsoft® Visual C# by Eduard Baranovsky (2004)8.
By drawing different point in the image box, we can setup a valid path for ER1 Robot
Movement. The unit of the movement is based on the screen pixel, but we can define
different measurement, e.g. inch, feet, to suit different need. It can also generate
8
Canvas implementation for C#, Eduard Baranovsky, 2004
http://www.codeproject.com/cs/miscctrl/canvas.asp
38
degree of movement based on the coordinates between different two subsequent
points. Together with torch at night, the robot can behave as a rescue pioneer, in the
not distant future, it may be one of the Mars Rover. One drawback is it is quite
different to draw a very accurate path for the ER1 Robot with only using a mouse
point-and-click.
4.7.5 ER1 Robot Server Program
It is a program located in the ER1 Robot’s notebook computer to listen for the port
9000 to communicate with the Robotic Command Centre. They communicate with the
same set of communication protocol. Upon received and finished of any command in
the ER1 Robot, it will send an ACK to the Robotic Command Centre for
acknowledgment.
4.7.6 Robotic Command Centre
It is a main program to connect to the ER1 Robot on port 9000. The main program
has the following feature as show on the screens.
The left pane is a fixed screen, it will show the photo captured from the robot's
camera, connection status, gripper arm status and the IR Sensor Status.
39
Figure 22 Connection Screen
The connection screen is the first procedure to connect the Robotic Command Centre
with the ER1 Robot by inputting in the correct IP address of the ER1 Station and the
correct port number. After that, press the Connect button to connect or Disconnect
button if you want to end the current session as Figure 22 shows.
Figure 23 Path Editor Screen
The Path Editor can generate point to point direction for ER1 Robot movement, it is
40
still in experiment stage, but it may probably be used in exploring new land and
rescue purposes. User can select their Unit in the map scale.
Figure 24 Behavior Screen
The Behavior Editor screen is the heart of autonomous robot. The screen has been
grouped with different behaviors, including StraboTM Pathfinder, movement behavior,
object recognition behavior and gripper arm. Commands drawn by the Path Editor will
also be added in the Enter Sequence box. You can input the new command by
inputting the ER1 command in the New command field or delete the command in the
list by pressing the Delete button. User can make a new sequence, save it or load the
previously save sequence. If user wants to stop the robot, kindly press the Stop
Sequence button.
By combining with the usage of StraboTM Pathfinder, user can retrieve the correct
distance to the designated waypoint, like table 1. StraboTM Pathfinder will return the
valid direction and steps to complete the movement and there is a sequence to
recompile the return value into the ER1 commands.
41
Figure 25 Remote Control Screen
User can also remote control the robot if they want. It includes direct movement of the
robot, wheel rotation setting, IR sensor setting and Gripper control, etc.
Figure 26 Camera Setting Screen
Camera resolution and capture setting can be formulated under the Camera tab
screen.
42
Figure 27 Notes Screen
Notes screen provide a basic command reminder for user to formulate different
behaviors.
Figure 28 About Screen
About this program screen.
43
V. ANALYSIS OF ALGORITHM / SYSTEM
We would like to develop a robot prototype for localization and path-finding using the
ER1 Robot as the framework. Given the reality that emerging technologies in
forthcoming year would include increasing use of speech recognition and generation,
new sensor technologies that allow users to touch, feel and smell objects in virtual
worlds, improved speech recognition and gesture recognition. We hope that our
studies on this subject matter will be inspired by the others to follow and enhance.
5.1 ER1 Robot Prototype
We are able to fulfill the designated task with trial and error. Although the robot
prototype is improving every time, while we are developing the system we notice the
following shortcomings.
5.2 Limitations and Possible Solution
1. Python Software Development Kit lacks the capability to read low value IR
input, therefore, obstacle avoidance can not be enforced. In view of this, we
have shifted our development effort using Microsoft® Visual C# and Microsoft®
Visual Basic .NET.
2. Gripper arm do not have pressure senor, so if we use a cup made up of
soft-paper, the cup will be under high pressure and change it to oval-shape as
shown below. Tested with plastic cup and canned media do not pose any
problem.
44
Figure 29 Problem of Holding
Figure 30 Rubber-made Coffee
Figure 31 Canned Coffee do not
Paper-made Coffee Cup
Cup is the minimum
pose any problem with the ER1
requirement of the holding
Gripper
media
3. Image recognition will be affected by light and ambient effects. Whether the
light is not enough, the robot need to trace for its target, sometimes, a looping
problem will occur. In view of this, we have replaced the bundled Webcam with
a high quality Logitech® QuickCam® Pro 4000 which get satisfactory result.
4. The robot would not move if the laptop was being charged. Also, due to severe
consumption of power by wireless network, the original IBM ThinkPad X24
notebook computer cannot stand more than 1 hour, which is too cumbersome
for frequent charging, we have ordered a new IBM ThinkPad X40 notebook
computer which has built-in wireless LAN and can stand for more than 7 hours
according to the specification.
5. We notice that navigation for robot is an important element and future research
in the coming year because as our testing and some findings from different
sources, there is still quite a lot of enhancement. Because of this, StraboTM
Pathfinder has been purchased for easy manipulation of the robot navigation
behavior.
45
6. We do not have electronic compass to have accurate directional facility, when
using with StraboTM Pathfinder, we need to either put the robot to face absolute
north or east in our implementation.
5.3 Experimental Setup
We broke the testing of our robot into two categories. They are the basic functionality
and usability. The basic functionality goals were to have the ER1 Robot able to
perform basic actions from our user interface. These three basic actions were to
establish a connection, backwards and forwards movement, rotation, and gripper arm
control. All of these are essential for any development of the Robotic Command
Centre to continue.
Our usability goals were the set of goals for which controlling the robot would be
simpler and easier for the robot controller. It would be time-consuming for the user to
have to release ever command after he decided what he wanted to do. Instead, we
created a command queue, which is a list of user commands that the robot user
would like to send and it is also essential for localization through StraboTM Pathfinder.
Due to the limited space in my home, the experiments are conducted on a narrow
straight corridor in an office-like indoor environment with a relatively dimmed lighting
condition. The corridor extends about 7 feet in length and 6 feet in width. In a narrow
opening like a corridor, the robot moves with a speed slower than an average walking
speed. The movement behavior and object recognition behavior are the essential
elements that must be executed during the experiment navigation. The collision
46
detection by the three IR sensors is executed in another thread.
Figure 32 Partial Enviroment Setup
The most important mission of the experiments is to analyze and verify the
performance of the control system as well as to accomplish a successful navigation.
Therefore, the robot is evaluated in each of the criteria listed as the following.
1. Mechanisms (targets: Collision Detection and Object Recognition)
a. Robot with collision detection
b. Full feature (collision detection and object recognition)
2. Robot control system
a. Modularity and usability
b. Safety (system safety and robustness)
For the purpose of evaluating the performance with respect to safety, on each
experiment the robot runs in a corridor with obstacles as in Figure 32. Because of the
dead-end in the corridor, an extra control subroutine is added to the movement
behavior in which the robot will slow down its speed or stop entirely to avoid collision
with the wall. Object Recognition with direction sign for homing (Figure 32) has also
been tested to see how the robot tackles to these problems.
47
Figure 33 Partial Environment Setup - StraboTM
5.4 Experimental Results
As a result, the robot has shown both desired and problematic behaviors. In the
matter of collision detection, the robot is able to avoid collisions with obstacles and
walls. The collision detection mechanism maneuvered the vehicle around and
navigated it to the end of the hallway without collisions. There were also some
problems, however. First of all, the behavior was often distracted by ambient light,
which caused the retardation in navigating the robot. As a possible solution, we have
lowered all the sensor range to 1.5 feet to improve sensor readings for applying
collision detection. However, oftentimes it will require a sensor calibration in each and
every unique environment.
48
The path generated by StraboTM Pathfinder do not make into the consideration of
coarse floor plan. As a result, most of the time, there is minor deviation though they
are not pose serious problem in terms of safety in navigation. Although an
improvement still needs to be made with respect to the accuracy in selecting the valid
path for target destination, the main problem is the way to handle the unknown terrain
outside a normal workspace. In principle, the robotic command system has no central
brain in the system, and any information posted on the robotic command centre must
be handled and interpreted by respective devices. In the current system, the
movement behavior is the only device dealing with the shared information that
reflects on the robot’s actuators.
The images obtained by the system camera show that the mechanism identifies the
object almost perfectly. However, the ratio of correctness drops in identifying the
object with increasing distance. In fact, it is extremely difficult to always make correct
judgments in the dynamic scene without giving an appropriate amount of hints. It is
the simplest solution with one drawback; that is, adding more parameters may
deprive the robot of the adaptability to environments. There may be more solutions.
For instance, we have increased the image capture resolution from 640 x 480 RGB
Color and get desired result.
There were some interesting behaviors exhibited by the robot. The robot was
originally designed to do only three things: avoid collisions, travel destination and
recognize object for homing. However, the robot also demonstrated unexpected
movements: obstacle avoidance and smart homing. Originally, I would like to
re-create the reverse direction for robot homing, due to some deviations in robot
movement, homing may not be too accurate due to increased deviations from false
49
calculation by wheel in a uneven floor. We use two pictures for guidance and
re-position of the robot and it found to be quite successful in homing for several times.
Further testing found that with the new Logitech® QuickCam® Pro 4000, the robot can
recognize an object over 25 feet (it is the maximum length of my home) with improved
image quality and faster transfer speed for RCC’s object recognition.
Figure 34 “Right Arrow” Sign for Homing
Figure 35 "Home" Sign for Homing
As mentioned in the previous chapters, the objective of this experiment was to design
and build a robot control program that is easy to use and easy to expand (modify) for
future study. To begin with, the control system succeeded in facilitating modularity and
usability. The complete modulation in the class hierarchy brought forth an effortless
implementation, and the intelligible user interface has navigational parameters all
adjustable and realizes the smooth experiment processes. The GUI (Graphical User
Interface) written in Microsoft® Visual Studio .NET is shown in Section 4.7.7.
Besides localization and path-finding abilities of the robot, with the combination effort
of Remote Control and Path Editor, we can design a pre-programmed behavior for
50
robot movement and other action. It is particularly useful for danger zone or new land
exploration (e.g. in the Mars or other planets).
Figure 36 ER1 Robot with Torch Light in the Dark
Figure 37 Capture Image of Front vVew from
ER1 with Torch Light
5.3 Discussion
The collision avoidance behavior, object recognition behavior, navigational behavior,
and the system responsible for hardware components all cooperate within the robotic
control system. The robot and the control system were presented and analyzed in the
experiments. As a result, the robot did not exhibit the perfectly desired performance,
but the layered approach in the design criteria has proved its feasibility in mobile
robot navigation. The problems faced during the experiments are more related to the
calibration against an environment and the parameter adjustment on the agents than
the fundamental design criteria of the control system. The proposed layered
architecture enabled the control system to be easily expandable, and the use of
user-friendly GUI and user-modifiable StraboTM Pathfinder map has made the system
more easily cope with different user-requirement for them.
Although there is some deviation of the target position due to uneven environment,
51
remedy method by using the attached camera to re-position the robot using
sign-board method has proven successfully for homing. With the implementation of
collision mechanism, the robot demonstrated safe navigation in a hallway using a set
of IR proximity sensors.
As the current ongoing research, possible solutions are being implemented to
compensate for this problem. For example, Evolution NorthStar technology that
addresses this long-standing problem. It uses a small, inexpensive sensor (usually
placed inside the commercial robot) and an infrared, encrypted light device that plugs
into a wall outlet to help a robot not only navigate from room to room, but actually
know which room it's in.
Figure 38 NorthStar Detector (Left) & NorthStar IR Projector (Right)
The NorthStar detector uses triangulation to measure a product’s exact position and
heading in relation to IR light spots projected onto the ceiling (or any visible surface).
Because each IR light spot has a unique signature, the detector can instantly and
unambiguously determine where the product is. Because the NorthStar detector
directly measures a product’s position and heading, the localization result is
intrinsically robust. A NorthStar-enabled product does not require prior training or
mapping to measure its position. There is no need for expensive computational
52
capabilities. The system is insensitive to changes in the environment such as moving
furniture or people and works in complete darkness.
Figure 39 NorthStar in Operation
So we can build our indoor GPS-like Robot which is similar to the robot using GPS
facility outdoor. However, it is only available in the first quarter of 2005.
Further study is sought to design an agent which actually performs the
landmark-based navigation extending machine vision techniques in collaboration with
NorthStar technology. It is foreseeable that using a robot to navigate different areas in
the home and return image or doing some other stuff with accurate position can be
achieved in the not long distant future. The price of the hardware and software for
NorthStar is 1,495 US dollars.
53
VI. CONCLUSIONS
Upon the studying of different technologies in behavior-based robotic system, we
have a better understanding of the overall design strategy of future robotic design.
There
is
always
a
trade-off between
AI
implementation
and
rule-based
implementation. To the former, it is more easier to adapt to different environment, but
the speed of adequate learning is a great concern. To the later, it often produces
favorite result and greater control to the programmer or end user. By analyzing both
Lego® MindstormsTM and Evolution Robotics ER1 Robot, we have a more clearer
picture in implementation details. With the experiment to build a robot prototype, we
found several incapability of using merely its Robot Control Centre as a sole mean to
implement all the robot behaviors because of its limitations. There is a need to use
either socket API or Evolution Robotic Software Platform (ERSP) to further elaborate
the behavior. However, the price maybe out of our preliminary budget (USD7,500 for
ERSP), therefore, we have tried using Python to elaborate some of the robotic
behavior, however, producing simply move, recognize, grab functions, etc are simple
but it really takes quite a lot of time to make it completes which maybe better to find
another tool. Therefore, we shift to Microsoft® Visual Studio .NET which proves to be
more valuable to complete the requirement. Finally, we developed the ER1 Robot
Prototype with localization and path-finding abilities using Evolution Robotics’ ER1
Robot as the framework. We believe that building software is not easy, but software
engineering is the key to dealing with the difficulties. With good software engineering,
we solve our problem in a systematic and justifiable manner.
54
VII. REFERENCES
Simon H., "Neural Networks", 1994 Macmillan College Publishing Company Inc
Sullivan B., 2002, http://www.msnbc.com/news/817145.asp?0dm=C11KT, Accessed
2003 Mar 10
New Robot controller Is Customer Programmable with Microsoft .NET Compact
Framework, Microsoft Corporation, 2003
An Indoor GPS Robot, PC Magazine, Lance Ulanoff, 25 October 2004/12/7
LARS – Laser-guided Autonomous Robotic System, Jacob Creed & Brandt Erickson,
2003
View-based vs. place-based navigation: What is recognized in recognition-triggered
responses?, Hanspeter A. Mallot & Sabine Gillner, October 1998
Achieving Artificial Intelligence Through Building Robots, Rodney A. Brooks, May
1986
On Three-Layer Architectures, Erann Gat, California Institute of Technology
Teaching Robot Localization with the Evolution ER1, Zachary Dodds, Steven
Santana, Brandt Erickson, Kamil Wnuk, Jessica Fisher, Matt Livianu, Havey Mudd
55
College, 2003
Arras, K.O. and Tomatis, N. (1999) Improving robustness and precision in mobile
robot localization by using laser range finding and monocular vision. Proceedings of
the Third European Workshop on Advanced Mobile Robots, Eurobot’99, Zurich,
Switzerland.
http://citeseer.nj.nec.com/arras01multisensor.html
Arras, K. O., Tomatis, N. and Siegwart, R. (2000) Multisensor on-the-fly localization
using laser and vision. Proceedings of the 2000 IEEE/RSJ International Conference
on Intelligent Robots and Systems, Takamatsu, Japan, 793-8.
Benet, G. and et al. (2002) Using infrared sensors for distance measurement in
mobile robots. Robotics and Autonomous Systems 40: 255-66.
Bertozzi, M., Broggi, A. and Fascioli, A. (2000) Vision-based intelligent vehicles: state
of the art and perspectives. Robotics and Autonomous Systems 32: 1-16.
Borenstein, J. and Koren, Y. (1988) Obstacle avoidance with ultrasonic sensors.
IEEE Journal of Robotics and Automation RA-4(2): 213-8.
Borenstein, J. and Koren, Y. (1991) The Vector Field Histogram -- Fast
obstacle-avoidance for mobile robots. IEEE Journal of Robotics and Automation 7(3):
278-88.
Brooks, R. A. (1986) A robust layered control system for a Mobile Robot. IEEE
56
Journal of Robotics and Automation, RA-2(1): 14-23.
Brooks, R. A. (1991) Intelligent without representation. Artificial Intelligence 47:
139-59.
Corkill, D. D. (1991) Blackboard systems. AI Expert 6(9): 40-7.
Corkill, D. D. (2003) Collaborating software: blackboard and multi-agent systems &
the future. Proceedings of the International Lisp Conference 2003, New York, NY.
http://dancorkill.home.comcast.net/pubs/ilc03.pdf
Jensfelt, P. (2001) Approaches to mobile robot localization in indoor environments.
Ph.D. dissertation, Department of Signals, Sensors and Systems, Royal Institute of
Technology, Stockholm, Sweden.
Kube, C. R. (1996) A minimal infrared obstacle detection scheme. The Robotics
Practitioner: The Journal for Robot Builders 2(2): 15-20.
Liscano, R. and et al. (1995) Using a blackboard to integrate multiple activities and
achieve strategic reasoning for mobile-robot navigation. IEEE Expert 10(2): 24-36.
Maaref, H. and Barret, C. (2002) Sensor-based navigation of a mobile robot in an
indoor environment. Robotics and Autonomous Systems 38: 1-18.
Martinez, A., Tunstel, E. and Jamshidi M. (1994) Fuzzy logic based collision
avoidance for a mobile robot. Robotica (12): 521-7.
57
Mataric´, M. J. (1992) Behavior-based control: main properties and implications.
Proceedings of the IEEE International Conference on Robotics and Automation,
Workshop on Architectures for Intelligent Control Systems, Nice, France, 46-54.
Matsumoto Y. and et al. (1999) Exploration and map acquisition for view-based
navigation in corridor environment. Proceedings of the International Conference on
Field and Service Robotics, Pittsburgh, PA, 341-6.
Saffiotti, A. (1997) The uses of fuzzy logic in autonomous robot navigation. Soft
Computing 1(4): 180-97.
Sierra, C., L´opez de M`antaras, R. and Busquets, D. (2001) Multiagent bidding
mechanisms for robot qualitative navigation. Proceedings of the Seventh International
Workshop on Agent Theories, Architectures, and Languages (ATAL-2000), Boston,
MA, 198-212.
Tunstel, E. and Jamshidi, M. (1994) Embedded fuzzy logic-based wall-following
behavior for mobile robot navigation. Proceedings of the First International Joint
Conference of the North American Fuzzy Information Processing Society Biannual
Conference, San Antonio, TX, 329-30.
Ushimi, N. and et al. (2002) Online navigation of mobile robot among moving
obstacles using ultrasonic sensors. In Birk, A., Coradeschi, S., and Tadokoro, S., eds.,
RoboCup
2001:
robot
soccer
world
cup
V
,LNAI-2377,
477-83.
Berlin:
Springer-Verlag.
58
APPENDICES
Appendix A –Project Planning – key dates
59
Appendix B – Robotic Command Centre API
Standard Robot Commands Quick Reference
exit
gripper auto
gripper close
events
sense IR
set IR
gripper open
gripper status
gripper stop
IR
set voice
set linear velocity
set angular velocity
set power stopped
move
move rotate toward object
move rotate toward color
move drive toward object
set power moving
set collision detection off
set collision detection on
set obstacle avoidance off
move drive toward color
play file
play phrase
stop
set obstacle avoidance on
set confidence threshold
set color tolerance
set color percentage
sense
sense gripper
clear
input digital
output digital
input analog
60
Download