Robot Simulator of the Robotics Group for Self-Organization of Control  0.8.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MotionCameraSensor Class Reference

This CameraSensor calculates the global optical flow of the camera image using the center of gravity method. More...

#include <camerasensors.h>

Inheritance diagram for MotionCameraSensor:
Collaboration diagram for MotionCameraSensor:

Public Member Functions

 MotionCameraSensor (const MotionCameraSensorConf &mconf=getDefaultConf())
 The camera image should be black and white (e.g. More...
 
virtual ~MotionCameraSensor ()
 
virtual bool sense (const GlobalData &globaldata)
 Performs the calculations. More...
 
double windowfunc (double x)
 window function for the interval -1 to 1, with ramps from 0.5 off center More...
 
- Public Member Functions inherited from PositionCameraSensor
 PositionCameraSensor (PositionCameraSensorConf conf=getDefaultConf())
 The camera image should be black and white (e.g. More...
 
virtual void setNamesIntern (std::vector< std::string > &names)
 sets the names of the sensors and starts with the given names (for subclasses) More...
 
virtual ~PositionCameraSensor ()
 
virtual void intern_init ()
 overload this function to initialized you data structures. More...
 
virtual int getSensorNumber () const
 overload this function and return the number of sensor values More...
 
virtual int get (sensor *sensors, int length) const
 overload this function and return the sensor values More...
 
- Public Member Functions inherited from CameraSensor
 CameraSensor ()
 Creates a camera sensor. More...
 
virtual ~CameraSensor ()
 
virtual void setInitData (Camera *camera, const OdeHandle &odeHandle, const OsgHandle &osgHandle, const osg::Matrix &pose)
 sets the initial data structures like the camera. More...
 
virtual void setPose (const osg::Matrix &pose)
 changes the relative pose of the camera More...
 
virtual osg::Matrix getPose ()
 relative pose of the camera More...
 
virtual void init (Primitive *own, Joint *joint=0)
 this function initialized the camera (no need to overload) (Sensor interface) More...
 
virtual void update ()
 we update the camera's visual appearance More...
 
virtual std::list< sensorgetList () const
 this is implemented based on get(sensor*,int) More...
 
- Public Member Functions inherited from Sensor
 Sensor ()
 
virtual ~Sensor ()
 
virtual std::list
< SensorMotorInfo
getSensorInfos () const
 returns a list of sensor infos ( More...
 
std::list< sensorgetListOfArray () const
 helper function for performance implementation of list<> get() based on array-get More...
 
- Public Member Functions inherited from SensorMotorInfoAble
 SensorMotorInfoAble ()
 
void setBaseName (const std::string &basename)
 
void setBaseInfo (const SensorMotorInfo &baseinfo)
 
SensorMotorInfo getBaseInfo ()
 
void setNamingFunc (const NamingFunction &func)
 
NamingFunction getNamingFunc () const
 
void setNames (const std::vector< std::string > &names)
 set names explicitly (basename is anyway suffixed) More...
 
std::string getName (int index) const
 returns the name of a single item. Typically called from within Sensor and Motor class. More...
 
std::list< SensorMotorInfogetInfos (int number) const
 get all infos. More...
 

Static Public Member Functions

static MotionCameraSensorConf getDefaultConf ()
 
- Static Public Member Functions inherited from PositionCameraSensor
static PositionCameraSensorConf getDefaultConf ()
 
- Static Public Member Functions inherited from Sensor
static std::list< sensorselectrows (const matrix::Matrix &m, short dimensions)
 selects the rows specified by dimensions (X->0, Y->1, Z->2) More...
 
static int selectrows (sensor *sensors, int length, const matrix::Matrix &m, short dimensions)
 selects the rows specified by dimensions (X->0, Y->1, Z->2) More...
 
static Dimensions parseSensorDimension (char *str)
 
static std::string dimensions2String (short dimensions)
 
- Static Public Member Functions inherited from SensorMotorInfoAble
static std::string defaultNameing (int index)
 the default implementation is for index==0: basename, otherwise basename + (index+1) More...
 

Protected Attributes

MotionCameraSensorConf mconf
 
double lambda
 
bool last
 whether last image had a valid position More...
 
double lastX
 
double lastY
 
- Protected Attributes inherited from PositionCameraSensor
PositionCameraSensorConf conf
 
int num
 
sensordata
 
double oldsize
 
- Protected Attributes inherited from CameraSensor
Cameracamera
 
OdeHandle odeHandle
 
OsgHandle osgHandle
 
osg::Matrix pose
 
bool isInitDataSet
 
- Protected Attributes inherited from SensorMotorInfoAble
NamingFunction func
 
SensorMotorInfo baseinfo
 

Additional Inherited Members

- Public Types inherited from PositionCameraSensor
enum  ValueTypes { None = 0, Position = 1, Size = 2, SizeChange = 4 }
 additional sensor values. More...
 
- Public Types inherited from Sensor
enum  Dimensions {
  X = 1, Y = 2, Z = 4, XY = X | Y,
  XZ = X | Z, YZ = Y | Z, XYZ = X | Y | Z
}
 defines which dimensions should be sensed. The meaning is sensor specific. More...
 
- Public Types inherited from SensorMotorInfoAble
typedef std::function
< std::string(int)> 
NamingFunction
 function that returns the name given the index More...
 
- Protected Member Functions inherited from PositionCameraSensor
virtual bool processAndFillData (double &x, double &y, double &size, int &k)
 process sensor information and fills More...
 
- Static Protected Member Functions inherited from PositionCameraSensor
static bool calcImgCOG (const osg::Image *img, double &x, double &y, double &size, int threshold=1)
 calculates the Center of Gravity (normalized to -1 to 1) of an image. More...
 

Detailed Description

This CameraSensor calculates the global optical flow of the camera image using the center of gravity method.

It requires objects to be bright on black ground. The velocity is by default windowed to avoid step-like artefacts at the border. Probably you want to use an image processor like ColorFilterImgProc before.

Constructor & Destructor Documentation

The camera image should be black and white (e.g.

See Also
BWImageProcessor or ColorFilterImgProc)
CameraSensor for further parameter explanation.
Parameters
mconfconfiguration object
See Also
MotionCameraSensorConf and
PositionCameraSensorConf
virtual ~MotionCameraSensor ( )
inlinevirtual

Member Function Documentation

static MotionCameraSensorConf getDefaultConf ( )
inlinestatic
virtual bool sense ( const GlobalData globaldata)
inlinevirtual

Performs the calculations.

Reimplemented from PositionCameraSensor.

double windowfunc ( double  x)
inline

window function for the interval -1 to 1, with ramps from 0.5 off center

Member Data Documentation

double lambda
protected
bool last
protected

whether last image had a valid position

double lastX
protected
double lastY
protected
MotionCameraSensorConf mconf
protected

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