odometry
Classes | Namespaces
KinematicModel.hpp File Reference

Kinematic Model Abstract class. More...

#include <string>
#include <vector>
#include <base/Eigen.hpp>

Go to the source code of this file.

Classes

class  odometry::KinematicModel< _Scalar, _RobotTrees, _RobotJointDoF, _SlipDoF, _ContactDoF >
 

Namespaces

 odometry
 

Detailed Description

Kinematic Model Abstract class.

This is the Template Abstract class for the Forward kinematics of Wheel or Leg Robot considering all the DOFs in the Kinematics Chains (Trees). Basically the forward kinematics transform wheel/Leg contact points position with respect to the body_frame considering the joint values (chain configuration). The wheelJacobian or legJacobian works in velocity space and gives information of each wheel/leg contact point to the contribution of the movement (rover angular and linear velocities).

It has been designed to use together with the MotionModel Solver (Least-Squares solver) imple mented in the MOtionModel.hpp file of this library.

It should first compute the forward kinematics in order to have afterwards the Robot Jacobian. Neither the forward kinematics nor the Jacobian are provided by this class since this is an abstract class and the kinematics is platform dependent. Your class should make this job.

The rational behind is to have a wrapper abstract class to solve the statistical motion model of any complex robot. The goal is for odometry (localization) purpose in a unify way. The real implemenetation of the Robot Kinematic Model which would inherits from this class can use any method. This means that either analytical or numerical solutions can be internaly apply. An example of numerical solution is the KDL library. An example of analytical is your own closed-form. Since forward kinematics is normaly quite easy to get an analytical form is recomended. However, if your robot kinematics is complex and for control purpose you have a Tree structure representation for numerical inverse kinematics in KDL/or similar. Perhaps, it is worthy to wrap this kinematic tree implementation with this class.

Anyway, the important aspect is to commit the interface. The nomenclature attempts to be generic. An important issue with respect to a conventional kinematics is that a 3D slip vector is modeled as part of the DoF of the kinematics in the form of displacement/rotation vector (x, y and rot theta). Located at the frame between the robot contact point (feet/wheel) and the ground.

Further Details at: P.Muir et. al Kinematic Modeling of Wheeled Mobile Robots M. Tarokh et. al Kinematics Modeling and Analyses of Articulated Rovers J. Hidalgo et. al Kinematics Modeling of a Hybrid Wheeled-Leg Planetary Rover J. Hidalgo, Navigation and Slip Kinematics for High Performance Motion Models

Author
Javier Hidalgo Carrio | DFKI RIC Bremen | javie.nosp@m.r.hi.nosp@m.dalgo.nosp@m._car.nosp@m.rio@d.nosp@m.fki..nosp@m.de
Date
May 2013.
Version
1.0.