next up previous contents index
Next: Validating a local path Up: Steering methods Previous: Steering methods

Building a local path

A steering method builds a path between two configurations of a robot, respecting its kinematic constraints, but without considering any obstacle. In Move3D, a steering method is a function that takes a robot r and two configurations qi and qf as inputs and returns a list of nmaill elementary curves c. Move3D has five different steering methods.

The function p3d_courbe *p3d_linear_search(p3d_rob *r, double *qi, double *qf, int *nmaill)   checks wether qi and qf are equal, if they are free, and builds an elementary curve containing the straight line segment in the configuration space between qi and qf (cf Fig. gif). In this function, nmaill is always equal to 1.

   figure582
Figure: Example of local path built by p3d_linear_search.

The function p3d_courbe *p3d_local_search(p3d_rob *r, double *qi, double *qf, int *nmaill)   checks wether qi and qf are equal, if they are free, and builds the elementary curves containing the Reeds and Shepp path for the tex2html_wrap_inline1064 degrees of freedom of qi and qf (the first, second and fourth ones) and the straight line segment in the configuration space for the others (cf Fig. gif). In this function, nmaill can range from 3 to 5.

   figure594
Figure: Example of local path built by p3d_local_search.

The function p3d_courbe *p3d_plateform_search(p3d_rob *r, double *qi, double *qf, int *nmaill)   checks wether qi and qf are equal, if they are free, and builds the elementary curves containing the Reeds and Shepp path for the tex2html_wrap_inline1064 degrees of freedom of qi and qf, and blocks the others in qi (cf Fig. gif). In this function, nmaill can also range from 3 to 5.

   figure607
Figure: Example of local path built by p3d_platform_search.

The function p3d_courbe *p3d_arm_search(p3d_rob *r, double *qi, double *qf, int *nmaill)   checks wether qi and qf are equal, if they are free, and builds an elementary curve containing the straight line segment in the configuration space between qi and qf except for the degrees of freedom tex2html_wrap_inline1064 that are blocked in their qi values. In this function, nmaill is always equal to 1.

The function p3d_courbe *p3d_manhattan_search(p3d_rob *r, double *qi, double *qf, int *nmaill)   checks wether qi and qf are equal, if they are free, and builds the elementary curves containing a symmetric Manhattan local path. This paths is made of straight line segments representing the move of a single degree of freedom at the same time. If the first degree of freedom x of qi is smaller than the first degree of freedom of qf we move the first degrees of freedom first, and if the first degree of freedom of qi is greater than the first degree of freedom of qf, we move the last degrees of freedom first, so that the local path is symmetrical(cf Fig. gif).In this function, nmaill is always equal to the number of degrees of freedom.

   figure628
Figure: Example of local path built by p3d_manhattan_search.


next up previous contents index
Next: Validating a local path Up: Steering methods Previous: Steering methods

Nicola Simeon
Fri Oct 27 09:07:38 MET DST 2000