control_types.h
Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <array>
6 #include <cmath>
7 #include <initializer_list>
8 
14 namespace franka {
15 
20 
27 
35 struct Finishable {
39  bool motion_finished = false;
40 };
41 
45 class Torques : public Finishable {
46  public:
52  Torques(const std::array<double, 7>& torques) noexcept;
53 
61  Torques(std::initializer_list<double> torques);
62 
66  std::array<double, 7> tau_J{}; // NOLINT(readability-identifier-naming)
67 };
68 
72 class JointPositions : public Finishable {
73  public:
79  JointPositions(const std::array<double, 7>& joint_positions) noexcept;
80 
88  JointPositions(std::initializer_list<double> joint_positions);
89 
93  std::array<double, 7> q{};
94 };
95 
99 class JointVelocities : public Finishable {
100  public:
107  JointVelocities(const std::array<double, 7>& joint_velocities) noexcept;
108 
116  JointVelocities(std::initializer_list<double> joint_velocities);
117 
121  std::array<double, 7> dq{};
122 };
123 
127 class CartesianPose : public Finishable {
128  public:
136  CartesianPose(const std::array<double, 16>& cartesian_pose) noexcept;
137 
146  CartesianPose(const std::array<double, 16>& cartesian_pose,
147  const std::array<double, 2>& elbow) noexcept;
148 
158  CartesianPose(std::initializer_list<double> cartesian_pose);
159 
171  CartesianPose(std::initializer_list<double> cartesian_pose, std::initializer_list<double> elbow);
172 
178  std::array<double, 16> O_T_EE{}; // NOLINT(readability-identifier-naming)
179 
187  std::array<double, 2> elbow{};
188 
195  bool hasElbow() const noexcept;
196 };
197 
202  public:
209  CartesianVelocities(const std::array<double, 6>& cartesian_velocities) noexcept;
210 
218  CartesianVelocities(const std::array<double, 6>& cartesian_velocities,
219  const std::array<double, 2>& elbow) noexcept;
220 
229  CartesianVelocities(std::initializer_list<double> cartesian_velocities);
230 
240  CartesianVelocities(std::initializer_list<double> cartesian_velocities,
241  std::initializer_list<double> elbow);
242 
247  std::array<double, 6> O_dP_EE{}; // NOLINT(readability-identifier-naming)
248 
256  std::array<double, 2> elbow{};
257 
263  bool hasElbow() const noexcept;
264 };
265 
275 inline Torques MotionFinished(Torques command) noexcept { // NOLINT(readability-identifier-naming)
276  command.motion_finished = true;
277  return command;
278 }
279 
289 inline JointPositions MotionFinished( // NOLINT(readability-identifier-naming)
290  JointPositions command) noexcept {
291  command.motion_finished = true;
292  return command;
293 }
294 
304 inline JointVelocities MotionFinished( // NOLINT(readability-identifier-naming)
305  JointVelocities command) noexcept {
306  command.motion_finished = true;
307  return command;
308 }
309 
319 inline CartesianPose MotionFinished( // NOLINT(readability-identifier-naming)
320  CartesianPose command) noexcept {
321  command.motion_finished = true;
322  return command;
323 }
324 
334 inline CartesianVelocities MotionFinished( // NOLINT(readability-identifier-naming)
335  CartesianVelocities command) noexcept {
336  command.motion_finished = true;
337  return command;
338 }
339 
340 } // namespace franka
Stores values for joint velocity motion generation.
Definition: control_types.h:99
RealtimeConfig
Used to decide whether to enforce realtime mode for a control loop thread.
Definition: control_types.h:26
ControllerMode
Available controller modes for a franka::Robot.
Definition: control_types.h:19
Stores values for Cartesian velocity motion generation.
Stores joint-level torque commands without gravity and friction.
Definition: control_types.h:45
Helper type for control and motion generation loops.
Definition: control_types.h:35
bool motion_finished
Determines whether to finish a currently running motion.
Definition: control_types.h:39
Stores values for Cartesian pose motion generation.
Stores values for joint position motion generation.
Definition: control_types.h:72
Torques MotionFinished(Torques command) noexcept
Helper method to indicate that a motion should stop after processing the given command.


libfranka
Author(s): Franka Emika GmbH
autogenerated on Tue Jul 9 2019 03:32:01