PL_Sequential Class Reference

#include <planners/sequential/PL_Sequential.h>

Inherits PL_Boolean_Output, and PL_OpenGL.

Inheritance diagram for PL_Sequential:

Inheritance graph
[legend]
Collaboration diagram for PL_Sequential:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~PL_Sequential ()
virtual bool DrawExplicit () const
virtual bool Plan ()
void initialize_parameters ()
virtual void SetCollisionDetector (CD_BasicStyle *collisionDetector)

Private Member Functions

void convert_angle_to_index ()
int rad_to_index (double angle)
double index_to_rad (int index)
void allocate_space_for_link_cs (int L)
void allocate_space_for_working_tq_path ()
void allocate_space_for_Link_tq_path (int link1, int length)
void free_space_for_link_cs (int L)
int plan_path_for_first_link ()
int plan_path_for_nth_link (int lnkno, TQLinkCSpace *ptqlink, TQConfig *pblock, TQConfig *pblock_last, int *bl, int *BT_Flag, int *block_flag, int *narrow_flag)
char ** malloc2D (int dy, int dz, int oc)
void retrieve_global_path (double **globalpath, int pathlen, double *startdof, double *goaldof)
void write_map (char *flnm, FileType filetype, char **map, int dimx, int dimy, int bitsize)
void write_global_path (char *flnm, int length, int degree, double **gpath)
int smoothpath (int nb_degree, int intervals, double **dofpath, int *pathlen)
int compute_a_column_for_link_cspace (TQLinkCSpace *tqlcs, int lnkno, int col, TQConfig *para)
void write_linkpath (char *flnm, FileType filetype, char *map, int dim, int bitsize)
void write_linkpathtxt (char *flnm, TQConfig *map, int dim)
void write_tqif (char *flnm, TQConfig tqi, TQConfig tqf)
int compute_cspace_obstacle_map (int lnkno)
void modify_cspace_obstacle_map (TQLinkCSpace *ptqlink, TQConfig *tqi, TQConfig *tqf, TQConfig *pblock, int len, int L1, int *BT_FLAG, int *narrow_flag)
int find_main_path (int lnkno, IntPoint *tqinitial, IntPoint *tqfinal, TQLinkCSpace *ptqlink, LinkPath *result, int *narrow_flag)
void find_forward_extension (int lnkno, IntPoint *tqinitial, IntPoint *tqfinal, TQLinkCSpace *ptqlink, LinkPath *result)
void find_backward_extension (int lnkno, IntPoint *tqinitial, IntPoint *tqfinal, TQLinkCSpace *ptqlink, LinkPath *result)
void combine_three_paths (LinkPath *combpath, LinkPath *mainpath, LinkPath *frwdpath, LinkPath *bkwdpath, int *iposition, int *fposition)
void reparameterize_path (int bound, LinkPath *whole_path, LinkPath *result, int *ipos, int *fpos, int L1)
int line_free (double **dofpath, int intervals, int start, int end, double **tmppath, int *path_len)
int shift_dofpath (double **dofpath, int pathlen, double **gpath, int npathlen, int pt1, int pt2)
void free2D (void **pp)
void distance2d (unsigned char **in, int dimx, int dimy, short int **V, unsigned char **voro)
void voro_heuristic2d (unsigned char **in, int dimx, int dimy, IntPoint goal, short int **V, unsigned char **voro, short int **heurpot, int *flag)
void find_path_by_heuristic (LinkPath *result, short int **heurpot, int dimx, int dimy, IntPoint *start, IntPoint *goal)
double qdist (double *q1, double *q2)
int insert (int xx, int yy, IntPoint **FRONT, IntPoint *PFRONT, int nbfront, short int **V)
int deletemin (int xx, int yy, IntPoint **FRONT, int nbfront, short int **V)

Private Attributes

