Endorob  1.4
A C++ Robotics library by P. Berthet-Rayne
endorob.h File Reference
#include <Eigen/StdVector>
#include <iostream>
#include <fstream>
#include <thread>
#include <Eigen/Geometry>
#include <limits>
#include <Eigen/Dense>
#include <mutex>
#include <chrono>
#include <stdlib.h>
#include <time.h>
#include <ctime>
#include <string>
#include <atomic>

Go to the source code of this file.

Classes

class  DH_table_entry
 DH Table Class. More...
 
class  Snake_Path
 Snake Path Class. More...
 
class  Endorob
 This is the main Class: EndoRob that you can use to control your own weird looking robot... More...
 
class  Virtual_Snake
 Virtual Snake Robot Class. More...
 
class  Motion_RW
 Motion recorder Class. More...
 

Macros

#define VERBOSE_MODE   1
 
#define M_PI   3.1415926535897932384626433832795
 
#define INF_LIM   std::numeric_limits<double>::infinity()
 

Typedefs

typedef unsigned int uint
 
typedef long long llong
 
typedef Eigen::MatrixXd Mat
 
typedef Eigen::Matrix4d Mat4d
 
typedef Eigen::Matrix3d Mat3d
 
typedef Eigen::Vector3d Vec3d
 
typedef Eigen::Vector2d Vec2d
 
typedef Eigen::VectorXd Vec
 
typedef Eigen::Quaterniond Quat
 
typedef std::chrono::high_resolution_clock::time_point Time_point
 
typedef std::chrono::high_resolution_clock chrono_time
 
typedef std::chrono::milliseconds Ms
 
typedef std::chrono::duration< double > Delta_t
 

Enumerations

enum  Joint_type {
  Joint_type::Revolute, Joint_type::Prismatic, Joint_type::Rolling, Joint_type::Rolling_flex,
  Joint_type::Flex
}
 Currently supported joint types: More...
 
enum  Solver_type {
  Solver_type::Jacobian_pseudo_inverse, Solver_type::Full_body_jacobian, Solver_type::Jacobian_DLS, Solver_type::Jacobian_pseudo_inverse_null_space,
  Solver_type::Jacobian_transpose
}
 Currently supported solvers. More...
 
enum  DH_type { DH_standard, DH_modified }
 DH two typical standards: More...
 

Functions

bool is_almost_equal (const double &a, const double &b, const double &tolerance=1E-4)
 
bool is_geq (const double &a, const double &b, const double &tolerance=1E-4)
 
bool is_leq (const double &a, const double &b, const double &tolerance=1E-4)
 
double rad_to_degree (const double &val)
 
double degree_to_rad (const double &val)
 

Macro Definition Documentation

◆ INF_LIM

#define INF_LIM   std::numeric_limits<double>::infinity()

Definition at line 169 of file endorob.h.

◆ M_PI

#define M_PI   3.1415926535897932384626433832795

Definition at line 131 of file endorob.h.

◆ VERBOSE_MODE

#define VERBOSE_MODE   1

Definition at line 128 of file endorob.h.

Typedef Documentation

◆ chrono_time

typedef std::chrono::high_resolution_clock chrono_time

Definition at line 173 of file endorob.h.

◆ Delta_t

typedef std::chrono::duration<double> Delta_t

Definition at line 175 of file endorob.h.

◆ llong

typedef long long llong

Definition at line 157 of file endorob.h.

◆ Mat

typedef Eigen::MatrixXd Mat

Definition at line 160 of file endorob.h.

◆ Mat3d

typedef Eigen::Matrix3d Mat3d

Definition at line 162 of file endorob.h.

◆ Mat4d

typedef Eigen::Matrix4d Mat4d

Definition at line 161 of file endorob.h.

◆ Ms

typedef std::chrono::milliseconds Ms

Definition at line 174 of file endorob.h.

◆ Quat

typedef Eigen::Quaterniond Quat

Definition at line 166 of file endorob.h.

◆ Time_point

typedef std::chrono::high_resolution_clock::time_point Time_point

Definition at line 172 of file endorob.h.

◆ uint

typedef unsigned int uint

Definition at line 156 of file endorob.h.

◆ Vec

typedef Eigen::VectorXd Vec

Definition at line 165 of file endorob.h.

◆ Vec2d

typedef Eigen::Vector2d Vec2d

Definition at line 164 of file endorob.h.

◆ Vec3d

typedef Eigen::Vector3d Vec3d

Definition at line 163 of file endorob.h.

Enumeration Type Documentation

◆ DH_type

enum DH_type

DH two typical standards:

Enumerator
DH_standard 

Standard DH approach.

DH_modified 

Modified DH approach (better than standard!)

Definition at line 331 of file endorob.h.

◆ Joint_type

enum Joint_type
strong

Currently supported joint types:

Enumerator
Revolute 

Standard revolute joint.

Prismatic 

Standard prismatic joint.

Rolling 

Rolling-joint (two circular surfaces rolling against each other, changing the contact point)

Rolling_flex 

Multi-stage flexible joint with Rolling-joints (two circular surfaces rolling against each other, changing the contact point)

Flex 

For continuum or flexible joints (under development)

Definition at line 138 of file endorob.h.

◆ Solver_type

enum Solver_type
strong

Currently supported solvers.

Traditional Jacobian based pseudo-inverse, Full-body Jacobien (pseudo-inverse), Damped Least Square, pseudo-inverse with null-space

Enumerator
Jacobian_pseudo_inverse 

Simple pseudo-inverse approach.

Full_body_jacobian 

Full body Jacobian approach for full joint control.

Jacobian_DLS 

Damped least square approach.

Jacobian_pseudo_inverse_null_space 

Pseudo iverse with null space.

Jacobian_transpose 

Jacobian transpose.

Definition at line 148 of file endorob.h.

Function Documentation

◆ degree_to_rad()

double degree_to_rad ( const double &  val)

Definition at line 4845 of file endorob.cpp.

◆ is_almost_equal()

bool is_almost_equal ( const double &  a,
const double &  b,
const double &  tolerance = 1E-4 
)

Definition at line 4850 of file endorob.cpp.

◆ is_geq()

bool is_geq ( const double &  a,
const double &  b,
const double &  tolerance = 1E-4 
)

Definition at line 4857 of file endorob.cpp.

◆ is_leq()

bool is_leq ( const double &  a,
const double &  b,
const double &  tolerance = 1E-4 
)

Definition at line 4865 of file endorob.cpp.

◆ rad_to_degree()

double rad_to_degree ( const double &  val)

Definition at line 4840 of file endorob.cpp.