Вы находитесь на странице: 1из 7

A comprehensive study on path planning algorithms in multi-agent robot

soccer domain
Project Progress Report for EE586 Artificial Intelligence*

Kadir Firat Uyanik


Electrical and Electronics Engineering Department,
Middle East Technical University
kadir@ceng.metu.edu.tr

Abstract— The ability to traverse/navigate around without locally optimal direction while keeping approaching to the
colliding to the obstacles is one of most essential requirements target position. TBA produces paths, in reasonably simple
for an autonomous mobile robot that is supposed to realize a environments, that approach the globally optimal path as the
particular task by itself. Assuming that the robot is provided
with its current global position and orientation (initial configu- sensor’s maximal detection range increases.
ration), and goal configuration as well, the problem of enabling Bug algorithms assumes that the robot is a point on a 2D
a robot to reach its goal configuration in a reasonable amount of planar surface, and the obstacles are stationary. Moreover,
time, though seems simple, may present intriguing and difficult bug algorithms were developed for the robots that do not
issues. Besides, in multi-robot domains where robots operate have access to the global information of the environment.
collaboratively, highly complex and unpredictable dynamics can
arise. If an adversarial entity and unactuated-physical-body Hence, these algorithms are not useful for multi-agent robot-
interactions are also taken into account, the need for making soccer platform where entities are highly dynamic and global
navigation calculations within tight time constraints becomes information is already available (pose of each robot and the
more serious. In this study, several path planing algorithms, position of the ball).
such as Artificial Potential Fields, Visibility Graphs, Rapidly-
There are several robot motion control and path planning
growing Random Trees, and their commonly known variations
are going to be compared in terms of various time and safety algorithms that make use of global information, such as
criteria. Finally, a hybrid planning method is going to be artificial potential fields(APF), visibility graphs(VG), and
proposed that is going to be tested on a multi-agent robot rapidly-growing random trees(RRT).
soccer platform. This report, on the other hand, represents The rest of the document organized as follows: in the
the current status of this study and shows preliminary results
with the potential field methods.
algorithms section, APFs, VGs, and RRTs are explained
briefly; then experimental setup is explained, and lastly
I. I NTRODUCTION preliminary implementation results are given, and the article
is concluded.
One particular feature of an autonomous mobile robot that
makes them superior to the industrial robot manipulators is
II. A LGORITHMS
that they can navigate and traverse around the environment
if the surface is smooth enough. Yet another special feature A. Artificial Potential Fields
is that they can move from an initial position to a goal APF[4] is a reactive approach since the trajectories are
position without requiring explicit intermediate supervised not planned explicitly but obtained while executing actions
action commands (viz. no or minimum remote control). This by differentiating a function what is called potential function.
implies that the robot is capable of avoiding obstacles and A potential function is differentiable real-valued function U :
unwanted regions during navigation. One basic family of Rm → R. The output of a potential function can be taken as
methods to accomplish this is called Bug-algorithms [1]. the energy and its negative gradient as the net-force acting
Bug1 and Bug2, are known to be one of the earliest on the robot.
and simplest sensor-based planners, minimizing the compu-
Approaching to the goal configuration can be thought as
tational burden on the robot while still guaranteeing global
moving robot from a high-value state to a low-value state by
convergence to the target if reachable. However, these algo-
following a ”downhill” path. Mathematically speaking, this
rithms do not make the best use of the available sensory data
is the the process of following negative gradient, or gradient-
to produce relatively shorter paths by utilizing range data.
descent, i.e. c. (t) = −∇U (c(t)). The motion terminates as
Although VisBug [2] algorithm uses the range sensor data,
soon as the gradient vanishes, that is ∇U (q ∗ ) = 0 where
it can only utilize this data to find shortcuts that connects
q ∗ is called the critical value of U . This critical point is
points on the trajectory found by Bug2 algorithm containing
either maximum, minimum or saddle point as it shown in
no obstacles between. TangentBug algorithm(TBA) [3] uses
figure 1.Although the maximum is not that critical as soon
range data to produce a local tangent graph so as to choose
as robot doesn’t start movement from this point, but the
*This study is a part of EE586 Artificial Intelligence course offered by local minimum points are the real concern while designing
Dr. Afsar Saranli. a potential function. Here, one assumption is that the saddle
points -being unstable points- do not cause any problem due should look like the behavior of a tightened spring, or
to the robot’s inertia and other dynamics. the magnets getting closer to each other so that obstacle
APF methods can vary regarding how they measure the avoidance can be satisfied. In this study following
distance to the goal, and the type of the functions they formula is utilized,
utilize. In this study, additive attractive/repulsive potential,
and navigation potential based methods are investigated. In (
1 1 1 2
2 η( D(q) − Q? ) , D(q) 6 Q?
addition to these methods, a modified version of additive Urep (q) = (3)
potential fields is also investigated. 0, D(q) > Q?
Derivative of the repulsive potential function(3) is the
repulsive force which is,
(
η( Q1? − D(q)
1
) D21(q) ∇D(q), D(q) 6 Q?
∇Urep (q) =
0, D(q) > Q?
(4)
where Q? is the distance threshold for an obstacle to
create a repulsion effect on the robot, and η is the
repulsion gain.
The gain parameters (i.e. η and ξ) and the threshold
parameters(i.e. Q? and d? ) are set empirically.
The total repulsive potential field can be obtained by
summing up the potentials caused by all of the obsta-
cles,
Fig. 1: From left to right: maximum, saddle, and minimum XN

critical points are shown where figures at the top are the Urep = Urepi (q)
functions and the below are the gradient vectors of them. k=1

and the movement is realized by following the negative


1) Additive attractive/repulsive potential: The intuition gradient of the sum of attractive/repulsive potentials or
behind the additive potential functions is attracting the robot simply the following vectorial sum;
to the goal position while repelling the robot from the
obstacles by superposing these two effects into one resultant −∇U (q) = −∇Uatt (q) − ∇Urep (q)
force applied on the robot. This potential function can be In this study, the translation velocity assignment is
constructed as U (q) = Uatt (q) + Urep (q), that is the sum of simply done by utilizing −∇U (q).
the attractive and repulsive potentials.
2) Navigation Potential: Due to the local minima prob-
• Attractive potential: lem in the additive attractive/repulsive potential fields, many
The essential requirement in construction of the at- other local-minima free potential field methods are proposed
tractive potential is that Uatt should be monotonically such as wave-front planner [5][6]. However these methods
increasing with the current distance d(q, qgoal ) of the have discretization problems and that’s why they become
robot to the goal, qgoal . Two common Uatt functions computationally intractable for high dimensional and large
are the ones having conical and/or quadratic forms. In configuration spaces. To solve the local minima problem,
the experiments, combinations of the two are used since a special function to be constructed which has the only
the conical functions suffer from the discontinuity in minimum at the goal position. These functions are called
the goal position, that is division-by-zero problem in navigation functions, formally defined in [7][8].
computational sense. A function φ:Qf ree → [0, 1] is called a navigation
function if it
(
1
ξd2 , d 6 d?goal
Uatt (q) = 2 ? 2 (1) k
• is smooth (or at least C for k > 2)
ξdgoal d − 12 (d?goal ) , d > d?goal
• has a unique minimum at qgoal in the connected com-
where d = d(q, qqoal ), ξ is the attraction gain, and d?goal ponent of the free space that contains qgoal .
is the threshold after which quadratic function changes • is uniformly maximal on the boundary of the free space,
to the conical form. and
1
The gradient of the function (1) is obtained as; • is Morse
( As in the case of attractive/repulsive potential functions,
ξ(q − qqoal ), d(q, qgoal ) 6 d?goal
∇Uatt (q) = (q−qqoal )
navigation functions are used to move the robot from an
ξdgoal d(q,qgoal ) , d(q, qgoal ) > d?goal
?
arbitrary configuration to the goal configuration in the neg-
(2) ative gradient direction of the potential at that instant. The
• Repulsive potential:
The behavior of a proper repulsive potential function 1 Detailed discussion can be found in [9].
(viz. getting stuck at a local minimum). Similar method is
proposed in [10], called random walk.
Another solution to the local minima problem would be
using repulsive forces in a different form. For instance, if
the robot is imagined as a fluid or gas particle flowing
towards the goal, robot will be able to pass through obstacles
standing between the robot and the goal position. Which can
be realized by applying tangential attractive/repulsive forces
when the robot is at a certain distance from an obstacle.
However, this method will not be successful in the case
of confronting narrow passages, causing collision to the
obstacles. Another problem this method will cause is the
Fig. 3: A screenshot from the Webots simulator, while robot oscillatory movements in locally cluttered environments in
is tested in a three-obstacle between robot and the goal case. which there might be paths that are longer in the sense of
euclidean distance but shorter in time since robot can reach
higher speeds in obstacle-free paths.
navigation potential functions can be constructed as follows: One solution to the oscillatory movement problem would
be grouping the obstacles together and having virtual obsta-
(d(q, qgoal ))2 cles which may contain narrow passages, and the obstacles
φ= (5)
(λβ(q) + d(q, qgoal )2κ ) κ
1
that are sufficiently close to each other as it is shown in
figure 4 and 6. This method with the visibility testing is
where β(q) is a repulsive-like function calculated as proposed in [11], and I have successfully implemented this
method(given in the algorithm 1), and tested in the simulation
βi (q) = (d(q, qi ))2 − ri 2 environment in one of my earlier studies. Although tests are
for each obstacle having a radius of ri . The critical point done in highly cluttered environments, generated paths were
in choosing Bi (q) is that QOi = q | βi (q) 6 0; this means close to the optimal paths and no local minima problem is
βi (q) is negative inside an obstacle and it is positive outside observed.
in the free space, which requires Algorithm 1: Obstacle Grouping
2 2
β0 (q) = (d(q, q0 )) − r0 while preObstList.size() > 0 do
closestObst ⇐ getClosestObst()
where q0 is the center and r0 is the radius of the sphere if isVisible(closestObst)=TRUE then
world. tempObst ⇐ closestObst
In this report, it is assumed that the configuration space is repeat
bounded by a sphere centered at q0 and the other obstacles if isLinkable(tempObst,preObstList[i])=TRUE
are also spherical centered at qi . then
The λ in the equation (5) is necessary for bounding the linkObsts(tempObst, preObstList[i])
navigation function so that it has 0 at the goal and 1 on the tempObst ⇐ tempObst→Neighbor
boundary of any obstacle. end if
The κ on the other hand, has an effect of making the until preObstList.size()= 0
navigation function has the form of a bowl near to the goal. end if
Increasing κ causes the other critical points(local minimum virtualObst ⇐ closestObst
etc.) shift toward the obstacles and resulting in a negligible groupObsts(virtualObst)
repulsive behavior compared to the overwhelming influence postObstList.push back(virtualObst)
of the attractive field. The effect of increasing κ is shown in end while
the figure2, for the case of having three obstacle in front of
the robot and a goal position beyond the obstacles as it is
illustrated in the figure 3. B. Visibility Graphs
Once a ”proper” κ value is decided, robot’s configuration A visibility graph is a graph consisting of intervisible
or -in this study- velocity is updated with the negative locations, typically in the euclidean plane. Nodes of the graph
gradient of the navigation potential(equation (6)) function represent a point location/vertex, and edges represent visible
similar to the what’s been done in the attractive/repulsive connections between the vertices. Visibility also refers to the
potential functions. condition when each edge stays in the free configuration
3) Modified Additive-Potential Function: To deal with space (viz. no obstacle inter-penetration). In other words,
local minimum problem in additive functions one idea would visible lines are the line segments that a robot supposed
be applying random forces on the robot once it is detected to follow to reach its goal position without colliding any
that the robot stops without reaching to the goal position obstacle on its path.
2 1
!
2d∇d[(λβ(q) + d2κ ) κ )] − κ1 (λβq + d2κ ) κ −1 (λ∇β(q) + 2κd2κ−1 ∇d)
−∇φ = − 2 (6)
(λβ(q) + d2κ ) κ
PN  QN 
where d = d(q, qgoal ) and ∇β(q) = i=0 ∇βi (q) j=0,j6=i βi (q) . ∇βi (q) = 2(q − qi ) for i > 0, ∇β0 (q) = −2(q − q0 ).

