Inheritance diagram for nuklei::kernel::se3:
nuklei::kernel::implementation_prototype< se3 > nuklei::kernel::base

Public Types

typedef NUKLEI_UNIQUE_PTR< kernel::se3ptr
 
typedef nuklei::unnormalized_shape_dist_kernel< groupS::r3, shapeS::trianglePositionKernel
 
typedef von_mises_fisher_kernel< groupS::so3OrientationKernel
 
- 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::baseptr
 NUKLEI_UNIQUE_PTR for kernel::base.
 

Public Member Functions

 se3 (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...
 
Type type () const
 
coord_t eval (const kernel::se3 &k) const
 Evaluates this kernel at pose k. More...
 
coord_t cutPoint () const
 
kernel::se3 sample () const
 Returns a sample taken from this kernel. More...
 
kernel::se3 se3Sample () const
 
kernel::se3 se3Proj () const
 
kernel::se3 projectedOn (const kernel::se3 &k) const
 
kernel::se3 transformedWith (const kernel::se3 &k) const
 
void makeTransformWith (const kernel::se3 &k)
 
kernel::se3 transformationFrom (const kernel::se3 &k) const
 
kernel::se3 inverseTransformation () const
 
kernel::se3 linearInterpolation (const kernel::se3 &k, const coord_t x) const
 
void updateWidth (const kernel::se3 &k, const coord_t x=.5)
 
coord_pair distanceTo (const kernel::se3 &k) const
 
- Public Member Functions inherited from nuklei::kernel::implementation_prototype< se3 >
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::se3polySe3Sample () const
 Get an \( SE(3) \) sample from the kernel. More...
 
NUKLEI_UNIQUE_PTR< kernel::se3polySe3Proj () 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::se3polySe3Sample () const =0
 Get an \( SE(3) \) sample from the kernel. More...
 
virtual NUKLEI_UNIQUE_PTR< kernel::se3polySe3Proj () 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
 
DescriptorgetDescriptor ()
 
const DescriptorgetDescriptor () 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_
 Kernel location.
 
Quaternion ori_
 Kernel orientation.
 
coord_t loc_h_
 Location bandwidth.
 
coord_t ori_h_
 Orientation bandwidth, in radians.
 

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)
 
baseoperator= (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< Descriptordesc_
 

Detailed Description

Definition at line 404 of file Kernel.h.

Member Function Documentation

◆ eval()

coord_t nuklei::kernel::se3::eval ( const kernel::se3 k) const
inline

Evaluates this kernel at pose k.

This function returns

\[ \mathcal K_{SE(3)}\left(\lambda, \theta ; \mu_t, \mu_r, \sigma_t, \sigma_r\right), \]

where the arguments of \( \mathcal K_{SE(3)} \) are respectively equal to k.loc_, k.ori_, this->loc_, this->ori_, this->loc_h_, this->ori_h_. See Kernels, kernel density estimation, kernel regression for the definition of \( \mathcal K_{SE(3)} \).

Note: this->ori_h_ should be expressed in radians.

Definition at line 709 of file Kernel.h.

References loc_, and loc_h_.

◆ getOriH()

coord_t nuklei::kernel::se3::getOriH ( ) const
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.

Definition at line 428 of file Kernel.h.

References ori_h_.

◆ sample()

kernel::se3 nuklei::kernel::se3::sample ( ) const

Returns a sample taken from this kernel.

This function returns a sample \( (\lambda, \theta) \) drawn from

\[ \mathcal K'_{SE(3)}\left(\lambda, \theta ; \mu_t, \mu_r, \sigma_t, \sigma_r\right), \]

where the four last arguments of \( \mathcal K'_{SE(3)} \) are respectively equal to this->loc_, this->ori_, this->loc_h_, this->ori_h_. See Kernels, kernel density estimation, kernel regression for the definition of \( \mathcal K'_{SE(3)} \).

Note: this->ori_h_ should be expressed in radians.

Definition at line 61 of file Kernel.cpp.

References loc_, loc_h_, ori_, and ori_h_.

◆ setOriH()

void nuklei::kernel::se3::setOriH ( const coord_t  h)
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.

Definition at line 429 of file Kernel.h.

References ori_h_.


The documentation for this class was generated from the following files:
© Copyright 2007-2013 Renaud Detry.
Distributed under the terms of the GNU General Public License (GPL).
(See accompanying file LICENSE.txt or copy at http://www.gnu.org/copyleft/gpl.html.)
Revised Sun Sep 13 2020 19:10:15.