AURobotServers  4
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
UFuncGndAna Class Reference

#include <ufuncgndana.h>

Inheritance diagram for UFuncGndAna:
Inheritance graph

Public Types

enum  UAttTypes {
  height = 0, heightSd, heightCnt, green,
  greenSd, red, redSd, attributeTypeCnt
}
 currently attribute types available (detected) More...
 
enum  UPatchTypes {
  grass = 0, gravel, weed, stone,
  asphalt, patchTypeCnt
}
 possible patch types to classify More...
 

Public Member Functions

virtual void createResources ()
 
virtual bool handleCommand (UServerInMsg *msg, void *extra)
 
 UFuncGndAna ()
 
virtual ~UFuncGndAna ()
 
- Public Member Functions inherited from UFuncPlugBase
 UFuncPlugBase ()
 
virtual ~UFuncPlugBase ()
 
- Public Member Functions inherited from UFunctionBase
bool addResource (UResBase *resource, UFunctionBase *owner)
 
void closeLogfile ()
 
virtual const char * commandList ()
 
const char * getAliasName ()
 
const char * getLoadedFileName ()
 
void * getLoadedModuleRef ()
 
virtual bool gotAllResources (char *missingThese, int missingTheseCnt)
 
bool isMine (const char *cmdName)
 
bool isStatic ()
 is the module loaded as static A module is static if the ldFilename has a length of zero. More...
 
virtual const char * name ()
 
bool newCmd (UServerInMsg *newMsg, UDataBase *extra)
 
bool newCommand (UServerInMsg *newMsg, void *extra)
 
bool openLogfile (const char *name)
 
void print (const char *preString)
 
virtual void resourceUpdated ()
 
bool sendEndTag (UServerInMsg *msg)
 
bool sendEndTag ()
 
bool sendFullTag (const char *attributes)
 
bool sendHelpDone (UServerInMsg *msg)
 
bool sendHelpDone ()
 
bool sendHelpStart (UServerInMsg *msg, const char *subject)
 
bool sendHelpStart (const char *subject)
 
bool sendHelpStart ()
 
bool sendMsg (UServerInMsg *msg, const char *message, int size)
 
bool sendMsg (const char *message)
 
bool sendMsg (UServerInMsg *msg, const char *message)
 
bool sendMsg (int clientIdx, const char *message, int size)
 
bool sendMsgInt (int clientIdx, const char *message)
 
bool sendStartTag (const char *attributes)
 
bool sendText (UServerInMsg *msg, const char *text)
 
bool sendText (const char *text)
 
virtual void setAliasName (const char *name)
 
virtual void setCommand (const char *cmdList, const char *name, const char *note)
 
void setLoadedModuleRef (void *module, const char *moduleFileName)
 
virtual void setLoadTime (UTime)
 
void setName (const char *name)
 
virtual bool setResource (UResBase *resource, bool remove)
 
void setVerbose (bool value)
 
 UFunctionBase ()
 
virtual ~UFunctionBase ()
 
- Public Member Functions inherited from UCallBack
bool addOnEvent (UOnEvent *dataObject)
 
virtual bool onEvent (const char *interface, const char *dataType, void *data)
 
 UCallBack ()
 
virtual ~UCallBack ()
 
- Public Member Functions inherited from UResVarPool
int addMethod (const char *formalName, const char *paramTypes, const char *comment)
 
int addMethodV (const char *formalName, const char *paramTypes, const char *comment)
 
UVarPooladdStruct (const char *name, const char *comment, bool copy=false)
 
UVariableaddVar (const char *name, const double initialValue, const char *type, const char *comment)
 
UVariableaddVar (const char *name, const char *initialValue, const char *type, const char *comment)
 
UVariableaddVarA (const char *name, const char *initialValue, const char *type, const char *comment)
 
bool callGlobal (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct, int *returnStructCnt)
 
bool callGlobalV (const char *name, const char *paramOrder, UVariable **params, UDataBase **returnStruct, int *returnStructCnt)
 Call a method from the root var pool scope It may be in the structure direct (no '.') or in any sub-structure that the 'name.subname' indicate. More...
 
bool callLocal (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct, int *returnStructCnt)
 
bool callVS (const char *function, const char *stringParam)
 
int callVSCD (const char *function, const char *strPar, UDataBase *data, int cooSys)
 
void createBaseVar ()
 
virtual bool createVarSpace (const int varCnt, const int structCnt, const int methCnt, const char *note, bool copy=false)
 
bool getGlobalString (const char *name, const char **value)
 
bool getGlobalValue (const char *name, double *value)
 
