yarp-devices
Loading...
Searching...
No Matches
JointCalibrator.hpp
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3#ifndef __JOINT_CALIBRATOR_HPP__
4#define __JOINT_CALIBRATOR_HPP__
5
6#include <vector>
7
8#include <yarp/dev/CalibratorInterfaces.h>
9#include <yarp/dev/DeviceDriver.h>
10#include <yarp/dev/IControlMode.h>
11#include <yarp/dev/IEncoders.h>
12#include <yarp/dev/IPositionControl.h>
13#include <yarp/dev/WrapperSingle.h>
14
15#include "JointCalibrator_ParamsParser.h"
16
28{
29 std::vector<double> pos;
30 std::vector<double> vel;
31 std::vector<double> acc;
32};
33
38class JointCalibrator : public yarp::dev::DeviceDriver,
39 public yarp::dev::IRemoteCalibrator,
40 public yarp::dev::WrapperSingle,
42{
43public:
44 bool calibrateSingleJoint(int j) override;
45 bool calibrateWholePart() override;
46 bool homingSingleJoint(int j) override;
47 bool homingWholePart() override;
48 bool parkSingleJoint(int j, bool wait) override;
49 bool parkWholePart() override;
50 bool quitCalibrate() override;
51 bool quitPark() override;
52
53 bool attach(yarp::dev::PolyDriver * poly) override;
54 bool detach() override;
55
56 bool open(yarp::os::Searchable & config) override;
57 bool close() override;
58
59private:
60 bool move(const std::vector<int> & joints, const MovementSpecs & specs);
61
62 MovementSpecs homeSpecs;
63 MovementSpecs parkSpecs;
64
65 yarp::dev::IControlMode * iControlMode {nullptr};
66 yarp::dev::IEncoders * iEncoders {nullptr};
67 yarp::dev::IPositionControl * iPositionControl {nullptr};
68};
69
70#endif // __JOINT_CALIBRATOR_HPP__
Definition JointCalibrator_ParamsParser.h:55
Remote calibrator class for multi-joint homing and park.
Definition JointCalibrator.hpp:42
Stores movement specifications: position, velocity, acceleration.
Definition JointCalibrator.hpp:28