Fig. 2: From left to right and top to bottom, κ is changed between 1 and 6, and navigation potential function is calculated
for the sphere-world by sampling the world for the specific configurations(viz. 2D positions) varying in polar coordinates
r = [0.01, 2.0] and θ = [0.01, 2π] with the discrete sampling steps of 0.01. As it is clearly shown that κ doesn’t effect the
navigation potential considerably after a certain value, which is κ = 4 in this case.

The standard visibility graph is defined in a 2-D polygonal


configuration space where the nodes includes the start and
goal location in addition to the vertices of the configuration
space obstacles, and the edges that connect two distinct line-
of-sight nodes, i.e.;
eij 6= ∅ ⇐⇒ svi + (1 − s)vj ∈ cl(Qf ree )∀s ∈ [0, 1].

Fig. 4: Closest obstacle and its neighbor obstacle are linked


to each other and nwe virtual obstacle makes obstacle C
invisible to the robot (adapted from[11])

Fig. 6: The thin solid lines delineate the edges of the visibility
graph for the these three obstacles (filled polygons). The blue
line segments represent the shortest path from start to goal
position.
Fig. 5: Obstacle 3, 4 and 5 are linked to each other.They General algorithm for a VG can be summarized as follows:
form a virtual obstacle (adapted from [11])
• Expand the obstacles by utilizing Minkowsky Differ-
ence[13] if the robot has a polygonal representation C. Rapidly Growing Random Trees
(otherwise approximate it)
• Construct edges between each node pairs considering An RRT is basically a data structure and algorithm which
the visibility criterion efficiently searches nonconvex high-dimensional spaces. The
• Search graph via a shortest-path finding algorithm, e.g. way RRT is constructed can be given as follows:
A*, Dijkstra’s etc. • Start with the initial state as the root of a trees
If the robot is assumed to be a point robot, visibility graph • Pick a random state in anywhere or in the direction of
construction is nothing but picking a node pair and checking the target
if the edge between these nodes crosses the obstacles edges. • Find the closest node in the current trees
Let V = v1 , v2 , ...vn be the set of vertices of the polygonal • Extend that node toward the target if possible
obstacles in the configuration space as well as the start and There are many variations of RRTs. In this study, RRT-
goal configurations. Therefore, general graph construction base [15], RRT-connect [16], ERRT [17], and Bidirectional
requires: t ∈/ [0, 1] and u ∈/ [0, 1] where t and u represents Multi-Bridge ERRT[18] is going to be studied.
a scalar value, fraction of the line segments between two To mention them briefly:
arbitrary vertices. More formally [14]:
• RRT-connect expands two trees towards each other,
one from the start node, and the other from the goal
v k vi × vl vk node. They interchange the roles of expanding-towards-
t= (7)
vj vi × vl vk the-other and expanding-randomly. The algorithm ter-
vk v i × vj vi minates ones a connection is established between trees.
u= (8)
vj vi × vl v k • ERRT makes use of the idea of way-point caching.
∀vi vj , ∀vk vl , vi 6= vj , vk 6= vl (9) Therefore search operation becomes biased towards the
paths found in the earlier successful executions.
For instance; if vj vi × vl vk = 0 then these line segments • Multi-Bridge ERRT is similar to the RRT-connect but
are parallel, and also if vk vi = 0 these lines are collinear. it continues to execution although a connection is estab-
Otherwise t and u are going to be calculated as scalar values. lished between the trees until a prespecified number of
If they are not in the interval of [0, 1], then these lines are not connections are established. Then the resultant structure
intersecting with each other. Since selecting vi vj has O(n2 ) is not a tree anymore. To find the shortest path an
complexity and there are O(n) intersection tests this VG optimal graph search algorithm is used, such as A*.
construction method has an overall complexity of O(n3 ).
A better approach would be applying the rotation plane
III. E XPERIMENTAL S ETUP
sweep algorithm which has the complexity of O(n2 logn),
which is shown in the figure 7. Sweep line algorithm also Webots[19] or Gazebo simulation environments are going
to be used by heavily utilizing ROS[20] graph concepts in the
design of the system. If time permits, the winner algorithm
can be run on the actual system with real robots8 for a
previously defined test scenario.

