2) Different possible links in the neural map

advertisement
Robot Navigation using Dynamic Neural Networks
Suresh Golconda
www.cacs.ull.edu/~sxg3148
2
Contents
TOPIC
Page No.
1) Introduction.
--------------------------------------- 3
1-a Idea.
--------------------------------------- 3
1-b Reasons for the idea.
--------------------------------------- 4
1-c Open Questions.
--------------------------------------- 5
2) Methods.
--------------------------------------- 7
2-a Broad steps for robot navigation.
--------------------------------------- 7
2-b More details of the Algorithm.
--------------------------------------- 7
1) Types of neural nodes used in the neural map.
--- 8
2) Possible links between neural nodes in the neural map.
--- 12
3) Feasibility factor for a link.
--- 12
4) Dynamically adding new neural node.
--- 14
5) Dynamically deleting new neural node.
--- 16
6) Finding activation values of neural nodes on the map.
--- 16
7) Using the neural maps for navigation.
--- 17
2-c Data Structure.
-------------------------------------- 17
3) Results.
-------------------------------------- 19
4) Discussions & conclusions.
-------------------------------------- 20
5) Comparing with earlier neural map algorithm.
6) Remaining Open Questions.
----------------------------- 20
-------------------------------------- 22
3
7) Future Works.
-------------------------------------- 22
8) Reference.
-------------------------------------- 23
1) Introduction:
Neural maps have brought a new approach to traditional robot navigation problem. They
build a neural map to represent the world around the robot and use the neural map to
navigate in real world. Neural map approach solves the navigation problems very
effectively. But they require lot of memory and processing power in order to maintain the
complete neural map. Size of this neural map increases along with the area of the world
under analysis. Hence the algorithm can be used to navigate when considering small area
around the robot. This limit the situations where the algorithm can be utilized.
We here represent dynamic neural maps that requires very less memory to
represent the world around the robot, and requires less processing power. The size of
dynamic neural map do not depend on the area of the real world that they represent, this
facilitates the algorithm to be used in wide range of application, like robot navigation on
Mars.
Experimental results (in simulated world of Nomad 200) demonstrates the validity of the
approach and help to understand the implementation issues.
1-a) Idea
We build dynamic neural map (DNM) representing the real world around the
robot. By the word ‘dynamic’ we mean that the neural map grows and shrinks as the
robot encounters new obstacles in its journey. We use this dynamic neural map to
navigate the robot.
In Dynamic neural map (DNM), neural nodes are not spread in any pattern as in
regular Neural map[1]. Neural nodes are placed at positions that seem to be of any use for
robot to navigate. These positions include neural node at target position (target-neural
node) and neural node around obstacles (called as boundary-neural nodes). We join these
neural nodes with a link, such that a link between 2 nodes exists if the robot can move
from one node to another without touching the obstacles.
We then calculate activation value of each neural nodes, which represents how
close the neural node is from target. We use these links to move directly to the target
node, if a direct path exist, else move towards the boundary node that seems closest to the
target node.
See an example world scenario and its corresponding neural map, in FIG X1,X2.
4
1-b) Reasons for the idea:
Neural map approach requires lot of memory and processing power. Hence it is
difficult to implement on mobile robots with limited memory and processing power. We
need a better algorithm that requires very less memory and processing power and can be
executed on mobile robots.
Earlier neural map represents all the point of real world with neural nodes. Most
of these points are not used by the robot to navigate [Ref fig 3], hence we try to prevent
all such points. We represent only those nodes that may be used for robot navigation.
And provide a facility to dynamically add more neural nodes as need arises.
Decrease in number of neural nodes decreases the amount of memory required to
store the neural map. Small number of neural nodes reduces the amount of computation
required. This facilitates the algorithm to be implemented on mobile robot with less
processing and memory powers.
5
FIG-3 Showing the points which are not used by the robot for navigation.
6
1-c) Open Questions:
Two of the open questions in robot navigation area are:
1) To develop a robot navigation algorithm which can perform well even with
malfunctioning sensory system.
2) To develop an algorithm which ensures that robot will not get stuck with local
obstacles.
Potential Field Based Navigation algorithms suffer from with this draw
back. Some of the algorithms which suffer with this draw back are provided in
references. [Ref 9]
The algorithm that we propose ensures that the robot will not get stuck
with local obstacles.
There exists other navigation methods which ensures that the robot does
not get stuck with local obstacles.[Ref 10]
2) Methods
2-a) Broad steps for robot navigation:
There are four broad steps in robot navigation.
1) Building the neural map:
Starting with the Target-node at Target position, we build neural nodes on the
edges of the obstacle (obstacle nodes), and a set of nodes (boundary nodes) around the
obstacle nodes and finally a node (source node) at robot's source position.
2) Creating links:
Link the appropriate neural nodes with weight values proportional to inverse of
the distance between the neural nodes.
3) Assigning Activation values:
We assign +infinity activation value to target node and -infinity activation value
to obstacle nodes and '0' activation value to rest all nodes. We run the neural network
with each neural node getting input from all the neural nodes to which it is linked. The
network keeps running till all the neural nodes in the map stabilize with their activation
values.
4) Starting the Journey:
Robot is ready to make its path towards the (local target) neural node, whose link
provides maximum activation value. Then from this node, it finds next (local target)
neural node with highest activation value and moves to this node. It continues this till it
reaches final target node.
On encountering a new obstacle in its journey following steps are performed:
7
a) Add a new obstacle neural node to the neural map.
b) Add a set of boundary neural nodes around the newly added obstacle neural
node.
c) Form all possible links for the newly added neural node.
d) Recheck earlier links of all neural nodes that may no longer be valid because of
the newly added obstacle neural node.
e) Update the activation values of the all neural node.
2-b) More details of the Algorithm
Details of the algorithm are explained here.
7) Types of neural nodes used in the neural map.
8) Possible links between neural nodes in the neural map
9) Feasibility factor for a link
10) Dynamically adding new neural node
11) Dynamically deleting new neural node
12) Finding activation values of neural nodes on the map
13) Using neural map for navigation
1) Types of neural nodes used in the neural map.[Ref Fig-1]
a) Source neural node abbreviated as SNN
b) Target neural node abbreviated as TNN
c) Obstacle neural node abbreviated as ONN
d) Boundary neural node abbreviated as BNN
a) Source neural node:
We represent robot as a point, corresponding to the center of robot. Unlike
Michaels representation of representing robot with a point and obstacle with a circle
(corresponding to circular region where a robot center cannot reach), we represent both
the obstacle and robot as points. We still prevent the case of robot circumference
overlapping over obstacle, by selecting paths to only boundary nodes which represent the
safest position around the obstacle where a robot can reach.
For each robot there exists only one source neural node. The position of source
neural node is updated as robot navigates in the real world.
b) Target neural node:
We represent target position using a point in neural map. The target neural node has
+infinity activation value.
c) Obstacle neural node:
Obstacle neural node represent a point on obstacle. This neural node is dummy,
as they are not used for running the neural map. These neural nodes do not maintain links
to any other neural nodes except for maintaining links with at-most 2 obstacle neural
nodes, which represent adjacent points of same obstacle.
There could be 3 types of obstacle neural nodes.
8
Point obstacle nodes- this neural node represent a point on small obstacle from
real world, which is represented using a single point. Point obstacle neural node do not
have link to any other obstacle neural node.[Ref Fig-4a]
End obstacle node- this neural node represents an edge of a obstacle from real
world. i.e. it is the one end of obstacle. This neural node have link to only one other
obstacle node, which represent the adjacent point on the obstacle. [Ref Fig-4b]
Mid obstacle node- This neural node represent a point on obstacle which has two
other adjacent obstacle neural node, with which it maintain links. [Ref Fig-4c]. The angle
between the links, is called Angle of surface. [Ref Fig 5]
9
10
d) Boundary neural node:
Boundary neural node do not represent anything that exist in the real world, but
instead represent the closest point around an obstacle, to which an robot’s center can
reach. Boundary neural nodes are always in surrounding a obstacle neural node.
Depending on the type of obstacle neural node, a obstacle neural node can have 4, 3, 2
boundary neural node surrounding it.
A point obstacle neural node is surrounded by 4 boundary neural nodes. One in
each direction. [Fig-6a]
An End obstacle neural node has 3 boundary neural node, as explained in the
following figure. [Fig-6b]
A Mid obstacle neural node has 2 boundary neural node which can be on same
side of obstacle or one on either side depending on its ‘angle of surface’. If angle of
surface is greater than 270o degrees, then both the boundary neural nodes are on same
side [Ref Fig 6c], else if ‘angle of surface’ is smaller than 270o then 2 boundary neural
nodes exists on either side of obstacle [ Ref Fig 6d]
11
12
2) Different possible links in the neural map
This section describes constraints for deciding which two types of neural nodes
can be linked. Not all types of neural nodes can form a link with every other type of
neural nodes.
Possible links for a source neural node:
Source neural node can maintain links to boundary neural nodes and target neural
nodes. Second constraint for a link to exist between any two given nodes is described in
next section. [Ref Sec 2-b-3]
Source neural node can be linked to {Target neural node, Boundary neural node}
Possible links for a Target neural node:
Target neural node can maintain links to boundary neural nodes and source neural
node. Second constraint for a link to exist between any two given nodes is described in
next section. [Ref Sec 2-b-3]
Possible links for a Obstacle neural node:
Obstacle neural node can maintain links to other obstacle neural nodes which
represent adjacent points on a single obstacle.
Possible links for a Boundary neural node:
Boundary neural nodes can maintain links to boundary neural nodes, target neural
nodes and source neural node. Second constraint for a link to exist between any two
given nodes is described in next section. [Ref Sec 2-b-3]
3) Feasibility test of a link.
Here we discuss if a link between two neural nodes is possible, considering the
obstacles on the board. Let the two neural nodes to link be N1, N2. In order to have a
link, nodes N1 and N2 need to satisfy 2 conditions with each set of connected obstacle
neural nodes O1, O2. The 2 conditions are listed as follows:
a) The line segments joining N1-N2 and O1-O2 should not intersect. [Ref 1]
This considers the case when the path between node N1, N2 runs over the
obstacle. A robot cannot move over the obstacles, hence this path is not valid.
[Ref fig-7]
13
b) The perpendicular distance between the line segments should be greater than
radius of the robot.
This considers the case when path do not run over the obstacle but move very
close to the obstacle, such that if a robot tries to travel by this path it will collide
with obstacle. [Ref Fig-8]
14
4) Dynamically adding new Neural nodes
When a new neural node is to be added to the neural map, depending on the type
of the neural node being added, one of the following sets of actions is performed.
a) Source neural node: Position of Source neural node is updated when the robot is
navigating in real world. For the new position, source neural node checks its feasibility to
form links to each of the boundary neural node, and target neural node. And forms all
feasible link. The feasibility condition that is to be satisfied is described in section 2-b-3 .
b) Obstacle neural node: A obstacle neural node is added to the map when a new obstacle
is encountered. Following action are performed when adding the obstacle neural node:
1) Add the obstacle node to the map.
2) Search for an obstacle neural node which are located with-in a distance equal to
radius of the robot. If any obstacle neural node exists in near affinity, then combine the
new obstacle neural node with old obstacle to defining new obstacle.
a) If old obstacle is a point obstacle, combining it with new point
obstacle leads to a line obstacle. Refer to fig-9
b) If old obstacle is a line-obstacle, combining it with new point obstacle
leads to one single bigger obstacle. Refer to fig-10
15
3) Add new boundary neural nodes around the new obstacle neural node. Number
of boundary neural nodes to be added depends on the type of obstacle neural node, and is
explained below.
a) If the new obstacle neural node is a point-obstacle, then add 4 boundary
neural node on four sides of the obstacle neural node. As shown in Fig 6a
b) If the new obstacle neural node is end-obstacle node then add 3
boundary neural nodes as shown in the fig-6b
c) If the new obstacle neural node is mid-obstacle node, then add 2
boundary neural nodes either on same side of obstacle or on either side of
obstacle, depending on the ‘Angle of the surface’. If angle of surface is greater
than 270o degrees, then both the boundary neural nodes are on same side [Ref Fig
6c], else if ‘angle of surface’ is smaller than 270o then 2 boundary neural nodes
exists on either side of obstacle [ Ref Fig 6d]
16
c) Boundary neural node: A boundary neural node is added to neural map when
configuration of a obstacle node in the map is changed or when a new neural node is
added to the map.
When a new boundary neural node is added to the map, form all possible links with
source neural nodes, target neural nodes and other boundary neural nodes. Feasibility
check of a link is possible is as explained in the above section (SEE Sec ‘Feasibility
links between neural nodes’).
5) Dynamically deleting neural nodes from neural map: Steps for deleting a neural
node from dynamic neural map depends on the type of the neural node that we are
deleting. We explain the steps to follow for each of the possible type of neural node as
follows.
Source or boundary neural node: deleting source or boundary neural node involves direct
steps.
a) Delete all the links from the present boundary neural node to other nodes.
b) Delete all the links from other neural nodes to present neural node.
c) Finally delete the neural node from neural map.
Obstacle neural node: Deleting an obstacle neural node has more work compared to
other type of neural node. Deleting a obstacle neural node (a vertex of the obstacle)
effects other neural nodes belonging to same obstacle. Hence we need to update other
obstacle neural nodes that are connected to the present obstacle neural node.
Different operations to be performed when deleting a obstacle neural node are:
a) Delete all boundary neural nodes that surround the obstacle neural node.
b) Delete links with other obstacle neural nodes.
c) Update the definition of obstacle neural nodes that were connected to present
obstacle neural node. These obstacle neural nodes change their type, from edge-obstacle
neural node to point-obstacle neural node or mid-obstacle neural node to edge-obstacle
neural node.
6) Finding activation values of neural nodes on the map
The process of finding activation values of the neural nodes in the neural map is
called stabilizing the neural map.
In our neural map only target-neural nodes, boundary neural nodes and source
neural nodes take part in running the network. Obstacle neural nodes are not connected
to any of these neural nodes. And activation values of obstacle neural nodes need not be
calculated, as the robot does not use obstacle neural nodes during navigation.
Initially, target neural nodes are set to +infinity activation value, and boundary
neural nodes and source neural nodes are set to 0 activation values.
Each of the neural node takes input from all the neural nodes to which it is
connected, and calculates it activation value. The new activation value is then used to
updated activation value of other connected neural nodes, this process is continued till
activation values of all neural nodes get stabilized.
17
7) Using the neural maps for navigation:
The robot moves in the direction of the neural node(local target node) which is
connected to the source neural node and which gives maximum input value compared to
other neural nodes. On reaching local target node, the source neural node position is
updated to present position and new links for source neural node are created [Ref 6.Ch-6]
[Ref 1, Ref 2] . These new links are used by the robot to figure out new local target node,
and moves towards this neural node. This is repeated till the robot reaches the target.
2-c) Data structure
Structure to store a neural node in the neural map.
/* a neural node in the neural network */
struct s_neural_node
{
int posx,posy; /* gives the topological position of the node */
char node_type; /*represents the type of node: O-obstacle, T-target, Ssource */
float activation_value; /* stores the activation value or output of the
present node */
int n_links; /* maintains number of nodes, which are linked to present
node */
struct s_link_list_node *head_link_list_node;/* maintains the linked
list of all nodes connected to present node */
struct s_link_list_node *present_link_list_node; /* present node int
the linked list of connected nodes */
int flag;
};
Structure to store linked list of neural nodes that are connected to present neural node.
struct s_link_list_node /* a node in the linked list to maintain neural_nodes
that are linked to present node*/
{
struct s_neural_node *linked_node; /*Node to which the link points*/
float weight_link; /* Weight of the link to present node */
struct s_link_list_node *next_list_node;
struct s_link_list_node *prev_list_node;
};
struct
{
struct
struct
struct
} ;
s_list_neural_node
s_neural_node *linked_node;
s_list_neural_node *next_list_node;
s_list_neural_node *prev_list_node;
Structure to store obstacle
/* Struct to store a obstacle */
struct s_obstacle
18
{
int
n_obstacle_ends; /*one for point obstacle, and 2 for ordinary obstacle* /
struct s_neural_node *obstacle_end1; /*points to one end of the
obstacle */
struct s_neural_node *obstacle_end2;
};
Structure to store list of obstacles
/*struct to store list of obstacles */
struct s_list_node_obstacle
{
struct s_obstacle *linked_obstacle;
struct s_list_node_obstacle *next_obstacle_node;
struct s_list_node_obstacle *prev_obstacle_node;
};
3) Results:
The algorithm’s basic steps were successfully implemented on Nomad 200. The robot
was able to take shortest path from source position to target position in simulation world
of Nomad 200.
Algorithm successfully adapts neural map to addition of new obstacles and
removal of existing obstacles. The neural map is adjusted dynamically during the
navigation process.
For a world configuration with 4-5 obstacles, the robot reacts to changes in the
world, within a fraction of second. The algorithm is being implemented on Sun Ultra
system.
Above results can be compared to Michaels implementation. For 50 * 50 grid
neural map, Michaels algorithm takes around 2 seconds to adjust with the changing
world. Time increases drastically to around 10 second for neural map of size 1000* 500
[Ref 2].
4) Discussions & Conclusions:
We designed a general data structure that facilitates - multiple target nodes and
multiple robots nodes on the same neural map. This facilitates future updates to the code.
Like, implementing co-operative navigation algorithm with multiple robots[Ref to
Future-update section].
Conclusions
We propose an update to earlier approach of using neural maps for mobile robots
navigation[1]. We successfully show the improved performance of algorithm in terms of
required memory, and computational power of the mobile robot.
19
We successfully implemented the algorithm in both simulated-world of Nomad 200
mobile robot.
5) Comparing with earlier neural map algorithm
Advantages:
1) This algorithm requires less number of neural nodes, which minimizes the required
computational power. Hence mobile robots can easily implement this algorithm.
2) It reacts fast to new obstacles encountered, (like man standing in its path). For new
obstacles encountered, the algorithm adds only 5 new nodes to the neural map. And
update the links and activation values of neural nodes.
3) As the robot knows the distance of its local target node, it can uniformly increase and
decrease the robot’s speed, so as to have a smooth path to the target node.
4) Performance of the algorithm is independent of the size of the real world. Traditional
neural map methods have limitation on area of the real-world that they can represent. But
dynamic neural maps are not influenced size of the real-world.
5) This algorithm is more natural algorithm . In the sense that, it is more close to how
humans make their path. On encountering an obstacle on our path, we look at edges of
the obstacle and estimate which path has smaller distance, and move to the edge with
smaller expected distance.
6)More suitable for navigation on large open landscape(like surface on moon),where
other neural map approach cannot work.
7) Traditional neural maps do not represent the exact position of the object in the world.
The objects are represented by nearest neural node on the map. Dynamic neural maps
represent the exact position of the objects, by storing the co-ordinates of the object within the neural node.
8) Traditional neural maps need to trade off between the area that they represent, and the
accuracy of positioning the target and obstacle. As they use uniform grid to represent the
world. Dynamic neural maps do not need to make such trade off as they represent the
exact position of the object from real world using a neural node.
9) Earlier neural maps failed to provide more resolution to critical areas/spots, while this
approach provide more resolution to critical areas by building more number of neural
nodes at critical areas.
10) For a same world configuration, the distance that robot travels in-order to reach target
when using dynamic neural map is less (Takes straight paths) than the distance the robot
travels using traditional neural map (takes curved path).
20
11) Earlier neural map approach provide curvilinear paths, which requires robot to
change its direction of motion after reaching new neural node on the grid neural map.
This is not hard for a holonomic robot like Nomad 200, but other robots have great
difficulty in implementing this approach. While in Dynamic neural map approach robots
change their direction fewer number of times. They change their direction only when a
obstacle’s boundary is encountered.
Disadvantage:
1) When number of obstacles are increased to very high number, the complexity grows
high, as the number of neural nodes (and their links) increase at much higher rate.
2) Robot does not make smooth turning.
3) Using robots like nomad200 , which can move in a curve, this algorithm is not
utilizing this feature, hence at each turning it has to wait for its wheels to change
direction.
6) Remaining open Questions:
The ability of navigation algorithm to perform satisfactory when sensory system
of robot is malfunctioning, is a challenging Task. This algorithm do not attempt to
provide such a capability.
7) Future work
If multiple robots following same navigation algorithm are simultaneously set to
navigate (from same/near by source) to same target position. With each robot having no
knowledge about existence of other robots[Ref fig-11] . How do each robot react to
neighboring robots that are moving in same direction? What is the resulting path
followed by each robot? And why? Understanding these question and an attempt to
answer these questions may lead to good co-operative navigation algorithm using neural
maps. Co-operative learning algorithms are key requirement in ‘Search and Rescue’
operations (SAR). Ref [7][8]
21
8) REFERENCES:
1) Logoudakis. G. Michael, Anthony S. Maida Neural Map for Mobile Robot Navigation.
1999.
2) Logoudakis. G. Micahel Mobile robot Local Navigation with polar neural maps.
1998.
3) Laubach. S.L., Burdick J.W. An Autonomous Sensor-Based Path-Planner for
planetary microrovers.
4) Martti Mantyla Introduction to Solid Modeling. Computer Science press 1998
5) Mortenson E.Michael Geometric Modeling. John Wily & Sons 1985.
6) Igor Aleksander, Henri Farreny, Malik Ghallab, Decision And Intelligence Volume 6
Robot Technology. 1987
7) CSUS 2002, Search and Rescue robots
http://teams.botball.org/team_web/2002/CSUSHI/private/sar_research.htm
8) Cooperative navigation for Rescue robots. The rescue project.
Instituto de Sistemas e Robótica, Instituto Superior Técnico, Portugal.
http://rescue.isr.ist.utl.pt/contact.php
22
9) Liu Chengqing, Marcelo H Ang Jr, Hariharan Krishna, Lim Ser Yong
Virtual Obstacle Concepts for local-minimum-recovery in Potential-field Based
Navigation. 2000 IEEE International Conference on Robotics & Automation San
Francisco, April 2000.
10) Geert De Cubber ,Hichem Sahli, Francis Decroos Sensor Integration on Mobile
robot. Vriji University Brussel- Etro Department.
Download