Microsoft word - proposal-g3-adambertrand-yasminehovakeemian.doc
ECE 750 - T11: Component Based Software Systems
Developing an Autonomous Mobile Robot: A Component Based Approach
Robotics is an emerging, multidisciplinary field lending itself readily to component based
design including component based software systems (CBSS). By using CBSS, rapid
robot development at a low cost is possible. However, in order to do so, a software
framework is needed that encompasses the desired robot applications. Since the field of
robotics is so vast, this project will focus on the application of component based software
design for an autonomous mobile robot. Definitions:
The following terms are necessary for the complete understanding of this proposal. Absolute Position:
A specific position with respect to a globally defined point of origin.
An absolute position is generally unique across the entire environment. Actuator (Effector):
A controllable part of the robot. Inputs to these subsystems affect
the state of the robot. Angular Velocity:
The rate at which an object turns or spins; the shaft of a motor, for
example, may spin at a constant angular velocity. Controller (Logical):
This component coordinates between all the various high-level
tasks, and maintains the logical state machine of the robot. Controller (Control Systems):
The component which translates the current physical
state of the robot and a desired physical state into actuator inputs. Estimator:
The component which translates the measurements from sensors into the
current physical state of the robot. GPS:
Global Position System. Using a number of satellites in orbit around the Earth, a
GPS receiver can triangulate its absolute position to any location on the planet, with a
reasonable degree of accuracy. Heading:
The direction in which the robot is pointed. This can be absolute, or defined
relative to a track, wall, etc. Interferometer:
A device which can measure the properties of waves by using the
interference patterns created when these waves are superimposed. LIDAR:
Light Detection and Ranging. By emitting a laser beam, capturing the reflected
beam, and comparing the two using an interferometer, the distance to the object that
reflected the beam can be inferred. The reflected beam will be phase-shifted with respect
to the emitted beam, and by tracking the amount by which the beam is shifted, distance
can be deduced.
A mission, in the context of robotics, is the task that the robot is designed to
complete. The mission may be as simple as “Fly to a given point” or as complex as, for
example, “Cooperate with other robots to place a ball into a net.” Relative Position:
A position defined with respect to local point of origin. Sensor (Observer):
A device which reads in information about the world surrounding
the robot. Sensors provide information about the current physical state of the robot. SONAR:
Sonic Navigation and Ranging. By emitting ultrasonic pulses of sound, and
tracking the amount of time taken for an echo to return, a sonar device can calculate the
distance to that object. State (Logical):
The logical state that the robot is in, as defined by a state machine. For
example: START, DRIVE, DESTINATION_REACHED. State (Physical):
The physical state that the robot is in, as defined by physical
parameters, and the robot model. For example: Position, Heading, Velocity. Translational Velocity (also simply Velocity):
The rate at which position changes. Wheel Encoder:
A sensor which is usually attached to a wheel, and can provide
information about the current angular position of the wheel, either in relative or absolute
terms. Problem Statement:
In order to narrow the scope of this project, a specific mission is needed. This mission is
to build an autonomous mobile racer robot to navigate a figure-8 circuit. To add a
dimension of difficulty to this task, a traffic light, two stop signs, and a dynamic obstacle
at the intersection will be placed on the track. Figure 1 outlines both the
layout/dimensions of the track as well as the placement of the obstacles.
Figure 1a: Circuit Race Track with dimensions Figure 1b: Circuit Race Track with obstacles
Available at: http://www.eng.uwaterloo.ca/~rracing/ Available at: http://www.eng.uwaterloo.ca/~rracing/
The main component of the robot is the controller. The subsystems needed are sensors,
actuators, and a state estimator. The sensors include sonar, wheel encoders, GPS, and a
laser rangefinder, but many other sensors are available. The actuators (also called
effectors) are the controllable aspects of the robot and include the drive motor and
steering. The controller is a software module which reads in sensor data and drives the
actuators accordingly based on the output of state estimator. Figure 2 contains a high
level system design.
Figure 2: High Level System Design of Autonomous Mobile Robot.
This will be a purely software project and therefore a simulation environment will also need to be developed. This environment (grey box in figure 2) will contain the world in which the robot will operate and all the associated states. As such all of the sensors and actuators will have to be simulated within the confines of our world. The robot will begin at an idle state with all sensors and actuators constructed. It will be assigned to an environment depending on its mission or task. Initially, robot motion will be developed and tested with a random walk mission in mind. If proven to be successful, further environments and missions can be considered. The following is a state diagrams for a simple random walk. One will be developed for the figure 8 track and other missions/tasks that we implement in the future.
Figure 3: Autonomous Mobile Robot State Diagram for a Random Walk Mission
As the mission may potentially change, additional sensors and actuators may be needed.
For example to complete the figure 8 track, a vision control component with a camera
would be needed. With a simple change to the controller to include vision sensor data in
state estimation, this addition can be made. Components:
The following components are defined in the system diagram in Figure 2.
: This component will control the angular (rotational) and translational (forward
and back) velocity based on the control values given by the controller. Steering:
This component will control the heading of the robot based on information
received from the controller, allowing the robot to turn. Wheel encoders:
These components measure the amount that a wheel has turned.
Coupled with timing information, the current speed of the robot can be deduced and this
will help the controller decide whether to accelerate/decelerate. GPS (Global Positioning System)
: This component will be used by the robot to find its
current location within the environment. Sonar
: This component is used to measures distances to objects/obstacles in the
environment near the robot using a pulse of sound at an ultrasonic frequency, and
listening for the echo generated by that pulse and measuring the time of flight. Laser (LIDAR)
: This component will also be used to measure the distances to objects
near the robot as well by emitting a laser pulse, and using an interferometer on the
reflected beam to deduce the distance to that object. State Estimation and Control
: This component estimates the current state of the robot
(different state from the state machine), and determines what control input to use to
achieve the desired state.
The overall objective is to successfully navigate the figure-8 course and all inclusive
obstacles. In order to track the movement of the racer robot, we hope to construct a
graphic display (GUI) that will help envision the mission. To be able to make the task of
building this robot more realistic, a certain noise factor must be part of the environment.
In the ‘real world’, the sensors, actuators and controllers need to have a certain degree of
noise tolerance. We hope to bring this aspect of noise to the environment and simulation
data. At the same time, this simulation data must be kept within real bounds. Lastly, in
order to define this robot as truly modular, we want to demonstrate that the addition of
sensors and other subsystems would be possible with this system architecture with slight
modifications to the controller.
To analyze our robot from a performance perspective, we will consider the following
performance metrics. The time to complete the mission or task will be the fundamental
performance metrics. A lower time, while still maintaining proper and efficient operation,
is desirable. Another performance metric is the smoothness of the path. A robot that
operates on a smooth (as opposed to jagged) path is much more efficient. Lastly, a robot
will always experience some amount of noise from its environment. The robustness of the
robot to noise will be measured as well. Since purely objective measurements of metrics
such as robustness and smoothness are difficult, some measure of subjective
measurement will be used to evaluate the performance of the system. Resources Needed:
The system design was established based on the analysis of the figure 8 track mission.
For example, the obstacles in the course made the use of a laser and sonar sensor, or
similar detection/ranging sensor, a necessity. A better understanding of the resources
needed will emerge as the development progresses.
Table 1: Schedule of Tasks for ECE 750 Project
Development & Simulation
Develop Sensors and Simulate Sensor Data
July 6 ~ July 10, 2009 Develop Environment
Testing, Debugging & Finalization
Development & Simulation
Testing, Debugging & Finalization
Figure 4: Gantt Chart Outlining Schedule Made
 A. Brooks, T. Kaupp, A. Makarenko, S. Williams, and A. Oreback, “Towards
