Robot Simulator of the Robotics Group for Self-Organization of Control
0.8.0
|
This CameraSensor calculates the global optical flow of the camera image using the center of gravity method. More...
#include <camerasensors.h>
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< sensor > | getList () 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< sensor > | getListOfArray () 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< SensorMotorInfo > | getInfos (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< sensor > | selectrows (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 |
sensor * | data |
double | oldsize |
Protected Attributes inherited from CameraSensor | |
Camera * | camera |
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... | |
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.
|
inline |
The camera image should be black and white (e.g.
mconf | configuration object |
|
inlinevirtual |
|
inlinestatic |
|
inlinevirtual |
Performs the calculations.
Reimplemented from PositionCameraSensor.
|
inline |
window function for the interval -1 to 1, with ramps from 0.5 off center
|
protected |
|
protected |
whether last image had a valid position
|
protected |
|
protected |
|
protected |