int debug
int arm_degree
int dimt [MAX_DEGREE]
int dimq [MAX_DEGREE]
unsigned char * wall
double COEFD_Q
double COEFQ_D
double * orig_initial_config
double * orig_final_config
IntConfig initial_config
IntConfig final_config
JointLimit original_joint_limit [MAX_DEGREE]
IntJointLimit joint_limit [MAX_DEGREE]
TQCSpace tqcs
LinkPathlnkcps
LinkPath bkwdpath
LinkPath frwdpath
LinkPath mainpath
LinkPath combpath
TQConfig initial_tq [MAX_DEGREE]
TQConfig final_tq [MAX_DEGREE]
double ** globalpath
int globaldim
char datadir [40]
int max_level
int max_bt_no
int sp_debug_level
double distance_detect_range
int BT_level
int BT_level_test
int BT_number [MAX_BACKTRACKING_LEVEL+2]

Detailed Description

Definition at line 49 of file PL_Sequential.h.


Constructor & Destructor Documentation

PL_Sequential::~PL_Sequential  )  [virtual]
 

Definition at line 24 of file PL_Sequential.cpp.

References arm_degree, linkpath::d, lnkcps, orig_final_config, and orig_initial_config.


Member Function Documentation

void PL_Sequential::allocate_space_for_link_cs int  L  )  [private]
 

Definition at line 2452 of file PL_Sequential.cpp.

References tqlinkcspace::bitmap, dimq, tqlinkcspace::dimq, tqlinkcspace::dimt, tqlinkcspace::distmap, malloc2D(), tqlinkcspace::potential, tqcs, tqcspace::tqlink, and tqlinkcspace::voro.

Here is the call graph for this function:

void PL_Sequential::allocate_space_for_Link_tq_path int  link1,
int  length
[private]
 

Definition at line 2408 of file PL_Sequential.cpp.

References linkpath::d, linkpath::dim, lnkcps, and linkpath::maxdim.

void PL_Sequential::allocate_space_for_working_tq_path  )  [private]
 

Definition at line 2487 of file PL_Sequential.cpp.

References bkwdpath, combpath, linkpath::d, frwdpath, mainpath, MAX_CS_PATH_LEN, MAX_PART_PATH, and linkpath::maxdim.

void PL_Sequential::combine_three_paths LinkPath combpath,
LinkPath mainpath,
LinkPath frwdpath,
LinkPath bkwdpath,
int *  iposition,
int *  fposition
[private]
 

Definition at line 1793 of file PL_Sequential.cpp.

References bkwdpath, combpath, linkpath::d, linkpath::dim, tqconfig::q, and tqconfig::t.

int PL_Sequential::compute_a_column_for_link_cspace TQLinkCSpace tqlcs,
int  lnkno,
int  col,
TQConfig para
[private]
 

Definition at line 1090 of file PL_Sequential.cpp.

References tqlinkcspace::bitmap, tqlinkcspace::dimq, intjointlimit::end, joint_limit, MAX, MIN, OBSTACLE, Configuration::SetNumDOF(), and intjointlimit::start.

Referenced by plan_path_for_first_link().

Here is the call graph for this function:

int PL_Sequential::compute_cspace_obstacle_map int  lnkno  )  [private]
 

Definition at line 1165 of file PL_Sequential.cpp.

References linkpath::d, dimt, lnkcps, MAX_DEGREE, tqconfig::q, SP_TQ_OK, and tqconfig::t.

void PL_Sequential::convert_angle_to_index  )  [private]
 

Definition at line 1207 of file PL_Sequential.cpp.

References intjointlimit::end, final_config, initial_config, joint_limit, orig_final_config, orig_initial_config, original_joint_limit, rad_to_index(), intjointlimit::start, jointlimit::status, and intjointlimit::status.

Here is the call graph for this function:

int PL_Sequential::deletemin int  xx,
int  yy,
IntPoint **  FRONT,
int  nbfront,
short int **  V
[private]
 

Definition at line 510 of file PL_Sequential.cpp.

References intpoint::x, and intpoint::y.