bool getGlobalValue (const char *name, const char **value)
 
bool getGlobalValue (const char *name, bool *value)
 
bool getGlobalValue (const char *name, UTime *value)
 
bool getLocalValue (const char *name, double *value)
 get a value in this variable tree More...
 
bool getLocalValue (const char *name, bool *value)
 
bool getLocalValue (const char *name, UTime *value)
 
double getLocalValue (int idx)
 
UPosition getLocalValue3D (int idx)
 
UPosRot getLocalValue6D (int idx)
 
bool getLocalValueBool (int idx)
 
int getLocalValueInt (int idx)
 
UTime getLocalValueTime (int idx)
 
const char * getLogFileName ()
 
const char * getVarDescription (int idx)
 
UVarCalcgetVarPool ()
 
bool isLogFileOpen ()
 
bool isLogFileOpen (const char *structName)
 
bool isVarPoolUpdated (int lastCnt, int *newCnt)
 
void logFileClose ()
 
bool logFileOpen ()
 
void logFileStart (const char *structName, bool open)
 
virtual bool methodCall (const char *name, const char *paramOrder, char **strings, const double *doubles, double *value, UDataBase **returnStruct=NULL, int *returnStructCnt=NULL)
 
virtual const char * print (const char *preString, char *buff, int buffCnt)
 
bool setGlobalVar (const char *name, const double value, bool mayAdd)
 Assigns a value to a variable. The variable may be a part of a structure. More...
 
bool setLocalVar (int idx, double value, const int element)
 
bool setLocalVar (const char *name, const double value, bool mayAdd)
 Assigns a value to a variable. The variable may be a part of a structure. More...
 
bool setLocalVar3D (int idx, UPosition *value)
 
bool setLocalVar6D (int idx, UPosRot *value)
 
bool setLocalVarAdd (int idx, double value, const int element)
 
bool setLocalVarPose (int idx, UPose *value)
 
void setVarPool (UVarCalc *sharedVarPool)
 
int updateQTvars (int structIdx)
 
 UResVarPool ()
 
virtual ~UResVarPool ()
 
- Public Member Functions inherited from UResBase
void createReplayVar (UVarPool *pool)
 
UCmdExegetCorePointer ()
 
char * getLogFileName (char *fn, const int fnCnt)
 
int getResFuncIdx ()
 
const char * getResID ()
 
int getResVersion ()
 
bool isA (const char *idStr)
 
bool isAlsoA (const char *id)
 
virtual void saveSettings ()
 
void setCorePointer (UCmdExe *serverCore)
 
void setResFuncIdx (int idx)
 
virtual void setResID (const char *id, const int version)
 
virtual void stop (bool)
 
virtual void updateReplayStatus ()
 
 UResBase ()
 
virtual ~UResBase ()
 
- Public Member Functions inherited from UReplay
void addChild (UReplay *child)
 
virtual bool decodeReplayLine (char *)
 
char * getLogFileName (char *fn, const int fnCnt)
 
char * getReplayFileName (char *fn, const int fnCnt)
 
int getReplayLogLine ()
 
bool isReplay ()
 
bool isReplayFileOpen ()
 
void removeChild (UReplay *child)
 
virtual void replayAdvanceTime (UTime untilTime)
 
void replaySetBaseFileName (const char *name, const char *preName="")
 
void replaySetFileName (const char *name)
 
virtual bool replayStep ()
 
int replayStep (int steps)
 
virtual bool replayToTime (UTime untilTime)
 
void setParent (UReplay *parent)
 
bool setReplay (bool value)
 
 UReplay ()
 
virtual ~UReplay ()
 
- Public Member Functions inherited from ULock
bool lock ()
 
void lockInit ()
 
void post ()
 
bool tryLock ()
 
bool tryWait ()
 
 ULock ()
 
void unlock ()
 
bool wait ()
 
 ~ULock ()
 
- Public Member Functions inherited from UVarMethodImplement
virtual bool methodCallV (const char *name, const char *paramOrder, UVariable *params[], UDataBase **returnStruct, int *returnStructCnt)
 
virtual ~UVarMethodImplement ()
 

Public Attributes

UGroundPatchesgrp
 
bool silent
 
- Public Attributes inherited from UFunctionBase
bool silent
 is reply to client and console to be limited More...
 
- Public Attributes inherited from UReplay
bool replayTimeAdvancePending
 
UTime replayTimeNow
 

Protected Member Functions

bool do3dGroundPlane (UImg3Dpoints *cloud)
 find candidates for human detections. Estimates the ground plane from 3D cloud. More...
 
bool doAnalysis (UServerInMsg *msg, UDataBase *pushedCloud)
 
