Public Types | |
typedef NUKLEI_UNIQUE_PTR< kernel::r3xs2_base< OriGrp > > | ptr |
typedef implementation_prototype< r3xs2_base< OriGrp > > | Super |
typedef nuklei::unnormalized_shape_dist_kernel< groupS::r3, shapeS::triangle > | PositionKernel |
typedef von_mises_fisher_kernel< OriGrp > | OrientationKernel |
Public Types inherited from nuklei::kernel::base | |
enum | Type { R3 = 0, R3XS2, R3XS2P, SE3, UNKNOWN } |
Explicit query of a kernel's type. See Type Queries for more info. | |
typedef NUKLEI_UNIQUE_PTR< kernel::base > | ptr |
NUKLEI_UNIQUE_PTR for kernel::base. | |
Public Member Functions | |
r3xs2_base (const kernel::base &k) | |
void | assertConsistency () const |
std::ostream & | print (std::ostream &out) const |
coord_t | getLocH () const |
Get the location bandwidth. | |
void | setLocH (const coord_t h) |
Set the location bandwidth. | |
coord_t | getOriH () const |
Get the orientation bandwidth. More... | |
void | setOriH (const coord_t h) |
Set the orientation bandwidth. More... | |
base::Type | type () const |
coord_t | eval (const kernel::r3xs2_base< OriGrp > &k) const |
Evaluates this kernel at pose k . More... | |
coord_t | cutPoint () const |
kernel::r3xs2_base< OriGrp > | sample () const |
Returns a sample taken from this kernel. More... | |
kernel::se3 | se3Sample () const |
kernel::se3 | se3Proj () const |
kernel::r3xs2_base< OriGrp > | projectedOn (const kernel::se3 &k) const |
kernel::r3xs2_base< OriGrp > | transformedWith (const kernel::se3 &k) const |
void | makeTransformWith (const kernel::se3 &k) |
kernel::r3xs2_base< OriGrp > | linearInterpolation (const kernel::r3xs2_base< OriGrp > &k, const coord_t x) const |
void | updateWidth (const kernel::r3xs2_base< OriGrp > &k, const coord_t x=.5) |
coord_pair | distanceTo (const kernel::r3xs2_base< OriGrp > &k) const |
std::ostream & | print (std::ostream &out) const |
std::ostream & | print (std::ostream &out) const |
kernel::base::Type | type () const |
kernel::base::Type | type () const |
kernel::se3 | se3Proj () const |
kernel::se3 | se3Proj () const |
kernel::r3xs2_base< groupS::s2 > | linearInterpolation (const kernel::r3xs2_base< groupS::s2 > &k, const coord_t x) const |
kernel::r3xs2_base< groupS::s2p > | linearInterpolation (const kernel::r3xs2_base< groupS::s2p > &k, const coord_t x) const |
Public Member Functions inherited from nuklei::kernel::implementation_prototype< r3xs2_base< OriGrp > > | |
base::ptr | clone () const |
Clone the kernel. | |
base::ptr | create () const |
Create a new kernel of the same type. | |
Vector3 | getLoc () const |
Get the location component of the kernel. | |
void | setLoc (const Vector3 &v) |
Set the location component of the kernel. | |
std::ostream & | polyPrint (std::ostream &out) const |
Prints the kernel parameters to the provided stream. More... | |
Type | polyType () const |
Get the "kernel type", i.e., its domain of definition. | |
coord_t | polyEval (const base &k) const |
Evaluate the kernel at the location/orientation of k . | |
coord_t | polyCutPoint () const |
Distance (from the origin) at which the value of the kernel becomes zero. | |
base::ptr | polySample () const |
Get a sample from the kernel. | |
NUKLEI_UNIQUE_PTR< kernel::se3 > | polySe3Sample () const |
Get an \( SE(3) \) sample from the kernel. More... | |
NUKLEI_UNIQUE_PTR< kernel::se3 > | polySe3Proj () const |
Get an \( SE(3) \) version of the kernel. More... | |
base::ptr | polyProjectedOn (const kernel::se3 &k) const |
Projects *this onto k and returns the result. (See Operations on Poses.) | |
base::ptr | polyTransformedWith (const kernel::se3 &k) const |
Transforms *this with k and returns the result. (See Operations on Poses.) | |
void | polyMakeTransformWith (const kernel::se3 &k) |
Transforms *this with k and sets *this to the result. (See Operations on Poses.) | |
base::ptr | polyLinearInterpolation (const kernel::base &k, const coord_t x) const |
Interpolates between *this and k . More... | |
void | polyUpdateWidth (const kernel::base &k, const coord_t x=.5) |
Used internally. | |
coord_pair | polyDistanceTo (const kernel::base &k) const |
Returns a std::pair containing the distance in position and orientation between *this and k . | |
Public Member Functions inherited from nuklei::kernel::base | |
bool | operator< (const kernel::base &k) const |
Weight-based kernel comparator. | |
bool | operator> (const kernel::base &k) const |
Weight-based kernel comparator. | |
virtual base::ptr | clone () const =0 |
Clone the kernel. | |
virtual base::ptr | create () const =0 |
Create a new kernel of the same type. | |
virtual Vector3 | getLoc () const =0 |
Get the location component of the kernel. | |
virtual Type | polyType () const =0 |
Get the "kernel type", i.e., its domain of definition. | |
virtual coord_t | polyCutPoint () const =0 |
Distance (from the origin) at which the value of the kernel becomes zero. | |
virtual base::ptr | polySample () const =0 |
Get a sample from the kernel. | |
virtual NUKLEI_UNIQUE_PTR< kernel::se3 > | polySe3Sample () const =0 |
Get an \( SE(3) \) sample from the kernel. More... | |
virtual NUKLEI_UNIQUE_PTR< kernel::se3 > | polySe3Proj () const =0 |
Get an \( SE(3) \) version of the kernel. More... | |
weight_t | getWeight () const |
Returns this kernel's weight. | |
void | setWeight (const weight_t w) |
Sets this kernel's weight. | |
bool | hasDescriptor () const |
Descriptor & | getDescriptor () |
const Descriptor & | getDescriptor () const |
void | setDescriptor (const Descriptor &desc) |
void | clearDescriptor () |
void | setFlag (bitfield_t flag) |
void | resetFlag (bitfield_t flag) |
bool | getFlag (bitfield_t flag) const |
Public Attributes | |
Vector3 | loc_ |
Vector3 | dir_ |
coord_t | loc_h_ |
coord_t | dir_h_ |
Friends | |
class | NUKLEI_SERIALIZATION_FRIEND_CLASSNAME |
Additional Inherited Members | |
Static Public Attributes inherited from nuklei::kernel::base | |
static const Type | defaultType = SE3 |
Explicit query of a kernel's type. See Type Queries for more info. | |
static const std::string | TypeNames [] = { "r3", "r3xs2", "r3xs2p", "se3" } |
Explicit query of a kernel's type. See Type Queries for more info. | |
Protected Member Functions inherited from nuklei::kernel::base | |
base (const base &k) | |
base & | operator= (const base &k) |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Protected Attributes inherited from nuklei::kernel::base | |
weight_t | w_ |
int | flag1_ |
bitfield_t | bitfield_ |
NUKLEI_UNIQUE_PTR< Descriptor > | desc_ |
|
inline |
Evaluates this kernel at pose k
.
Note: This doc describes the behavior of this method when OriGrp
is groupS::s2p, i.e., when the object on which the method is called is of type kernel::r3xs2p.
This function returns
\[ \mathcal K_{RSA}\left(\lambda, \theta ; \mu_t, \mu_r, \sigma_t, \sigma_r\right), \]
where the arguments of \( \mathcal K_{RSA} \) are respectively equal to k.loc_
, k.dir_
, this->loc_
, this->dir_
, this->loc_h_
, this->dir_h_
. See Kernels, kernel density estimation, kernel regression for the definition of \( \mathcal K_{RSA} \).
Note: this->dir_h_
should be expressed in radians.
|
inlinevirtual |
Get the orientation bandwidth.
This method is implemented in child classes. In classes that do not have an orientation (or a direction), this method returns 0.
Implements nuklei::kernel::base.
kernel::r3xs2_base< OriGrp > nuklei::kernel::r3xs2_base< OriGrp >::sample |
Returns a sample taken from this kernel.
Note: This doc describes the behavior of this method when OriGrp
is groupS::s2p, i.e., when the object on which the method is called is of type kernel::r3xs2p.
This function returns a sample \( (\lambda, \theta) \) drawn from
\[ \mathcal K'_{RSA}\left(\lambda, \theta ; \mu_t, \mu_r, \sigma_t, \sigma_r\right), \]
where the four last arguments of \( \mathcal K'_{RSA} \) are respectively equal to this->loc_
, this->dir_
, this->loc_h_
, this->dir_h_
. See Kernels, kernel density estimation, kernel regression for the definition of \( \mathcal K'_{RSA} \).
Note: this->dir_h_
should be expressed in radians.
|
inlinevirtual |
Set the orientation bandwidth.
This method is implemented in child classes. In classes that do not have an orientation (or a direction), this method does nothing.
Implements nuklei::kernel::base.