Fig. 8: An actual soccer Fig. 9: Simulated robot in


robot, from the team Robo- Webots simulation environ-
Turk. ment.
Fig. 7: Rotation sweep line algorithm. Adapted from [9].

discards adding needless edges but only considers supporting IV. E XPERIMENTS
and seperating lines which reduces the number of edges.
Once the visibility graph is constructed, an optimal path In this section preliminary results for the APF methods are
search algorithm such as A* can be utilized to obtain a set given for three scenarios, one-obstacle direct-free path, three-
of edges that are on the shortest path. obstacle indirect-free path, two-obstacle direct-free path.
A. Case: One-obstacle direct-free path
In this experiment, we would like to see if the robot
can traverse around a single obstacle to reach the goal
position by following a preferably linear path. Normally,
since the obtacle is not entirely in the path of the robot, we
would expect that the robot almost-directly goes to the target
position. But it is shown that without doing a visibility check
basic additive potential fields may cause perturbances in the
path or even oscillations depending on how the attraction
and repulsive gains are set. Navigation functions, on the
other hand, may give a better path if κ is properly chosen.
Since there is not a theoretical way to select best κ, selection
process may require serious intuition and effort.
Fig. 12: From top left to the bottom right κ values are 3,4,5
and 7. The time it takes to reach to the goal is tκ3 =no
value, tκ4 = 62s, tκ5 = 53s and tκ7 = 45s in simulation
time. That’s why κ is chosen to be 7 in the experiments.
Please notice that the viewpoints of these figures are different
than each other, careful inspection will reveal the fact that
as κ values decrease, the length of the path increases since
the shape of the bowl=like potential function becomes more
spreaded-out.

