Poster title - Tarleton State University
Download
Report
Transcript Poster title - Tarleton State University
Boundary Assertion in Behavior-Based Robotics
Stephen Cohorn - Dept. of Math, Physics & Engineering, Tarleton State University
Mentor: Dr. Mircea Agapie
The object of our project was the Boundary-Assertion
behavior, modeled by the following state-transition diagram:
Abstract
In developing algorithms and software for the control of
Autonomous Mobile Robots (AMR), boundary assertion
is often important: it prevents the robot from entering
environments dangerous to itself, or where it might
endanger other machinery, equipment, or personnel. In
this project we designed and implemented a robotic
behavior that restricts the motion of the robot to a
configurable bounded area. When this behavior is
activated, the robot will stay within that area and, if
forced outside, it will attempt to return. We have
validated the correct operation of the boundary-assertion
behavior in a simulated environment, and also on a real
robot in a real environment. Future work will extend the
class of shapes for the bounded area, and address the
“reusability” of the new behavior, integrate it into a more
general behavior-selection mechanism. It will then be
easy to configure the size and shape of the bounded area,
and transfer boundary-assertion behaviors among
robotics projects.
Hardware: the AmigoBot™
Ultrasonic
Sonar
AmigoBot
Wander
State
AmigoBot
We implemented this behavior by programming a pair of
actions: RespectBoundary, and TurnAround.
Our project did not involve any modification of the original
AmigoBot hardware.
Software: C++ and ARIA™
The AmigoBot hardware comes with a collection of software
tools, called ARIA™ (Advanced Robotics Interface for
Applications) [1]. ARIA is written by the manufacturer in
C++ under Microsoft® Visual Studio .NET ® 2003, so we
used the same programming language and the same
development environment.
Whenever our AI program (running on the PC) needs to
communicate with the robot, we call one of the ARIA
functions, collectively known as the ARIA API (Application
Programming Interface). For example, in the following code
fragment (executed when the robot reaches a boundary), the
velocity of the robot is set to 0, then the robot deactivates
itself so a new action can be started. All functions in bold are
provided in the ARIA API. The operation of this code is
myRobot->setVel(0);
deactivate();
myRobot->addAction(&turnAroundAction, 99);
Algorithms: Behavior-Based Robotics
By continuously integrating the motion of its motor wheels,
the AMR can also keep track of the distance and direction
traveled.
The robot communicates with a PC across a wireless Ethernet
network (802.11), in a classical client-server architecture.
State packets are sent from AMR to PC every 100
milliseconds. The Artificial Intelligence (AI) program running
on the PC makes decisions based on the state information and
sends them back to the robot in command packets.
Return
State
Position is inside the designated area
discussed in more detail in the Algorithms section.
Eight sonar units distributed
around the body constitute the
only input sensors for our
AMR. External obstacles can
be identified only by
processing inputs from these
sonars [1].
Position is outside the designated area
As in all applications of Computer Science, the hardware and
software are “brought to life” by the algorithms they
implement. In Artificial Intelligence, “behaviors” are relatively
simple algorithms that connect the robot’s inputs (sensory data)
to its outputs (motion commands). The interaction between a
behavior-driven AMR and its environment enables the robot to
perform complex tasks, which in older AI approaches could
only be accomplished through extensive planning [2].
RespectBoundary has x and y parameters which specify a
rectangular area in which movement is permitted. Because the
robot also has other actions to perform, we must specify a
third parameter: the priority of RespectBoundary in the total
set of actions.
If the robot is for some reason unable to return to the bounded
area, it will execute another action, Wander, for 5 seconds
before attempting to take a new heading, again ± 30 degrees
from the heading to the center of the bounded area. The robot
starts in the center of the rectangle. In the following code
example, the bounded area is 9000 mm by 7000 mm, and the
action is “added” to the robot with a priority of 99:
RespectBoundary boundary(9000, 7000);
robot.addAction(&boundary, 99);
Once added, RespectBoundary is responsible for gathering
odometry data from the AMR and calculating whether a
boundary was reached or not. If yes, RespectBoundary
deactivates itself and activates TurnAround, which then
calculates the heading (direction) needed to return to the
center of the bounded area.
Actually, TurnAround does not head straight for the center of
the bounded area. It randomly picks a heading within ±30º of
that direction, to prevent the robot from “getting stuck”
outside of the boundary due to some obstacle blocking reentry.
Simulated robot and environment
Conclusions and future work
A robotic behavior was programmed to assert a
rectangular boundary in the operation of an autonomous
mobile robot. The behavior was tested and validated in
simulation and the real world.
Future work will generalize the rectangular shape of the
bounded area to other regular and irregular polygons, to
make it more suited to real-life constraints. Another
objective is the easy integration of boundary-assertion
behaviors in a general behavior-based architecture for our
robots.
References:
1.
More details about the AmigoBot platform can be
found on the web-site of its manufacturer,
MobileRobots Inc.:
http://www.activrobots.com/ROBOTS/amigobot.html
2.
R. Brooks, A robust layered control system for a
mobile robot, IEEE Journal of Robotics and
Automation, 2, 14-23 (1986).
Experimental results
Acknowledgement: Many thanks to
Arun Mahendra for his contribution to the design
of this poster!
In simulation and real world testing, the Boundary-Assertion
behavior effectively restricted the robot to the specified area.
While stricter rules could be enacted, allowance for events
such as the robot being “herded” out of the area is made by
simply having it continue to attempt to return to the bounded
area. In the following screen capture are the results from a
Questions about this project?
simulated area filled with obstacles, with two places where the Please contact:
robot was intentionally forced outside of the area, to
Stephen Cohorn [email protected]
demonstrate its ability to return.
Mircea Agapie
[email protected]