void PL_Sequential::distance2d unsigned char **  in,
int  dimx,
int  dimy,
short int **  V,
unsigned char **  voro
[private]
 

Definition at line 1848 of file PL_Sequential.cpp.

References malloc2D(), and OBSTACLE.

Referenced by find_backward_extension(), find_forward_extension(), and find_main_path().

Here is the call graph for this function:

bool PL_Sequential::DrawExplicit  )  const [virtual]
 

Reimplemented from PL_OpenGL.

Definition at line 53 of file PL_Sequential.cpp.

void PL_Sequential::find_backward_extension int  lnkno,
IntPoint tqinitial,
IntPoint tqfinal,
TQLinkCSpace ptqlink,
LinkPath result
[private]
 

Definition at line 1708 of file PL_Sequential.cpp.

References tqlinkcspace::bitmap, dimq, dimt, distance2d(), tqlinkcspace::distmap, intjointlimit::end, FALSE, joint_limit, MAXSHORTINT, tqlinkcspace::potential, SAFETY_DISTANCE, intjointlimit::start, TRUE, tqlinkcspace::voro, voro_heuristic2d(), wall, intpoint::x, and intpoint::y.

Here is the call graph for this function:

void PL_Sequential::find_forward_extension int  lnkno,
IntPoint tqinitial,
IntPoint tqfinal,
TQLinkCSpace ptqlink,
LinkPath result
[private]
 

Definition at line 1621 of file PL_Sequential.cpp.

References tqlinkcspace::bitmap, dimq, dimt, distance2d(), tqlinkcspace::distmap, intjointlimit::end, FALSE, joint_limit, MAXSHORTINT, tqlinkcspace::potential, SAFETY_DISTANCE, intjointlimit::start, TRUE, tqlinkcspace::voro, voro_heuristic2d(), wall, intpoint::x, and intpoint::y.

Here is the call graph for this function:

PL_Sequential::find_main_path int  lnkno,
IntPoint tqinitial,
IntPoint tqfinal,
TQLinkCSpace ptqlink,
LinkPath result,
int *  narrow_flag
[private]
 

Definition at line 1366 of file PL_Sequential.cpp.

References tqlinkcspace::bitmap, linkpath::d, linkpath::dim, dimq, dimt, distance2d(), tqlinkcspace::distmap, MAX, MAXBLOCKLENGTH, MAXSHORTINT, MIN, tqlinkcspace::potential, tqconfig::q, ROUND, tqconfig::t, tqlinkcspace::voro, voro_heuristic2d(), wall, intpoint::x, and intpoint::y.

Here is the call graph for this function:

void PL_Sequential::find_path_by_heuristic LinkPath result,
short int **  heurpot,
int  dimx,
int  dimy,
IntPoint start,
IntPoint goal
[private]
 

Definition at line 2244 of file PL_Sequential.cpp.

References linkpath::d, FALSE, tqconfig::q, tqconfig::t, TRUE, intpoint::x, and intpoint::y.

void PL_Sequential::free2D void **  pp  )  [private]
 

Definition at line 2875 of file PL_Sequential.cpp.

Referenced by free_space_for_link_cs().

void PL_Sequential::free_space_for_link_cs int  L  )  [private]
 

Definition at line 2424 of file PL_Sequential.cpp.

References tqlinkcspace::bitmap, tqlinkcspace::distmap, free2D(), tqlinkcspace::potential, tqcs, tqcspace::tqlink, and tqlinkcspace::voro.

Here is the call graph for this function:

double PL_Sequential::index_to_rad int  index  )  [private]
 

Definition at line 1239 of file PL_Sequential.cpp.

References COEFQ_D, and PI.

void PL_Sequential::initialize_parameters  ) 
 

Definition at line 381 of file PL_Sequential.cpp.

References COEFD_Q, COEFQ_D, DIMQ, dimq, DIMT, dimt, MAX_BACKTRACKING_LEVEL, MAX_BACKTRACKING_NUMBER, max_bt_no, max_level, PI, and sp_debug_level.

