38 #ifndef AMINO_RX_SCENE_PLANNING_H
39 #define AMINO_RX_SCENE_PLANNING_H
58 struct aa_rx_mp_planner;
125 double *E,
size_t ldE );
153 double **p_path_all );
155 AA_API struct aa_rx_cl_set* aa_rx_mp_get_allowed(
const struct aa_rx_mp* mp);
163 struct aa_rx_mp_rrt_attr;
168 AA_API struct aa_rx_mp_rrt_attr*
183 int is_bidirectional );
193 const struct aa_rx_mp_rrt_attr *attr );
201 struct aa_rx_mp_sbl_attr;
206 AA_API struct aa_rx_mp_sbl_attr*
223 const struct aa_rx_mp_sbl_attr *attr );
231 struct aa_rx_mp_kpiece_attr;
236 AA_API struct aa_rx_mp_kpiece_attr*
253 const struct aa_rx_mp_kpiece_attr *attr );
int aa_rx_ik_fun(void *context, size_t n_tf, const double *TF, size_t ld_TF, size_t n_q, double *q)
General type for an IK solver function.
AA_API struct aa_rx_mp_sbl_attr * aa_rx_mp_sbl_attr_create(void)
Create an SBL attribute struct.
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_sbl_attr_destroy(struct aa_rx_mp_sbl_attr *)
Destroy an SBL attribute struct.
signed long aa_rx_frame_id
Type for frame indices.
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.
AA_API int aa_rx_mp_set_wsgoal(struct aa_rx_mp *mp, aa_rx_ik_fun *ik_fun, void *ik_cx, size_t n_e, double *E, size_t ldE)
Set the goal as workspace pose.
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_destroy(struct aa_rx_mp *mp)
Destroy a motion planning context.
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_rrt(struct aa_rx_mp *mp, const struct aa_rx_mp_rrt_attr *attr)
Use the RRT motion planning algorithm.
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.
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.
#define AA_API
calling and name mangling convention for 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 struct aa_rx_mp_kpiece_attr * aa_rx_mp_kpiece_attr_create(void)
Create an KPIECE attribute struct.
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.
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_rrt_attr_destroy(struct aa_rx_mp_rrt_attr *)
Destroy an RRT 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.
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 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.