Academia.eduAcademia.edu

Planning the Sequencing of Movement Primitives

2004

Neuroscience evidence supports the idea that biological adaptive behavior may utilize combination and sequences of movement primitives, allowing the motor system to reduce the dimensionality of movement control. We present a framework, using sampling-based motion planning, that is able to automatically determine the sequencing of para metric movement primitives needed to execute a given motion task. Our approach builds a search tree in which nodes are configurations reachable with one or more movement primitives, and edges represent valid paths connecting parent and child nodes. The paths are determined by a motion planner that operates in the parameter space of a single movement primitive. The search tree is expanded with A*-like best-first search using greedy problem-specific heuristics. The benefits of our approach are twofold: 1) planning complex motions becomes more efficient in the reduced dimensionality of each movement primitive, and 2) the ability to plan entire motions con...

In Proceedings of the International Conference on Simulation of Adaptive Behavior (SAB 2004) Los Angeles, California, July 13-17, 2004 Planning the Sequencing of Movement Primitives Marcelo Kallmann1, Robert Bargmann2* and Maja Mataric′ 3 1,3 Interaction Lab/Robotics Research Lab Computer Science Department University of Southern California Los Angeles, California 90089-0781, USA {kallmann,mataric}@usc.edu Abstract Neuroscience evidence supports the idea that biological adaptive behavior may utilize combination and sequences of movement primitives, allowing the motor system to reduce the dimensionality of movement control. We present a framework, using sampling-based motion planning, that is able to automatically determine the sequencing of parametric movement primitives needed to execute a given motion task. Our approach builds a search tree in which nodes are configurations reachable with one or more movement primitives, and edges represent valid paths connecting parent and child nodes. The paths are determined by a motion planner that operates in the parameter space of a single movement primitive. The search tree is expanded with A*-like best-first search using greedy problem-specific heuristics. The benefits of our approach are twofold: 1) planning complex motions becomes more efficient in the reduced dimensionality of each movement primitive, and 2) the ability to plan entire motions containing heterogeneous types of constraints, such as collision-free, balanced, alternating support contacts, etc. We present a general framework and several simulation results of statically stable biped walking motions among obstacles. The presented planning capabilities enable robots to better handle unpredicted situations, and can be used as a method of self-organization of higher-level primitives. 2 Computer Graphics Group Max-Plank-Institut für Informatik 66123 Saarbrücken, Germany [email protected] (*Work done while at EPFL-VRlab) In the frog and rat, for instance, the presence of spinal force fields, when appropriately combined through supra-spinal inputs, results in the entire repertoire of observed movement [Gi+93]. Studies of human movement [TS00] also provide evidence towards an encoding of primitives. In robotics, most work in this domain has focused on the design, learning, and combination of different kinds of motor primitives [SS98] [AM02] [Wi96]. In contrast, our work focuses on the problem of automatic adaptation and sequencing of movement primitives in order to satisfy a given motion task in an unknown environment. We consider that a movement primitive affects the configuration of a robot through a proper parameterization, respecting a set of motion constraints. Our method is then able to plan motions traversing different configuration subspaces, each being covered by a single primitive. As a result, we are able to plan entire motions respecting heterogeneous types of constraints, such as: collision free, in balance, alternating support contacts, etc (see Figure 1). (a) (b) (c) (d) 1. Introduction The control of complex robot motions remains a key challenge in robotics. While the number of degrees of freedom (DOF) can characterize the complexity of a robot, the complexity of its motions is further influenced by the constraints they are subjected to. Evidence from neuroscience supports the idea that complex and adaptive motor behavior might be obtained through the combination of motor primitives [TS00] [Ma02]. Figure 1: Climbing motion obtained with movement primitives designed to operate in the different support modes. Our method finds the sequencing of primitives by means of a search tree in which nodes are configurations reachable by more than one movement primitive, and edges represent valid paths connecting parent and child nodes. A sampling- based motion planner operating in the parameter space of a single movement primitive determines each valid path. Therefore, edges represent primitive motions leading to nodes that serve as connection points allowing primitive change. The tree is expanded with A*-like best-first search using greedy problem-specific heuristics [RN95], until the desired task is satisfied. The given vocabulary of movement primitives is responsible for reducing the planning complexity, which is related both to the number of DOF to be controlled and to the diversity of motion constraints to be satisfied. If the vocabulary of movement primitives is able to express the motions required to satisfy the task, the planner will easily find connection points between primitives, allowing the search tree to approach a solution. The chosen planner dictates the strategy of how movement primitives are adapted to overcome obstacles towards connection points. Our method focuses on the generation of kinematic trajectories, assuming that a PD controller is available in order to transfer motions to the real robot. This choice is motivated by three main reasons: • Kinematic plans are independent of motor commands, thus more suited to support the idea that complex motions are structured trough combination and sequencing of movement primitives. • There is neuroscience evidence of representation of kinematic trajectory plans in the parietal cortex and inverse dynamics models in the cerebellum [SS98]. • We are able to plan motions respecting more difficult constraints, such as maintaining support contacts during locomotion or object manipulation. We present a general framework, applicable to different problems and several simulation results of a statically stable biped walking among obstacles. 2. Related work Very few works have attempted to plan complex robot motions by sequencing movement primitives. Typically, research has independently addressed the problems of designing and learning control policies, or the general problem of motion planning in configuration spaces. We review the main works addressing these issues. Motor primitives Most previous work in robotics related to motor primitives has focused on the design and learning of control policies, based on the combination of different kinds of motor primitives [SS98] [AM02] [Wi96]. Note that, although motor, movement, and motion primitives are commonly interchangeable terms, the term motor primitive usually deals with motor commands. Motor primitives are often divided in two classes: oscillatory and postural (discrete). Being influenced by neuroscience, these works mainly concentrate on learning or skill acquisition, in dynamically simulated or real humanoid robots. Motion planning Several algorithms are available for the general problem of robot motion planning [La91]. In particular, sampling-based methods provide general algorithms applicable to problems of arbitrary dimensionality of control. These methods can be divided into two main categories: multi-query and single-query. Multi-query methods build a Probabilistic Roadmap (PRM) [Ka+96] that can be used for several different queries in a single static environment. The basic procedure consists of randomly sampling the configuration space, creating nodes when samples are valid, and connecting pairs of nodes each time the connection is tested to be valid and the nodes are considered to be close enough. Several variations to the basic PRM approach have been proposed [Be03] [Si+00] [BK00]. A good overview and comparison is given in [GO02]. Single-query methods are used when the environment is not static. Roadmaps are built specifically for each query, but, for better efficiency, trees are used instead of graphs. The Rapidly-exploring Random Tree (RRT) [KV00] [Va98] is a popular single-query method. Its basic idea is to expand nodes of the tree toward random samples until reaching the goal configuration. Another efficient method is based on Expansive Spaces Trees [Hs+99], where nodes in low-density locations are locally expanded. An efficient bi-directional version [SL01] incorporating lazy collision detection [BK00] is also available. We make use of probabilistic roadmaps constructed in the valid portion of the configuration space covered by one movement primitive. Nodes of the roadmap are candidate configurations to serve as connection points to another movement primitive. Although the choice of a planner should take into account problem-specific issues, we use in this work an RRT [KV00] [Va98] approach to create roadmaps in the parametric space of movement primitives. Legged locomotion Several different approaches have been presented for the control of legged locomotion. Genetic algorithms [RN95] have been used to adjust synapse weights of neural networks in central pattern generators [Ij01], and to evolve developmental programs based on pre-designed specific grammars [Fi +99]. Dynamic biped locomotion is usually achieved through the design of specific control policies [Zo+02], or based on the Zero Moment Point [Mi+95]. Our work is limited to statically balanced motions. Our approach can be seen as a complementary way to plan different patterns of motions required to overcome unanticipated situations. Some works in the virtual reality and computer games domain have also addressed the locomotion problem of legged characters. In particular, motion planners were proposed for the multi-modal locomotion of a 2D character [KP01], and for planning footsteps locations, which can be connected with warped motion-captured sequences applied to virtual characters [Ch03]. The work presented by Kuffner et al. [Ku+01] [Ku+02] also relies on a search procedure in order to sequence predesigned leg motions of a simulated humanoid robot. Their approach is more efficient than ours, however is limited to pre-designed motions. In our approach new types of motions are generated, for instance to avoid obstacles of any shape or use them as support. 3. Definitions and notations Let d be the number of degrees of freedom (DOF) of a given robot and let C be the d-dimensional configuration space of the robot. A configuration in C is said to be valid if it satisfies problem-specific validity requirements. Examples of validity requirements are: collision-free, balanced, etc. The subset of all valid configurations in C is denoted as Cfree. Movement primitive As d might be too high and C might be too complex due to motion and environmental constraints, we are limited to manipulating the robot only by means of a finite set of movement primitives. Each primitive defines a control policy that locally alters a given configuration, according to a proper parameterization space. Therefore, each movement primitive Pi, i∈{1, …, n}, when instantiated at a given configuration s∈C, becomes a function of the type: Pis: Sis → C s (1) Si is the parameter space of primitive i, instantiated at configuration s. Configuration s is also said to be the starting point of movement primitive Pi s. There are two main reasons for having the parameterization space dependable on s: first, parameters are often considered in relation to a local frame relative to s, and second, s might imply specific limits on the parameterization. We also allow that the dimension of the parameterization space change according to the instantiation. Each primitive Pi has instantiation conditions to satisfy. If, for a given s∈C, the instantiation conditions of Pi cannot be verified, we say that Pi cannot start at configuration s. For example, a movement primitive for balanced knee flexion might be designed to start only when both feet are in contact with a proper support. Each movement primitive has to be constructed in such a way as to allow the implementation of some required operators. These operators vary according to the motion planner selected to operate on the primitive parameter space. Typical motion planners considered in our framework require, for each instantiated primitive Pi s, the existence of a distance function and an interpolation function. The motion planner is responsible for building a roadmap graph connecting s to other configurations in the free portion of the configuration space covered by primitive Pis. Roadmap Let Cis ⊂ C denote the image of movement primitive Pis, i.e., for any s∈C, Cis = Pis(Sis) if Pis can be instantiated at s, and Cis≡∅ otherwise. Cis represents the subspace of C covered by primitive Pis. We define the roadmap of a movement primitive instance as a single connected graph R(Pis). Nodes in the graph are valid configurations belonging to Cis∩Cfree, and edges in the graph represent valid paths in Cis∩Cfree joining the edges endpoints. The starting node s of the primitive is required to be a node of R(Pis). For simplicity of notation, we may also refer to the nodes of a roadmap as the configurations of the roadmap. Usually, for computational efficiency, roadmap edges are determined by checking the validity of the interpolation between the edge endpoints, and thus it is assumed that primitive Pis has a proper efficient interpolation function interpis of the type: interpis: Sis × Sis × [0,1] → Sis (2) As usual, the interpolation function is parameterized over the interval [0,1], so that interpis(p1, p2,0)= p1, and interpis(p1, p2,1)= p2, for a given pair of points {p1, p2}∈Sis. We say that the interpolation of a pair of points {p1, p2} is valid if, for all t∈[0,1], Pis ( interpis (p1, p2, t) ) is a valid configuration, i.e., belongs to Cfree. Analogously, we say that there is a valid path joining q1∈Cfree and q2∈Cfree if there is an instantiated primitive Pis and two points {p1, p2}∈Sis, such that q1=Pis(p1), q2=Pis(p2), and the interpolation between p1 and p2 is valid. Note that the interpolation function is defined in parameter space, meaning that paths are first generated in parameter space and then transformed into the configuration space for validity testing. With this formulation all the roadmap computation is done locally to the movement primitive, and does not require the computation of the inverse of the movement primitive function. Besides the interpolation function, a distance metric is often required during the roadmap construction process. In Section 4 we describe an algorithm that constructs roadmaps following the RRT [KV00] [Va98] expansion strategy. Roadmaps are used as a sampling strategy to transform the continuous parameterization of a movement primitive into a discrete set of configurations (the nodes of the roadmap), which are suitable for inclusion in a search tree. Problem definition Let Pi, i∈{1, …, n} be a given set of movement primitives manipulating a robot as defined above. Consider that the task to be accomplished is defined as a function that returns 1 if a given configuration q satisfies the task, and zero otherwise, i.e.: task (q) : C → {0,1} (3) The problem we want to solve is determining a sequence of configurations (qj)j=1,m, such that: • The current robot configuration is equal to q1 • task (qm) = 1 • For each pair of configurations qk, qk+1, 1≤k<m, there is a valid path connecting qk and qk+1. Note that the determination of each valid path requires the determination of the instantiated primitive that generates it (trough the primitive’s interpolation function). The solution (qj)j=1,m implies the determination of a sequence of paths joining q1 to qm. For simplicity of notation, we also say that a valid path between two configurations exists when in fact there is a sequence of paths joining them. When needed, we distinguish these two cases with the terms: composed path and direct path. 4. General method Our approach is based on a search tree where nodes represent reachable valid configurations, and edges contain paths between parent and child nodes. At any point, a partial solution can be constructed by concatenating the paths in the unique sequence of edges joining the root node to a given node. The algorithm starts by initializing the root of the tree with the current robot configuration, and then an expansion process adds nodes to the tree until the task function is satisfied. A cost is associated with each node and represents the cost of the path constructed so far. The root node is initialized with cost 0. A priority queue is used to efficiently store the leaves of the tree according to their priority of expansion. Generally, an A* expansion [RN95] is followed, where the highest priority is given to the leaves with less heuristic cost. The simplest heuristic cost for a given node n sums the cost of n with an estimate of the distance to achieve the goal task from n. Several problem-specific heuristics can be added to this basic formula, and they are important in ensuring that the search tree grows toward the solution. After initialization, the highest priority leaf q is removed from the priority queue (not the tree), and a roadmap is constructed from q. Nodes in the roadmap that allow primitive change are added to the priority queue as new leaves, and added to the search tree as children of q. The following algorithm summarizes this expansion step: expand ( tree, queue ) 1. q = remove higher priority leaf from queue; 2. if task(q)==1, do: return composed path from root(tree) to q; 3. for i = 1 to n, do: 4. if Pi can be instantiated at q, and Pi was not instantiated by q parent, do: 5. R(Piq) = build_roadmap ( i, q ); 6. for all configurations qr≠q in R(Piq), do: 7. if qr can be instantiated by a different movement primitive than Pi, do: 8. edge = add_child ( tree, q, qr ); 9. store in edge the path in R(Piq) joining (q,qr); 10. add leaf qr to queue; 11. return null path; build_roadmap ( i, s ) 1. R(Pis) = init roadmap with node s 2. failures = 0 3. while failures<MaxTries, do: 4. prand = random point in Sis; 5. pnear = nearest node to prand in R(Pis); 6. dist = distance ( pnear, prand ); 7. pnew = interpis (pnear, prand, IncrementalStep ); 8. if ( pnear and pnew interpolation valid ), do: 9. add node pnew and edge {pnear,pnew} to R(Pis); 10. failures = 0; else 11. failures++; 12. return R(Pis); Procedure expand is called until a non-null path sequence (the solution) is returned. Each time a node is expanded, procedure roadmap returns a single connected roadmap graph. The nodes of the graph are candidate to become new leaves in the search tree. Procedure build_roadmap implements a general roadmap construction method following the RRT [KV00] [Va98] expansion strategy. It requires the definition of two parameters. Parameter MaxTries specifies the number of failures that are needed in order to decide that the roadmap cannot grow any more. Parameter IncrementalStep provides control over the length of the edges in the graph. For more uniform resolution control, a length step measured in configuration space should be used whenever possible. Several problem-specific issues can be addressed during roadmap construction. For instance, in the biped robot case presented in the next section, whenever a node in the roadmap is detected to be close to a configuration serving as a connection point, we move the node to that connection point. Note that a random generator routine is used in procedure roadmap in order to generate the points in parameter space that guide the roadmap expansion. There is no problem if the free portion of the parametric space is much smaller than the whole parametric space. The RRT expansion strategy provides a suitable gradual exploration of the free space, and its implementation is simple and efficient. However, whenever possible, the choice of the roadmap construction strategy should be problem-(and primitive-)-specific. As roadmaps represent a discretization of a continuous space, it is not possible to guarantee that the search tree will find the optimal solution. However, usually we are not interested in finding the optimal solution as the search tree easily becomes prohibitively large and greedy heuristics are always preferred. In addition, problem-specific optimizations are likely to be crucial for having acceptable running times for complex problems. In the next section we demonstrate how our framework can be applied to generate motions for the control of a statically stable biped robot. 5. Biped robot example We have implemented and tested the algorithm described in the previous section on planning statically stable walking motions for a biped robot moving in a planar environment containing polygonal obstacles. Obstacles are avoided during motion and are also used as support, allowing the generation of climbing sequences (see Figure 1). The designed biped robot has a total of 9 DOF: the first two specify the position of the body center in the Cartesian plane. The remaining DOF are rotation angles: one to specify the orientation of the body, and three for the articulations of each leg (see Figure 2). Each rotational DOF of the robot has specific lower and upper articulation limits. The two positional DOF have no limits, however when they are controlled by a movement primitive, they have limits imposed by the instantiated parameterization space of the primitive. Configuration validity Let C be the 9-dimensional configuration space of the biped robot. We define a configuration q∈C to be valid if q: • Satisfies the articulation limits of the robot. • Is collision-free, i.e., does not intersect with obstacles. • Is in balance, i.e., its center of mass projects inside the support segment of the robot. As the simulated robot is constructed in a planar environment, the validity tests have a straightforward implementation. However, some special care is required in geometric tests, such as deciding support contacts. In our implementation, all geometric tests are based on an epsilon precision distance. When the two endpoints of a foot are close enough to an obstacle segment, but without crossing it, the foot is considered to be in contact with the segment and a support segment is defined. When both feet are in support, the support segment is increased to contain the support segment of the two feet. For the computation of the center of mass we associate a mass value mk, k∈{1, …, 7}, to the center of each robot part Pk, each being a limb or the body. The center of mass position is then determined by the following weighted average sum: ( ∑center(Pk)mk ) / 7 (4) The robot is considered in balance if its center of mass vertically projects inside the support polygon. Collisions are detected whenever a limb segment crosses an obstacle segment or another limb segment. instantiation condition is support on both feet, and its parameterization controls the position and orientation of the robot’s body, keeping the feet fixed at their support location. • Similarly to PL, PR is designed to move the left leg while the robot keeps support on the right leg. The parametric spaces of movement primitive PL and PR both have dimension 4. The affected rotational angles have the same range limits as those originally defined by the robot, except for body rotation, which is allowed only in the direction that favors the free leg to reach higher positions. Whenever body rotation is changed, the angles of the support leg have to be adjusted in order to maintain the support foot in the same place. This adjustment is done by employing a straightforward analytical Inverse Kinematics formulation for the foot to be fixed. Movement primitive PB defines specific range limits for the two translational DOF it controls. Let s∈Cfree be a configuration and assume that PB can be instantiated at s, i.e., s has support in both feet. Let p be the body center point of the robot at s. The translational parameters of PBs are limited to be inside a rectangle of center p and sides with double the length of the body sizes. In this way we have a much smaller range of motion for the motion planner to explore the free portion of the parameterization space. An Inverse Kinematics formulation is also applied to maintain both feet fixed at their original places while the translational and rotational DOF of primitive PB are changed. Table 1 summarizes the main characteristics of the movement primitives. Movement Primitive Y Figure 2: The planar biped robot and its nine DOF. The defined task function checks if the center of mass of the robot is close enough to a desired location, according to a given precision. Movement primitives Three movement primitives are defined, each specific to a support mode: • Movement primitive PL is used to move the right leg of the robot while balance is maintained only with the support of the left foot. Therefore the instantiation condition of this movement primitive requires support on the left foot. • Movement primitive PB was designed to move the body while the two legs remain attached to the floor. The Type of Motion Parametric Space Dimension moves right leg articulations and 4 body rotation support in moves body, legs 3 PB both feet fixed with IK moves left leg support in articulations and 4 PR right foot body rotation Table 1: Summary of used movement primitives. PL X Instantiation Condition support in left foot Note that some configurations allow the instantiation of two different movement primitives. This happens when the configuration allows two different types of support, i.e., when the robot has support in both feet, and, at the same time, support in one foot alone. Such configurations serve as connection points between two different movement primitives. Figure 3 illustrates the different kinds of support modes. Motion planner A single motion planner was implemented to operate in the parameter space of primitives PL, PB, and PR, and it closely follows the algorithm build_roadmap of Section 4. The random function we used simply selects values inside the range defined for each parameter of each movement primitive. The interpolation function linearly interpolates the corresponding parameters of two given sets of parameters of a primitive. As a distance function, instead of operating in the parameter space, we compute the mean of the Euclidian distances between the corresponding articulation points of two given configurations. The same distance function is used regardless of the movement primitive being considered. (a) (b) (c) (d) one selected for node expansion, now with a single leg support. The roadmap in Figure 4d shows the coverage of the free foot in free space, and shows marks in two configurations again allowing a primitive change, and thus becoming new leaves in the next expansion of the tree. In all images, the circle identifies the root of the roadmaps. (e) Figure 3: Example of configurations in different support modes: only in left support (a), simultaneous left and both feet support (b), only both feet support (c), simultaneous right and both feet support (d), and only in right support (e). In order to promote the appearance of configurations in more than one type of support, we include a test during roadmap construction that detects configurations which are close to making contact with a new support. The test consists on measuring the distance between each foot of the configuration to its nearest obstacle. If one distance is smaller than the pre-specified snap distance, the configuration is adjusted with Inverse Kinematics in order to precisely place the foot in contact with the support. Such adjustment is critical, because the achievement of new supports is the only way to find configurations allowing primitive change. The specified snap distance trades the ability to find new supports with the ability to avoid obstacles, and should be set according to the environment. Search Tree Heuristics After initialization, the search tree is expanded following the general algorithm given in Section 4. The heuristic cost of a leaf in the priority queue is: hc(n) = cost(n) + distance(n mass center, target point) (5) Term cost(n) is the cost of the path from the configuration at the root of the tree to n. The cost is defined as the length of the path, according to the same metric used for the roadmap construction: the average of the Euclidean lengths of the articulations paths. The target point is the same point considered by the task function, which tests if the center of mass is close enough to the target point. The leaf with lowest heuristic cost has higher priority and will be removed first from the priority queue. Removed leaves are then expanded. Figure 4 illustrates the expansion process. Figure 4a shows the roadmap constructed for the robot in a configuration with both feet in support. Each node in the roadmap represents a full configuration, but in this image, only the position of the body center is used to draw the roadmap. The roadmap in Figure 4b shows a mark (a cross) on each node allowing primitive change, which are the nodes becoming new leaves in the search tree. Figure 4c shows the robot configuration in the highest priority leaf, which is the (a) (b) (c) (d) Figure 4: Node expansion example starting with both feet support. Although the heuristic cost function is rather standard, three greedy optimizations were tested in order to reduce the branching factor and direct the search to the goal: • The first optimization, and the most important, relies on the observation that some sequences of nodes in the search tree are not useful. This occurs when three adjacent nodes in the three have the support modes on: left foot, both feet, and left foot, respectively; or all have support simultaneously in both feet and in the left foot alone. The same occurs to the analogous sequences in relation to the right foot. Therefore, before inserting nodes in the search tree, we ensure that such sequences are not formed by checking the parent and grandparent nodes in the tree. More complex analysis in the search tree could be investigated, as, for instance, collapsing different nodes with the supporting feet located at the same place. • Long locomotion sequences can easily demand prohibitively large time and memory consumption. The search tree is not suitable for planning long paths around a large amount of obstacles, but for planning leg motions for nearby obstacles. Therefore, whenever the current node n being expanded is sufficiently far away from the root node of the tree, the partial path until n can be stored, the whole tree deleted, and initialized again with the new root being n. • Another optimization can be used to limit the creation of excessive nodes in the same location of the environment. A planar grid can be easily implemented in order to control, for each cell, a maximum number of nodes occupying that cell. This procedure can speedup the search in some situations, but has some negative impact on the quality of the generated paths. 6. Discussion and results Our implementation is able to find simple motions in a few minutes. Complex motions, however, require several minutes or more to be computed on a 2.8GHz Pentium 4. The required computation time is related both to the difficulty to overcome obstacles and to the chosen parameters of the planner and of the implemented heuristics. As example, the motion shown in Figure 5 took 50 minutes to be computed and generated a search tree of about 600K nodes. The branching factor of the search tree is greatly influenced by the resolution step used in the motion planner. This step affects the number of nodes computed in each roadmap, and thus also the branching factor. With a small resolution step, the solutions are likely to be closer to an optimum, but large branching factors are not efficient and can quickly exhaust memory resources. Parameter MaxTries (see Section 4) can be usually set to low values, allowing fast computation of roadmaps. However, in environments with many obstacles, larger values are required. In such cases, roadmaps only generate child nodes in the search tree after many random tries. Due to the sampling strategy of roadmaps, solutions are clearly not optimal. However, few optimal characteristics could be noted: large steps are generated towards the goal in the absence of obstacles and few finer steps are performed next to obstacles in order to determine the best position before overcoming them. Figures 1, 5 and 6 show some of the results obtained. Note that the final result may exhibit some jerky motions, due to the exploration strategy of the roadmap computation. A simple and efficient smoothing process consists of trying to replace pair of points in the path by valid straight interpolations [Sc+02]. However, the presented results were not smoothed. Videos showing further results can be found at: http://robotics.usc.edu/~kallmann/biped2d/ required before overcoming them. Nevertheless, the planner successfully found several non-trivial solutions. 7. Conclusions We have presented a search method for planning complex motions trough the concatenation of paths generated by biologically-inspired movement primitives. Our approach introduces a way to apply sampling-based motion planning techniques in order to compose motions controlled by heterogeneous types of parameterizations. We are thus able to respect different types of constraints, e.g., alternating support contacts. In addition, planning complex motions usually becomes more efficient in the reduced dimensionality of each movement primitive. Our method is able to find motions for unanticipated situations. This adaptive behavior characteristic is of key importance and is supported by neuroscience evidence showing that complex motions in animals might be structured through the use of movement primitives. The framework presented in this paper can be applied to other kinds of problems as well. Examples include mobile manipulators equipped with different primitives for locomotion and manipulation, and the automatic generation of higher-level primitives based on motions planned with simpler ones. For instance, portions of planned motions that are detected to be useful can be directly encoded and used as a new time-parameterized primitive. In general, any control policy with a suitable parameterization can be treated as a movement primitive. However, the success of the best-search method greatly depends on the availability of efficient problem-specific heuristics; otherwise the branching factor of the search tree can easily become prohibitively large. Acknowledgments The first author is grateful to Dr. Anand Panangadan for fruitful discussions. This work was supported by a DARPA MARS 2020 Program grant NAG9-1444. References Figure 5: Example motion over an obstacle. Although the robot design used in this work is quite simple, we note that it is rather difficult to make it overcome obstacles by manually controlling the parameters of the movement primitives by means of a user interface. The validity constraints leave a small motion range in several situations, and precise positioning prior to obstacles is often [AM02] R. Amit and M. J. Mataric′, “Parametric Primitives for Motor Representation and Control”, Proceedings of the IEEE International Conference on Robotics and Automation (ICRA-2002), Washington, DC, May 11-15, 2002, pp. 863-868. [Be03] K. E. Bekris, B. Y. Chen, A. M. Ladd, E. Plakue, and L. E. Kavraki, “Multiple query probabilistic roadmap planning using single query planning primitives”, Proc. of the International Conference on Intelligent Robots and Systems (IROS), Las Vegas, USA, 2003. [BK00] R. Bohlin and L. Kavraki, “Path planning using lazy PRM”, Proc. of the International Conference on Robotics and Automation (ICRA), San Francisco, USA, 2000, pp. 521-528. [Ch03] M. G. Choi, J. Lee, S. Y. Shin, “Planning biped locomotion using motion capture data and probabilistic roadmaps”, ACM Transactions on Graphics (TOG), 22(2), 2003, pp. 182-203. [Fi+99] [Gi+93] [GO02] [Hs+99] [Ij01] [Ka+96] [KP01] [Ku+01] [Ku+02] [KV00] [La91] D. Filliat, J. Kodjabachian, and J.-A. Meyer, “Evolution of Neural Controllers of for locomotion and obstacleavoidance in a 6-legged robot”, Connection Science 11:223-240, 1999. S. F. Giszter, F. A. Mussa-Ivaldi, and E. Bizzi, “Convergent force fields organized in the frog’s spinal cord”, Journal of Neuroscience 13(2):467:491, 1993. R. Geraerts and M. Overmars, “A comparative study of probabilistic roadmap planners”, Proc. of the International Workshop on Algorithmic Foundations of Robotics (WAFR), Nice, France, 2002. D. Hsu, J.-C. Latombe, and R. Motwani, “Path planning in expansive configuration spaces”, International Journal of Computational Geometry and Applications, 9(45):495-512, 1999. A. J. Ijspeert, “A connectionist central pattern generator for the aquatic and terrestrial gaits of a simulated salamander”, Biological Cybernetics 84(5): 331-348, 2001. L. E. Kavraki, P. Svestka, J.-C. Latombe, and M. H. Overmars, “Probabilistic roadmaps for fast path planning in high-dimensional configuration spaces”, IEEE Transactions on Robotics and Automation, 12(4):566580, June 1996. M. Kalisiak and M. van de Panne, “A grasp-based motion planning algorithm for character animation”, The Journal of Visualization and Computer Animation 12(3):117-129, 2001. J.J. Kuffner, K. Nishiwaki, S. Kagami, M. Inaba, and H. Inoue, “Footstep planning among obstacles for biped robots”, Proc. of the International Conference on Intelligent Robots and Systems (IROS), Maui, USA, 2001. J.J. Kuffner, S. Kagami, M. Inaba, and H. Inoue, “Dynamically-stable Motion Planning for Humanoid Robots”, Autonomous Robots, 12(1): 105-118, 2002. J. J. Kuffner and S. M. La Valle, “RRT-connect: an efficient approach to single-query path planning”, Proc. of the International Conference on Robotics and Automation (ICRA), San Francisco, USA, 2000, pp. 995-1001. J.-C. Latombe, “Robot motion planning”, ISBN 0-79239206-X, Kluwer, Academic Publishers, 1991. [Ma02] M. J. Mataric′, “Visuo-motor primitives as a basis for learning by imitation”, In K. Dautenhahn and C. Nehaniv, editors, Imitation in Animals and Artifacts, MIT, Press, 2002, pp. 391-422. [Mi+95] K. Mitobe, N. Mori, K. Aida, and Y. Nasu, “Non-linear feedback control of a biped walking robot", IEEE International Conference. on Robotics and Automation (ICRA), 1995, pp. 2865-2870. [RN95] S. J. Russell and P. Norvig, “Artificial intelligence: a modern approach”, Prentice Hall, Englewood Cliffs, NJ, 1995. [Sc+02] F. Schwarzer, M. Saha, and J.-C. Latombe, “Exact Collision Checking of Robot Paths”, In Workshop on Algorithmic Foundations of Robotics, Nice, France, December 2002. [Si+00] T. Simeon, J. P. Laumond, and C. Nissoux, “Visibility based probabilistic roadmaps for motion planning”, Advanced Robotics Journal, 14(6), 2000. [SL01] G. Sanchez and J.-C. Latombe, “A single-query bidirectional probabilistic roadmap planner with lazy collision checking”, Proc. of the International Symposium on Robotics Research (ISRR), Nagoya, Japan, 2001. [SS98] S. Schaal and D. Sternad, “Programmable pattern generators”, In 3rd International Conference on Computational Intelligence in Neuroscience, Research Triangle Park, NC, 1998, pp 48–51. [TS00] K. A. Thoroughman and R. Shadmehr, “Learning of action through combination of motor primitives”, Nature 407:742–747, 2000. [Va98] S. M. LaValle, “Rapidly-exploring random trees: a new tool for path planning”, Technical Report TR 98-11, Computer Science Dept., Iowa State University, Oct. 1998. [Wi96] M. W. Williamson, “Postural primitives: interactive bahavior for a humanoid robot arm”, Proceedings of the 4th International conference on Simulation of Adaptive Behavior (SAB’96), MIT Press, 1996, pp. 124-131. [Zo+02] F. Zonfrilli, G. Oriolo, and D. Nardi, “A biped locomotion strategy for the quadruped robot Sony ERS210”, IEEE International Conference. on Robotics and Automation (ICRA), 2002, pp. 2768-2774. Figure 6: Two example sequences of planned motions. The vertical line illustrates the projection of the center of mass, which is always inside the support segment of the robot. In the bottom row sequence, the trajectory of the center of mass is also shown. The last image shows the center of mass of all nodes in the search tree, colored according to the support mode.