Referenced by ServerBase::RefreshPlanner().

int PL_Sequential::insert int  xx,
int  yy,
IntPoint **  FRONT,
IntPoint PFRONT,
int  nbfront,
short int **  V
[private]
 

Definition at line 476 of file PL_Sequential.cpp.

References intpoint::x, and intpoint::y.

int PL_Sequential::line_free double **  dofpath,
int  intervals,
int  start,
int  end,
double **  tmppath,
int *  path_len
[private]
 

Definition at line 2801 of file PL_Sequential.cpp.

Referenced by smoothpath().

char ** PL_Sequential::malloc2D int  dy,
int  dz,
int  oc
[private]
 

Definition at line 2516 of file PL_Sequential.cpp.

Referenced by allocate_space_for_link_cs(), distance2d(), and smoothpath().

void PL_Sequential::modify_cspace_obstacle_map TQLinkCSpace ptqlink,
TQConfig tqi,
TQConfig tqf,
TQConfig pblock,
int  len,
int  L1,
int *  BT_FLAG,
int *  narrow_flag
[private]
 

Definition at line 1249 of file PL_Sequential.cpp.

bool PL_Sequential::Plan  )  [virtual]
 

Implements PlannerBase.

Definition at line 131 of file PL_Sequential.cpp.

References arm_degree, PL_HasCollisionDetector::collisionDetector, jointlimit::end, CD_BasicStyle::JointMax(), CD_BasicStyle::JointMin(), original_joint_limit, RADIAN, SP_PLANNING, and jointlimit::start.

Here is the call graph for this function:

int PL_Sequential::plan_path_for_first_link  )  [private]
 

Definition at line 547 of file PL_Sequential.cpp.

References tqlinkcspace::bitmap, compute_a_column_for_link_cspace(), tqlinkcspace::dimq, FALSE, joint_limit, OBSTACLE, tqconfig::q, tqlinkcspace::q_bound, SP_STOPPING, tqconfig::t, tqlinkcspace::t_bound, tqcs, tqcspace::tqlink, and TRUE.

Here is the call graph for this function:

int PL_Sequential::plan_path_for_nth_link int  lnkno,
TQLinkCSpace ptqlink,
TQConfig pblock,
TQConfig pblock_last,
int *  bl,
int *  BT_Flag,
int *  block_flag,
int *  narrow_flag
[private]
 

Definition at line 793 of file PL_Sequential.cpp.

References CD_BasicStyle::ActivateFrames(), and PL_HasCollisionDetector::collisionDetector.

Here is the call graph for this function:

double PL_Sequential::qdist double *  q1,
double *  q2
[private]
 

Definition at line 2899 of file PL_Sequential.cpp.

References ABS.

Referenced by shift_dofpath().

int PL_Sequential::rad_to_index double  angle  )  [private]
 

Definition at line 1227 of file PL_Sequential.cpp.

References COEFD_Q, and PI.

Referenced by convert_angle_to_index().

void PL_Sequential::reparameterize_path int  bound,
LinkPath whole_path,
LinkPath result,
int *  ipos,
int *  fpos,
int  L1
[private]
 

Definition at line 2358 of file PL_Sequential.cpp.

References linkpath::d, linkpath::dim, dimt, NO_PATH_COMPRESS, tqconfig::q, ROUND, and tqconfig::t.

void PL_Sequential::retrieve_global_path double **  globalpath,
int  pathlen,
double *  startdof,
double *  goaldof
[private]
 

Definition at line 2308 of file PL_Sequential.cpp.

References linkpath::d, lnkcps, MAX_DEGREE, tqconfig::q, and tqconfig::t.

void PL_Sequential::SetCollisionDetector CD_BasicStyle collisionDetector  )  [virtual]
 

Reimplemented from PL_HasCollisionDetector.

Definition at line 415 of file PL_Sequential.cpp.

