1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 | #pragma once
#include <ethercatcpp/sensojoint.h>
namespace ethercatcpp {
using namespace coe::cia402;
struct SensoJoint::OpaqueStateCommands {
// command variables
uint16_t& control_word_;
int8_t& control_mode_;
int32_t& target_output_position_; // in inc
int32_t& target_output_velocity_; // in mrpm
int32_t& target_output_torque_; // in mNm
int32_t& target_position_; // in inc
int32_t& target_velocity_; // in mrpm
int16_t& target_motor_torque_; // in "per mile" rated torque
int32_t& velocity_offset_; // in mrpm
int16_t& torque_offset_; // in "per mile" rated torque
uint32_t& digital_outputs_;
struct HapticsCoding {
uint16_t& stiffness_;
uint16_t& damping_;
int32_t& neutral_position_;
int32_t& external_load_torque_offset_;
HapticsCoding(uint16_t& stiffness, uint16_t& damping,
int32_t& neutral_position,
int32_t& external_load_torque_offset)
: stiffness_{stiffness},
damping_{damping},
neutral_position_{neutral_position},
external_load_torque_offset_{external_load_torque_offset} {
}
};
std::optional<HapticsCoding> haptics_config_;
// state variables
uint16_t status_word_;<--- struct member 'OpaqueStateCommands::status_word_' is never used.
int8_t operation_mode_;<--- struct member 'OpaqueStateCommands::operation_mode_' is never used.
uint16_t error_code_;<--- struct member 'OpaqueStateCommands::error_code_' is never used.
std::string error_report_;<--- struct member 'OpaqueStateCommands::error_report_' is never used.
bool sto_active_, sbc_active_;<--- struct member 'OpaqueStateCommands::sto_active_' is never used.<--- struct member 'OpaqueStateCommands::sbc_active_' is never used.
double position_; // in rad<--- struct member 'OpaqueStateCommands::position_' is never used.
double velocity_; // in rad per s<--- struct member 'OpaqueStateCommands::velocity_' is never used.
double output_torque_; // in Nm<--- struct member 'OpaqueStateCommands::output_torque_' is never used.
double motor_torque_; // in Nm<--- struct member 'OpaqueStateCommands::motor_torque_' is never used.
double friction_torque_; // in Nm<--- struct member 'OpaqueStateCommands::friction_torque_' is never used.
float motor_temperature_; // in °C<--- struct member 'OpaqueStateCommands::motor_temperature_' is never used.
double drive_temperature_; // in °C<--- struct member 'OpaqueStateCommands::drive_temperature_' is never used.
double sensor_temperature_; // in °C<--- struct member 'OpaqueStateCommands::sensor_temperature_' is never used.
mutable std::string fault_description_;<--- struct member 'OpaqueStateCommands::fault_description_' is never used.
uint32_t digital_inputs_;<--- struct member 'OpaqueStateCommands::digital_inputs_' is never used.
bool first_cycle_;
OpaqueStateCommands(uint16_t& control_word, int8_t& control_mode,<--- Member variable 'OpaqueStateCommands::status_word_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::operation_mode_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::error_code_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::sto_active_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::sbc_active_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::position_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::velocity_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::output_torque_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::motor_torque_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::friction_torque_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::motor_temperature_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::drive_temperature_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::sensor_temperature_' is not initialized in the constructor.<--- Member variable 'OpaqueStateCommands::digital_inputs_' is not initialized in the constructor.
int32_t& target_output_position,
int32_t& target_output_velocity,
int32_t& target_output_torque, int32_t& target_position,
int32_t& target_velocity, int16_t& target_motor_torque,
int32_t& velocity_offset, int16_t& torque_offset,
uint32_t& digital_outputs)
: control_word_{control_word},
control_mode_{control_mode},
target_output_position_{target_output_position},
target_output_velocity_{target_output_velocity},
target_output_torque_{target_output_torque},
target_position_{target_position},
target_velocity_{target_velocity},
target_motor_torque_{target_motor_torque},
velocity_offset_{velocity_offset},
torque_offset_{torque_offset},
digital_outputs_{digital_outputs},
haptics_config_{},
first_cycle_{true} {
}
};
struct SensoJoint::InternalParameters {
double absolute_max_output_torque{0.}; // in Nm<--- struct member 'InternalParameters::absolute_max_output_torque' is never used.
double absolute_max_output_velocity{0.}; // in rad per s<--- struct member 'InternalParameters::absolute_max_output_velocity' is never used.
double absolute_max_motor_current{0.}; // in A<--- struct member 'InternalParameters::absolute_max_motor_current' is never used.
double absolute_max_motor_torque{0.}; // in Nm<--- struct member 'InternalParameters::absolute_max_motor_torque' is never used.
double absolute_max_motor_velocity{0.}; // in rad per s<--- struct member 'InternalParameters::absolute_max_motor_velocity' is never used.
double quick_stop_deceleration{0.}; // in rad per s^2<--- struct member 'InternalParameters::quick_stop_deceleration' is never used.
double torque_constant{0.}; // in Nm/A<--- struct member 'InternalParameters::torque_constant' is never used.
double input_inertia{0.}; // in kg.m^2<--- struct member 'InternalParameters::input_inertia' is never used.
double gear_ratio{0.};<--- struct member 'InternalParameters::gear_ratio' is never used.
};
struct SensoJoint::ConversionRatios {
double to_rated_torque_unit_{0.};<--- struct member 'ConversionRatios::to_rated_torque_unit_' is never used.
double from_rated_torque_unit_{0.};<--- struct member 'ConversionRatios::from_rated_torque_unit_' is never used.
double to_output_torque_unit_{0.};<--- struct member 'ConversionRatios::to_output_torque_unit_' is never used.
double from_output_torque_unit_{0.};<--- struct member 'ConversionRatios::from_output_torque_unit_' is never used.
double from_rated_current_unit_{0.};<--- struct member 'ConversionRatios::from_rated_current_unit_' is never used.
double to_velocity_unit_{0.};<--- struct member 'ConversionRatios::to_velocity_unit_' is never used.
double from_velocity_unit_{0.};<--- struct member 'ConversionRatios::from_velocity_unit_' is never used.
double to_acceleration_unit_{0.};<--- struct member 'ConversionRatios::to_acceleration_unit_' is never used.
double from_acceleration_unit_{0.};<--- struct member 'ConversionRatios::from_acceleration_unit_' is never used.
double to_position_unit_{0.};<--- struct member 'ConversionRatios::to_position_unit_' is never used.
double from_position_unit_{0.};<--- struct member 'ConversionRatios::from_position_unit_' is never used.
double to_damping_unit_{0.};<--- struct member 'ConversionRatios::to_damping_unit_' is never used.
double to_spring_stiffness_unit_{0.};<--- struct member 'ConversionRatios::to_spring_stiffness_unit_' is never used.
double to_endstop_stiffness_unit_{0.};<--- struct member 'ConversionRatios::to_endstop_stiffness_unit_' is never used.
double from_torque_sensor_temperature_unit_{0.};<--- struct member 'ConversionRatios::from_torque_sensor_temperature_unit_' is never used.
double from_drive_temperatue_unit_{0.};<--- struct member 'ConversionRatios::from_drive_temperatue_unit_' is never used.
double to_time_unit_{0.};<--- struct member 'ConversionRatios::to_time_unit_' is never used.
double from_time_unit_{0.};<--- struct member 'ConversionRatios::from_time_unit_' is never used.
};
} // namespace ethercatcpp
|