28 #include <RobotAPI/interface/aron.h>
29 #include <RobotAPI/interface/units/RobotUnit/NJointCartesianNaturalPositionController.h>
30 #include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
36 typedef std::shared_ptr<class CartesianNaturalPositionControllerProxy>
47 void calculate(
float error,
float& KpElb,
float& KpJla);
101 bool reached(
const VirtualRobot::RobotNodePtr& tcp);
116 std::vector<float> jointValues;
117 VirtualRobot::RobotNodeSetPtr rns;
124 const std::string& _controllerName,
125 NJointCartesianNaturalPositionControllerConfigPtr _config);
126 static NJointCartesianNaturalPositionControllerConfigPtr
127 MakeConfig(
const std::string& rns,
const std::string& elbowNode);
133 std::optional<float> minElbowHeight = std::nullopt);
158 const std::vector<float>& userNullspaceTargets,
159 std::optional<float> minElbowHeight = std::nullopt);
161 std::optional<float> minElbowHeight = std::nullopt);
163 std::optional<float> minElbowHeight = std::nullopt);
174 static std::vector<float>
191 static std::vector<float>
ScaleVec(
const std::vector<float>& vec,
float scale);
196 void updateDynamicKp();
197 void updateNullspaceTargets();
199 bool onWaypointChanged();
204 std::string _controllerName;
205 NJointCartesianNaturalPositionControllerConfigPtr _config;
206 CartesianNaturalPositionControllerConfig _runCfg;
207 bool _controllerCreated =
false;
208 NJointCartesianNaturalPositionControllerInterfacePrx _controller;
217 std::vector<Waypoint> _waypoints;
218 size_t _currentWaypointIndex = 0;
220 std::vector<float> _userNullspaceTargets;
221 std::vector<float> _naturalNullspaceTargets;
222 std::vector<VirtualRobot::RobotNodePtr> _rnsToElb;
223 bool _setJointNullspaceFromNaturalIK =
true;
225 std::map<std::string, WaypointConfig> _defaultWaypointConfigs;
226 bool _waypointChanged =
false;
227 FTSensorValue _ftOffset;
228 bool _activateControllerOnInit =
false;