TABLE I: Overall results


Additive Navigation
Experiment time(sec.) path(m) time(sec.) path(m)
Fig. 10: Left: additive att/rep potential function, right: navi- Case 1 2.5 1.25 2.5 1.26
gation potential function. Case 2 ∞ ∞ 45.52 1.97
Case 3 ∞ ∞ 1.5 1.09

B. Case: Three-obstacle indirect-free path


may not result a complete solution, although the only thing
that the robot should do is going just forward.
Navigation function, on the other hand, could find a path
between the obstacles, though the movement was a little
oscillatory. One reason of the oscillation is the delay between
the communication nodes(=processes) since the PC that I’ve
used for the experiments was a standard laptop.
The overall results for the three experiment cases are given
in the table I. Although additive potential functions are lack
of completeness, in most of the cases, they provide shorter
paths than the paths navigation functions return.

V. C ONCLUSIONS AND F UTURE W ORK


Fig. 11: Left: additive att/rep potential function, right: navi-
gation potential function. In this report, several path planning algorithms are in-
vestigated and preliminary test results are given for various
As it is shown in figure 13, basic att/rep potential function APF methods. It can be deduced from the test results
method suffers from the local minima problem and robot gets that the APF with navigation function is not suitable for
stuck at some point. On the other hand, navigation function robot soccer domain since it may require a great deal of
finds a path to the goal, though far from being optimal. time to speed the robot up until finally robot is started to
Figure 12 shows how the path length varies with different κ being gravitated towards the goal position. However, additive
values. attractive/repulsive potential function based APF with the
obstacle grouping extension gives promising results.
C. Case: Two-obstacle direct-free path In this study, I’m at the stage of implementing VG
Although this case is similar to first case, it shows the and various RRT algorithms. Once the implementations are
severity of the additive att/rep potential fields which even finished, APF w/ obstacle grouping, VG, and RRT-based
R EFERENCES
[1] V. J. Lumelsky and A. A. Stepanov. Path-planning strategies for a
point mobile automaton moving amidst obstacles of arbitrary shape.
Algoritmica, 2:403-430, 1987
[2] H. Choset and J. W. Burdick. Sensor based planning, part ii: Incremen-
tal construction of the generalized voronoi graph. In IEEE International
Conference on Robotics and Automation, Nagoya, Japan, May 1995.
[3] I. Kamon, E. Rivlin, E.Rimon. A new range-sensor based globally
convergent navigation algorithm for mobile robots. Robotics and
Automation, 1996. Proceedings., 1996 IEEE International Conference
on In Robotics and Automation, 1996. Proceedings., 1996 IEEE
International Conference on, Vol. 1 (1996), pp. 429-435 vol.1.
[4] Khatib, O. 1986. Real-time obstacle avoidance for manipulators and
mobile robots. Int. J. Rob. Res. 5(1):9098.
[5] R. Jarvis. Coliision free trajectory planning using distance trans-
forms.Mech. Eng. Trans. of the IE Aus, 1985.
[6] J. Barraquand, B. Langlois, and J.C.Latombe. Numerical potential
field techniques for robot planning.IEEE Transactions on Man and
Cybernetics, 22(2):224-241, Mar/Apr 1992.
[7] Koditschek, Daniel E., and Rimon, Elon: Robot navigation functions
on manifolds with boundary, Advances in Applied Mathematics 11(4),
volume 11, 412442, 1990.
[8] Rimon, Elon and Koditschek, Daniele; Exact robot navigation using
artificial potential functions IEEE Transactions on Robotics and Au-
tomation. Vol. 8, no. 5, pp. 501-518. Oct. 1992
[9] Principles of Robot Motion by Howie Choset etal., MIT Press, 2005,
ISBN: 0-262-03327-5
[10] J. Barraquand and J.-C. Latombe. Robot motion planning: A
Fig. 13: Top: additive att/rep potential function, bottom: distributed representation approach. Internat. J. Robot. Res.,
navigation potential function. 10(6):628649, 1991
[11] B. Zhang,W.Chen, M. Fei, An optimized method for path planning
based on artificial potential field, Sixth International Conference on
Intelligent Systems Design and Applications (ISDA’06) Volume 3
algorithms are going to be tested for the scenarios pretty (2006)
much the same with the ones used to test APF methods as [12] Lozano-Perez T. and Michael A. Wesley. 1979. An algorithm for
it is given in this report. planning collision-free paths among polyhedral obstacles. Commun.
ACM 22, 10 (October 1979), 560-570
During the tests, there will be several comparison metrics, [13] M. de Berg, M. van Kreveld, and M. Overmars. Computational
such as: Geometry: Algorithms and Applications. Springer, Berlin, 1997.
[14] Goldman R., Intersection of Two Lines in Three-Space, in Andrew S.
• tplan : The time it takes for the algorithm to generate
Glassner, ed., Graphics Gems, Academic Press, p. 304, 1990.
sound and preferably-optimal path. [15] S. M. LaValle. Rapidly-exploring random trees: A new tool for path
• texec : The overall and individual times it takes for planning. TR 98-11, Computer Science Dept., Iowa State Univ., Oct.
1998
each robot to follow the path being generated, or to [16] Kuffner, J.J., Jr.; LaValle, S.M.; , ”RRT-connect: An efficient approach
reach a particular goal configuration from a given initial to single-query path planning ,” Robotics and Automation, 2000.
configuration. Proceedings. ICRA ’00. IEEE International Conference on , vol.2,
no., pp.995-1001 vol.2, 2000
• saf ety: How safe the robots are while traversing
[17] Bruce, J.; Veloso, M.; , ”Real-time randomized path planning for
through this path. This can be calculated by summing up robot navigation,” Intelligent Robots and Systems, 2002. IEEE/RSJ
the distances between the robots while they are getting International Conference on , vol.3, no., pp. 2383- 2388 vol.3, 2002
[18] Based on: Bruce J. R., Real-Time Motion Planning and Safe Naviga-
closer to each other during their journey. Summation tion in Dynamic Multi-Robot Environments, PhD. Thesis, 2006
procedure can be done if the robots are close to each [19] Michel, O. Webots: Professional Mobile Robot Simulation, Interna-
less than a predefined safety region threshold. tional Journal of Advanced Robotic Systems, Vol. 1, Num. 1, pages
39-42, 2004
As a feature work, dynamics of the robot and the ball-if [20] Quigley M., Conley K., Gerkey B., Faust J., Foote T. B., Leibs J.,
it is being dribbled- can be taken into account to compare Wheeler R., and Ng A. Y. (2009). Ros: an open-source robot operating
these algorithms again by using the similar metrics as they system. n International Conference on Robotics and Automation, ser.
Open-Source Software workshop.
are given above. This kind of a planning approach is applied [21] Zickler S., Physics-Based Robot Motion Planning in Dynamic Multi-
to the RRT based planner, called behavioral kinodynamic Body Environments PhD Thesis, 2010, Computer Science Department,
RRT[21]. Therefore, test scenarios can be enriched by adding Carnegie Mellon University Thesis Number: CMU-CS-10-115
controllable and uncontrollable dynamic robots to the en-
vironment, and a ball dribbling scenario where the ball
possession can also be considered as yet-another comparison
metric.
VI. ACKNOWLEDGEMENTS
Some part of this study, particularly APF case-studies are
done for the homework fulfillment of CS548 Robot Motion
Control and Planning course offered by Dr. Uluc Saranli.

Вам также может понравиться