bool sendObjects (UServerInMsg *msg, int maxCnt, bool updateOnly)
 
void setFuzzpParamsFromGlobal ()
 
- Protected Member Functions inherited from UFunctionBase
int getCmdIndex ()
 
UResBasegetStaticResource (const char *resName, bool mayCreate, bool staticOnly=true)
 get a pointer to a static resource. More...
 
bool isClientAlive (int clientIdx, double holdOffTime)
 
bool sendDebug (UServerInMsg *msg, const char *debugText)
 
bool sendDebug (const char *debugText)
 
bool sendError (UServerInMsg *msg, const char *errorText)
 
bool sendError (const char *errorText)
 
bool sendHelp (UServerInMsg *msg, const char *infoText)
 
bool sendHelp (const char *infoText)
 
bool sendInfo (UServerInMsg *msg, const char *infoText)
 
bool sendInfo (const char *infoText)
 
bool sendWarning (UServerInMsg *msg, const char *warningText)
 
bool sendWarning (const char *warningText)
 
UResBasesetThisResource (const char *ID, UResBase *resource, bool remove, bool *changed, UResBase *currentResPtr, bool *isLocal)
 
- Protected Member Functions inherited from UResVarPool
void setDescription (const char *note, bool copy=false)
 
- Protected Member Functions inherited from UResBase
UResBasegetStaticResource (const char *resName, bool mayCreate, bool staticOnly=true)
 get a pointer to a static resource. More...
 

Protected Attributes

UImg3Dpointscloud3d
 3d cloud More...
 
UPlane gndPlane
 estimated groun d plane More...
 
UTime gndPlaneTime
 ground plane time More...
 
bool gndPlaneValid
 ground plane valid More...
 
double gndQual
 ground plane quality More...
 
UPatchTypeSetsgradeSet
 fuzzy patch grade set More...
 
UVariablevarAttName [PAC]
 
UVariablevarAttTypeCnt
 
UVariablevarBBminX
 
UVariablevarCellSize
 
UVariablevarDistMaxX
 
UVariablevarGndMaxZ
 
UVariablevarGndMinQ
 
UVariablevarGndMinZ
 
UVariablevarGndRedFac
 
UVariablevarPatchAtts [PTC][PAC][3]
 
UVarPoolvarPatchType [PTC]
 
UVariablevarPatchTypeCnt
 
UVariablevarResultImg
 
- Protected Attributes inherited from UFunctionBase
char aliasName [MAX_ID_LENGTH]
 
UCmdExecmdHandler
 
char * cmdToks [20]
 
int cmdToksCnt
 
char commandsHandled [MAX_RESOURCE_LIST_SIZE]
 
UServerInMsgmsg
 
char pluginName [MAX_RESOURCE_LIST_SIZE]
 
bool verboseMessages
 
- Protected Attributes inherited from UResBase
int resFuncIdx
 
char resID [MAX_RESOURCE_ID_LENGTH]
 
char resIsAlso [MAX_RESOURCE_ISALSO_LENGTH]
 
int resVersion
 
- Protected Attributes inherited from UReplay
bool replay
 
FILE * replayFile
 
char replayFileName [REPLAY_FILE_NAME_LENGTH]
 replay filename More...
 
char replayLine [MAX_LOG_LINE_LENGTH]
 
int replayLogLine
 
UReplayreplayParent
 
UTime replayTimeNext
 

Static Protected Attributes

static const int PAC = attributeTypeCnt
 
static const int PTC = patchTypeCnt
 
- Static Protected Attributes inherited from UReplay
static const int MAX_LOG_LINE_LENGTH = 10000
 
static const int REPLAY_FILE_NAME_LENGTH = 264
 max length of replay filename More...
 

Additional Inherited Members

- Static Public Member Functions inherited from UResVarPool
static const char * getResClassID ()
 
- Static Public Attributes inherited from UFunctionBase
static const int MAX_ID_LENGTH = 30
 
static const int MAX_RESOURCE_LIST_SIZE = 250
 

Detailed Description

This plugin (or module) converts a 3D point cloud to 3D polygons that can be obstacles or free navigateable ground area.

Author
Christian Andersen

Member Enumeration Documentation

currently attribute types available (detected)

Enumerator
height 
heightSd 
heightCnt 
green 
greenSd 
red 
redSd 
attributeTypeCnt 

possible patch types to classify

Enumerator
grass 
gravel 
weed 
stone 
asphalt 
patchTypeCnt 

Constructor & Destructor Documentation

UFuncGndAna::UFuncGndAna ( )

Constructor