component-based robotics,” in IEEE/RSJ International Conference on Robots and Intelligent Systems
. (Edmonton, Alberta, Canada, August, 2005, pps. 3567–72).
 D. B. Stewart, and P. K. Khosla, “Rapid Development of Robotic Applications Using
Component-Based Real-Time Software,” in Proceedings of the 1995 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’95).
(Pittsburgh, PA, August 5–9, 1995, pps. 465–470)
Oracle SQL Query Tuning Hints WHERE Clause Try to avoid operations on database objects referenced in the WHERE clause. Given Query Alternative WHERE SUBSTR(ename,1,3) = WHERE ename LIKE 'SCO%'; WHERE ename = NVL (:name, WHERE ename LIKE NVL (:name, '%'); WHERE TRUNC (hiredate) = WHERE hiredate BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE) + .99999; WHER
NCTTA Board of Directors August 26, 2012 In attendance: Willy Leparulo (WL), Randy Kendle (RK), David Del Vecchio (DD) late, Wanda Wong (WW) late, Joseph Wells (JEW) late, Kevin Li (KL), Ed Toomey (ET), Chris Wang (CW) Not in attendance : Seemant Teotia, Linda Leaf, Nelson Gore, Brayden Glad, Michael McFarland, Abe Behnam MTG started at 8:02pm Meeting Minutes from July 25th approved 5