HLR  0.0.1
Namespaces | Classes | Enumerations | Functions
HLR::Kinematics Namespace Reference

Kinematics & Planning. More...

Namespaces

 Planners
 Kinematics & Planning :: Planners.
 
 RV2AJ
 Kinematics & Planning :: Mitsubishi RV2-AJ.
 

Classes

class  ConcurrentQueue
 A thread safe queue that supports both synchronous pop and asynchronous pop. It's not allowed to use pop and async_pop together. More...
 
struct  EnvironmentObject
 Describes an object that is detected in the environment. More...
 
class  Kinematics
 Contains the functions to compute the forward and inverse kinematics for the mitsubishi rv-2aj robot arm. More...
 
class  Matrix
 Create a matrix with numerical values. More...
 
class  ObjectMoveHandler
 Interface to send commands to the Kinematics component Executes actions on the robotarm based in the incoming messages. More...
 
class  PointCloudHandler
 Concrete handle on the robot using the ROS interface. More...
 
class  RobotController
 This class contains the main logic of the robotic arm. It handles the calculation of robotic path and handles moving the robot arm using the driver. More...
 
class  RobotDriverHandler
 Concrete handle on the robot using the ROS interface. More...
 

Enumerations

enum  RobotControllerState {
  RobotControllerState::idle, RobotControllerState::moving_to_ready, RobotControllerState::calculating_path, RobotControllerState::giving_cup,
  RobotControllerState::cancelling, RobotControllerState::stopped
}
 The current state of the robot controller. More...
 
enum  ArmError { ArmError::safety_concern, ArmError::no_path_found, ArmError::driver_error }
 Enum containing possible reasons for the robot arm not being able to succesfully execute the specified action. More...
 

Functions

template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator+ (const Matrix< T, m, n > &lhs, T rhs) noexcept
 Add a scalar from every element of the matrix. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator+ (T lhs, const Matrix< T, m, n > &rhs) noexcept
 Add a scalar from every element of the matrix. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator- (const Matrix< T, m, n > &lhs, T rhs) noexcept
 Subtract a scalar from every element of the matrix. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator- (T lhs, const Matrix< T, m, n > &rhs) noexcept
 Subtract a scalar from every element of the matrix. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator* (const Matrix< T, m, n > &lhs, T rhs) noexcept
 Multiply every element of the matrix with a scalar. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator* (T lhs, const Matrix< T, m, n > &rhs) noexcept
 Multiply every element of the matrix with a scalar. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator/ (const Matrix< T, m, n > &lhs, T rhs) noexcept
 Divide every element of the matrix with a scalar. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix< T, m, n > operator/ (T lhs, const Matrix< T, m, n > &rhs) noexcept
 Divide every element of the matrix with a scalar. Doesn't modify original matrix. More...
 
template<typename T , std::size_t m, std::size_t n>
std::ostream & operator<< (std::ostream &os, const Matrix< T, m, n > &mat)
 Output the matrix to an ostream. More...
 

Detailed Description

Kinematics & Planning.

The Kinematics namespace is used for components related to inverse kinematics, trajectory calculation (aka planning) and Mitsubishi RV-2AJ control via a driver. There is also a simulation for these components.

Enumeration Type Documentation

Enum containing possible reasons for the robot arm not being able to succesfully execute the specified action.

Enumerator
safety_concern 

The arm has stopped due to a safety concern.

no_path_found 

The arm has stopped because no valid path was found to execute the given action.

driver_error 

The arm couldn't be moved because there is an underlying driver error.

The current state of the robot controller.

Enumerator
idle 

The robot arm is currently idle.

moving_to_ready 

Robot arm is moving to ready position,.

calculating_path 

Calculating the robot path to take.

giving_cup 

Robot arm is moving to cup.

cancelling 

Robot arm is moving gripper to surround the cup.

stopped 

Robot arm is currently stopped.

Function Documentation

template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator* ( const Matrix< T, m, n > &  lhs,
rhs 
)
noexcept

Multiply every element of the matrix with a scalar. Doesn't modify original matrix.

Parameters
lhsThe matrix that will be used to multiplied.
rhsThe scalar to multiply with.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator* ( lhs,
const Matrix< T, m, n > &  rhs 
)
noexcept

Multiply every element of the matrix with a scalar. Doesn't modify original matrix.

Parameters
lhslhs The scalar to multiply with.
rhsrhs The matrix that will be used to multiplied.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator+ ( const Matrix< T, m, n > &  lhs,
rhs 
)
noexcept

Add a scalar from every element of the matrix. Doesn't modify original matrix.

Parameters
lhsThe matrix to base the addition on.
rhsThe scalar to add.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator+ ( lhs,
const Matrix< T, m, n > &  rhs 
)
noexcept

Add a scalar from every element of the matrix. Doesn't modify original matrix.

Parameters
lhslhs The scalar to add.
rhsrhs The matrix to subtract the scalar from.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator- ( const Matrix< T, m, n > &  lhs,
rhs 
)
noexcept

Subtract a scalar from every element of the matrix. Doesn't modify original matrix.

Parameters
lhslhs The matrix to subtract the scalard from.
rhsrhs The scalar to subtract.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator- ( lhs,
const Matrix< T, m, n > &  rhs 
)
noexcept

Subtract a scalar from every element of the matrix. Doesn't modify original matrix.

Parameters
lhsThe matrix to subtract the scalard from.
rhsThe scalar to subtract.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator/ ( const Matrix< T, m, n > &  lhs,
rhs 
)
noexcept

Divide every element of the matrix with a scalar. Doesn't modify original matrix.

Parameters
lhsThe matrix that will be divided.
rhsThe scalar to divide with.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
constexpr Matrix<T, m, n> HLR::Kinematics::operator/ ( lhs,
const Matrix< T, m, n > &  rhs 
)
noexcept

Divide every element of the matrix with a scalar. Doesn't modify original matrix.

Parameters
lhsThe scalar to divide with.
rhsThe matrix that will be divided.
Returns
A new matrix with the modified elements.
template<typename T , std::size_t m, std::size_t n>
std::ostream& HLR::Kinematics::operator<< ( std::ostream &  os,
const Matrix< T, m, n > &  mat 
)

Output the matrix to an ostream.

Parameters
osThe ostream that.
matThe matrix that contains.
Returns
The ostream where the matrix has been outputted to.