UFuncGndAna::~UFuncGndAna ( )
virtual

Destructor

Member Function Documentation

void UFuncGndAna::createResources ( )
virtual

Called by server after this module is integrated into the server core structure, i.e. all core services are in place, but no commands are serviced for this module yet. Create any resources that this modules needs and add these to the resource pool to be integrated in the global variable pool and method sharing. Remember to add to resource pool by a call to addResource(UResBase * newResource, this). This module must also ensure that any resources creted are deleted (in the destructor of this class) Resource shut-down code should be handled in the resource destructor.

Reimplemented from UFunctionBase.

References UGradeSet::MNL.

bool UFuncGndAna::do3dGroundPlane ( UImg3Dpoints cloud)
protected

find candidates for human detections. Estimates the ground plane from 3D cloud.

Parameters
cloudthe 3D cloud to be processed.
Returns
true if a plane were found. The plane and quality is saved in class.

References UImg3Dpoints::add(), UPlane::clear(), UPosRot::getCamToRobPlane(), UImg3Dpoints::getRansacPlane(), UPosRot::getRobToCamPlane(), UTime::getTimePassed(), UImg3Dpoints::inSensorCoordinates, UTime::now(), UImg3Dpoints::p3d, UImg3Dpoints::p3dCnt, UImg3Dpoint::pos, UImg3Dpoints::pose, UTime::print(), UImg3Dpoint::q, UImg3Dpoints::time, UImg3Dpoints::toRobotCoordinates(), UPosition::x, and UPosition::z.

bool UFuncGndAna::doAnalysis ( UServerInMsg msg,
UDataBase pushedCloud 
)
protected

Handle object cloud processing commands

Parameters
msgmessage and client information
pushedCloudis an optional point cloud to be used.
Returns
true if any reply is send to the client (OK or not)

References USmlTagIn::getAttInteger(), USmlTagIn::getAttValueBool(), UImagePool::getImage(), USmlTagIn::getTagName(), UDataBase::isA(), ULock::lock(), UServerInMsg::tag, UImage::toRGB(), and ULock::unlock().

bool UFuncGndAna::handleCommand ( UServerInMsg msg,
void *  extra 
)
virtual

Handle incomming command (intended for command separation) Must return true if the function is handled - otherwise the client will get a failed - reply

Reimplemented from UFunctionBase.

References USmlTagIn::getAttBool(), USmlTagIn::getAttValue(), USmlTagIn::getAttValueBool(), and UServerInMsg::tag.

bool UFuncGndAna::sendObjects ( UServerInMsg msg,
int  maxCnt,
bool  updateOnly 
)
protected

Send groups of obstacles to client. May send newly updated obstacles only when 'updatesOnly' is true.

void UFuncGndAna::setFuzzpParamsFromGlobal ( )
protected

Set fuzzy membership curves from global values

Set from global values

References UGradeSet::addGradeLimit(), UGradeSet::clear(), UPatchType::getSet(), and UGradeSet::setAttWeight().

Member Data Documentation

UImg3Dpoints* UFuncGndAna::cloud3d
protected

3d cloud

UPlane UFuncGndAna::gndPlane
protected

estimated groun d plane

UTime UFuncGndAna::gndPlaneTime
protected

ground plane time

bool UFuncGndAna::gndPlaneValid
protected

ground plane valid

double UFuncGndAna::gndQual
protected

ground plane quality

UPatchTypeSets* UFuncGndAna::gradeSet
protected

fuzzy patch grade set

UGroundPatches* UFuncGndAna::grp
const int UFuncGndAna::PAC = attributeTypeCnt
staticprotected
const int UFuncGndAna::PTC = patchTypeCnt
staticprotected
bool UFuncGndAna::silent

is function to be silent

UVariable* UFuncGndAna::varAttName[PAC]
protected
UVariable* UFuncGndAna::varAttTypeCnt
protected
UVariable* UFuncGndAna::varBBminX
protected
UVariable* UFuncGndAna::varCellSize
protected
UVariable* UFuncGndAna::varDistMaxX
protected
UVariable* UFuncGndAna::varGndMaxZ
protected
UVariable* UFuncGndAna::varGndMinQ
protected
UVariable* UFuncGndAna::varGndMinZ
protected
UVariable* UFuncGndAna::varGndRedFac
protected
UVariable* UFuncGndAna::varPatchAtts[PTC][PAC][3]
protected
UVarPool* UFuncGndAna::varPatchType[PTC]
protected
UVariable* UFuncGndAna::varPatchTypeCnt
protected
UVariable* UFuncGndAna::varResultImg
protected

The documentation for this class was generated from the following files: