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. ). In this function, nmaill is always equal to
1.
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 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.
). In this function, nmaill can range from 3 to 5.
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 degrees of freedom of qi and qf, and
blocks the others in qi (cf Fig.
). In this
function, nmaill can also range from 3 to 5.
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 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. ).In this function, nmaill is always
equal to the number of degrees of freedom.
Figure:
Example of local path built by p3d_manhattan_search.