lebai sdk  2.0.3
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  int64_t timestamp_seconds = 0;
183  int32_t timestamp_nanos = 0;
184  BackupOptionsData option;
185 };
186 
188  std::string method;
189  std::string url;
190  std::map<std::string, std::string> headers;
191  std::string body;
192 };
193 
195  unsigned int status = 0;
196  std::map<std::string, std::string> headers;
197  std::string body;
198 };
199 
200 struct MessageData {
201  std::string level;
202  std::string kind;
203  std::string detail;
204  std::string time;
205 };
206 
207 struct OtaStateData {
208  std::string address;
209  std::string partition;
210  std::string step;
211  uint32_t progress = 0;
212 };
213 
215  bool need_upgrade = false;
216  std::string introduction;
217 };
218 
220  bool done = false;
221  std::string stdout_text;
222  std::string stderr_text;
223  int code = 0;
224 };
225 
226 struct DirData {
227  std::string name;
228  uint32_t id = 0;
229 };
230 
231 struct ShortcutData {
232  uint32_t id = 0;
233  std::string dir;
234  std::string name;
235 };
236 
238  std::string device;
239  uint32_t pin = 0;
240 };
241 
243  std::string state;
244  uint32_t time = 0;
245 };
246 
248  std::vector<ButtonIndexData> pressed;
251 };
252 
253 struct TriggerData {
255  std::string function;
256 };
257 
258 struct LedStyleData {
259  std::string mode;
260  std::string speed;
261  std::vector<std::string> colors;
262  std::string voice;
263  std::string volume;
264 };
265 
267  double position_kp = 0.0;
268  double speed_kp = 0.0;
269  double speed_it = 0.0;
270  double torque_cmd_filter = 0.0;
271 };
272 
274  double acc_position_kp = 0.0;
275  double acc_speed_kp = 0.0;
276  double acc_speed_it = 0.0;
277  double uni_position_kp = 0.0;
278  double uni_speed_kp = 0.0;
279  double uni_speed_it = 0.0;
280  double dec_position_kp = 0.0;
281  double dec_speed_kp = 0.0;
282  double dec_speed_it = 0.0;
283 };
284 
285 struct WrenchData {
286  DoubleVector force;
287  DoubleVector torque;
288 };
289 
291  std::string name;
292  std::vector<std::string> boxs;
293  std::vector<std::string> arms;
294  std::string description;
295  std::string homepage;
296  bool auto_restart = false;
297  bool web = false;
298  bool daemon = false;
299  bool cmd = false;
300  bool enable = false;
301 };
302 
304  std::string name;
305  std::string url;
306 };
307 
308 struct TaskData {
309  unsigned int id = 0;
310  std::string state;
311  unsigned int loop_count = 0;
312  unsigned int loop_to = 0;
313  bool is_parallel = false;
314  bool is_simu = false;
315  std::string stdout_text;
316  std::string kind;
317  std::string dir;
318  std::string name;
319  std::vector<std::string> params;
320 };
321 
323  unsigned int id = 0;
324  bool done = false;
325  std::string stdout_text;
326 };
327 
328 struct ModbusData {
329  std::string kind;
330  std::string address;
331  unsigned int port = 0;
332  unsigned int slave_id = 0;
333 };
334 
336  std::string kind;
337  unsigned int address = 0;
338 };
339 
341  bool active = false;
342  std::string name;
343  std::string kind;
344  unsigned int dof = 0;
345  std::string dh;
346  std::string dyn;
347  std::string servo;
348 };
349 
350 struct PoseData {
351  std::string kind;
352  CartesianPose cart;
353  std::vector<double> joint;
354 };
355 
357  double pose = 0.0;
358  double velocity = 0.0;
359  double acc = 0.0;
360 };
361 
363  double duration = 0.0;
364  std::vector<JointMoveData> joints;
365 };
366 
368  std::string kind;
369  std::vector<PvatPointData> data;
370 };
371 
372 struct FrameData {
373  std::string position_kind;
374  CartesianPose position;
375  std::string rotation_kind;
376  CartesianPose rotation;
377 };
378 
384  DoubleVector actual_joint_pose;
385  DoubleVector actual_joint_speed;
386  DoubleVector actual_joint_acc;
387  DoubleVector actual_joint_torque;
388  DoubleVector target_joint_pose;
389  DoubleVector target_joint_speed;
390  DoubleVector target_joint_acc;
391  DoubleVector target_joint_torque;
392  CartesianPose actual_tcp_pose;
393  CartesianPose target_tcp_pose;
394  CartesianPose actual_flange_pose;
395 };
396 
402  unsigned int action = 99;
403  unsigned int pause_time = 0;
404  unsigned int sensitivity = 0;
405 };
406 
412  double min_position = 0.0;
413  double max_position = 0.0;
414  double max_a = 0.0;
415  double max_v = 0.0;
416 };
417 
423  double max_a = 0.0;
424  double max_v = 0.0;
425  double eq_radius = 0.0;
426 };
427 
436 class Robot {
437  public:
443  class RobotImpl;
444 
455  explicit Robot(std::string ip, bool simulator = false);
460  virtual ~Robot();
461 
462  // clang-format off
480  // clang-format on
481  std::tuple<int, std::string> call(const std::string &method,
482  const std::string &params);
483 
487  std::string hello(const std::string &data);
488 
492  void set_auto(int name, bool value);
493 
497  bool get_auto(int name);
498 
506 
571  void start_sys();
577  void stop_sys();
582  void powerdown();
587  void stop();
592  void estop();
598  void teach_mode();
608  void pause_move();
609  void pause();
614  void resume_move();
615  void resume();
619  void reboot();
647  int move_joint(const std::vector<double> &joint_positions, double a, double v,
648  double t, double r);
649  int movej(const std::vector<double> &joint_positions, double a, double v,
650  double t, double r);
673  int move_joint(const CartesianPose &cart_pose, double a, double v, double t,
674  double r);
675  int movej(const CartesianPose &cart_pose, double a, double v, double t,
676  double r);
697  int move_linear(const std::vector<double> &joint_positions, double a,
698  double v, double t, double r);
699  int movel(const std::vector<double> &joint_positions, double a, double v,
700  double t, double r);
723  int move_linear(const CartesianPose &cart_pose, double a, double v, double t,
724  double r);
725  int movel(const CartesianPose &cart_pose, double a, double v, double t,
726  double r);
751  int move_circular(const std::vector<double> &joint_via,
752  const std::vector<double> &joint, double rad, double a,
753  double v, double t, double r);
754  int movec(const std::vector<double> &joint_via,
755  const std::vector<double> &joint, double rad, double a, double v,
756  double t, double r);
774  int move_circular(const CartesianPose &cart_via, const CartesianPose &cart,
775  double rad, double a, double v, double t, double r);
776  int movec(const CartesianPose &cart_via, const CartesianPose &cart,
777  double rad, double a, double v, double t, double r);
790  int speed_joint(double a, const std::vector<double> &v, double t = 0.0);
791  int speedj(double a, const std::vector<double> &v, double t = 0.0);
807  int speed_linear(double a, const CartesianPose &v, double t = 0.0,
808  const CartesianPose &reference = {{"x", 0.0},
809  {"y", 0.0},
810  {"z", 0.0},
811  {"rx", 0.0},
812  {"ry", 0.0},
813  {"rz", 0.0}});
814  int speedl(double a, const CartesianPose &v, double t = 0.0,
815  const CartesianPose &reference = {{"x", 0.0},
816  {"y", 0.0},
817  {"z", 0.0},
818  {"rx", 0.0},
819  {"ry", 0.0},
820  {"rz", 0.0}});
842  int toward_joint(const std::vector<double> &joint_positions, double a,
843  double v, double t, double r);
844  int towardj(const std::vector<double> &joint_positions, double a, double v,
845  double t, double r);
854  void move_pvat(std::vector<double> p, std::vector<double> v,
855  std::vector<double> a, double t);
861  void wait_move(unsigned int id);
866  void wait_move();
870  unsigned int get_running_motion();
876  std::string get_motion_state(unsigned int id);
880  void stop_move();
884  void skip_move();
953  void clean(const BackupOptionsData &option);
954  void backup(const std::string &file, const BackupOptionsData &option);
955  BackupInfoData get_backup_info(const std::string &file);
956  void restore(const std::string &file, const BackupOptionsData &option);
957  void set_virtual_ip(const std::string &ifname, const std::string &ip);
964  std::vector<std::string> get_box_devices(const std::string &prefix);
970  std::vector<DirData> get_dirs();
976  void create_dir(DirData dir);
983  void update_dir(std::string from, std::string to);
989  std::vector<ShortcutData> get_short_poses();
993  void set_short_pose(ShortcutData shortcut_data);
997  ShortcutData get_short_pose(unsigned int id);
1003  std::vector<ShortcutData> get_short_tasks();
1007  void set_short_task(ShortcutData shortcut_data);
1011  ShortcutData get_short_task(unsigned int id);
1017  std::vector<TriggerData> get_triggers();
1021  void set_trigger(TriggerData trigger);
1027  std::map<std::string, LedStyleData> get_led_styles();
1033  void set_led_styles(std::map<std::string, LedStyleData> styles);
1040  LedStyleData load_led_style(std::string name, std::string dir = "");
1048  void save_led_style(std::string name, LedStyleData style,
1049  std::string dir = "");
1056  void set_led_style(std::string state, LedStyleData style);
1062  std::vector<std::string> load_led_style_list(std::string dir = "");
1068  std::vector<ServoParamData> get_servo_params();
1069  void set_servo_params(const std::vector<ServoParamData> &params);
1070  void find_zero();
1071  void set_zero(const std::vector<double> &pose,
1072  const std::vector<bool> &valids);
1073  void set_extra_servo_params(const std::vector<ExtraServoParamData> &params,
1074  const std::vector<bool> &valids);
1075  void reset_extra_servo_params(const std::vector<bool> &valids);
1076  void set_flange_baud_rate(unsigned int baud_rate);
1088  void set_tcp_force(const WrenchData &wrench);
1095  void set_force_mode_sensor(const std::string &sensor, unsigned int address);
1104  void set_force_mode_param(double damping, double mass,
1105  double force_threshold, double torque_threshold);
1112  void start_force_mode(const CartesianPose &limit, const WrenchData &wrench);
1122  std::vector<PluginInfoData> load_plugins();
1128  std::vector<PluginStoreInfoData> get_plugin_store();
1134  PluginInfoData load_plugin(const std::string &name);
1142  const std::string &name,
1143  const std::vector<std::string> &params = std::vector<std::string>());
1149  CommandStdoutData enable_plugin(const std::string &name);
1155  CommandStdoutData disable_plugin(const std::string &name);
1161  void restart_plugin_daemon(const std::string &name);
1167  std::vector<DiscoveredRobotData> discover_robots();
1179  std::vector<MessageData> get_messages();
1198  void sub_buttons_status(uint64_t interval_min, uint64_t interval_max);
1199  void sub_kin_data(uint64_t interval_min, uint64_t interval_max);
1200  void sub_message(uint64_t interval_min, uint64_t interval_max);
1201  void sub_robot_state(uint64_t interval_min, uint64_t interval_max);
1202  void sub_phy_data(uint64_t interval_min, uint64_t interval_max);
1203  void sub_task_stdout(uint64_t interval_min, uint64_t interval_max);
1204  void start_ota(const std::string &address, const std::string &partition,
1205  const std::string &file);
1206  void switch_partition(const std::string &address,
1207  const std::string &partition);
1208  void start_upgrade();
1209  int box_test();
1210  int box_test(const std::string &time, const std::string &auth);
1211  std::string init_robot(const std::string &time, const std::string &auth,
1212  const RobotInfoData &info);
1225 
1237  bool is_down();
1243  std::vector<double> get_actual_joint_positions();
1249  std::vector<double> get_target_joint_positions();
1255  std::vector<double> get_actual_joint_speed();
1256  // get_target_joint_speed
1262  std::vector<double> get_target_joint_speed();
1269  CartesianPose get_actual_tcp_pose();
1276  CartesianPose get_target_tcp_pose();
1277 
1284  double get_joint_temp(unsigned int joint_index);
1285 
1291  std::vector<double> get_actual_joint_torques();
1297  std::vector<double> get_target_joint_torques();
1298 
1321  void set_do(std::string device, unsigned int pin, unsigned int value);
1325  void set_dos(std::string device, unsigned int pin,
1326  std::vector<unsigned int> values);
1334  unsigned int get_do(std::string device, unsigned int pin);
1343  std::vector<unsigned int> get_dos(std::string device, unsigned int pin,
1344  unsigned int num);
1352  unsigned int get_di(std::string device, unsigned int pin);
1361  std::vector<unsigned int> get_dis(std::string device, unsigned int pin,
1362  unsigned int num);
1363 
1371  void set_ao(std::string device, unsigned int pin, double value);
1375  void set_aos(std::string device, unsigned int pin, std::vector<double> values);
1383  double get_ao(std::string device, unsigned int pin);
1392  std::vector<double> get_aos(std::string device, unsigned int pin,
1393  unsigned int num);
1401  double get_ai(std::string device, unsigned int pin);
1410  std::vector<double> get_ais(std::string device, unsigned int pin,
1411  unsigned int num);
1420  void set_dio_mode(std::string device, unsigned int pin, bool value);
1427  bool get_dio_mode(std::string device, unsigned int pin);
1436  std::vector<bool> get_dios_mode(std::string device, unsigned int pin,
1437  unsigned int count);
1444  void enable_button(std::string device, unsigned int pin);
1451  void disable_button(std::string device, unsigned int pin);
1462  void init_claw(bool force_initilization);
1470  void set_claw(double force, double amplitude);
1477  void set_claw_ao(unsigned int address, double value);
1478 
1485  ClawData get_claw_data();
1491  double get_claw_ai(unsigned int address);
1499  void wait_claw_ai(unsigned int address, double value,
1500  std::string relation = "EQ");
1515  void set_led(unsigned int mode, unsigned int speed,
1516  const std::vector<unsigned int> &color);
1523  void set_voice(unsigned int voice, unsigned int volume);
1529  void set_fan(unsigned int status);
1542  void set_signal(unsigned int index, int value);
1546  void set_signals(unsigned int index, std::vector<int> values);
1553  int get_signal(unsigned int index);
1557  std::vector<int> get_signals(unsigned int index, unsigned int len);
1565  void wait_signal(unsigned int index, int value, std::string relation = "EQ");
1572  void add_signal(unsigned int index, int value);
1590  unsigned int start_task(const std::string &name,
1591  const std::vector<std::string> &params,
1592  const std::string &dir, bool is_parallel,
1593  unsigned int loop_to);
1599  unsigned int start_task(const std::string &name);
1603  std::vector<unsigned int> load_task_list();
1604  std::vector<unsigned int> get_task_list();
1608  std::vector<TaskData> load_running_tasks();
1621  std::string wait_task(unsigned int id);
1629  void pause_task(unsigned int id, unsigned long time, bool wait);
1634  void pause_task(unsigned int id);
1640  void resume_task(unsigned int id);
1646  void cancel_task(unsigned int id);
1652  unsigned int exec_hook(unsigned int id);
1656  std::string load_task();
1657  std::string get_task_state();
1663  std::string load_task(unsigned int id);
1664  std::string get_task_state(unsigned int id);
1677  const std::vector<double> &joint_positions);
1678  KinematicsForwardResp kinematics_forward(
1679  const std::vector<double> &joint_positions);
1680 
1688  const CartesianPose &pose,
1689  const std::vector<double> &joint_init_positions = {});
1690  KinematicsInverseResp kinematics_inverse(
1691  const CartesianPose &pose,
1692  const std::vector<double> &joint_init_positions = {});
1699  double measure_manipulation(const std::vector<double> &joint_positions);
1700 
1708  CartesianPose get_pose_trans(const CartesianPose &a, const CartesianPose &b);
1709  CartesianPose pose_times(const CartesianPose &a, const CartesianPose &b);
1716  CartesianPose get_pose_add(const CartesianPose &pose,
1717  const CartesianPose &delta);
1725  CartesianPose calc_frame(const CartesianPose &o, const CartesianPose &x,
1726  const CartesianPose &xy);
1732  CartesianPose calc_tcp(const std::vector<CartesianPose> &poses);
1733 
1740  CartesianPose get_pose_inverse(const CartesianPose &in);
1741  CartesianPose pose_inverse(const CartesianPose &in);
1755  void save_file(const std::string &dir, const std::string &name, bool is_dir,
1756  const std::string &data);
1765  void rename_file(const std::string &from_dir, const std::string &from_name,
1766  const std::string &to_dir, const std::string &to_name);
1767 
1775  void download_file(const std::string &dir, const std::string &name,
1776  const std::string &url);
1777 
1786  std::tuple<bool, std::string> load_file(const std::string &dir,
1787  const std::string &name);
1788 
1798  std::vector<std::tuple<bool, std::string>> load_file_list(
1799  const std::string &dir, const std::string &prefix,
1800  const std::string &suffix);
1809  void zip(const std::string &from_dir, std::vector<std::string> files,
1810  const std::string &to_dir, const std::string &name);
1819  void unzip(const std::string &from_dir, const std::string &name,
1820  std::vector<std::string> files, const std::string &to_dir);
1824  std::vector<std::tuple<bool, std::string>> load_zip_list(
1825  const std::string &zip, const std::string &dir,
1826  const std::string &prefix, const std::string &suffix);
1827 
1838  void set_tcp(std::array<double, 6> tcp);
1844  std::array<double, 6> get_tcp();
1850  std::vector<DhParamData> get_dh();
1851  void set_dh(const std::vector<DhParamData> &params);
1857  void set_kin_factor(int factor);
1858  void set_velocity_factor(int factor);
1865  int get_velocity_factor();
1872  void set_payload(double mass, std::map<std::string, double> cog);
1878  void set_payload_mass(double mass);
1884  void set_payload_cog(std::map<std::string, double> cog);
1892  void save_payload(std::string name, std::map<std::string, double> payload,
1893  std::string dir = "");
1899  std::map<std::string, double> get_payload();
1906  std::map<std::string, double> load_payload(std::string name,
1907  std::string dir = "");
1913  std::vector<std::string> load_payload_list(std::string dir = "");
1919  void set_gravity(std::map<std::string, double> gravity);
1925  std::map<std::string, double> get_gravity();
1941  void set_collision_torque_diff(const std::vector<double> &diffs);
1947  std::vector<double> get_collision_torque_diff();
1975  void set_joints_limit(const std::vector<JointLimitConfig> &joints);
1981  std::vector<JointLimitConfig> get_joints_limit();
2000  CartesianPose load_tcp(std::string name, std::string dir = "");
2008  void save_tcp(std::string name, CartesianPose tcp, std::string dir = "");
2014  std::vector<std::string> load_tcp_list(std::string dir = "");
2020  std::vector<std::string> load_trajectory_list(std::string dir = "");
2027  TrajectoryData load_trajectory(std::string name, std::string dir = "");
2035  void save_trajectory(std::string name, TrajectoryData trajectory,
2036  std::string dir = "");
2037  unsigned int move_trajectory(std::string name, std::string dir = "");
2044  void start_record_trajectory(std::string kind, double duration);
2051  void end_record_trajectory(std::string name, std::string dir = "");
2057  std::vector<std::string> load_pose_list(std::string dir = "");
2064  PoseData load_pose(std::string name, std::string dir = "");
2072  void save_pose(std::string name, PoseData pose, std::string dir = "");
2078  std::vector<std::string> load_frame_list(std::string dir = "");
2085  FrameData load_frame(std::string name, std::string dir = "");
2093  void save_frame(std::string name, FrameData frame, std::string dir = "");
2099  std::vector<std::string> load_structure_list(std::string dir = "");
2106  StructureData load_structure(std::string name, std::string dir = "");
2114  void save_structure(std::string name, StructureData structure,
2115  std::string dir = "");
2127  std::vector<std::string> load_modbus_list(std::string dir = "");
2134  ModbusData load_modbus(std::string name, std::string dir = "");
2141  void save_modbus(std::string name, ModbusData modbus);
2148  void set_modbus_timeout(std::string device, unsigned int timeout);
2155  void set_modbus_retry(std::string device, unsigned int retry);
2161  void disconnect_modbus(std::string device);
2167  std::vector<std::string> load_modbus_register_list(std::string device);
2175  std::string name);
2183  void save_modbus_register(std::string device, std::string name,
2184  ModbusRegisterData reg);
2185 
2193  void write_single_coil(std::string device, std::string addr, bool value);
2194 
2202  void write_multiple_coils(std::string device, std::string addr,
2203  std::vector<bool> values);
2204  void wirte_multiple_coils(std::string device, std::string addr,
2205  std::vector<bool> values);
2206 
2214  std::vector<bool> read_coils(std::string device, std::string addr,
2215  unsigned int num);
2223  std::vector<bool> read_discrete_inputs(std::string device, std::string addr,
2224  unsigned int num);
2225 
2233  void write_single_register(std::string device, std::string addr,
2234  unsigned int value);
2242  void write_multiple_registers(std::string device, std::string addr,
2243  std::vector<unsigned int> values);
2244 
2252  std::vector<unsigned int> read_holding_registers(std::string device,
2253  std::string addr,
2254  unsigned int num);
2262  std::vector<unsigned int> read_input_registers(std::string device,
2263  std::string addr,
2264  unsigned int num);
2277  void set_serial_baud_rate(std::string device, unsigned int baud_rate);
2284  void set_serial_timeout(std::string device, unsigned int timeout);
2292  void set_serial_parity(std::string device, unsigned int parity);
2299  void write_serial(std::string device, std::vector<unsigned int> data);
2306  std::vector<unsigned int> read_serial(std::string device, unsigned int len);
2312  void clear_serial(std::string device);
2323  void set_item(StorageItem item);
2330  StorageItem get_item(std::string name);
2337  std::vector<StorageItem> get_items(std::string prefix);
2340  protected:
2341  std::unique_ptr<RobotImpl> impl_;
2342 };
2343 
2344 } // namespace l_master
2345 
2346 } // namespace lebai
机械臂的主要接口对象,通过本对象的方法与机械臂进行数据交互.
Definition: robot.hh:436
std::unique_ptr< RobotImpl > impl_
Definition: robot.hh:2341
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()
获取所有快捷路点
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 set_force_mode_param(double damping, double mass, double force_threshold, double torque_threshold)
设置力控参数.
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:237
std::string device
Definition: robot.hh:238
uint32_t pin
Definition: robot.hh:239
Definition: robot.hh:242
uint32_t time
Definition: robot.hh:244
std::string state
Definition: robot.hh:243
笛卡尔空间限位配置.
Definition: robot.hh:422
double max_v
Definition: robot.hh:424
double eq_radius
Definition: robot.hh:425
double max_a
Definition: robot.hh:423
Definition: robot.hh:214
bool need_upgrade
Definition: robot.hh:215
std::string introduction
Definition: robot.hh:216
夹爪数据结构.
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:401
unsigned int pause_time
Definition: robot.hh:403
unsigned int action
Definition: robot.hh:402
unsigned int sensitivity
Definition: robot.hh:404
Definition: robot.hh:219
bool done
Definition: robot.hh:220
std::string stderr_text
Definition: robot.hh:222
int code
Definition: robot.hh:223
std::string stdout_text
Definition: robot.hh:221
控制器硬件设备信息.
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:226
std::string name
Definition: robot.hh:227
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:273
Definition: robot.hh:372
std::string rotation_kind
Definition: robot.hh:375
std::string position_kind
Definition: robot.hh:373
CartesianPose rotation
Definition: robot.hh:376
CartesianPose position
Definition: robot.hh:374
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:187
std::string url
Definition: robot.hh:189
std::string body
Definition: robot.hh:191
std::map< std::string, std::string > headers
Definition: robot.hh:190
std::string method
Definition: robot.hh:188
Definition: robot.hh:194
std::string body
Definition: robot.hh:197
unsigned int status
Definition: robot.hh:195
std::map< std::string, std::string > headers
Definition: robot.hh:196
关节限位配置.
Definition: robot.hh:411
double min_position
Definition: robot.hh:412
double max_position
Definition: robot.hh:413
double max_v
Definition: robot.hh:415
double max_a
Definition: robot.hh:414
机械臂关节运动数据结构.
Definition: robot.hh:383
CartesianPose actual_tcp_pose
Definition: robot.hh:392
DoubleVector target_joint_speed
Definition: robot.hh:389
DoubleVector target_joint_pose
Definition: robot.hh:388
DoubleVector actual_joint_speed
Definition: robot.hh:385
DoubleVector actual_joint_acc
Definition: robot.hh:386
CartesianPose target_tcp_pose
Definition: robot.hh:393
DoubleVector actual_joint_torque
Definition: robot.hh:387
DoubleVector target_joint_acc
Definition: robot.hh:390
DoubleVector target_joint_torque
Definition: robot.hh:391
DoubleVector actual_joint_pose
Definition: robot.hh:384
CartesianPose actual_flange_pose
Definition: robot.hh:394
Definition: robot.hh:356
double pose
Definition: robot.hh:357
double velocity
Definition: robot.hh:358
double acc
Definition: robot.hh:359
运动学正解的返回值数据结构.
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:258
std::string voice
Definition: robot.hh:262
std::vector< std::string > colors
Definition: robot.hh:261
std::string volume
Definition: robot.hh:263
std::string speed
Definition: robot.hh:260
std::string mode
Definition: robot.hh:259
Definition: robot.hh:200
std::string time
Definition: robot.hh:204
std::string kind
Definition: robot.hh:202
std::string level
Definition: robot.hh:201
std::string detail
Definition: robot.hh:203
Definition: robot.hh:328
std::string kind
Definition: robot.hh:329
unsigned int slave_id
Definition: robot.hh:332
std::string address
Definition: robot.hh:330
unsigned int port
Definition: robot.hh:331
Definition: robot.hh:335
unsigned int address
Definition: robot.hh:337
std::string kind
Definition: robot.hh:336
Definition: robot.hh:207
std::string partition
Definition: robot.hh:209
std::string address
Definition: robot.hh:208
uint32_t progress
Definition: robot.hh:211
std::string step
Definition: robot.hh:210
机械臂物理数据结构.
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:290
std::string homepage
Definition: robot.hh:295
std::string description
Definition: robot.hh:294
bool auto_restart
Definition: robot.hh:296
bool enable
Definition: robot.hh:300
bool cmd
Definition: robot.hh:299
bool web
Definition: robot.hh:297
std::vector< std::string > arms
Definition: robot.hh:293
std::string name
Definition: robot.hh:291
std::vector< std::string > boxs
Definition: robot.hh:292
bool daemon
Definition: robot.hh:298
Definition: robot.hh:303
std::string name
Definition: robot.hh:304
std::string url
Definition: robot.hh:305
Definition: robot.hh:350
std::string kind
Definition: robot.hh:351
CartesianPose cart
Definition: robot.hh:352
std::vector< double > joint
Definition: robot.hh:353
Definition: robot.hh:362
std::vector< JointMoveData > joints
Definition: robot.hh:364
double duration
Definition: robot.hh:363
机器人设备信息.
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:266
double speed_it
Definition: robot.hh:269
double position_kp
Definition: robot.hh:267
double speed_kp
Definition: robot.hh:268
double torque_cmd_filter
Definition: robot.hh:270
Definition: robot.hh:231
std::string dir
Definition: robot.hh:233
std::string name
Definition: robot.hh:234
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:340
std::string name
Definition: robot.hh:342
bool active
Definition: robot.hh:341
unsigned int dof
Definition: robot.hh:344
std::string kind
Definition: robot.hh:343
std::string dyn
Definition: robot.hh:346
std::string servo
Definition: robot.hh:347
std::string dh
Definition: robot.hh:345
控制器系统信息数据结构.
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:308
std::string dir
Definition: robot.hh:317
std::vector< std::string > params
Definition: robot.hh:319
std::string name
Definition: robot.hh:318
bool is_simu
Definition: robot.hh:314
unsigned int loop_count
Definition: robot.hh:311
unsigned int loop_to
Definition: robot.hh:312
bool is_parallel
Definition: robot.hh:313
std::string kind
Definition: robot.hh:316
std::string stdout_text
Definition: robot.hh:315
std::string state
Definition: robot.hh:310
Definition: robot.hh:322
bool done
Definition: robot.hh:324
std::string stdout_text
Definition: robot.hh:325
Definition: robot.hh:367
std::vector< PvatPointData > data
Definition: robot.hh:369
std::string kind
Definition: robot.hh:368
std::vector< ButtonIndexData > pressed
Definition: robot.hh:248
ButtonStatusData status
Definition: robot.hh:250
ButtonIndexData button
Definition: robot.hh:249
Definition: robot.hh:253
TriggerConditionData condition
Definition: robot.hh:254
Definition: robot.hh:285
DoubleVector force
Definition: robot.hh:286
DoubleVector torque
Definition: robot.hh:287