amino  1.0-beta2
Lightweight Robot Utility Library
scene_planning.h File Reference

Motion Planning. More...

#include "scene_ik.h"

Go to the source code of this file.

Functions

AA_API struct aa_rx_mp * aa_rx_mp_create (const struct aa_rx_sg_sub *sub_sg)
 Create a new motion plannet context for the given sub-scenegraph.
 
AA_API void aa_rx_mp_destroy (struct aa_rx_mp *mp)
 Destroy a motion planning context.
 
AA_API void aa_rx_mp_set_start (struct aa_rx_mp *mp, size_t n_all, double *q_all)
 Set the motion planning start configuration. More...
 
AA_API void aa_rx_mp_allow_config (struct aa_rx_mp *mp, size_t n_all, double *q_all)
 Indicate a valid configuration for the motion planning context. More...
 
AA_API void aa_rx_mp_allow_collision (struct aa_rx_mp *mp, aa_rx_frame_id id0, aa_rx_frame_id id1, int allowed)
 Indicate whether collisions between the two given frames are allowed. More...
 
AA_API int aa_rx_mp_set_goal (struct aa_rx_mp *mp, size_t n_q, double *q_subset)
 Set the goal as a joint-space configuration.
 
AA_API int aa_rx_mp_set_wsgoal (struct aa_rx_mp *mp, size_t n_e, const aa_rx_frame_id *frames, const double *E, size_t ldE)
 Set the goal as workspace pose.
 
AA_API void aa_rx_mp_set_simplify (struct aa_rx_mp *mp, int simplify)
 Set whether to simplify the planned path.
 
AA_API void aa_rx_mp_set_track_collisions (struct aa_rx_mp *mp, int track)
 Set whether to track collisions.
 
AA_API const struct aa_rx_cl_set * aa_rx_mp_get_collisions (const struct aa_rx_mp *mp)
 Get most recent collision data.
 
AA_API int aa_rx_mp_plan (struct aa_rx_mp *mp, double timeout, size_t *n_path, double **p_path_all)
 Execute the planner. More...
 
AA_API struct aa_rx_cl_set * aa_rx_mp_get_allowed (const struct aa_rx_mp *mp)
 Return a pointer to the allowed collision set for the motion planning context.
 
AA_API struct aa_rx_mp_rrt_attr * aa_rx_mp_rrt_attr_create (void)
 Create an RRT attribute struct.
 
AA_API void aa_rx_mp_rrt_attr_destroy (struct aa_rx_mp_rrt_attr *)
 Destroy an RRT attribute struct.
 
AA_API void aa_rx_mp_rrt_attr_set_bidirectional (struct aa_rx_mp_rrt_attr *attrs, int is_bidirectional)
 Whether the RRT should be bidirectional.
 
AA_API void aa_rx_mp_set_rrt (struct aa_rx_mp *mp, const struct aa_rx_mp_rrt_attr *attr)
 Use the RRT motion planning algorithm. More...
 
AA_API struct aa_rx_mp_sbl_attr * aa_rx_mp_sbl_attr_create (void)
 Create an SBL attribute struct.
 
AA_API void aa_rx_mp_sbl_attr_destroy (struct aa_rx_mp_sbl_attr *)
 Destroy an SBL attribute struct.
 
AA_API void aa_rx_mp_set_sbl (struct aa_rx_mp *mp, const struct aa_rx_mp_sbl_attr *attr)
 Use the SBL motion planning algorithm. More...
 
AA_API struct aa_rx_mp_kpiece_attr * aa_rx_mp_kpiece_attr_create (void)
 Create an KPIECE attribute struct.
 
AA_API void aa_rx_mp_kpiece_attr_destroy (struct aa_rx_mp_kpiece_attr *)
 Destroy an KPIECE attribute struct.
 
AA_API void aa_rx_mp_set_kpiece (struct aa_rx_mp *mp, const struct aa_rx_mp_kpiece_attr *attr)
 Use the KPIECE motion planning algorithm. More...
 

Detailed Description

Motion Planning.

Definition in file scene_planning.h.

Function Documentation

◆ aa_rx_mp_allow_collision()

AA_API void aa_rx_mp_allow_collision ( struct aa_rx_mp *  mp,
aa_rx_frame_id  id0,
aa_rx_frame_id  id1,
int  allowed 
)

Indicate whether collisions between the two given frames are allowed.

By default, no collisions are allowed.

◆ aa_rx_mp_allow_config()

AA_API void aa_rx_mp_allow_config ( struct aa_rx_mp *  mp,
size_t  n_all,
double *  q_all 
)

Indicate a valid configuration for the motion planning context.

All collisions at the given configuration are assumed to be allowed.

Parameters
mpThe motion planning context
n_allLength of array q_all
q_allA valid configuration array (for the entire scene graph).

◆ aa_rx_mp_plan()

AA_API int aa_rx_mp_plan ( struct aa_rx_mp *  mp,
double  timeout,
size_t *  n_path,
double **  p_path_all 
)

Execute the planner.

Parameters
mpThe motion planning context
timeoutMaximum time to execute the planner
n_pathNumber of waypoints in the path.
p_path_allOutput path data. Contains configurations at each waypoint for the entire scene graph. Size is n_path times the configuration space size of the entire scene graph.

◆ aa_rx_mp_set_kpiece()

AA_API void aa_rx_mp_set_kpiece ( struct aa_rx_mp *  mp,
const struct aa_rx_mp_kpiece_attr *  attr 
)

Use the KPIECE motion planning algorithm.

Parameters
mpThe motion planning context
attrAttributes for the planning algorithm (NULL uses defaults)

◆ aa_rx_mp_set_rrt()

AA_API void aa_rx_mp_set_rrt ( struct aa_rx_mp *  mp,
const struct aa_rx_mp_rrt_attr *  attr 
)

Use the RRT motion planning algorithm.

Parameters
mpThe motion planning context
attrAttributes for the planning algorithm (NULL uses defaults)

◆ aa_rx_mp_set_sbl()

AA_API void aa_rx_mp_set_sbl ( struct aa_rx_mp *  mp,
const struct aa_rx_mp_sbl_attr *  attr 
)

Use the SBL motion planning algorithm.

Parameters
mpThe motion planning context
attrAttributes for the planning algorithm (NULL uses defaults)

◆ aa_rx_mp_set_start()

AA_API void aa_rx_mp_set_start ( struct aa_rx_mp *  mp,
size_t  n_all,
double *  q_all 
)

Set the motion planning start configuration.

Parameters
mpThe motion planning context
n_allLength of array q_all
q_allArray of start configurations for the entire scene graph.