| Tekkotsu Homepage | Demos | Overview | Downloads | Dev. Resources | Reference | Credits |
fmat Namespace Referencefixed-size matrix routines for high performance with small allocations More...
Detailed Descriptionfixed-size matrix routines for high performance with small allocations Typedef Documentation
Definition at line 23 of file fmatCore.h.
Definition at line 397 of file fmatSpatial.h.
Definition at line 606 of file fmatSpatial.h. Function Documentation
template<template< size_t H, size_t W, typename R > class T, size_t H, size_t W, typename R >
Definition at line 1197 of file fmatCore.h.
template<template< size_t N, typename R > class T, size_t N, typename R >
Definition at line 1186 of file fmatCore.h. Referenced by abs(), Grasper::MoveArm::advTime(), PlanarThreeLinkArm::angDist(), PlanarThreeLinkArm::angNorm(), CMPackWalkMC::applyCalibration(), HingePositionInterface::applyResponse(), Kinematics::baseToLocal(), HeadPointerMC::clipAngularRange(), ArmMC::clipAngularRange(), LinkComponent::computeBB2D(), XWalkMC::computeCurrentBodyOffset(), XWalkMC::computeCurrentPosition(), IKThreeLink::computeFirstLinkRevolute(), WaypointEngine::computeIdeal(), LinkComponent::computeOwnAABB(), IKThreeLink::computeSecondLinkRevolute(), IKThreeLink::computeThirdLinkPrismatic(), IKThreeLink::computeThirdLinkRevolute(), RecordMotionNode::doEvent(), ArmController::doStart(), DRanNormalZig32(), DRanNormalZig32Vec(), Graphics::drawLine(), AprilTags::Edge::edgeCost(), DualCoding::MapBuilder::filterGroundShapes(), fmat::QuaternionT< R >::fromAxisAngle(), plist::Angle::get(), KDTree::getBestNKeypointMatch(), XWalkParameters::getMaxAVel(), LinkComponent::getObstacle(), RRTNodeXYTheta::goodAngle(), hashHoughKey(), GridWorld::heuristic(), RRTNodeXYTheta::interpolate(), invert(), XWalkMC::isDirty(), MotionSequenceEngine::makeSafe(), AprilTags::MathUtil::mod2pi(), BallDetectionGenerator::pct_from_mean(), TorqueCalibrate::TakeMeasurementControl::processEvent(), Kinematics::projectToPlane(), EllipticalObstacle::reset(), XWalkMC::resetPeriod(), HeadController::runCommand(), plist::Angle::saveXML(), XWalkMC::setTargetDisplacement(), CMPackWalkMC::setTargetDisplacement(), XWalkMC::setTargetVelocity(), RRTNodeXYTheta::smoothInterpolate(), IKThreeLink::solve(), IKGradientSolver::solve(), IKGradientSolver::step(), and XWalkMC::updateOutputsWalking().
template<typename R >
Definition at line 1211 of file fmatCore.h.
template<typename R >
Definition at line 1210 of file fmatCore.h.
template<typename R >
Definition at line 1209 of file fmatCore.h. Referenced by ShapeSpaceCollisionCheckerBase< N >::addObstacleFromCollisionModel(), and EllipticalObstacle::getBoundingBox().
template<class Ra , class Rb >
returns the rotation needed to transform p into q (this is the core of a 'slerp' implementation) Definition at line 402 of file fmatSpatial.h.
template<class Ta , class Tb >
Definition at line 1236 of file fmatCore.h. Referenced by IKSolver::Parallel::computeErrorGradient(), IKSolver::Rotation::computeErrorGradient(), GaitedFootsteps::expand(), KinematicJoint::getJointJacobian(), ConvexPolyObstacle::hull(), GJK::processTetrahedron(), GJK::processTriangle(), and IKGradientSolver::step().
template<template< size_t H, size_t W, typename R > class T, typename R >
returns the determinant for 3x3 matrices Definition at line 1323 of file fmatCore.h.
template<template< size_t H, size_t W, typename R > class T, typename R >
returns the determinant for 2x2 matrices Definition at line 1317 of file fmatCore.h. Referenced by AprilTags::GLine2D::intersectionWith().
template<template< size_t H, size_t W, typename R > class M, typename R >
Definition at line 1252 of file fmatCore.h.
template<template< size_t H, size_t W, typename R > class M, typename R >
Definition at line 1246 of file fmatCore.h.
template<template< size_t N, typename R > class V1, template< size_t N, typename R > class V2, typename R1 , typename R2 >
Definition at line 1338 of file fmatCore.h.
template<template< size_t N, typename R > class V1, template< size_t N, typename R > class V2, typename R1 , typename R2 >
Definition at line 1336 of file fmatCore.h.
template<template< size_t N, typename R > class V1, template< size_t N, typename R > class V2, typename R1 , typename R2 >
Definition at line 1334 of file fmatCore.h.
template<class Ta , class Tb >
Definition at line 1225 of file fmatCore.h.
template<template< size_t N, typename R > class T1, template< size_t N, typename R > class T2, size_t N, typename R1 , typename R2 >
Definition at line 1215 of file fmatCore.h. Referenced by GaitedFootsteps::addCandidate(), GaitedFootstepMC::advanceStep(), Kinematics::calcLegHeights(), Kinematics::calculateGroundPlane(), ConvexPolyObstacle::collides(), GJK::collides(), IKThreeLink::computeSecondLinkPrismatic(), IKThreeLink::computeThirdLinkPrismatic(), KinematicJoint::getParentPosition(), HierarchicalObstacle::getSupport(), ConvexPolyObstacle::getSupport(), ConvexPolyObstacle::gradient(), invertTransform(), GJK::processLine(), GJK::processTetrahedron(), GJK::processTriangle(), XWalkParameters::projectToGround(), Kinematics::projectToPlane(), XWalkMC::setTargetVelocity(), PostureEngine::solveLinkVector(), IKGradientSolver::step(), and GJK::tripleProduct().
template<typename R >
Definition at line 49 of file fmatCore.h. Referenced by fmat::Row< N, R >::fmt(), fmat::Column< N, fmat::fmatReal >::fmt(), fmat::Matrix< 4, 2 >::fmt(), fmat::SubMatrix< H, W, R >::fmt(), and fmat::SubVector< H, R >::fmt().
template<typename R >
Definition at line 637 of file fmatSpatial.h.
template<typename R >
Definition at line 405 of file fmatSpatial.h.
template<typename M >
Computes and returns the inverse of a square matrix using Gauss-Jordan elimination. The computation is done with column-wise operations for computational efficiency. You can think of this as doing the inverse in transposed space: (mᵀ)⁻¹ == (m⁻¹)ᵀ Definition at line 1262 of file fmatCore.h. Referenced by Kinematics::calculateGroundPlane(), AprilTags::GrayModel::compute(), Config::vision_config::computePixelCorrected(), Homography::getMatrix(), fmat::TransformT< R >::inverse(), and segmentIntersection().
template<typename R >
invert the matrix, taking advantage of known structure: Definition at line 610 of file fmatSpatial.h.
template<typename R >
Returns the point of intersection of d1 through p1 and d2 through p2. May return point at infinity if d1 and d2 are parallel (including collinear), such a point will be in the correct quadrant. Definition at line 719 of file fmatSpatial.h.
template<template< size_t, typename R > class V, typename R >
Returns the orthogonal left vector (rotate by 90°). Definition at line 726 of file fmatSpatial.h. Referenced by LinkComponent::computeBB2D().
template<template< size_t, typename R > class V, typename R >
Returns the orthogonal right vector (rotate by -90°). Definition at line 731 of file fmatSpatial.h. Referenced by LinkComponent::computeBB2D().
template<template< size_t W, typename R > class T1, template< size_t H, size_t W, typename R > class T2, size_t N, size_t W, typename R1 , typename R2 >
Definition at line 1180 of file fmatCore.h.
template<template< size_t H, size_t W, typename R > class T1, template< size_t N, typename R > class T2, size_t H, size_t N, typename R1 , typename R2 >
Definition at line 1174 of file fmatCore.h.
template<template< size_t H, size_t W, typename R > class T1, template< size_t H, size_t W, typename R > class T2, size_t H, size_t N, size_t W, typename R1 , typename R2 >
Definition at line 1148 of file fmatCore.h.
template<template< size_t H, size_t W, typename R > class T2, size_t D, typename R1 , typename R2 >
Definition at line 1167 of file fmatCore.h.
template<template< size_t H, size_t W, typename R > class T1, template< size_t H, size_t W, typename R > class T2, size_t D, typename R1 , typename R2 >
Definition at line 1160 of file fmatCore.h.
template<size_t N, typename R >
Definition at line 1141 of file fmatCore.h.
template<size_t N, typename R >
Definition at line 1138 of file fmatCore.h.
template<size_t H, size_t W, typename R >
Definition at line 1135 of file fmatCore.h.
template<size_t H, size_t W, typename R >
Definition at line 1132 of file fmatCore.h.
template<size_t N, typename R >
Definition at line 1129 of file fmatCore.h.
template<size_t N1, size_t N2, typename R >
Definition at line 1124 of file fmatCore.h.
template<size_t N, typename R1 , typename R2 >
Definition at line 1120 of file fmatCore.h.
template<size_t N, typename R1 , typename R2 >
Definition at line 1116 of file fmatCore.h.
template<size_t N1, size_t N2, typename R >
Definition at line 1110 of file fmatCore.h.
template<size_t N, typename R1 , typename R2 >
Definition at line 1106 of file fmatCore.h.
template<size_t N, typename R1 , typename R2 >
Definition at line 1102 of file fmatCore.h.
template<template< size_t N, typename R > class T1, template< size_t N, typename R > class T2, size_t N1, size_t N2, typename R1 , typename R2 >
Definition at line 1096 of file fmatCore.h.
template<template< size_t N, typename R > class T, size_t N, typename R1 , typename R2 >
Definition at line 1091 of file fmatCore.h.
template<template< size_t N, typename R > class T, size_t N, typename R1 , typename R2 >
packing columns: appending an element or concatenating two columns Definition at line 1086 of file fmatCore.h. Definition at line 1071 of file fmatCore.h. Definition at line 1070 of file fmatCore.h. generic packing of N values into a Column<N> (note assumes fmatReal, see packT() Definition at line 1069 of file fmatCore.h. Referenced by GaitedFootsteps::addCandidate(), ConvexPolyObstacle::addPoint(), GaitedFootsteps::addRotation(), CBracketGrasperPredicate< N >::admissible(), Grasper::appendObjectToObstacles(), Kinematics::calculateGroundPlane(), ConvexPolyObstacle::close(), RRTNodeXYTheta::CollisionChecker::collides(), RectangularObstacle::collides(), LinkComponent::computeBB2D(), Grasper::PathPlanConstrained::doStart(), Grasper::PathPlanUnconstrained::doStart(), GaitedFootsteps::expand(), HierarchicalObstacle::expandBoundingBox(), DualCoding::MapBuilder::filterGroundShapes(), EllipsoidObstacle::get2Support(), EllipticalObstacle::getBoundingBox(), RectangularObstacle::getCorner(), PhysicsBody::getInertia(), LinkComponent::getMassVector(), XWalkParameters::getMaxAVel(), KinematicJoint::getParentPosition(), EllipticalObstacle::getPointOnEdge(), EllipsoidObstacle::getSupport(), CylindricalObstacle::getSupport(), BoxObstacle::getSupport(), ConvexPolyObstacle::getSupport(), EllipticalObstacle::getSupport(), SphericalObstacle::gradient(), EllipticalObstacle::gradient(), CircularObstacle::gradient(), RectangularObstacle::gradient(), ConvexPolyObstacle::hull(), DualCoding::MapBuilder::isLineVisible(), DualCoding::MapBuilder::isPointVisible(), RectangularObstacle::loadXML(), ArmMC::moveToPoint(), normalLeft(), normalRight(), ShapeSpacePlanner3DR< N >::plotPath(), ShapeSpacePlanner2DR< N >::plotPath(), Kinematics::projectToPlane(), EllipticalObstacle::reset(), RectangularObstacle::reset(), XWalkMC::resetPeriod(), Draw::setOrigin(), XWalkMC::setTargetDisplacement(), XWalkMC::setTargetVelocity(), PlanarThreeLinkArm::solve(), PostureEngine::solveLinkPosition(), PlanarThreeLinkArm::solveWithOffset(), and CMPackWalkMC::updateOutputs().
template<typename R >
Definition at line 1081 of file fmatCore.h.
template<typename R >
Definition at line 1080 of file fmatCore.h.
template<typename R >
templated version to pack non fmatReal type, using a different name 'packT' so it needs to be explicitly called, e.g. pack(0,0,1) is generally intended as fmatReal, not int Definition at line 1079 of file fmatCore.h.
template<typename R >
Returns the scaling factor of d1 from p1 to reach intersection of d2 through p2. May return infinity if d1 and d2 are parallel (including collinear). Definition at line 710 of file fmatSpatial.h. Referenced by lineIntersection(). returns 2x2 rotation matrix for angle rad (in radians) about Z axis Definition at line 21 of file fmatSpatial.h. Referenced by GaitedFootsteps::addRotation(), RRTNodeXYTheta::CollisionChecker::collides(), XWalkMC::computeCurrentPosition(), Grasper::PathPlanToRest::doStart(), Grasper::PathPlanConstrained::doStart(), Grasper::PathPlanUnconstrained::doStart(), RectangularObstacle::reset(), PlanarThreeLinkArm::solve(), XWalkMC::updateOutputsInitial(), and XWalkMC::updateOutputsWalking().
template<typename R >
returns 2x2 rotation matrix (i.e. implied rotation about Z), for angle rad in radians Definition at line 15 of file fmatSpatial.h. returns 3x3 rotation matrix for angle rad (in radians) about X axis Definition at line 33 of file fmatSpatial.h. Referenced by Grasper::computeGoalStates().
template<size_t N, typename R >
returns NxN rotation matrix for angle rad (in radians) about X axis (only uses upper 3x3) Definition at line 25 of file fmatSpatial.h. returns 3x3 rotation matrix for angle rad (in radians) about Z axis Definition at line 45 of file fmatSpatial.h. Referenced by Grasper::computeGoalStates().
template<size_t N, typename R >
returns NxN rotation matrix for angle rad (in radians) about Y axis (only uses upper 3x3) Definition at line 37 of file fmatSpatial.h. returns 3x3 rotation matrix for angle rad (in radians) about Z axis Definition at line 63 of file fmatSpatial.h. Referenced by Grasper::computeGoalStates(), ShapeSpacePlanner3DR< N >::plotPath(), ShapeSpacePlanner2DR< N >::plotPath(), and PlanarThreeLinkArm::solveWithOffset().
template<size_t N, typename R >
returns NxN rotation matrix for angle rad (in radians) about Z axis (only uses upper 2x2) Definition at line 49 of file fmatSpatial.h.
template<typename R >
Returns the scaling factors for d1 and d2 through p1 and p2 respectively to reach common intersection. May return infinity if d1 and d2 are parallel (including collinear). Definition at line 692 of file fmatSpatial.h. Referenced by rayIntersection().
template<template< size_t, size_t, typename R > class M, typename R >
Returns yaw-pitch-roll aka heading-elevation-bank conversion, where roll-pitch-yaw correspond to compounding rotations about the global x, y, and z axis respectively (in that order). From the "driver's seat" positive heading is turning to the left (z is up, using right hand rule, not compass heading), positive pitch is looking down, and positive roll is spinning clockwise. Within this frame-oriented view, we apply rotation axes in the 'reverse' order: first z, then y, then x. You can reconstruct a rotation from these values by: q · v = rotationZ(yaw) * rotationY(pitch) * rotationX(roll) · v Note we right-multiply v to apply the rotation, so x is applied to an incoming vector first, then y, then z. Definition at line 673 of file fmatSpatial.h.
template<typename R >
Returns yaw-pitch-roll aka heading-elevation-bank conversion, where roll-pitch-yaw correspond to compounding rotations about the global x, y, and z axis respectively (in that order). From the "driver's seat" positive heading is turning to the left (z is up, using right hand rule, not compass heading), positive pitch is looking down, and positive roll is spinning clockwise. Within this frame-oriented view, we apply rotation axes in the 'reverse' order: first z, then y, then x. You can reconstruct a rotation from these values by: q · v = rotationZ(yaw) * rotationY(pitch) * rotationX(roll) · v Note we right-multiply v to apply the rotation, so x is applied to an incoming vector first, then y, then z. Definition at line 662 of file fmatSpatial.h.
template<typename R >
Returns yaw-pitch-roll aka heading-elevation-bank conversion, where roll-pitch-yaw correspond to compounding rotations about the global x, y, and z axis respectively (in that order). From the "driver's seat" positive heading is turning to the left (z is up, using right hand rule, not compass heading), positive pitch is looking down, and positive roll is spinning clockwise. Within this frame-oriented view, we apply rotation axes in the 'reverse' order: first z, then y, then x. You can reconstruct a Quaternion from these values by: q · v = aboutZ(yaw) * aboutY(pitch) * aboutX(roll) · v Note we right-multiply v to apply the rotation, so x is applied to an incoming vector first, then y, then z. With thanks to http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToEuler/ (note that page uses different axis mapping however!) Definition at line 651 of file fmatSpatial.h. Referenced by MoCapLogger::dump(), and MoCapLogger::gotMoCapGUI().
Variable Documentation
a length 2 column with '1' in the first dimension
a length 2 column with '1' in the second dimension
a length 3 column with '1' in the first dimension
a length 3 column with '1' in the second dimension
a length 3 column with '1' in the third dimension Referenced by GaitedFootsteps::expand(), and PlanarThreeLinkArm::solve().
a length 4 column vector representing zero in homogenous coordinates (0,0,0,1) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Tekkotsu v5.1CVS |
Generated Tue Jan 31 04:32:31 2012 by Doxygen 1.6.3 |