Jafar
Classes | Namespaces | Files | Functions
Module slam

Detailed Description

Version:
2.0
Author:
thomas.lemaire@laas.fr

SLAM (Simultaneous Localization And Mapping) is a fundamental problem for robotics.

The module slam implements several algorithms:

Currently, sizeless points, iinverse-depth points and Plucker lines can be used as features.

History

Overview

Main classes

Example of use (in tcl)


#
# setup
#

# create a Slam object
set slamEkf [slam::new_SlamEkf 350 6 6]

# optionnaly change the map manager
#   $slamEkf setMapManager [slam::new_LocalMapManager $slamEkf 40 3]
#   $slamEkf setMapManager [slam::new_GlobalMapManager $slamEkf 3 3.0]

# covariance update method (DEFAULT, STANDARD, JOSEPH)
[$slamEkf getFilter] setCovUpdateType $filter::BaseKalmanFilter_STANDARD
# consistency check method
[$slamEkf getFilter] setupConsistencyCheck $::filter::BaseKalmanFilter_CONSISTENCY_EXCEPTION 10.0


# create a landmark model
set ptModel [slam::new_PointFeatureModel]
# create an associated observe model
set ptObsModel [slam::new_PolarPointFeatureObserveModel $ptModel]
$ptObsModel setNoiseValues 0.1 [jmath::degToRad 2] [jmath::degToRad 2]
# add the defined sensor to Slam
$slamEkf setSensor $ptObsModel
# set the robot to sensor t3d
set robotToSensor [jmath::new_vec 6]
jmath::setValue $robotToSensor "(0,0,1.0,[jmath::degToRad 90],0,0)"
$slamEkf setRobotToSensor $robotToSensor

# create a prediction model
set odoPredictModel [slam::new_Odo3dPredictModel]
[$odoPredictModel cget -odoNoiseModel] set [expr pow(0.05,2)] 0 [expr pow(0.05,2)] 0

#
# run
#

# predict with command u [v,w]
$slamEkf predict $predictModel $u

# update
FIXME

Example of use (in tcl)


# create and initialize the slam object
slamEkf = Slam::SlamEkf.new(350, 6, 6)
slamEkf.getFilter.setCovUpdateType(Filter::BaseKalmanFilter::STANDARD)
slamEkf.getFilter.setupConsistencyCheck(Filter::BaseKalmanFilter::CONSISTENCY_EXCEPTION, 10.0)

# create a landmark model
ptModel = Slam::PointFeatureModel.new
# create an associated observe model
ptObsModel = Slam::PolarPointFeatureObserveModel.new( ptModel )
ptObsModel.setNoiseValues( 0.1, Jmath::degToRad(2), Jmath::degToRad(2))
# add the defined sensor to Slam
slamEkf.setSensor(ptObsModel)
# set the robot to sensor t3d
robotToSensor = Jmath::Vec.new(6)
Jmath::setValue(robotToSensor, "(0,0,1.0,#{Jmath::degToRad(90)},0,0)")
slamEkf.setRobotToSensor(robotToSensor)

# create a prediction model
odoPredictModel = Slam::Odo3dPredictModel.new
odoPredictModel.odoNoiseModel.set(Math::exp( 0.05 ** 2 ), 0, Math::exp( 0.05 ** 2 ), 0 )

#
# run
#

# predict with command u [v,w]
u = Jmath::Vec.new(2)
slamEkf.predict(odoPredictModel, u)

# update
#       FIXME

Macro

Extra doc for macro can go here... (you can delete this section if not relevant)

Tcl interface (generated by swig)

The interface of the module is generated from the following files:

Classes

class  jafar::slam::AbstractMapManager
 Abstract map manager. More...
class  jafar::slam::AbstractMapObject
 class Abstract Map Object More...
class  jafar::slam::BaseSlam
 Base class for Slam algorithms that can be used by managers. More...
class  jafar::slam::BasisFeatureModel
 A basis features includes the X,Y,Z coordinates of the origin, plus the raw, yaw and pitch angles. More...
class  jafar::slam::InitStateMember
 Initial state gaussian member (or hypothesis). More...
class  jafar::slam::InitFeature
 A generic bearing only feature. More...
class  jafar::slam::BearingOnlyFeatureObserveModel
 Bearing only feature observation model. More...
class  jafar::slam::InfFeatureObserveModel
 A feature at infinity observe model. More...
class  jafar::slam::TrajectoryPoseRecord
 A pose from the trajectory. More...
class  jafar::slam::BearingOnlySlam
 Bearing only slam. More...
class  jafar::slam::DalaManager
 Class for managing Dala. More...
class  jafar::slam::BaseFeature
 Generic feature. More...
class  jafar::slam::FeatureModel
 This class defines a generic feature model. More...
class  jafar::slam::BaseFeatureObserveModel
 The root class for all feature models. More...
class  jafar::slam::FeatureObserveModel
 Fully observable feature observe model. More...
class  jafar::slam::Full3dPredictModel
 Full 3d predict model. More...
class  jafar::slam::FreeStateCollector
 This class acts as a collector of free state in the SLAM. More...
class  jafar::slam::DefaultMapManager
 Default map manager. More...
class  jafar::slam::LocalMapManager
 Local slam manager. More...
class  jafar::slam::GlobalMapManager
 Global (long term) map manager. More...
class  jafar::slam::Observation
 Observation. More...
class  jafar::slam::OdoNoiseModel
 Odometry noise model. More...
class  jafar::slam::Odo3dPredictModel
 3d odometry predict model. More...
class  jafar::slam::PointFeatureModel
 Sizeless 3D point model. More...
