Drake
|
#include <math.h>
#include <set>
#include <vector>
#include <Eigen/Dense>
#include <Eigen/StdVector>
#include "drake/systems/plants/RigidBodyTree.h"
#include "drake/systems/trajectories/PiecewisePolynomial.h"
#include "drake/drakeControlUtil_export.h"
Go to the source code of this file.
Classes | |
struct | SupportStateElement |
struct | DrakeRobotState |
struct | RobotJointIndexMap |
struct | JointNames |
Macros | |
#define | EPSILON 10e-8 |
Typedefs | |
typedef Eigen::Matrix< double, 6, 1 > | Vector6d |
typedef Eigen::Matrix< double, 7, 1 > | Vector7d |
Functions | |
DRAKECONTROLUTIL_EXPORT bool | isSupportElementActive (SupportStateElement *se, bool contact_force_detected, bool kinematic_contact_detected) |
DRAKECONTROLUTIL_EXPORT Eigen::Matrix< bool, Eigen::Dynamic, 1 > | getActiveSupportMask (RigidBodyTree *r, Eigen::VectorXd q, Eigen::VectorXd qd, std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> &available_supports, const Eigen::Ref< const Eigen::Matrix< bool, Eigen::Dynamic, 1 >> &contact_force_detected, double contact_threshold) |
DRAKECONTROLUTIL_EXPORT std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement > > | getActiveSupports (const RigidBodyTree &r, const Eigen::VectorXd &q, const Eigen::VectorXd &qd, std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> &available_supports, const Eigen::Ref< const Eigen::Matrix< bool, Eigen::Dynamic, 1 >> &contact_force_detected, double contact_threshold) |
template<typename DerivedA , typename DerivedB > | |
DRAKECONTROLUTIL_EXPORT void | getRows (std::set< int > &rows, Eigen::MatrixBase< DerivedA > const &M, Eigen::MatrixBase< DerivedB > &Msub) |
template<typename DerivedA , typename DerivedB > | |
DRAKECONTROLUTIL_EXPORT void | getCols (std::set< int > &cols, Eigen::MatrixBase< DerivedA > const &M, Eigen::MatrixBase< DerivedB > &Msub) |
template<typename DerivedPhi1 , typename DerivedPhi2 , typename DerivedD > | |
DRAKECONTROLUTIL_EXPORT void | angleDiff (Eigen::MatrixBase< DerivedPhi1 > const &phi1, Eigen::MatrixBase< DerivedPhi2 > const &phi2, Eigen::MatrixBase< DerivedD > &d) |
DRAKECONTROLUTIL_EXPORT bool | inSupport (const std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> &supports, int body_idx) |
DRAKECONTROLUTIL_EXPORT void | surfaceTangents (const Eigen::Vector3d &normal, Eigen::Matrix< double, 3, m_surface_tangents > &d) |
DRAKECONTROLUTIL_EXPORT int | contactPhi (const RigidBodyTree &r, const KinematicsCache< double > &cache, SupportStateElement &supp, Eigen::VectorXd &phi) |
DRAKECONTROLUTIL_EXPORT int | contactConstraintsBV (const RigidBodyTree &r, const KinematicsCache< double > &cache, int nc, std::vector< double > support_mus, std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> &supp, Eigen::MatrixXd &B, Eigen::MatrixXd &JB, Eigen::MatrixXd &Jp, Eigen::VectorXd &Jpdotv, Eigen::MatrixXd &normals) |
DRAKECONTROLUTIL_EXPORT Eigen::MatrixXd | individualSupportCOPs (const RigidBodyTree &r, const KinematicsCache< double > &cache, const std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> &active_supports, const Eigen::MatrixXd &normals, const Eigen::MatrixXd &B, const Eigen::VectorXd &beta) |
DRAKECONTROLUTIL_EXPORT Vector6d | bodySpatialMotionPD (const RigidBodyTree &r, const DrakeRobotState &robot_state, const int body_index, const Eigen::Isometry3d &body_pose_des, const Eigen::Ref< const Vector6d > &body_v_des, const Eigen::Ref< const Vector6d > &body_vdot_des, const Eigen::Ref< const Vector6d > &Kp, const Eigen::Ref< const Vector6d > &Kd, const Eigen::Isometry3d &T_task_to_world=Eigen::Isometry3d::Identity()) |
DRAKECONTROLUTIL_EXPORT void | evaluateXYZExpmapCubicSpline (double t, const PiecewisePolynomial< double > &spline, Eigen::Isometry3d &body_pose_des, Vector6d &xyzdot_angular_vel, Vector6d &xyzddot_angular_accel) |
DRAKECONTROLUTIL_EXPORT void | getRobotJointIndexMap (JointNames *joint_names, RobotJointIndexMap *joint_map) |
Variables | |
const int | m_surface_tangents |
#define EPSILON 10e-8 |
DRAKECONTROLUTIL_EXPORT void angleDiff | ( | Eigen::MatrixBase< DerivedPhi1 > const & | phi1, |
Eigen::MatrixBase< DerivedPhi2 > const & | phi2, | ||
Eigen::MatrixBase< DerivedD > & | d | ||
) |
DRAKECONTROLUTIL_EXPORT Vector6d bodySpatialMotionPD | ( | const RigidBodyTree & | r, |
const DrakeRobotState & | robot_state, | ||
const int | body_index, | ||
const Eigen::Isometry3d & | body_pose_des, | ||
const Eigen::Ref< const Vector6d > & | body_v_des, | ||
const Eigen::Ref< const Vector6d > & | body_vdot_des, | ||
const Eigen::Ref< const Vector6d > & | Kp, | ||
const Eigen::Ref< const Vector6d > & | Kd, | ||
const Eigen::Isometry3d & | T_task_to_world = Eigen::Isometry3d::Identity() |
||
) |
DRAKECONTROLUTIL_EXPORT int contactConstraintsBV | ( | const RigidBodyTree & | r, |
const KinematicsCache< double > & | cache, | ||
int | nc, | ||
std::vector< double > | support_mus, | ||
std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> & | supp, | ||
Eigen::MatrixXd & | B, | ||
Eigen::MatrixXd & | JB, | ||
Eigen::MatrixXd & | Jp, | ||
Eigen::VectorXd & | Jpdotv, | ||
Eigen::MatrixXd & | normals | ||
) |
DRAKECONTROLUTIL_EXPORT int contactPhi | ( | const RigidBodyTree & | r, |
const KinematicsCache< double > & | cache, | ||
SupportStateElement & | supp, | ||
Eigen::VectorXd & | phi | ||
) |
DRAKECONTROLUTIL_EXPORT void evaluateXYZExpmapCubicSpline | ( | double | t, |
const PiecewisePolynomial< double > & | spline, | ||
Eigen::Isometry3d & | body_pose_des, | ||
Vector6d & | xyzdot_angular_vel, | ||
Vector6d & | xyzddot_angular_accel | ||
) |
DRAKECONTROLUTIL_EXPORT Eigen::Matrix<bool, Eigen::Dynamic, 1> getActiveSupportMask | ( | RigidBodyTree * | r, |
Eigen::VectorXd | q, | ||
Eigen::VectorXd | qd, | ||
std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> & | available_supports, | ||
const Eigen::Ref< const Eigen::Matrix< bool, Eigen::Dynamic, 1 >> & | contact_force_detected, | ||
double | contact_threshold | ||
) |
DRAKECONTROLUTIL_EXPORT std::vector< SupportStateElement, Eigen::aligned_allocator<SupportStateElement> > getActiveSupports | ( | const RigidBodyTree & | r, |
const Eigen::VectorXd & | q, | ||
const Eigen::VectorXd & | qd, | ||
std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> & | available_supports, | ||
const Eigen::Ref< const Eigen::Matrix< bool, Eigen::Dynamic, 1 >> & | contact_force_detected, | ||
double | contact_threshold | ||
) |
DRAKECONTROLUTIL_EXPORT void getCols | ( | std::set< int > & | cols, |
Eigen::MatrixBase< DerivedA > const & | M, | ||
Eigen::MatrixBase< DerivedB > & | Msub | ||
) |
DRAKECONTROLUTIL_EXPORT void getRobotJointIndexMap | ( | JointNames * | joint_names, |
RobotJointIndexMap * | joint_map | ||
) |
DRAKECONTROLUTIL_EXPORT void getRows | ( | std::set< int > & | rows, |
Eigen::MatrixBase< DerivedA > const & | M, | ||
Eigen::MatrixBase< DerivedB > & | Msub | ||
) |
DRAKECONTROLUTIL_EXPORT Eigen::MatrixXd individualSupportCOPs | ( | const RigidBodyTree & | r, |
const KinematicsCache< double > & | cache, | ||
const std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> & | active_supports, | ||
const Eigen::MatrixXd & | normals, | ||
const Eigen::MatrixXd & | B, | ||
const Eigen::VectorXd & | beta | ||
) |
DRAKECONTROLUTIL_EXPORT bool inSupport | ( | const std::vector< SupportStateElement, Eigen::aligned_allocator< SupportStateElement >> & | supports, |
int | body_idx | ||
) |
DRAKECONTROLUTIL_EXPORT bool isSupportElementActive | ( | SupportStateElement * | se, |
bool | contact_force_detected, | ||
bool | kinematic_contact_detected | ||
) |
DRAKECONTROLUTIL_EXPORT void surfaceTangents | ( | const Eigen::Vector3d & | normal, |
Eigen::Matrix< double, 3, m_surface_tangents > & | d | ||
) |
const int m_surface_tangents |