References PL_HasCollisionDetector::collisionDetector, CD_BasicStyle::DeactivateFrames(), CD_BasicStyle::DOF(), and PL_HasCollisionDetector::SetCollisionDetector().

Referenced by ServerBase::RefreshPlanner().

Here is the call graph for this function:

int PL_Sequential::shift_dofpath double **  dofpath,
int  pathlen,
double **  gpath,
int  npathlen,
int  pt1,
int  pt2
[private]
 

Definition at line 2820 of file PL_Sequential.cpp.

References dimq, PI, and qdist().

Referenced by smoothpath().

Here is the call graph for this function:

int PL_Sequential::smoothpath int  nb_degree,
int  intervals,
double **  dofpath,
int *  pathlen
[private]
 

Definition at line 2622 of file PL_Sequential.cpp.

References line_free(), malloc2D(), MAX, MIN, shift_dofpath(), and sp_debug_level.

Here is the call graph for this function:

void PL_Sequential::voro_heuristic2d unsigned char **  in,
int  dimx,
int  dimy,
IntPoint  goal,
short int **  V,
unsigned char **  voro,
short int **  heurpot,
int *  flag
[private]
 

Definition at line 2044 of file PL_Sequential.cpp.

References MAXSHORTINT, and OBSTACLE.

Referenced by find_backward_extension(), find_forward_extension(), and find_main_path().

void PL_Sequential::write_global_path char *  flnm,
int  length,
int  degree,
double **  gpath
[private]
 

Definition at line 2589 of file PL_Sequential.cpp.

void PL_Sequential::write_linkpath char *  flnm,
FileType  filetype,
char *  map,
int  dim,
int  bitsize
[private]
 

Definition at line 2700 of file PL_Sequential.cpp.

References filedescript::comment, filedescript::dimx, filedescript::dimy, filedescript::dimz, filedescript::ftype, and filedescript::octet.

void PL_Sequential::write_linkpathtxt char *  flnm,
TQConfig map,
int  dim
[private]
 

Definition at line 2738 of file PL_Sequential.cpp.

void PL_Sequential::write_map char *  flnm,
FileType  filetype,
char **  map,
int  dimx,
int  dimy,
int  bitsize
[private]
 

Definition at line 2552 of file PL_Sequential.cpp.

References filedescript::comment, filedescript::dimx, filedescript::dimy, filedescript::dimz, filedescript::ftype, and filedescript::octet.

void PL_Sequential::write_tqif char *  flnm,
TQConfig  tqi,
TQConfig  tqf
[private]
 

Definition at line 2770 of file PL_Sequential.cpp.


Member Data Documentation

int PL_Sequential::arm_degree [private]
 

Definition at line 184 of file PL_Sequential.h.

Referenced by Plan(), and ~PL_Sequential().

LinkPath PL_Sequential::bkwdpath [private]
 

Definition at line 218 of file PL_Sequential.h.

Referenced by allocate_space_for_working_tq_path(), and combine_three_paths().

int PL_Sequential::BT_level [private]
 

Definition at line 235 of file PL_Sequential.h.

int PL_Sequential::BT_level_test [private]
 

Definition at line 235 of file PL_Sequential.h.

int PL_Sequential::BT_number[MAX_BACKTRACKING_LEVEL+2] [private]
 

Definition at line 235 of file PL_Sequential.h.

double PL_Sequential::COEFD_Q [private]
 

Definition at line 193 of file PL_Sequential.h.

Referenced by initialize_parameters(), and rad_to_index().

double PL_Sequential::COEFQ_D [private]
 

Definition at line 193 of file PL_Sequential.h.

Referenced by index_to_rad(), and initialize_parameters().

LinkPath PL_Sequential::combpath [private]
 

Definition at line 218 of file PL_Sequential.h.

Referenced by allocate_space_for_working_tq_path(), and combine_three_paths().

char PL_Sequential::datadir[40] [private]
 

Definition at line 227 of file PL_Sequential.h.

int PL_Sequential::debug [private]
 