class  jafar::slam::CartesianPointFeatureObserveModel
 sizeless point cartesian observe model. More...
class  jafar::slam::PolarPointFeatureObserveModel
 sizeless point polar observe model. More...
class  jafar::slam::BearingPointFeatureObserveModel
 sizeless point bearing-only observe model. More...
class  jafar::slam::ImagePointFeatureObserveModel
 sizeless point from perspective image observe model. More...
class  jafar::slam::StereoImagePointFeatureObserveModel
 sizeless point from stereo images observe model. More...
class  jafar::slam::OmniImagePointFeatureObserveModel
 sizeless point from omnidirectional image observe model. More...
class  jafar::slam::PointInfFeatureModel
 Sizeless 3D point at infinity model. More...
class  jafar::slam::BearingPointInfFeatureObserveModel
 Point at infinity bearing-only observe model. More...
class  jafar::slam::OmniImagePointInfFeatureObserveModel
 Point at infinity observed in a panoramique image. More...
class  jafar::slam::PointInvDepthFeatureModel
 Sizeless 3D point using the inverse-depth parametrisation. More...
class  jafar::slam::BearingPointInvDepthFeatureObserveModel
 Sizeless 3D point using the inverse-depth parametrisation, bearings-only sensor. More...
class  jafar::slam::OmniImagePointInvDepthFeatureObserveModel
 Sizeless 3D point using the inverse-depth parametrisation observed in a panoramic image. More...
class  jafar::slam::ImagePointInvDepthFeatureObserveModel
 Sizeless 3D point using the inverse-depth parametrisation observed in a perspective image. More...
class  jafar::slam::PoseCopy
 A special object of the map to estimate a local frame. More...
class  jafar::slam::BaseRobot
 Base robot model. More...
class  jafar::slam::SegmentAnchorFeature
 A plucker segment anchored feature, with its extremities. More...
class  jafar::slam::SegAnchorPluckerFeatureModel
 3D segments using anchored plucker parametrisation. More...
class  jafar::slam::ImageAnchorPluckerFeatureObserveModel
 3D segments using the anchored plucker parametrisation observed in a perspective image. More...
class  jafar::slam::SegmentObservation
 Observation of a segment. More...
class  jafar::slam::StereoSegmentObservation
 Observation of a segment. More...
class  jafar::slam::SegmentFeatureContraintModel
 Segment Feature constriant model. More...
class  jafar::slam::SegmentFeature
 A segment feature, with its extremities. More...
class  jafar::slam::SegmentFeatureModel
 segment model. More...
class  jafar::slam::ImageEuclideanPluckerFeatureObserveModel
 segment extracted from an image observe model. More...
class  jafar::slam::ImagePluckerFeatureObserveModel
 Sizeless 3D segment using the homogenous coordinates parametrisation observed in a perspective image. More...
class  jafar::slam::RhoThetaImagePluckerFeatureObserveModel
 Observation Model using Rho Theta parametrisation. More...
class  jafar::slam::ScaledHomogeneousImagePluckerFeatureObserveModel
 Observation Model using Scaled Homogeneous parametrisation. More...
class  jafar::slam::StereoImagePluckerFeatureObserveModel
 Observation Model using a Stereo head, two uvd points for init, two rho-thetas for updates. More...
class  jafar::slam::SegmentIDFeature
 A segment inverse depth feature, with its extremities. More...
class  jafar::slam::SegInvDepthFeatureModel
 3D segments using 2 points inverse-depth parametrisation. More...
class  jafar::slam::ImageSegInvDepthFeatureObserveModel
 Sizeless 3D point using the inverse-depth parametrisation observed in a perspective image. More...
class  jafar::slam::ImageSegInvDepthInovFeatureObserveModel
 Sizeless 3D point using the inverse-depth parametrisation observed in a perspective image. More...
class  jafar::slam::SlamEkf
 This class solves SLAM problem using the EKF-based academic solution. More...
class  jafar::slam::SlamEventListener
 Interface for Slam listeners. More...
class  jafar::slam::SlamEventAdapter
 Adapter for Slam listeners. More...
class  jafar::slam::BoSlamEventListener
 Interface for BoSlam listeners. More...
class  jafar::slam::BoSlamEventAdapter
 Adapter for BoSlam listeners. More...
class  jafar::slam::SlamException
 Base class for all exceptions defined in the module slam. More...
class  jafar::slamlines::ImageSegment
 class Image Segment More...
class  jafar::slamlines::ImageSegmentManager
 class Image Segment Manager More...
class  jafar::slamlines::ImageHomogenCoordSegmentManager

Namespaces

namespace  jafar::slam::EulerTools
 

Functions for operations related to Euler angles lines in SLAM.


namespace  jafar::slam::lineTools
 

Functions for operations related to lines in SLAM (Plucker, homogeneous, rho-theta, and others)


Files

file  eulerTools.hpp
 

Toolbox for operations related to Euler angles in SLAM.


file  lineTools.hpp
 

Toolbox for operations related to lines in SLAM (Plucker, homogeneous, rho-theta, and others)


Functions

bool jafar::slam::operator< (TrajectoryPoseRecord const &p1, TrajectoryPoseRecord const &p2)
 This operator compares TrajectoryPoseRecord.

Function Documentation

bool jafar::slam::operator< ( TrajectoryPoseRecord const &  p1,
TrajectoryPoseRecord const &  p2 
)

This operator compares TrajectoryPoseRecord.

It is used to find the pose to throw away.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:30 for Jafar by doxygen 1.7.6.1
LAAS-CNRS