libfranka  0.8.0
FCI C++ API
errors.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 <ostream>
7 
13 namespace franka {
14 
18 struct Errors {
19  private:
20  std::array<bool, 37> errors_{};
21 
22  public:
26  Errors();
27 
33  Errors(const Errors& other);
34 
42  Errors& operator=(Errors other);
43 
49  Errors(const std::array<bool, 37>& errors);
50 
56  explicit operator bool() const noexcept;
57 
65  explicit operator std::string() const;
66 
95  const bool& joint_reflex;
100  const bool& cartesian_reflex;
224  const bool& instability_detected;
230 };
231 
240 std::ostream& operator<<(std::ostream& ostream, const Errors& errors);
241 
242 } // namespace franka
const bool & cartesian_motion_generator_joint_velocity_discontinuity
True if the joint velocity in Cartesian motion generators is discontinuous after IK calculation...
Definition: errors.h:179
const bool & cartesian_motion_generator_elbow_limit_violation
True if an external Cartesian motion generator would move into an elbow limit.
Definition: errors.h:144
const bool & cartesian_motion_generator_joint_velocity_limits_violation
True if the joint velocity limits would be exceeded after IK calculation.
Definition: errors.h:174
const bool & force_control_safety_violation
True if the robot exceeded safety threshold during force control.
Definition: errors.h:90
const bool & controller_torque_discontinuity
True if the torque set by the external controller is discontinuous.
Definition: errors.h:196
const bool & joint_motion_generator_velocity_discontinuity
True if commanded velocity in joint motion generators is discontinuous (target values are too far apa...
Definition: errors.h:130
const bool & communication_constraints_violation
True if minimum network communication quality could not be held during a motion.
Definition: errors.h:206
const bool & cartesian_position_motion_generator_start_pose_invalid
True if an external Cartesian position motion generator was started with a pose too far from the curr...
Definition: errors.h:140
const bool & joint_reflex
True if a collision was detected, i.e. the robot exceeded a torque threshold in a joint motion...
Definition: errors.h:95
std::ostream & operator<<(std::ostream &ostream, const Errors &errors)
Streams the errors as JSON array.
const bool & self_collision_avoidance_violation
True if the robot would have collided with itself.
Definition: errors.h:78
const bool & cartesian_motion_generator_start_elbow_invalid
True if the first elbow value in Cartesian motion generators is too far from initial one...
Definition: errors.h:166
const bool & cartesian_velocity_violation
True if the robot exceeded Cartesian velocity limits.
Definition: errors.h:86
Errors()
Creates an empty Errors instance.
const bool & cartesian_motion_generator_velocity_limits_violation
True if an external Cartesian motion generator would move with too high velocity. ...
Definition: errors.h:148
Enumerates errors that can occur while controlling a franka::Robot.
Definition: errors.h:18
const bool & joint_position_motion_generator_start_pose_invalid
True if an external joint position motion generator was started with a pose too far from the current ...
Definition: errors.h:117
Errors & operator=(Errors other)
Assigns this Errors instance from another Errors value.
const bool & joint_motion_generator_position_limits_violation
True if an external joint motion generator would move into a joint limit.
Definition: errors.h:121
const bool & cartesian_motion_generator_joint_position_limits_violation
True if the joint position limits would be exceeded after IK calculation.
Definition: errors.h:170
const bool & cartesian_motion_generator_velocity_discontinuity
True if commanded velocity in Cartesian motion generators is discontinuous (target values are too far...
Definition: errors.h:153
const bool & cartesian_motion_generator_joint_acceleration_discontinuity
True if the joint acceleration in Cartesian motion generators is discontinuous after IK calculation...
Definition: errors.h:184
const bool & joint_move_in_wrong_direction
True if the robot is in joint position limits violation error and the user guides the robot further t...
Definition: errors.h:229
const bool & max_path_pose_deviation_violation
True if internal motion generator deviated from the path.
Definition: errors.h:108
const bool & cartesian_position_limits_violation
True if the robot moved past any of the virtual walls.
Definition: errors.h:74
const bool & cartesian_position_motion_generator_invalid_frame
True if the Cartesian pose is not a valid transformation matrix.
Definition: errors.h:188
const bool & cartesian_motion_generator_acceleration_discontinuity
True if commanded acceleration in Cartesian motion generators is discontinuous (target values are too...
Definition: errors.h:158
const bool & cartesian_velocity_profile_safety_violation
True if Cartesian velocity profile for internal motions was exceeded.
Definition: errors.h:112
const bool & joint_p2p_insufficient_torque_for_planning
True if the robot is overloaded for the required motion.
Definition: errors.h:216
const bool & max_goal_pose_deviation_violation
True if internal motion generator did not reach the goal pose.
Definition: errors.h:104
const bool & joint_motion_generator_acceleration_discontinuity
True if commanded acceleration in joint motion generators is discontinuous (target values are too far...
Definition: errors.h:135
const bool & joint_position_limits_violation
True if the robot moved past the joint limits.
Definition: errors.h:70
const bool & force_controller_desired_force_tolerance_violation
True if desired force exceeds the safety thresholds.
Definition: errors.h:192
Definition: command_types.h:13
const bool & power_limit_violation
True if commanded values would result in exceeding the power limit.
Definition: errors.h:210
const bool & cartesian_reflex
True if a collision was detected, i.e. the robot exceeded a torque threshold in a Cartesian motion...
Definition: errors.h:100
const bool & joint_motion_generator_velocity_limits_violation
True if an external joint motion generator exceeded velocity limits.
Definition: errors.h:125
const bool & instability_detected
True if an instability is detected.
Definition: errors.h:224
const bool & joint_velocity_violation
True if the robot exceeded joint velocity limits.
Definition: errors.h:82
const bool & cartesian_motion_generator_elbow_sign_inconsistent
True if commanded elbow values in Cartesian motion generators are inconsistent.
Definition: errors.h:162
const bool & start_elbow_sign_inconsistent
True if the start elbow sign was inconsistent.
Definition: errors.h:202
const bool & tau_j_range_violation
True if the measured torque signal is out of the safe range.
Definition: errors.h:220