NOTE: This section, as the work advances, should gradually move up to the previous section and become a stable documentation.
Initial development
Initially, and to make it simple to develop, each abstract contains only one derived class, as follows:
- jafar::rtslam::MapAbstract
- jafar::rtslam::MapEKF : classical local map with fixed origin (robot moves away from origin, all landmarks are referenced to the fixed origin).
- jafar::rtslam::ObservationAbstract : Please note that Observations depend always on two types of objects: sensor type and landmark type.
- jafar::rtslam::ObservationPinHolePoint : observe a point from a pin-hole sensor. Derive this class still once more to specify which kind of point.
This sets the initially indispensable classes to start working with vision sensors and Anchored homogeneous point landmarks that allow undelayed initialization.
Next important developments
A second set of derivations should perform some additional and useful things such as a few new motion, sensor and landmark models. For the landmarks, we must start defining re-parametrization methods. We should also introduce the first of the straight line models.
- jafar::rtslam::MapAbstract
- jafar::rtslam::MapEKFRobocentric : robocentric map where the origin is always brought to the robot pose. This may require the extension of all robot classes with the appropriate re-frame functions.
- jafar::rtslam::LandmarkAbstract
- jafar::rtslam::LandmarkEuclideanPoint : Euclidean 3D points EP, (x,y,z).
- jafar::rtslam::landmarkAnchoredHomogeneousLine : Anchored homogeneous 3D lines AHL3, (x_0,y_0,z_0,x_1,y_1,z_1,w_1,x_2,y_2,z_2,w_2).
- jafar::rtslam::ObservationAbstract : Please note that Observations depend always on two types of objects: sensor type and landmark type.
- jafar::rtslam::ObservationPinHolePoint : observe a point from a pin-hole sensor. Derive this class still once more to specify which kind of point.
- jafar::rtslam::ObservationPinHoleEuclideanPoint : observe EP point from a pin-hole sensor.
- jafar::rtslam::ObservationBarretoAnchoredHomogeneousPoint : observe AHP point from a Barreto sensor.
- jafar::rtslam::ObservationBarretoEuclideanPoint : observe EP point from a Barreto sensor.
- jafar::rtslam::ObservationPinHoleLine : observe a line from a pin-hole sensor. Derive this class still once more to specify which kind of line.
- jafar::rtslam::ObservationPinHoleAnchoredHomogeneousPointLine : observe AHL point from a pin-hole sensor.
Future developments
Further developments could consider building straight line landmark models. Non-anchored landmarks are to be tested with robocentric maps. The list below is not exhaustive, nor it tries to impose the order for future development.
- jafar::rtslam::LandmarkAbstract
- jafar::rtslam::landmarkAnchoredModifiedPolarPoint : Anchored modified-polar 3D points AMPP3 (x_0,y_0,z_0,x,y,z,w). This is the same as IDP landmarks.
- jafar::rtslam::landmarkHomogeneousLine : Homogeneous 3D lines HL3 (x_1,y_1,z_1,w_1,x_2,y_2,z_2,w_2).
- jafar::rtslam::ObservationAbstract : Please note that Observations depend always on two types of objects: sensor type and landmark type.
- jafar::rtslam::ObservationPinHolePoint : observe a point from a pin-hole sensor. Derive this class still once more to specify which kind of point.
- jafar::rtslam::ObservationPinHoleHomogeneousLine : observe HL from a pin-hole sensor.
- jafar::rtslam::ObservationPinHoleAnchoredModifiedPolarPoint : observe AMPP from a pin-hole sensor.
- jafar::rtslam::ObservationBarretoAnchoredModifiedPolarPoint : observe AMPP from a Barreto sensor.
- jafar::rtslam::ObservationPinHoleLine : observe a line from a pin-hole sensor. Derive this class still once more to specify which kind of line.
- jafar::rtslam::ObservationBarretoAnchoredHomogeneousLine : observe AHL line from a Barreto sensor.
- jafar::rtslam::ObservationBarretoHomogeneousLine : observe HL from a Barreto sensor.