5#include <SimoxUtility/meta/eigen/enable_if_compile_time_size.h>
6#include <SimoxUtility/shapes/OrientedBox.h>
55 return enabled.at(
static_cast<std::uint_fast8_t
>(al));
67 return enabled.at(
static_cast<std::uint_fast8_t
>(al));
76 std::array<bool, 24>
enabled{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
77 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
98 Eigen::Vector3f
tcp_shift = Eigen::Vector3f::Constant(std::nanf(
""));
99 Eigen::Vector3f
hand_up = Eigen::Vector3f::Constant(std::nanf(
""));
105 Eigen::Matrix4f
pose = Eigen::Matrix4f::Constant(std::nanf(
""));
106 Eigen::Vector3f
approach = Eigen::Vector3f::Constant(std::nanf(
""));
109 armarx::grasping::GraspCandidatePtr
111 armarx::grasping::GraspCandidatePtr
113 const std::string& side_name,
115 armarx::grasping::GraspCandidatePtr
117 const std::string& side_name,
118 const Eigen::Matrix4f& global_pose)
const;
139 const std::map<std::string, side_data>&
sides()
const;
148 const std::string&
side,
157 const std::string&
side,
164 template <
class D1,
class D2,
class D3>
165 static std::enable_if_t<simox::meta::is_vec3_v<D1> && simox::meta::is_vec3_v<D2> &&
166 simox::meta::is_vec3_v<D3>,
169 const Eigen::MatrixBase<D2>& up,
171 const Eigen::Vector3f& hand_up,
172 const Eigen::MatrixBase<D3>& transverse,
173 const Eigen::Vector3f& hand_transv,
174 const Eigen::Vector3f& tcp_shift);
179 std::map<std::string, side_data> _sides;
armarx::RobotArm RobotArm
std::shared_ptr< class Robot > RobotPtr
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< class RobotNameHelper > RobotNameHelperPtr
void * align(size_t alignment, size_t bytes, void *&bufferPlace, size_t &bufferSpace) noexcept
armarx::grasping::GraspCandidatePtr make_candidate(const std::string &provider_name) const
float transverse_length_max
bool in_limits(const box_t &box, box_alignment align) const
std::string limit_violation_string(const box_t &box, box_alignment align) const
float transverse_length_min
armarx::RobotNameHelper::Arm nh_arm
Eigen::Vector3f hand_transverse
Eigen::Vector3f tcp_shift
armarx::RobotNameHelper::RobotArm nh_arm_w_rob
bool & operator[](box_alignment al)
bool operator[](box_alignment al) const
bool operator[](std::uint_fast8_t al) const
std::array< bool, 24 > enabled
bool & operator[](std::uint_fast8_t al)
static float box_transverse_len(const box_t &box, box_alignment align)
static float box_up_len(const box_t &box, box_alignment align)
static Eigen::Vector3f box_transverse_axis(const box_t &box, box_alignment align)
const side_data & side(const std::string &side) const
static Eigen::Vector3f box_up_axis(const box_t &box, box_alignment align)
static float box_forward_len(const box_t &box, box_alignment align)
grasp center_grasp(const box_t &box, const side_data &side, box_alignment align)
void center_grasps(const box_t &box, const side_data &side, const length_limit &limit, auto consume_grasp)
void add_armar6_defaults()
const std::map< std::string, side_data > & sides() const
simox::OrientedBox< float > box_t
box_to_grasp_candidates(armarx::RobotNameHelperPtr rnh, const VirtualRobot::RobotPtr &robot)