Definition at line 184 of file PL_Sequential.h.

int PL_Sequential::dimq[MAX_DEGREE] [private]
 

Definition at line 184 of file PL_Sequential.h.

Referenced by allocate_space_for_link_cs(), find_backward_extension(), find_forward_extension(), find_main_path(), initialize_parameters(), and shift_dofpath().

int PL_Sequential::dimt[MAX_DEGREE] [private]
 

Definition at line 184 of file PL_Sequential.h.

Referenced by compute_cspace_obstacle_map(), find_backward_extension(), find_forward_extension(), find_main_path(), initialize_parameters(), and reparameterize_path().

double PL_Sequential::distance_detect_range [private]
 

Definition at line 232 of file PL_Sequential.h.

IntConfig PL_Sequential::final_config [private]
 

Definition at line 202 of file PL_Sequential.h.

Referenced by convert_angle_to_index().

TQConfig PL_Sequential::final_tq[MAX_DEGREE] [private]
 

Definition at line 222 of file PL_Sequential.h.

LinkPath PL_Sequential::frwdpath [private]
 

Definition at line 218 of file PL_Sequential.h.

Referenced by allocate_space_for_working_tq_path().

int PL_Sequential::globaldim [private]
 

Definition at line 225 of file PL_Sequential.h.

double** PL_Sequential::globalpath [private]
 

Definition at line 224 of file PL_Sequential.h.

IntConfig PL_Sequential::initial_config [private]
 

Definition at line 202 of file PL_Sequential.h.

Referenced by convert_angle_to_index().

TQConfig PL_Sequential::initial_tq[MAX_DEGREE] [private]
 

Definition at line 222 of file PL_Sequential.h.

IntJointLimit PL_Sequential::joint_limit[MAX_DEGREE] [private]
 

Definition at line 204 of file PL_Sequential.h.

Referenced by compute_a_column_for_link_cspace(), convert_angle_to_index(), find_backward_extension(), find_forward_extension(), and plan_path_for_first_link().

LinkPath* PL_Sequential::lnkcps [private]
 

Definition at line 218 of file PL_Sequential.h.

Referenced by allocate_space_for_Link_tq_path(), compute_cspace_obstacle_map(), retrieve_global_path(), and ~PL_Sequential().

LinkPath PL_Sequential::mainpath [private]
 

Definition at line 218 of file PL_Sequential.h.

Referenced by allocate_space_for_working_tq_path().

int PL_Sequential::max_bt_no [private]
 

Definition at line 229 of file PL_Sequential.h.

Referenced by initialize_parameters().

int PL_Sequential::max_level [private]
 

Definition at line 229 of file PL_Sequential.h.

Referenced by initialize_parameters().

double * PL_Sequential::orig_final_config [private]
 

Definition at line 201 of file PL_Sequential.h.

Referenced by convert_angle_to_index(), and ~PL_Sequential().

double* PL_Sequential::orig_initial_config [private]
 

Definition at line 201 of file PL_Sequential.h.

Referenced by convert_angle_to_index(), and ~PL_Sequential().

JointLimit PL_Sequential::original_joint_limit[MAX_DEGREE] [private]
 

Definition at line 203 of file PL_Sequential.h.

Referenced by convert_angle_to_index(), and Plan().

int PL_Sequential::sp_debug_level [private]
 

Definition at line 231 of file PL_Sequential.h.

Referenced by initialize_parameters(), and smoothpath().

TQCSpace PL_Sequential::tqcs [private]
 

Definition at line 216 of file PL_Sequential.h.

Referenced by allocate_space_for_link_cs(), free_space_for_link_cs(), and plan_path_for_first_link().

unsigned char* PL_Sequential::wall [private]
 

Definition at line 190 of file PL_Sequential.h.

Referenced by find_backward_extension(), find_forward_extension(), and find_main_path().


The documentation for this class was generated from the following files:
Generated on Sat Apr 1 22:02:09 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO