5#include <VirtualRobot/Robot.h>
15 auto& l =
side(
"Left");
16 auto& r =
side(
"Right");
18 l.hand_transverse = Eigen::Vector3f{0, 1, 0};
19 r.hand_transverse = Eigen::Vector3f{0, 1, 0};
20 l.hand_up = Eigen::Vector3f{-1, 0, -1};
21 r.hand_up = Eigen::Vector3f{+1, 0, -1};
22 l.tcp_shift = Eigen::Vector3f{0, -30, 0};
23 r.tcp_shift = Eigen::Vector3f{0, -30, 0};
88 throw std::logic_error{
"reached unreachable code"};
113 return box.dimension_x();
131 return box.dimension_y();
149 return box.dimension_z();
153 throw std::logic_error{
"reached unreachable code"};
178 return -box.axis_x();
196 return -box.axis_y();
214 return -box.axis_z();
218 throw std::logic_error{
"reached unreachable code"};
243 return box.dimension_x();
261 return box.dimension_y();
279 return box.dimension_z();
283 throw std::logic_error{
"reached unreachable code"};
308 return box.dimension_x();
326 return box.dimension_y();
344 return box.dimension_z();
348 throw std::logic_error{
"reached unreachable code"};
388 armarx::grasping::GraspCandidatePtr
393 provider_name,
side->name,
side->nh_arm_w_rob.getRobot()->getGlobalPose());
396 armarx::grasping::GraspCandidatePtr
398 const std::string& side_name,
402 return make_candidate(provider_name, side_name, robot->getGlobalPose());
405 armarx::grasping::GraspCandidatePtr
407 const std::string& side_name,
408 const Eigen::Matrix4f& global_pose)
const
410 armarx::grasping::GraspCandidatePtr gc =
new armarx::grasping::GraspCandidate;
413 gc->providerName = provider_name;
414 gc->side = side_name;
416 gc->objectType = armarx::objpose::UnknownObject;
417 gc->sourceFrame =
"root";
418 gc->targetFrame =
"root";
428 _rnh{
std::move(rnh)}, _robot{robot}
436 return _sides.at(
side);
444 if (_sides.count(
side))
446 return _sides.at(
side);
451 data.nh_arm_w_rob =
data.nh_arm.addRobot(_robot);
455 const std::map<std::string, box_to_grasp_candidates::side_data>&
463 const side_data& side,
477 return {g.pose, g.approach, &
side};
#define ARMARX_CHECK_EXPRESSION(expression)
This macro evaluates the expression and if it turns out to be false it will throw an ExpressionExcept...
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
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
Eigen::Vector3f hand_transverse
Eigen::Vector3f tcp_shift
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 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)