46 const std::vector<std::string> & jointNames,
47 const std::string & robot_urdf,
62 const std::vector<std::string> & jointNames,
63 const std::vector<mc_rbdyn::Mimic> & mimics,
88 void reset(
const std::vector<double> & currentQ);
118 void setTargetQ(
const std::string & jointName,
double targetQ);
177 inline const std::vector<std::string> &
joints()
const {
return names; }
180 inline const std::vector<std::string> &
activeJoints()
const {
return active_joints; }
185 return std::find(active_joints.begin(), active_joints.end(), jointName) != active_joints.end();
191 inline const std::vector<double> &
q()
const {
return _q; }
250 inline bool is_metric() const noexcept {
return is_metric_; }
253 inline bool reversed() const noexcept {
return reversed_; }
287 double clampQ(
size_t activeJoint,
double q);
310 std::vector<std::pair<size_t, double>>
mult;
314 std::vector<double>
_q;
343 bool reversed_ =
false;
#define MC_RBDYN_DLLAPI
Definition: api.h:50
Definition: CompletionCriteria.h:11
std::reference_wrapper< Gripper > GripperRef
Definition: generic_gripper.h:347
std::unique_ptr< Gripper > GripperPtr
Definition: generic_gripper.h:346
Definition: generic_gripper.h:15
A robot's gripper reprensentation.
Definition: generic_gripper.h:35
double curPosition(size_t jointId) const
Current position of an active joint.
std::vector< size_t > active_joints_idx
Definition: generic_gripper.h:295
void saveConfig()
Saves the current gripper configuration parameters contained in Config.
void setTargetOpening(double targetOpening)
Set the target opening of all gripper joints simultaneously.
void setTargetQ(size_t activeJointId, double targetQ)
Set the target configuration of the specified active joint.
void setTargetQ(const std::string &jointName, double targetQ)
Set the target configuration of the specified active joint.
void setTargetQ(const std::vector< double > &targetQ)
Set the target configuration of the active joints involved in the gripper.
void setTargetOpening(size_t activeJointId, double targetOpening)
Set the target opening of a single gripper joint by index.
bool complete() const
Check if the gripper motion stopped moving.
void configure(const mc_rtc::Configuration &config)
Applies a new gripper configuration (safeties and targets)
std::vector< std::string > active_joints
Definition: generic_gripper.h:293
double percentVMAX() const
std::vector< std::string > names
Definition: generic_gripper.h:291
std::vector< int > joints_mbc_idx
Definition: generic_gripper.h:297
std::vector< double > vmax
Definition: generic_gripper.h:307
std::vector< double > curOpening() const
Get current opening percentage.
double getTargetOpening(const std::string &jointName) const
Get the target opening of a single gripper joint.
std::vector< double > offset
Definition: generic_gripper.h:312
double getTargetQ(size_t jointId) const
Target opening angle of an active joint.
void setTargetQ_(const std::vector< double > &targetQ)
Fast version of setTargetQ(std::vector<double>)
double targetOpening(size_t jointId) const
Target opening percentage of an active joint.
Gripper(const mc_rbdyn::Robot &robot, const std::vector< std::string > &jointNames, const std::vector< mc_rbdyn::Mimic > &mimics, bool reverseLimits, const mc_rbdyn::RobotModule::Gripper::Safety &safety)
Constructor.
double curOpening(size_t jointId) const
Current opening percentage of an active joint.
bool hasActiveJoint(const std::string &jointName) const
Definition: generic_gripper.h:183
void resetDefaults()
Resets the gripper parameters to their default value (percentVMax, actualCommandDiffTrigger)
std::vector< double > closeP
Definition: generic_gripper.h:303
std::vector< double > targetQIn
Definition: generic_gripper.h:317
double curOpening(const std::string &jointName) const
Get the current opening of a single gripper joint.
const std::vector< std::string > & activeJoints() const
Returns all active joints involved in the gripper.
Definition: generic_gripper.h:180
double getTargetQ(const std::string &jointName) const
Config savedConfig_
Definition: generic_gripper.h:332
unsigned int overCommandLimitIterN() const
Definition: generic_gripper.h:222
std::vector< std::pair< size_t, double > > mult
Definition: generic_gripper.h:310
double opening() const
Get the current opening percentage.
double clampQ(size_t activeJoint, double q)
Clamp an active joint value within its joint limits.
double actualCommandDiffTrigger() const
Definition: generic_gripper.h:215
bool is_metric() const noexcept
Returns true if a gripper is metric, i.e. all active joints are prismatic rather than revolute.
Definition: generic_gripper.h:250
void overCommandLimitIterN(unsigned int N)
Definition: generic_gripper.h:219
std::vector< double > percentOpen
Definition: generic_gripper.h:337
Gripper(const mc_rbdyn::Robot &robot, const std::vector< std::string > &jointNames, const std::string &robot_urdf, bool reverseLimits, const mc_rbdyn::RobotModule::Gripper::Safety &safety)
Constructor.
void actualCommandDiffTrigger(double d)
Definition: generic_gripper.h:213
const std::vector< double > & q() const
Return all gripper joints configuration.
Definition: generic_gripper.h:191
std::vector< double > * targetQ
Definition: generic_gripper.h:319
void run(double timeStep, mc_rbdyn::Robot &robot, mc_rbdyn::Robot &real)
Run one iteration of control.
bool reversed() const noexcept
When true the gripper is considered "open" when the joints' values are minimal.
Definition: generic_gripper.h:253
std::vector< double > _q
Definition: generic_gripper.h:314
std::vector< double > openP
Definition: generic_gripper.h:305
const std::vector< std::string > & joints() const
Returns all joints involved in the gripper.
Definition: generic_gripper.h:177
void percentVMAX(double percent)
Config config_
Definition: generic_gripper.h:330
void setTargetOpening(const std::string &jointName, double targetOpening)
Set the target opening of a single gripper joint.
std::vector< unsigned int > overCommandLimitIter
Definition: generic_gripper.h:341
std::vector< double > actualQ
Definition: generic_gripper.h:325
std::vector< double > curPosition() const
Get current configuration.
void setTargetQ_(size_t activeJoints, double targetQ)
Fast version of setTargetQ(size_t, double) without clamping.
void releaseSafetyOffset(double offset)
Definition: generic_gripper.h:229
std::vector< double > reached_threshold_
Definition: generic_gripper.h:322
void reset(const std::vector< double > ¤tQ)
Reset the gripper state to the current actual state of the gripper.
void restoreConfig()
Restores the gripper configuration parameters from their saved value.
std::vector< double > getTargetQ() const
Config defaultConfig_
Definition: generic_gripper.h:334
bool is_metric_
Definition: generic_gripper.h:300
void reset(const Gripper &gripper)
Reset from another gripper.
double releaseSafetyOffset() const
Definition: generic_gripper.h:232
std::vector< bool > overCommandLimit
Definition: generic_gripper.h:339
Definition: RobotModule.h:116
Simplify access to values hold within a JSON file.
Definition: Configuration.h:166