lebai sdk  1.4.4
lebai c++ sdk with swig to support sereval languages.
robot.hh
1 
17 #pragma once
18 
19 #include <memory>
20 #include <cstdint>
21 #include <string>
22 #include <vector>
23 #include <array>
24 #include <map>
25 
26 namespace lebai {
27 namespace l_master {
33 std::string version();
39 using CartesianPose = std::map<std::string, double>;
40 using DoubleVector = std::vector<double>;
46  CartesianPose
47  pose;
50  bool ok = false;
51 };
57  DoubleVector
61  bool ok = false;
62 };
63 
68 struct ClawData {
69  double force;
70  double amplitude;
71  bool hold_on;
72 };
73 
78 struct StorageItem {
79  std::string key;
80  std::string value;
81 };
82 
87 struct PhysicalData {
88  DoubleVector joint_temperature;
89  DoubleVector joint_voltage;
90  double flange_voltage;
91 };
92 
93 struct DhParamData {
94  double a = 0.0;
95  double alpha = 0.0;
96  double d = 0.0;
97  double theta = 0.0;
98 };
99 
105  std::string name;
106  std::string kernel_version;
107  std::string os_version;
108  std::string host_name;
109  uint64_t used_memory = 0;
110  uint64_t total_memory = 0;
111 };
112 
118  std::string name;
119  std::string mac;
120  std::string box_model;
121  std::string box_sn;
122  std::string arm_model;
123  std::string arm_sn;
124 };
125 
127  std::string name;
128  std::string mac;
129  std::string ip;
130  bool online = false;
131 };
132 
138  bool invalid = false;
139  std::string sn;
140  std::string version;
141  std::string partition;
142  uint32_t di_num = 0;
143  uint32_t do_num = 0;
144  uint32_t dio_num = 0;
145  uint32_t ai_num = 0;
146  uint32_t ao_num = 0;
147 };
148 
151  std::vector<DeviceInfoData> joints;
155 };
156 
158  std::string version;
159  std::string branch;
160 };
161 
163  std::map<std::string, SoftwareItemInfoData> software;
164 };
165 
167  bool tmp = false;
168  bool syslog = false;
169  bool arm = false;
170  bool config = false;
171  bool data = false;
172  bool file = false;
173  bool docker = false;
174  bool ds = false;
175 };
176 
178  SystemInfoData system;
179  RobotInfoData robot;
180  HardwareInfoData hardware;
181  SoftwareInfoData software;
182  BackupOptionsData option;
183 };
184 
186  std::string method;
187  std::string url;
188  std::map<std::string, std::string> headers;
189  std::string body;
190 };
191 
193  unsigned int status = 0;
194  std::map<std::string, std::string> headers;
195  std::string body;
196 };
197 
198 struct MessageData {
199  std::string level;
200  std::string kind;
201  std::string detail;
202  std::string time;
203 };
204 
205 struct OtaStateData {
206  std::string step;
207  uint32_t progress = 0;
208 };
209 
211  bool need_upgrade = false;
212  std::string introduction;
213 };
214 
216  bool done = false;
217  std::string stdout_text;
218  std::string stderr_text;
219  int code = 0;
220 };
221 
222 struct DirData {
223  std::string name;
224  uint32_t id = 0;
225 };
226 
227 struct ShortcutData {
228  uint32_t id = 0;
229  std::string dir;
230  std::string name;
231 };
232 
234  std::string device;
235  uint32_t pin = 0;
236 };
237 
239  std::string state;
240  uint32_t time = 0;
241 };
242 
244  std::vector<ButtonIndexData> pressed;
247 };
248 
249 struct TriggerData {
251  std::string function;
252 };
253 
254 struct LedStyleData {
255  std::string mode;
256  std::string speed;
257  std::vector<std::string> colors;
258  std::string voice;
259  std::string volume;
260 };
261 
263  double position_kp = 0.0;
264  double speed_kp = 0.0;
265  double speed_it = 0.0;
266  double torque_cmd_filter = 0.0;
267 };
268 
270  double acc_position_kp = 0.0;
271  double acc_speed_kp = 0.0;
272  double acc_speed_it = 0.0;
273  double uni_position_kp = 0.0;
274  double uni_speed_kp = 0.0;
275  double uni_speed_it = 0.0;
276  double dec_position_kp = 0.0;
277  double dec_speed_kp = 0.0;
278  double dec_speed_it = 0.0;
279 };
280 
281 struct WrenchData {
282  DoubleVector force;
283  DoubleVector torque;
284 };
285 
287  std::string name;
288  std::string description;
289  std::string homepage;
290  bool auto_restart = false;
291  bool web = false;
292  bool daemon = false;
293  bool cmd = false;
294  bool enable = false;
295 };
296 
298  std::string name;
299  std::string url;
300 };
301 
302 struct TaskData {
303  unsigned int id = 0;
304  std::string state;
305  unsigned int loop_count = 0;
306  unsigned int loop_to = 0;
307  bool is_parallel = false;
308  bool is_simu = false;
309  std::string stdout_text;
310  std::string kind;
311  std::string dir;
312  std::string name;
313  std::vector<std::string> params;
314 };
315 
317  unsigned int id = 0;
318  bool done = false;
319  std::string stdout_text;
320 };
321 
322 struct ModbusData {
323  std::string kind;
324  std::string address;
325  unsigned int port = 0;
326  unsigned int slave_id = 0;
327 };
328 
330  std::string kind;
331  unsigned int address = 0;
332 };
333 
335  bool active = false;
336  std::string name;
337  std::string kind;
338  unsigned int dof = 0;
339  std::string dh;
340  std::string dyn;
341  std::string servo;
342 };
343 
344 struct PoseData {
345  std::string kind;
346  CartesianPose cart;
347  std::vector<double> joint;
348 };
349 
351  double pose = 0.0;
352  double velocity = 0.0;
353  double acc = 0.0;
354 };
355 
357  double duration = 0.0;
358  std::vector<JointMoveData> joints;
359 };
360 
362  std::string kind;
363  std::vector<PvatPointData> data;
364 };
365 
366 struct FrameData {
367  std::string position_kind;
368  CartesianPose position;
369  std::string rotation_kind;
370  CartesianPose rotation;
371 };
372 
378  DoubleVector actual_joint_pose;
379  DoubleVector actual_joint_speed;
380  DoubleVector actual_joint_acc;
381  DoubleVector actual_joint_torque;
382  DoubleVector target_joint_pose;
383  DoubleVector target_joint_speed;
384  DoubleVector target_joint_acc;
385  DoubleVector target_joint_torque;
386  CartesianPose actual_tcp_pose;
387  CartesianPose target_tcp_pose;
388  CartesianPose actual_flange_pose;
389 };
390 
396  unsigned int action = 99;
397  unsigned int pause_time = 0;
398  unsigned int sensitivity = 0;
399 };
400 
406  double min_position = 0.0;
407  double max_position = 0.0;
408  double max_a = 0.0;
409  double max_v = 0.0;
410 };
411 
417  double max_a = 0.0;
418  double max_v = 0.0;
419  double eq_radius = 0.0;
420 };
421 
430 class Robot {
431  public:
437  class RobotImpl;
438 
449  explicit Robot(std::string ip, bool simulator = false);
454  virtual ~Robot();
455 
456  // clang-format off
474  // clang-format on
475  std::tuple<int, std::string> call(const std::string &method,
476  const std::string &params);
477 
481  std::string hello(const std::string &data);
482 
486  void set_auto(int name, bool value);
487 
491  bool get_auto(int name);
492 
500 
565  void start_sys();
571  void stop_sys();
576  void powerdown();
581  void stop();
586  void estop();
592  void teach_mode();
602  void pause_move();
603  void pause();
608  void resume_move();
609  void resume();
613  void reboot();
641  int move_joint(const std::vector<double> &joint_positions, double a, double v,
642  double t, double r);
643  int movej(const std::vector<double> &joint_positions, double a, double v,
644  double t, double r);
667  int move_joint(const CartesianPose &cart_pose, double a, double v, double t,
668  double r);
669  int movej(const CartesianPose &cart_pose, double a, double v, double t,
670  double r);
691  int move_linear(const std::vector<double> &joint_positions, double a,
692  double v, double t, double r);
693  int movel(const std::vector<double> &joint_positions, double a, double v,
694  double t, double r);
717  int move_linear(const CartesianPose &cart_pose, double a, double v, double t,
718  double r);
719  int movel(const CartesianPose &cart_pose, double a, double v, double t,
720  double r);
745  int move_circular(const std::vector<double> &joint_via,
746  const std::vector<double> &joint, double rad, double a,
747  double v, double t, double r);
748  int movec(const std::vector<double> &joint_via,
749  const std::vector<double> &joint, double rad, double a, double v,
750  double t, double r);
768  int move_circular(const CartesianPose &cart_via, const CartesianPose &cart,
769  double rad, double a, double v, double t, double r);
770  int movec(const CartesianPose &cart_via, const CartesianPose &cart,
771  double rad, double a, double v, double t, double r);
784  int speed_joint(double a, const std::vector<double> &v, double t = 0.0);
785  int speedj(double a, const std::vector<double> &v, double t = 0.0);
801  int speed_linear(double a, const CartesianPose &v, double t = 0.0,
802  const CartesianPose &reference = {{"x", 0.0},
803  {"y", 0.0},
804  {"z", 0.0},
805  {"rx", 0.0},
806  {"ry", 0.0},
807  {"rz", 0.0}});
808  int speedl(double a, const CartesianPose &v, double t = 0.0,
809  const CartesianPose &reference = {{"x", 0.0},
810  {"y", 0.0},
811  {"z", 0.0},
812  {"rx", 0.0},
813  {"ry", 0.0},
814  {"rz", 0.0}});
836  int toward_joint(const std::vector<double> &joint_positions, double a,
837  double v, double t, double r);
838  int towardj(const std::vector<double> &joint_positions, double a, double v,
839  double t, double r);
848  void move_pvat(std::vector<double> p, std::vector<double> v,
849  std::vector<double> a, double t);
855  void wait_move(unsigned int id);
860  void wait_move();
864  unsigned int get_running_motion();
870  std::string get_motion_state(unsigned int id);
874  void stop_move();
878  void skip_move();
947  void clean(const BackupOptionsData &option);
948  void backup(const std::string &file, const BackupOptionsData &option);
949  BackupInfoData get_backup_info(const std::string &file);
950  void restore(const std::string &file, const BackupOptionsData &option);
951  void set_virtual_ip(const std::string &ifname, const std::string &ip);
958  std::vector<std::string> get_box_devices(const std::string &prefix);
964  std::vector<DirData> get_dirs();
970  void create_dir(DirData dir);
977  void update_dir(std::string from, std::string to);
983  std::vector<ShortcutData> get_short_poses();
987  void set_short_pose(ShortcutData shortcut_data);
991  ShortcutData get_short_pose(unsigned int id);
997  std::vector<ShortcutData> get_short_tasks();
1001  void set_short_task(ShortcutData shortcut_data);
1005  ShortcutData get_short_task(unsigned int id);
1011  std::vector<TriggerData> get_triggers();
1015  void set_trigger(TriggerData trigger);
1021  std::map<std::string, LedStyleData> get_led_styles();
1027  void set_led_styles(std::map<std::string, LedStyleData> styles);
1034  LedStyleData load_led_style(std::string name, std::string dir = "");
1042  void save_led_style(std::string name, LedStyleData style,
1043  std::string dir = "");
1050  void set_led_style(std::string state, LedStyleData style);
1056  std::vector<std::string> load_led_style_list(std::string dir = "");
1062  std::vector<ServoParamData> get_servo_params();
1063  void set_servo_params(const std::vector<ServoParamData> &params);
1064  void find_zero();
1065  void set_zero(const std::vector<double> &pose,
1066  const std::vector<bool> &valids);
1067  void set_extra_servo_params(const std::vector<ExtraServoParamData> &params,
1068  const std::vector<bool> &valids);
1069  void reset_extra_servo_params(const std::vector<bool> &valids);
1070  void set_flange_baud_rate(unsigned int baud_rate);
1082  void set_tcp_force(const WrenchData &wrench);
1089  void set_force_mode_sensor(const std::string &sensor, unsigned int address);
1097  void set_force_mode_param(double damping, double gain,
1098  const std::vector<double> &max_vel);
1105  void start_force_mode(const CartesianPose &limit, const WrenchData &wrench);
1115  std::vector<PluginInfoData> load_plugins();
1121  std::vector<PluginStoreInfoData> get_plugin_store();
1127  PluginInfoData load_plugin(const std::string &name);
1135  const std::string &name,
1136  const std::vector<std::string> &params = std::vector<std::string>());
1142  CommandStdoutData enable_plugin(const std::string &name);
1148  CommandStdoutData disable_plugin(const std::string &name);
1154  void restart_plugin_daemon(const std::string &name);
1160  std::vector<DiscoveredRobotData> discover_robots();
1172  std::vector<MessageData> get_messages();
1191  void sub_buttons_status(uint64_t interval_min, uint64_t interval_max);
1192  void sub_kin_data(uint64_t interval_min, uint64_t interval_max);
1193  void sub_message(uint64_t interval_min, uint64_t interval_max);
1194  void sub_robot_state(uint64_t interval_min, uint64_t interval_max);
1195  void sub_phy_data(uint64_t interval_min, uint64_t interval_max);
1196  void sub_task_stdout(uint64_t interval_min, uint64_t interval_max);
1197  void start_ota(const std::string &address, const std::string &partition,
1198  const std::string &file);
1199  void switch_partition(const std::string &address,
1200  const std::string &partition);
1201  void start_upgrade();
1202  int box_test();
1203  std::string init_robot(const std::string &time, const std::string &auth,
1204  const RobotInfoData &info);
1217 
1229  bool is_down();
1235  std::vector<double> get_actual_joint_positions();
1241  std::vector<double> get_target_joint_positions();
1247  std::vector<double> get_actual_joint_speed();
1248  // get_target_joint_speed
1254  std::vector<double> get_target_joint_speed();
1261  CartesianPose get_actual_tcp_pose();
1268  CartesianPose get_target_tcp_pose();
1269 
1276  double get_joint_temp(unsigned int joint_index);
1277 
1283  std::vector<double> get_actual_joint_torques();
1289  std::vector<double> get_target_joint_torques();
1290 
1313  void set_do(std::string device, unsigned int pin, unsigned int value);
1317  void set_dos(std::string device, unsigned int pin,
1318  std::vector<unsigned int> values);
1326  unsigned int get_do(std::string device, unsigned int pin);
1335  std::vector<unsigned int> get_dos(std::string device, unsigned int pin,
1336  unsigned int num);
1344  unsigned int get_di(std::string device, unsigned int pin);
1353  std::vector<unsigned int> get_dis(std::string device, unsigned int pin,
1354  unsigned int num);
1355 
1363  void set_ao(std::string device, unsigned int pin, double value);
1367  void set_aos(std::string device, unsigned int pin, std::vector<double> values);
1375  double get_ao(std::string device, unsigned int pin);
1384  std::vector<double> get_aos(std::string device, unsigned int pin,
1385  unsigned int num);
1393  double get_ai(std::string device, unsigned int pin);
1402  std::vector<double> get_ais(std::string device, unsigned int pin,
1403  unsigned int num);
1412  void set_dio_mode(std::string device, unsigned int pin, bool value);
1419  bool get_dio_mode(std::string device, unsigned int pin);
1428  std::vector<bool> get_dios_mode(std::string device, unsigned int pin,
1429  unsigned int count);
1436  void enable_button(std::string device, unsigned int pin);
1443  void disable_button(std::string device, unsigned int pin);
1454  void init_claw(bool force_initilization);
1462  void set_claw(double force, double amplitude);
1469  void set_claw_ao(unsigned int address, double value);
1470 
1477  ClawData get_claw_data();
1483  double get_claw_ai(unsigned int address);
1491  void wait_claw_ai(unsigned int address, double value,
1492  std::string relation = "EQ");
1507  void set_led(unsigned int mode, unsigned int speed,
1508  const std::vector<unsigned int> &color);
1515  void set_voice(unsigned int voice, unsigned int volume);
1521  void set_fan(unsigned int status);
1534  void set_signal(unsigned int index, int value);
1538  void set_signals(unsigned int index, std::vector<int> values);
1545  int get_signal(unsigned int index);
1549  std::vector<int> get_signals(unsigned int index, unsigned int len);
1557  void wait_signal(unsigned int index, int value, std::string relation = "EQ");
1564  void add_signal(unsigned int index, int value);
1582  unsigned int start_task(const std::string &name,
1583  const std::vector<std::string> &params,
1584  const std::string &dir, bool is_parallel,
1585  unsigned int loop_to);
1591  unsigned int start_task(const std::string &name);
1595  std::vector<unsigned int> load_task_list();
1596  std::vector<unsigned int> get_task_list();
1600  std::vector<TaskData> load_running_tasks();
1613  std::string wait_task(unsigned int id);
1621  void pause_task(unsigned int id, unsigned long time, bool wait);
1626  void pause_task(unsigned int id);
1632  void resume_task(unsigned int id);
1638  void cancel_task(unsigned int id);
1644  unsigned int exec_hook(unsigned int id);
1648  std::string load_task();
1649  std::string get_task_state();
1655  std::string load_task(unsigned int id);
1656  std::string get_task_state(unsigned int id);
1669  const std::vector<double> &joint_positions);
1670  KinematicsForwardResp kinematics_forward(
1671  const std::vector<double> &joint_positions);
1672 
1680  const CartesianPose &pose,
1681  const std::vector<double> &joint_init_positions = {});
1682  KinematicsInverseResp kinematics_inverse(
1683  const CartesianPose &pose,
1684  const std::vector<double> &joint_init_positions = {});
1691  double measure_manipulation(const std::vector<double> &joint_positions);
1692 
1700  CartesianPose get_pose_trans(const CartesianPose &a, const CartesianPose &b);
1701  CartesianPose pose_times(const CartesianPose &a, const CartesianPose &b);
1708  CartesianPose get_pose_add(const CartesianPose &pose,
1709  const CartesianPose &delta);
1717  CartesianPose calc_frame(const CartesianPose &o, const CartesianPose &x,
1718  const CartesianPose &xy);
1724  CartesianPose calc_tcp(const std::vector<CartesianPose> &poses);
1725 
1732  CartesianPose get_pose_inverse(const CartesianPose &in);
1733  CartesianPose pose_inverse(const CartesianPose &in);
1747  void save_file(const std::string &dir, const std::string &name, bool is_dir,
1748  const std::string &data);
1757  void rename_file(const std::string &from_dir, const std::string &from_name,
1758  const std::string &to_dir, const std::string &to_name);
1759 
1767  void download_file(const std::string &dir, const std::string &name,
1768  const std::string &url);
1769 
1778  std::tuple<bool, std::string> load_file(const std::string &dir,
1779  const std::string &name);
1780 
1790  std::vector<std::tuple<bool, std::string>> load_file_list(
1791  const std::string &dir, const std::string &prefix,
1792  const std::string &suffix);
1801  void zip(const std::string &from_dir, std::vector<std::string> files,
1802  const std::string &to_dir, const std::string &name);
1811  void unzip(const std::string &from_dir, const std::string &name,
1812  std::vector<std::string> files, const std::string &to_dir);
1816  std::vector<std::tuple<bool, std::string>> load_zip_list(
1817  const std::string &zip, const std::string &dir,
1818  const std::string &prefix, const std::string &suffix);
1819 
1830  void set_tcp(std::array<double, 6> tcp);
1836  std::array<double, 6> get_tcp();
1842  std::vector<DhParamData> get_dh();
1843  void set_dh(const std::vector<DhParamData> &params);
1849  void set_kin_factor(int factor);
1850  void set_velocity_factor(int factor);
1857  int get_velocity_factor();
1864  void set_payload(double mass, std::map<std::string, double> cog);
1870  void set_payload_mass(double mass);
1876  void set_payload_cog(std::map<std::string, double> cog);
1884  void save_payload(std::string name, std::map<std::string, double> payload,
1885  std::string dir = "");
1891  std::map<std::string, double> get_payload();
1898  std::map<std::string, double> load_payload(std::string name,
1899  std::string dir = "");
1905  std::vector<std::string> load_payload_list(std::string dir = "");
1911  void set_gravity(std::map<std::string, double> gravity);
1917  std::map<std::string, double> get_gravity();
1933  void set_collision_torque_diff(const std::vector<double> &diffs);
1939  std::vector<double> get_collision_torque_diff();
1967  void set_joints_limit(const std::vector<JointLimitConfig> &joints);
1973  std::vector<JointLimitConfig> get_joints_limit();
1992  CartesianPose load_tcp(std::string name, std::string dir = "");
2000  void save_tcp(std::string name, CartesianPose tcp, std::string dir = "");
2006  std::vector<std::string> load_tcp_list(std::string dir = "");
2012  std::vector<std::string> load_trajectory_list(std::string dir = "");
2019  TrajectoryData load_trajectory(std::string name, std::string dir = "");
2027  void save_trajectory(std::string name, TrajectoryData trajectory,
2028  std::string dir = "");
2029  unsigned int move_trajectory(std::string name, std::string dir = "");
2036  void start_record_trajectory(std::string kind, double duration);
2043  void end_record_trajectory(std::string name, std::string dir = "");
2049  std::vector<std::string> load_pose_list(std::string dir = "");
2056  PoseData load_pose(std::string name, std::string dir = "");
2064  void save_pose(std::string name, PoseData pose, std::string dir = "");
2070  std::vector<std::string> load_frame_list(std::string dir = "");
2077  FrameData load_frame(std::string name, std::string dir = "");
2085  void save_frame(std::string name, FrameData frame, std::string dir = "");
2091  std::vector<std::string> load_structure_list(std::string dir = "");
2098  StructureData load_structure(std::string name, std::string dir = "");
2106  void save_structure(std::string name, StructureData structure,
2107  std::string dir = "");
2119  std::vector<std::string> load_modbus_list(std::string dir = "");
2126  ModbusData load_modbus(std::string name, std::string dir = "");
2133  void save_modbus(std::string name, ModbusData modbus);
2140  void set_modbus_timeout(std::string device, unsigned int timeout);
2147  void set_modbus_retry(std::string device, unsigned int retry);
2153  void disconnect_modbus(std::string device);
2159  std::vector<std::string> load_modbus_register_list(std::string device);
2167  std::string name);
2175  void save_modbus_register(std::string device, std::string name,
2176  ModbusRegisterData reg);
2177 
2185  void write_single_coil(std::string device, std::string addr, bool value);
2186 
2194  void write_multiple_coils(std::string device, std::string addr,
2195  std::vector<bool> values);
2196  void wirte_multiple_coils(std::string device, std::string addr,
2197  std::vector<bool> values);
2198 
2206  std::vector<bool> read_coils(std::string device, std::string addr,
2207  unsigned int num);
2215  std::vector<bool> read_discrete_inputs(std::string device, std::string addr,
2216  unsigned int num);
2217 
2225  void write_single_register(std::string device, std::string addr,
2226  unsigned int value);
2234  void write_multiple_registers(std::string device, std::string addr,
2235  std::vector<unsigned int> values);
2236 
2244  std::vector<unsigned int> read_holding_registers(std::string device,
2245  std::string addr,
2246  unsigned int num);
2254  std::vector<unsigned int> read_input_registers(std::string device,
2255  std::string addr,
2256  unsigned int num);
2269  void set_serial_baud_rate(std::string device, unsigned int baud_rate);
2276  void set_serial_timeout(std::string device, unsigned int timeout);
2284  void set_serial_parity(std::string device, unsigned int parity);
2291  void write_serial(std::string device, std::vector<unsigned int> data);
2298  std::vector<unsigned int> read_serial(std::string device, unsigned int len);
2304  void clear_serial(std::string device);
2315  void set_item(StorageItem item);
2322  StorageItem get_item(std::string name);
2329  std::vector<StorageItem> get_items(std::string prefix);
2332  protected:
2333  std::unique_ptr<RobotImpl> impl_;
2334 };
2335 
2336 } // namespace l_master
2337 
2338 } // namespace lebai
机械臂的主要接口对象,通过本对象的方法与机械臂进行数据交互.
Definition: robot.hh:430
std::unique_ptr< RobotImpl > impl_
Definition: robot.hh:2333
bool get_auto(int name)
获取自动配置项,name 取值与 SDK2 保持一致: 1, 2, 3.
std::string hello(const std::string &data)
测试 JSON-RPC 连接.
virtual ~Robot()
析构Robot对象.
Robot(std::string ip, bool simulator=false)
构造Robot对象.
std::tuple< int, std::string > call(const std::string &method, const std::string &params)
用JSON格式字符串调用机械臂的接口.
void set_auto(int name, bool value)
设置自动配置项,name 取值与 SDK2 保持一致: 1, 2, 3.
bool is_network_connected()
返回是否和机械臂的网络连接正常,如果网络连接异常,调用和机械臂交互的接口会抛出异常std::runtime_error。
void init_claw(bool force_initilization)
初始化夹爪
double get_claw_ai(unsigned int address)
读取夹爪指定模拟输入数据.
void set_claw_ao(unsigned int address, double value)
设置夹爪指定模拟输出数据.
void wait_claw_ai(unsigned int address, double value, std::string relation="EQ")
等待夹爪模拟输入满足指定关系.
ClawData get_claw()
获取夹爪当前数据
void set_claw(double force, double amplitude)
设置夹爪力度(力控)和幅度(位控).如果在闭合过程中抓取到物体,则不再继续闭合以避免夹坏物体,判断的准则为这里设置的力的大小.
PoseData load_pose(std::string name, std::string dir="")
查询路点.
std::vector< std::string > load_frame_list(std::string dir="")
查询特征列表.
void enable_limit()
使能安全限位检测.
void save_pose(std::string name, PoseData pose, std::string dir="")
保存路点.
void set_payload_cog(std::map< std::string, double > cog)
设置机器人末端负载重心.
void save_structure(std::string name, StructureData structure, std::string dir="")
保存机器人结构.
std::vector< std::string > load_pose_list(std::string dir="")
查询路点列表.
TrajectoryData load_trajectory(std::string name, std::string dir="")
查询轨迹.
std::map< std::string, double > get_payload()
获取末端负载设置.
void set_collision_detector(const CollisionDetectorConfig &config)
设置碰撞检测参数.
void set_gravity(std::map< std::string, double > gravity)
设置机器人重力加速度方向.
void set_kin_factor(int factor)
设置速度因子.
std::vector< DhParamData > get_dh()
获取当前DH参数.
std::vector< std::string > load_structure_list(std::string dir="")
查询机器人结构列表.
void start_record_trajectory(std::string kind, double duration)
开始记录轨迹.
int get_kin_factor()
获取当前的速度因子.
CartesianLimitConfig get_cart_limit()
获取笛卡尔空间限位.
std::map< std::string, double > get_gravity()
获取机器人重力加速度的方向.
void save_payload(std::string name, std::map< std::string, double > payload, std::string dir="")
保存末端负载.
void save_trajectory(std::string name, TrajectoryData trajectory, std::string dir="")
保存轨迹.
CartesianPose load_tcp(std::string name, std::string dir="")
从资源库加载tcp.
void disable_limit()
临时禁用安全限位检测.
void set_cart_limit(const CartesianLimitConfig &limit)
设置笛卡尔空间限位.
void save_tcp(std::string name, CartesianPose tcp, std::string dir="")
保存tcp.
void set_payload(double mass, std::map< std::string, double > cog)
设置机器人末端负载.
void set_tcp(std::array< double, 6 > tcp)
设置工具中心点(TCP)坐标,坐标值相对于工具坐标系.
std::vector< double > get_collision_torque_diff()
获取碰撞监测误差.
FrameData load_frame(std::string name, std::string dir="")
查询特征.
std::vector< std::string > load_tcp_list(std::string dir="")
查询工具中心点列表.
std::vector< JointLimitConfig > get_joints_limit()
获取关节限位.
void enable_collision_detector()
使能碰撞检测.
CollisionDetectorConfig get_collision_detector()
获取碰撞检测参数.
void set_joints_limit(const std::vector< JointLimitConfig > &joints)
设置关节限位.
std::vector< std::string > load_trajectory_list(std::string dir="")
查询轨迹列表.
void end_record_trajectory(std::string name, std::string dir="")
结束记录轨迹并保存.
std::map< std::string, double > load_payload(std::string name, std::string dir="")
从资源库加载末端负载.
StructureData load_structure(std::string name, std::string dir="")
查询机器人结构.
std::vector< std::string > load_payload_list(std::string dir="")
查询负载列表.
std::array< double, 6 > get_tcp()
获取当前机器人工具中心点设置.
void set_collision_torque_diff(const std::vector< double > &diffs)
设置碰撞监测误差.
void disable_collision_detector()
临时禁用碰撞检测.
void set_payload_mass(double mass)
设置机器人末端负载质量.
void save_frame(std::string name, FrameData frame, std::string dir="")
保存特征.
std::vector< std::tuple< bool, std::string > > load_file_list(const std::string &dir, const std::string &prefix, const std::string &suffix)
查询文件列表.
void zip(const std::string &from_dir, std::vector< std::string > files, const std::string &to_dir, const std::string &name)
将文件从文件系统中压缩到zip文件.
void rename_file(const std::string &from_dir, const std::string &from_name, const std::string &to_dir, const std::string &to_name)
重命名文件
void unzip(const std::string &from_dir, const std::string &name, std::vector< std::string > files, const std::string &to_dir)
将zip文件解压到文件系统.
void save_file(const std::string &dir, const std::string &name, bool is_dir, const std::string &data)
保存文件(以字节形式).
void download_file(const std::string &dir, const std::string &name, const std::string &url)
通过URL下载文件到控制器.
std::tuple< bool, std::string > load_file(const std::string &dir, const std::string &name)
查询文件
std::vector< std::tuple< bool, std::string > > load_zip_list(const std::string &zip, const std::string &dir, const std::string &prefix, const std::string &suffix)
查询zip内文件列表.
std::vector< unsigned int > get_dos(std::string device, unsigned int pin, unsigned int num)
获取多个数字输出
void set_aos(std::string device, unsigned int pin, std::vector< double > values)
设置多个模拟输出
void set_do(std::string device, unsigned int pin, unsigned int value)
设置数字输出
std::vector< bool > get_dios_mode(std::string device, unsigned int pin, unsigned int count)
获取数字端口模式
std::vector< unsigned int > get_dis(std::string device, unsigned int pin, unsigned int num)
获取多个数字输入
void enable_button(std::string device, unsigned int pin)
启用按钮输入.
void set_dos(std::string device, unsigned int pin, std::vector< unsigned int > values)
设置多个数字输出
bool get_dio_mode(std::string device, unsigned int pin)
获取单个数字端口模式
double get_ai(std::string device, unsigned int pin)
获取模拟输入
unsigned int get_do(std::string device, unsigned int pin)
获取数字输出
void disable_button(std::string device, unsigned int pin)
禁用按钮输入.
std::vector< double > get_ais(std::string device, unsigned int pin, unsigned int num)
获取多个模拟输入
std::vector< double > get_aos(std::string device, unsigned int pin, unsigned int num)
获取多个模拟输出
unsigned int get_di(std::string device, unsigned int pin)
获取数字输入
void set_ao(std::string device, unsigned int pin, double value)
设置模拟输出
double get_ao(std::string device, unsigned int pin)
获取模拟输出
void set_dio_mode(std::string device, unsigned int pin, bool value)
设置数字端口模式
void set_fan(unsigned int status)
开关风扇
void set_voice(unsigned int voice, unsigned int volume)
设置声音
void set_led(unsigned int mode, unsigned int speed, const std::vector< unsigned int > &color)
设置LED灯状态.
std::vector< std::string > load_modbus_list(std::string dir="")
查询Modbus配置列表.
void set_modbus_retry(std::string device, unsigned int retry)
设置Modbus设备重试次数.
void save_modbus_register(std::string device, std::string name, ModbusRegisterData reg)
保存Modbus寄存器.
std::vector< bool > read_coils(std::string device, std::string addr, unsigned int num)
读线圈
void save_modbus(std::string name, ModbusData modbus)
保存Modbus设备.
std::vector< unsigned int > read_holding_registers(std::string device, std::string addr, unsigned int num)
读保持寄存器
void write_single_coil(std::string device, std::string addr, bool value)
写单个线圈.
ModbusData load_modbus(std::string name, std::string dir="")
查询Modbus设备.
void write_multiple_registers(std::string device, std::string addr, std::vector< unsigned int > values)
写多个寄存器
ModbusRegisterData load_modbus_register(std::string device, std::string name)
查询Modbus寄存器.
void write_multiple_coils(std::string device, std::string addr, std::vector< bool > values)
写多个线圈
void write_single_register(std::string device, std::string addr, unsigned int value)
写单个寄存器
std::vector< unsigned int > read_input_registers(std::string device, std::string addr, unsigned int num)
读输入寄存器
std::vector< std::string > load_modbus_register_list(std::string device)
查询Modbus寄存器列表.
void disconnect_modbus(std::string device)
断开Modbus设备连接.
void set_modbus_timeout(std::string device, unsigned int timeout)
设置Modbus设备超时时间.
std::vector< bool > read_discrete_inputs(std::string device, std::string addr, unsigned int num)
读离散输入
std::string get_motion_state(unsigned int id)
查询指定MotionId的运动状态.
int move_circular(const std::vector< double > &joint_via, const std::vector< double > &joint, double rad, double a, double v, double t, double r)
通过关节位置发送机械臂圆弧运动.
int toward_joint(const std::vector< double > &joint_positions, double a, double v, double t, double r)
通过关节位置发送机械臂关节自由移动.
int speed_joint(double a, const std::vector< double > &v, double t=0.0)
通过关节速度矢量发送机械臂关节匀速运动
void move_pvat(std::vector< double > p, std::vector< double > v, std::vector< double > a, double t)
伺服运动PVAT
int move_circular(const CartesianPose &cart_via, const CartesianPose &cart, double rad, double a, double v, double t, double r)
通过坐标位置发送机械臂圆弧运动
int move_joint(const std::vector< double > &joint_positions, double a, double v, double t, double r)
通过关节位置发送机械臂关节移动
int speed_linear(double a, const CartesianPose &v, double t=0.0, const CartesianPose &reference={{"x", 0.0}, {"y", 0.0}, {"z", 0.0}, {"rx", 0.0}, {"ry", 0.0}, {"rz", 0.0}})
通过坐标速度矢量发送机械臂关节匀速运动
int move_linear(const CartesianPose &cart_pose, double a, double v, double t, double r)
通过坐标位置发送机械臂直线移动
int move_linear(const std::vector< double > &joint_positions, double a, double v, double t, double r)
通过关节位置发送机械臂直线移动
void stop_move()
停止所有运动.
void wait_move(unsigned int id)
等待运动完成.
void skip_move()
跳过当前运动.
void wait_move()
等待所有运动完成.
unsigned int get_running_motion()
查询当前正在运动的MotionId(无运动时返回上次MotionId).
int move_joint(const CartesianPose &cart_pose, double a, double v, double t, double r)
通过坐标位置发送机械臂关节移动
double measure_manipulation(const std::vector< double > &joint_positions)
估算关节位置的灵活性.
CartesianPose get_pose_add(const CartesianPose &pose, const CartesianPose &delta)
位姿加.
CartesianPose calc_tcp(const std::vector< CartesianPose > &poses)
三点采样计算工具中心点.
KinematicsForwardResp get_forward_kin(const std::vector< double > &joint_positions)
根据机械臂关节位置计算机器人末端位姿(位置的运动学正解).
CartesianPose get_pose_inverse(const CartesianPose &in)
位姿变换的逆(等价于对应的齐次坐标矩的逆)
CartesianPose calc_frame(const CartesianPose &o, const CartesianPose &x, const CartesianPose &xy)
三点采样计算原点特征.
CartesianPose get_pose_trans(const CartesianPose &a, const CartesianPose &b)
位姿变换乘法(等价于对应的齐次坐标矩阵乘法)
KinematicsInverseResp get_inverse_kin(const CartesianPose &pose, const std::vector< double > &joint_init_positions={})
根据机械臂的末端位姿计算关节位置(位置的运动学逆解).
void cancel_task(unsigned int id)
取消任务与运动.
unsigned int start_task(const std::string &name, const std::vector< std::string > &params, const std::string &dir, bool is_parallel, unsigned int loop_to)
调用场景
unsigned int start_task(const std::string &name)
调用场景
unsigned int exec_hook(unsigned int id)
根据已设置的Hook执行对应场景
std::string wait_task(unsigned int id)
等待任务完成
std::vector< unsigned int > load_task_list()
查询任务列表
std::string load_task()
获取任务状态.
void pause_task(unsigned int id, unsigned long time, bool wait)
暂停任务与运动
void resume_task(unsigned int id)
恢复任务与运动
std::vector< TaskData > load_running_tasks()
查询运行中的任务列表.
void pause_task(unsigned int id)
暂停任务与运动
std::string load_task(unsigned int id)
获取任务状态.
TaskStdoutData get_task_stdout(unsigned int id)
获取任务输出.
std::vector< unsigned int > read_serial(std::string device, unsigned int len)
串口读取数据.
void set_serial_parity(std::string device, unsigned int parity)
设置串口校验位.
void set_serial_baud_rate(std::string device, unsigned int baud_rate)
设置串口波特率.
void write_serial(std::string device, std::vector< unsigned int > data)
串口发送数据.
void set_serial_timeout(std::string device, unsigned int timeout)
设置串口超时时间.
void clear_serial(std::string device)
清除串口收发缓存.
int get_signal(unsigned int index)
获取信号量
void add_signal(unsigned int index, int value)
增加指定下标的信号量值,该操作是原子的.
std::vector< int > get_signals(unsigned int index, unsigned int len)
获取多个连续信号量
void set_signal(unsigned int index, int value)
设置信号量
void set_signals(unsigned int index, std::vector< int > values)
设置多个连续信号量
void wait_signal(unsigned int index, int value, std::string relation="EQ")
等待信号量满足指定关系.
void estop()
紧急停止(急停).
void start_sys()
启动机械臂(机械臂上使能).
void resume_move()
恢复运动.
void stop()
停止运动(但不下电).
void end_teach_mode()
退出示教模式.
void powerdown()
关闭机器人电源(关机).
void stop_sys()
停止机械臂(机械臂下使能).
void pause_move()
暂停运动.
void reboot()
重新启动机箱
void start_teach_mode()
进入示教模式.
std::vector< double > get_actual_joint_torques()
获取机械臂关节当前反馈力矩
PluginInfoData load_plugin(const std::string &name)
查询已安装插件
void set_tcp_force(const WrenchData &wrench)
设置末端受力
OtaStateData get_ota_state()
获取OTA升级状态
std::vector< ShortcutData > get_short_poses()
获取所有快捷路点
void set_force_mode_param(double damping, double gain, const std::vector< double > &max_vel)
设置力控参数.
PhysicalData get_phy_data()
获取机械臂物理数据
std::vector< std::string > load_led_style_list(std::string dir="")
查询声光样式列表.
std::vector< DirData > get_dirs()
获取数据库目录列表
void create_dir(DirData dir)
创建数据库目录.
std::vector< double > get_actual_joint_speed()
获取机械臂关节当前反馈速度
int get_robot_state()
获取机器人状态码
std::vector< double > get_target_joint_positions()
获取机械臂关节当前控制位置
int get_estop_reason()
查看急停原因
void set_short_task(ShortcutData shortcut_data)
设置快捷任务
HardwareInfoData get_hardware_info()
获取控制器硬件信息
std::vector< ServoParamData > get_servo_params()
获取伺服参数
std::map< std::string, LedStyleData > get_led_styles()
获取声光交互样式集
std::vector< PluginStoreInfoData > get_plugin_store()
查询插件商店列表.
bool is_disconnected()
是否已与手臂断开连接
CommandStdoutData get_plugin_daemon_stdout(const std::string &name)
获取插件守护进程输出.
ShortcutData get_short_pose(unsigned int id)
获取单个快捷路点
std::vector< PluginInfoData > load_plugins()
查询已安装插件列表
CartesianPose get_target_tcp_pose()
获取机械臂末端在机械臂基坐标系下的控制位姿,CartesianPose = std::map<std::string,double>,应当包括键为x,y,z,rz,...
HttpResponseData http(HttpRequestData request)
通过控制器发起HTTP请求.
ShortcutData get_short_task(unsigned int id)
获取单个快捷任务
CheckUpgradeData check_upgrade()
查询是否需要系统升级
JointMotionData get_kin_data()
获取机械臂关节运动数据
std::vector< TriggerData > get_triggers()
获取条件任务触发器列表
std::vector< double > get_actual_joint_positions()
获取机械臂关节当前反馈位置
bool is_down()
手臂是否已下电
WrenchData get_tcp_force()
获取末端受力
void start_force_mode(const CartesianPose &limit, const WrenchData &wrench)
开始力控模式.
void save_led_style(std::string name, LedStyleData style, std::string dir="")
保存声光样式.
void update_dir(std::string from, std::string to)
重命名数据库目录.
std::vector< MessageData > get_messages()
获取控制器消息列表
void set_force_mode_sensor(const std::string &sensor, unsigned int address)
设置力控传感器.
std::vector< std::string > get_box_devices(const std::string &prefix)
获取控制箱dev设备列表
std::vector< ShortcutData > get_short_tasks()
获取所有快捷任务
CommandStdoutData get_upgrade_stdout()
获取系统升级输出
std::vector< double > get_target_joint_torques()
获取机械臂关节当前控制力矩
SystemInfoData get_system_info()
获取控制器系统信息
CommandStdoutData disable_plugin(const std::string &name)
禁用插件.
void set_led_styles(std::map< std::string, LedStyleData > styles)
设置声光交互样式集
void set_led_style(std::string state, LedStyleData style)
设置机器人状态对应的声光交互样式.
RobotInfoData get_robot_info()
获取机器人设备信息
std::vector< DiscoveredRobotData > discover_robots()
通过控制器RPC发现机器人设备.
LedStyleData load_led_style(std::string name, std::string dir="")
查询声光样式.
double get_joint_temp(unsigned int joint_index)
获取单个关节温度
void set_short_pose(ShortcutData shortcut_data)
设置快捷路点
SoftwareInfoData get_software_info()
获取控制器软件信息
void set_trigger(TriggerData trigger)
设置条件任务触发器
void restart_plugin_daemon(const std::string &name)
重启插件守护进程.
void end_force_mode()
结束力控模式.
CartesianPose get_actual_tcp_pose()
获取机械臂末端在机械臂基坐标系下的实际位姿,CartesianPose = std::map<std::string,double>,应当包括键为x,y,z,rz,...
CommandStdoutData run_plugin_cmd(const std::string &name, const std::vector< std::string > &params=std::vector< std::string >())
执行插件命令.
CommandStdoutData enable_plugin(const std::string &name)
启用插件.
std::vector< double > get_target_joint_speed()
获取机械臂关节当前控制力矩
std::vector< StorageItem > get_items(std::string prefix)
获取存储项列表.
void set_item(StorageItem item)
设置存储项.
StorageItem get_item(std::string name)
获取存储项.
Definition: discovery.hh:23
Definition: robot.hh:177
Definition: robot.hh:166
Definition: robot.hh:233
std::string device
Definition: robot.hh:234
uint32_t pin
Definition: robot.hh:235
Definition: robot.hh:238
uint32_t time
Definition: robot.hh:240
std::string state
Definition: robot.hh:239
笛卡尔空间限位配置.
Definition: robot.hh:416
double max_v
Definition: robot.hh:418
double eq_radius
Definition: robot.hh:419
double max_a
Definition: robot.hh:417
Definition: robot.hh:210
bool need_upgrade
Definition: robot.hh:211
std::string introduction
Definition: robot.hh:212
夹爪数据结构.
Definition: robot.hh:68
double amplitude
Definition: robot.hh:70
bool hold_on
Definition: robot.hh:71
double force
Definition: robot.hh:69
碰撞检测配置.
Definition: robot.hh:395
unsigned int pause_time
Definition: robot.hh:397
unsigned int action
Definition: robot.hh:396
unsigned int sensitivity
Definition: robot.hh:398
Definition: robot.hh:215
bool done
Definition: robot.hh:216
std::string stderr_text
Definition: robot.hh:218
int code
Definition: robot.hh:219
std::string stdout_text
Definition: robot.hh:217
控制器硬件设备信息.
Definition: robot.hh:137
std::string sn
Definition: robot.hh:139
uint32_t do_num
Definition: robot.hh:143
std::string partition
Definition: robot.hh:141
std::string version
Definition: robot.hh:140
uint32_t ai_num
Definition: robot.hh:145
uint32_t ao_num
Definition: robot.hh:146
uint32_t dio_num
Definition: robot.hh:144
uint32_t di_num
Definition: robot.hh:142
bool invalid
Definition: robot.hh:138
Definition: robot.hh:93
double a
Definition: robot.hh:94
double d
Definition: robot.hh:96
double alpha
Definition: robot.hh:95
double theta
Definition: robot.hh:97
Definition: robot.hh:222
std::string name
Definition: robot.hh:223
Definition: robot.hh:126
std::string name
Definition: robot.hh:127
bool online
Definition: robot.hh:130
std::string mac
Definition: robot.hh:128
std::string ip
Definition: robot.hh:129
Definition: robot.hh:269
Definition: robot.hh:366
std::string rotation_kind
Definition: robot.hh:369
std::string position_kind
Definition: robot.hh:367
CartesianPose rotation
Definition: robot.hh:370
CartesianPose position
Definition: robot.hh:368
Definition: robot.hh:149
DeviceInfoData comboard
Definition: robot.hh:150
DeviceInfoData extra_io
Definition: robot.hh:154
std::vector< DeviceInfoData > joints
Definition: robot.hh:151
DeviceInfoData flange
Definition: robot.hh:152
DeviceInfoData led
Definition: robot.hh:153
Definition: robot.hh:185
std::string url
Definition: robot.hh:187
std::string body
Definition: robot.hh:189
std::map< std::string, std::string > headers
Definition: robot.hh:188
std::string method
Definition: robot.hh:186
Definition: robot.hh:192
std::string body
Definition: robot.hh:195
unsigned int status
Definition: robot.hh:193
std::map< std::string, std::string > headers
Definition: robot.hh:194
关节限位配置.
Definition: robot.hh:405
double min_position
Definition: robot.hh:406
double max_position
Definition: robot.hh:407
double max_v
Definition: robot.hh:409
double max_a
Definition: robot.hh:408
机械臂关节运动数据结构.
Definition: robot.hh:377
CartesianPose actual_tcp_pose
Definition: robot.hh:386
DoubleVector target_joint_speed
Definition: robot.hh:383
DoubleVector target_joint_pose
Definition: robot.hh:382
DoubleVector actual_joint_speed
Definition: robot.hh:379
DoubleVector actual_joint_acc
Definition: robot.hh:380
CartesianPose target_tcp_pose
Definition: robot.hh:387
DoubleVector actual_joint_torque
Definition: robot.hh:381
DoubleVector target_joint_acc
Definition: robot.hh:384
DoubleVector target_joint_torque
Definition: robot.hh:385
DoubleVector actual_joint_pose
Definition: robot.hh:378
CartesianPose actual_flange_pose
Definition: robot.hh:388
Definition: robot.hh:350
double pose
Definition: robot.hh:351
double velocity
Definition: robot.hh:352
double acc
Definition: robot.hh:353
运动学正解的返回值数据结构.
Definition: robot.hh:45
bool ok
Definition: robot.hh:50
CartesianPose pose
Definition: robot.hh:47
运动学逆解的返回值数据结构
Definition: robot.hh:56
bool ok
Definition: robot.hh:61
DoubleVector joint_positions
Definition: robot.hh:58
Definition: robot.hh:254
std::string voice
Definition: robot.hh:258
std::vector< std::string > colors
Definition: robot.hh:257
std::string volume
Definition: robot.hh:259
std::string speed
Definition: robot.hh:256
std::string mode
Definition: robot.hh:255
Definition: robot.hh:198
std::string time
Definition: robot.hh:202
std::string kind
Definition: robot.hh:200
std::string level
Definition: robot.hh:199
std::string detail
Definition: robot.hh:201
Definition: robot.hh:322
std::string kind
Definition: robot.hh:323
unsigned int slave_id
Definition: robot.hh:326
std::string address
Definition: robot.hh:324
unsigned int port
Definition: robot.hh:325
Definition: robot.hh:329
unsigned int address
Definition: robot.hh:331
std::string kind
Definition: robot.hh:330
Definition: robot.hh:205
uint32_t progress
Definition: robot.hh:207
std::string step
Definition: robot.hh:206
机械臂物理数据结构.
Definition: robot.hh:87
DoubleVector joint_temperature
Definition: robot.hh:88
DoubleVector joint_voltage
Definition: robot.hh:89
double flange_voltage
Definition: robot.hh:90
Definition: robot.hh:286
std::string homepage
Definition: robot.hh:289
std::string description
Definition: robot.hh:288
bool auto_restart
Definition: robot.hh:290
bool enable
Definition: robot.hh:294
bool cmd
Definition: robot.hh:293
bool web
Definition: robot.hh:291
std::string name
Definition: robot.hh:287
bool daemon
Definition: robot.hh:292
Definition: robot.hh:297
std::string name
Definition: robot.hh:298
std::string url
Definition: robot.hh:299
Definition: robot.hh:344
std::string kind
Definition: robot.hh:345
CartesianPose cart
Definition: robot.hh:346
std::vector< double > joint
Definition: robot.hh:347
Definition: robot.hh:356
std::vector< JointMoveData > joints
Definition: robot.hh:358
double duration
Definition: robot.hh:357
机器人设备信息.
Definition: robot.hh:117
std::string arm_model
Definition: robot.hh:122
std::string box_model
Definition: robot.hh:120
std::string name
Definition: robot.hh:118
std::string arm_sn
Definition: robot.hh:123
std::string box_sn
Definition: robot.hh:121
std::string mac
Definition: robot.hh:119
Definition: robot.hh:262
double speed_it
Definition: robot.hh:265
double position_kp
Definition: robot.hh:263
double speed_kp
Definition: robot.hh:264
double torque_cmd_filter
Definition: robot.hh:266
Definition: robot.hh:227
std::string dir
Definition: robot.hh:229
std::string name
Definition: robot.hh:230
Definition: robot.hh:162
std::map< std::string, SoftwareItemInfoData > software
Definition: robot.hh:163
std::string branch
Definition: robot.hh:159
std::string version
Definition: robot.hh:158
存储项数据结构.
Definition: robot.hh:78
std::string key
Definition: robot.hh:79
std::string value
Definition: robot.hh:80
Definition: robot.hh:334
std::string name
Definition: robot.hh:336
bool active
Definition: robot.hh:335
unsigned int dof
Definition: robot.hh:338
std::string kind
Definition: robot.hh:337
std::string dyn
Definition: robot.hh:340
std::string servo
Definition: robot.hh:341
std::string dh
Definition: robot.hh:339
控制器系统信息数据结构.
Definition: robot.hh:104
std::string name
Definition: robot.hh:105
uint64_t total_memory
Definition: robot.hh:110
std::string host_name
Definition: robot.hh:108
uint64_t used_memory
Definition: robot.hh:109
std::string os_version
Definition: robot.hh:107
std::string kernel_version
Definition: robot.hh:106
Definition: robot.hh:302
std::string dir
Definition: robot.hh:311
std::vector< std::string > params
Definition: robot.hh:313
std::string name
Definition: robot.hh:312
bool is_simu
Definition: robot.hh:308
unsigned int loop_count
Definition: robot.hh:305
unsigned int loop_to
Definition: robot.hh:306
bool is_parallel
Definition: robot.hh:307
std::string kind
Definition: robot.hh:310
std::string stdout_text
Definition: robot.hh:309
std::string state
Definition: robot.hh:304
Definition: robot.hh:316
bool done
Definition: robot.hh:318
std::string stdout_text
Definition: robot.hh:319
Definition: robot.hh:361
std::vector< PvatPointData > data
Definition: robot.hh:363
std::string kind
Definition: robot.hh:362
std::vector< ButtonIndexData > pressed
Definition: robot.hh:244
ButtonStatusData status
Definition: robot.hh:246
ButtonIndexData button
Definition: robot.hh:245
Definition: robot.hh:249
TriggerConditionData condition
Definition: robot.hh:250
Definition: robot.hh:281
DoubleVector force
Definition: robot.hh:282
DoubleVector torque
Definition: robot.hh:283