From 6d1b03c4116cf5e43b5cc1f580af9c6b4f719a90 Mon Sep 17 00:00:00 2001 From: AndreasKuhner Date: Fri, 6 Sep 2024 08:59:58 +0000 Subject: [PATCH] deploy: b6ca2e54cc0046812bd1ef7e142b236cc21197c5 --- ..._dark.png => Logo_FRANKA_ROBOTICS_dark.png | Bin annotated.html | 115 -- cartesian_impedance_control_8cpp-example.html | 84 - classMotionGenerator-members.html | 87 - classMotionGenerator.html | 185 -- classes.html | 113 -- classfranka_1_1CartesianPose-members.html | 97 - classfranka_1_1CartesianPose.html | 373 ---- classfranka_1_1CartesianPose__coll__graph.map | 3 - classfranka_1_1CartesianPose__coll__graph.md5 | 1 - classfranka_1_1CartesianPose__coll__graph.png | Bin 3497 -> 0 bytes ...ranka_1_1CartesianPose__inherit__graph.map | 3 - ...ranka_1_1CartesianPose__inherit__graph.md5 | 1 - ...ranka_1_1CartesianPose__inherit__graph.png | Bin 3497 -> 0 bytes ...franka_1_1CartesianVelocities-members.html | 97 - classfranka_1_1CartesianVelocities.html | 372 ---- ...ka_1_1CartesianVelocities__coll__graph.map | 3 - ...ka_1_1CartesianVelocities__coll__graph.md5 | 1 - ...ka_1_1CartesianVelocities__coll__graph.png | Bin 3804 -> 0 bytes ...1_1CartesianVelocities__inherit__graph.map | 3 - ...1_1CartesianVelocities__inherit__graph.md5 | 1 - ...1_1CartesianVelocities__inherit__graph.png | Bin 3804 -> 0 bytes classfranka_1_1Duration-members.html | 116 -- classfranka_1_1Duration.html | 1039 ----------- classfranka_1_1Gripper-members.html | 100 -- classfranka_1_1Gripper.html | 483 ----- classfranka_1_1JointPositions-members.html | 93 - classfranka_1_1JointPositions.html | 206 --- ...sfranka_1_1JointPositions__coll__graph.map | 3 - ...sfranka_1_1JointPositions__coll__graph.md5 | 1 - ...sfranka_1_1JointPositions__coll__graph.png | Bin 3602 -> 0 bytes ...anka_1_1JointPositions__inherit__graph.map | 3 - ...anka_1_1JointPositions__inherit__graph.md5 | 1 - ...anka_1_1JointPositions__inherit__graph.png | Bin 3602 -> 0 bytes classfranka_1_1JointVelocities-members.html | 93 - classfranka_1_1JointVelocities.html | 206 --- ...franka_1_1JointVelocities__coll__graph.map | 3 - ...franka_1_1JointVelocities__coll__graph.md5 | 1 - ...franka_1_1JointVelocities__coll__graph.png | Bin 3956 -> 0 bytes ...nka_1_1JointVelocities__inherit__graph.map | 3 - ...nka_1_1JointVelocities__inherit__graph.md5 | 1 - ...nka_1_1JointVelocities__inherit__graph.png | Bin 3956 -> 0 bytes classfranka_1_1Model-members.html | 105 -- classfranka_1_1Model.html | 853 --------- classfranka_1_1Robot-members.html | 119 -- classfranka_1_1Robot.html | 1596 ----------------- classfranka_1_1Torques-members.html | 93 - classfranka_1_1Torques.html | 206 --- classfranka_1_1Torques__coll__graph.map | 3 - classfranka_1_1Torques__coll__graph.md5 | 1 - classfranka_1_1Torques__coll__graph.png | Bin 3258 -> 0 bytes classfranka_1_1Torques__inherit__graph.map | 3 - classfranka_1_1Torques__inherit__graph.md5 | 1 - classfranka_1_1Torques__inherit__graph.png | Bin 3258 -> 0 bytes classfranka_1_1VacuumGripper-members.html | 100 -- classfranka_1_1VacuumGripper.html | 432 ----- command__types_8h.html | 119 -- command__types_8h__dep__incl.map | 5 - command__types_8h__dep__incl.md5 | 1 - command__types_8h__dep__incl.png | Bin 9452 -> 0 bytes command__types_8h__incl.map | 2 - command__types_8h__incl.md5 | 1 - command__types_8h__incl.png | Bin 6214 -> 0 bytes command__types_8h_source.html | 92 - communication_test_8cpp-example.html | 83 - control__tools_8h.html | 238 --- control__tools_8h__incl.map | 2 - control__tools_8h__incl.md5 | 1 - control__tools_8h__incl.png | Bin 6995 -> 0 bytes control__tools_8h_source.html | 91 - control__types_8h.html | 378 ---- control__types_8h__dep__incl.map | 7 - control__types_8h__dep__incl.md5 | 1 - control__types_8h__dep__incl.png | Bin 17125 -> 0 bytes control__types_8h__incl.map | 2 - control__types_8h__incl.md5 | 1 - control__types_8h__incl.png | Bin 7703 -> 0 bytes control__types_8h_source.html | 97 - deprecated.html | 86 - dir_000000_000001.html | 82 - dir_5f30c89189ebb3336d6b33aa932838ba.html | 138 -- dir_d28a4824dc47e487b107a5db32ef43c4.html | 103 -- dir_d28a4824dc47e487b107a5db32ef43c4_dep.map | 5 - dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 | 1 - dir_d28a4824dc47e487b107a5db32ef43c4_dep.png | Bin 3139 -> 0 bytes dir_d44c64559bbebec7f509842c48db8b23.html | 90 - doxygen.css | 441 +++-- doxygen.png | Bin 3779 -> 0 bytes doxygen.svg | 26 + duration_8h.html | 181 -- duration_8h__dep__incl.map | 12 - duration_8h__dep__incl.md5 | 1 - duration_8h__dep__incl.png | Bin 37776 -> 0 bytes duration_8h__incl.map | 2 - duration_8h__incl.md5 | 1 - duration_8h__incl.png | Bin 6002 -> 0 bytes duration_8h_source.html | 108 -- dynsections.js | 28 +- echo_robot_state_8cpp-example.html | 83 - errors_8h.html | 168 -- errors_8h__dep__incl.map | 8 - errors_8h__dep__incl.md5 | 1 - errors_8h__dep__incl.png | Bin 21864 -> 0 bytes errors_8h__incl.map | 2 - errors_8h__incl.md5 | 1 - errors_8h__incl.png | Bin 5044 -> 0 bytes errors_8h_source.html | 128 -- examples.html | 116 -- examples__common_8h.html | 157 -- examples__common_8h__incl.map | 9 - examples__common_8h__incl.md5 | 1 - examples__common_8h__incl.png | Bin 79896 -> 0 bytes examples__common_8h_source.html | 98 - exception_8h.html | 141 -- exception_8h__incl.map | 7 - exception_8h__incl.md5 | 1 - exception_8h__incl.png | Bin 38154 -> 0 bytes exception_8h_source.html | 100 -- files.html | 106 -- force_control_8cpp-example.html | 83 - functions.html | 91 - functions_0x7e.html | 94 - functions_b.html | 85 - functions_c.html | 172 -- functions_d.html | 113 -- functions_e.html | 99 - functions_enum.html | 83 - functions_f.html | 103 -- functions_func.html | 373 ---- functions_g.html | 94 - functions_h.html | 89 - functions_i.html | 106 -- functions_j.html | 130 -- functions_k.html | 85 - functions_l.html | 94 - functions_m.html | 115 -- functions_n.html | 85 - functions_o.html | 178 -- functions_p.html | 100 -- functions_q.html | 89 - functions_r.html | 96 - functions_s.html | 139 -- functions_t.html | 118 -- functions_type.html | 85 - functions_v.html | 89 - functions_vars.html | 489 ----- functions_w.html | 85 - functions_z.html | 85 - ...te_cartesian_pose_motion_8cpp-example.html | 83 - ...artesian_velocity_motion_8cpp-example.html | 83 - ...rate_consecutive_motions_8cpp-example.html | 83 - generate_elbow_motion_8cpp-example.html | 83 - ...te_joint_position_motion_8cpp-example.html | 83 - ...te_joint_velocity_motion_8cpp-example.html | 83 - globals.html | 83 - globals_func.html | 83 - graph_legend.html | 65 +- graph_legend.md5 | 2 +- graph_legend.png | Bin 19906 -> 20615 bytes grasp_object_8cpp-example.html | 83 - gripper_8h.html | 115 -- gripper_8h__incl.map | 4 - gripper_8h__incl.md5 | 1 - gripper_8h__incl.png | Bin 23417 -> 0 bytes gripper_8h_source.html | 100 -- gripper__state_8h.html | 167 -- gripper__state_8h__dep__incl.map | 3 - gripper__state_8h__dep__incl.md5 | 1 - gripper__state_8h__dep__incl.png | Bin 5026 -> 0 bytes gripper__state_8h__incl.map | 3 - gripper__state_8h__incl.md5 | 1 - gripper__state_8h__incl.png | Bin 12260 -> 0 bytes gripper__state_8h_source.html | 96 - hierarchy.html | 117 -- index.html | 33 +- inherit_graph_0.map | 3 - inherit_graph_0.md5 | 1 - inherit_graph_0.png | Bin 1459 -> 0 bytes inherit_graph_1.map | 3 - inherit_graph_1.md5 | 1 - inherit_graph_1.png | Bin 1156 -> 0 bytes inherit_graph_10.map | 3 - inherit_graph_10.md5 | 1 - inherit_graph_10.png | Bin 1645 -> 0 bytes inherit_graph_11.map | 3 - inherit_graph_11.md5 | 1 - inherit_graph_11.png | Bin 1967 -> 0 bytes inherit_graph_12.map | 3 - inherit_graph_12.md5 | 1 - inherit_graph_12.png | Bin 2091 -> 0 bytes inherit_graph_13.map | 3 - inherit_graph_13.md5 | 1 - inherit_graph_13.png | Bin 2261 -> 0 bytes inherit_graph_14.map | 3 - inherit_graph_14.md5 | 1 - inherit_graph_14.png | Bin 1362 -> 0 bytes inherit_graph_2.map | 11 - inherit_graph_2.md5 | 1 - inherit_graph_2.png | Bin 33312 -> 0 bytes inherit_graph_3.map | 8 - inherit_graph_3.md5 | 1 - inherit_graph_3.png | Bin 14196 -> 0 bytes inherit_graph_4.map | 3 - inherit_graph_4.md5 | 1 - inherit_graph_4.png | Bin 1415 -> 0 bytes inherit_graph_5.map | 3 - inherit_graph_5.md5 | 1 - inherit_graph_5.png | Bin 1588 -> 0 bytes inherit_graph_6.map | 3 - inherit_graph_6.md5 | 1 - inherit_graph_6.png | Bin 1414 -> 0 bytes inherit_graph_7.map | 3 - inherit_graph_7.md5 | 1 - inherit_graph_7.png | Bin 1609 -> 0 bytes inherit_graph_8.map | 3 - inherit_graph_8.md5 | 1 - inherit_graph_8.png | Bin 1244 -> 0 bytes inherit_graph_9.map | 3 - inherit_graph_9.md5 | 1 - inherit_graph_9.png | Bin 1879 -> 0 bytes inherits.html | 174 -- joint_impedance_control_8cpp-example.html | 83 - joint_point_to_point_motion_8cpp-example.html | 83 - jquery.js | 94 +- log_8h.html | 165 -- log_8h__dep__incl.map | 3 - log_8h__dep__incl.md5 | 1 - log_8h__dep__incl.png | Bin 4276 -> 0 bytes log_8h__incl.map | 6 - log_8h__incl.md5 | 1 - log_8h__incl.png | Bin 28006 -> 0 bytes log_8h_source.html | 105 -- lowpass__filter_8h.html | 257 --- lowpass__filter_8h__dep__incl.map | 5 - lowpass__filter_8h__dep__incl.md5 | 1 - lowpass__filter_8h__dep__incl.png | Bin 9413 -> 0 bytes lowpass__filter_8h__incl.map | 2 - lowpass__filter_8h__incl.md5 | 1 - lowpass__filter_8h__incl.png | Bin 5955 -> 0 bytes lowpass__filter_8h_source.html | 91 - menu.js | 29 +- menudata.js | 105 +- model_8h.html | 195 -- model_8h__incl.map | 9 - model_8h__incl.md5 | 1 - model_8h__incl.png | Bin 73832 -> 0 bytes model_8h_source.html | 93 - motion_with_control_8cpp-example.html | 84 - pages.html | 87 - print_joint_poses_8cpp-example.html | 83 - rate__limiting_8h.html | 900 ---------- rate__limiting_8h__incl.map | 2 - rate__limiting_8h__incl.md5 | 1 - rate__limiting_8h__incl.png | Bin 5371 -> 0 bytes rate__limiting_8h_source.html | 106 -- robot_8h.html | 133 -- robot_8h__dep__incl.map | 4 - robot_8h__dep__incl.md5 | 1 - robot_8h__dep__incl.png | Bin 6394 -> 0 bytes robot_8h__incl.map | 8 - robot_8h__incl.md5 | 1 - robot_8h__incl.png | Bin 58135 -> 0 bytes robot_8h_source.html | 124 -- robot__state_8h.html | 190 -- robot__state_8h__dep__incl.map | 7 - robot__state_8h__dep__incl.md5 | 1 - robot__state_8h__dep__incl.png | Bin 19147 -> 0 bytes robot__state_8h__incl.map | 4 - robot__state_8h__incl.md5 | 1 - robot__state_8h__incl.png | Bin 17631 -> 0 bytes robot__state_8h_source.html | 94 - search/all_0.html | 26 - search/all_0.js | 6 - search/all_1.html | 26 - search/all_1.js | 4 - search/all_10.html | 26 - search/all_10.js | 5 - search/all_11.html | 26 - search/all_11.js | 16 - search/all_12.html | 26 - search/all_12.js | 19 - search/all_13.html | 26 - search/all_13.js | 13 - search/all_14.html | 26 - search/all_14.js | 10 - search/all_15.html | 26 - search/all_15.js | 4 - search/all_16.html | 26 - search/all_16.js | 4 - search/all_17.html | 26 - search/all_17.js | 7 - search/all_2.html | 26 - search/all_2.js | 39 - search/all_3.html | 26 - search/all_3.js | 15 - search/all_4.html | 26 - search/all_4.js | 12 - search/all_5.html | 26 - search/all_5.js | 12 - search/all_6.html | 26 - search/all_6.js | 10 - search/all_7.html | 26 - search/all_7.js | 6 - search/all_8.html | 26 - search/all_8.js | 14 - search/all_9.html | 26 - search/all_9.js | 19 - search/all_a.html | 26 - search/all_a.js | 24 - search/all_b.html | 26 - search/all_b.js | 13 - search/all_c.html | 26 - search/all_c.js | 17 - search/all_d.html | 26 - search/all_d.js | 5 - search/all_e.html | 26 - search/all_e.js | 35 - search/all_f.html | 26 - search/all_f.js | 10 - search/classes_0.html | 26 - search/classes_0.js | 7 - search/classes_1.html | 26 - search/classes_1.js | 4 - search/classes_2.html | 26 - search/classes_2.js | 5 - search/classes_3.html | 26 - search/classes_3.js | 4 - search/classes_4.html | 26 - search/classes_4.js | 5 - search/classes_5.html | 26 - search/classes_5.js | 5 - search/classes_6.html | 26 - search/classes_6.js | 5 - search/classes_7.html | 26 - search/classes_7.js | 6 - search/classes_8.html | 26 - search/classes_8.js | 4 - search/classes_9.html | 26 - search/classes_9.js | 4 - search/classes_a.html | 26 - search/classes_a.js | 8 - search/classes_b.html | 26 - search/classes_b.js | 4 - search/classes_c.html | 26 - search/classes_c.js | 6 - search/close.png | Bin 273 -> 0 bytes search/close.svg | 31 + search/enums_0.html | 26 - search/enums_0.js | 4 - search/enums_1.html | 26 - search/enums_1.js | 4 - search/enums_2.html | 26 - search/enums_2.js | 4 - search/enums_3.html | 26 - search/enums_3.js | 5 - search/enums_4.html | 26 - search/enums_4.js | 4 - search/files_0.html | 26 - search/files_0.js | 6 - search/files_1.html | 26 - search/files_1.js | 4 - search/files_2.html | 26 - search/files_2.js | 6 - search/files_3.html | 26 - search/files_3.js | 5 - search/files_4.html | 26 - search/files_4.js | 5 - search/files_5.html | 26 - search/files_5.js | 4 - search/files_6.html | 26 - search/files_6.js | 6 - search/files_7.html | 26 - search/files_7.js | 5 - search/functions_0.html | 26 - search/functions_0.js | 4 - search/functions_1.html | 26 - search/functions_1.js | 4 - search/functions_10.html | 26 - search/functions_10.js | 5 - search/functions_11.html | 26 - search/functions_11.js | 4 - search/functions_12.html | 26 - search/functions_12.js | 7 - search/functions_2.html | 26 - search/functions_2.js | 9 - search/functions_3.html | 26 - search/functions_3.js | 5 - search/functions_4.html | 26 - search/functions_4.js | 4 - search/functions_5.html | 26 - search/functions_5.js | 7 - search/functions_6.html | 26 - search/functions_6.js | 6 - search/functions_7.html | 26 - search/functions_7.js | 6 - search/functions_8.html | 26 - search/functions_8.js | 5 - search/functions_9.html | 26 - search/functions_9.js | 7 - search/functions_a.html | 26 - search/functions_a.js | 8 - search/functions_b.html | 26 - search/functions_b.js | 26 - search/functions_c.html | 26 - search/functions_c.js | 4 - search/functions_d.html | 26 - search/functions_d.js | 6 - search/functions_e.html | 26 - search/functions_e.js | 15 - search/functions_f.html | 26 - search/functions_f.js | 6 - search/mag_sel.png | Bin 563 -> 0 bytes search/mag_sel.svg | 74 + search/nomatches.html | 5 +- search/pages_0.html | 26 - search/pages_0.js | 4 - search/pages_1.html | 26 - search/pages_1.js | 4 - search/search.css | 104 +- search/search.js | 45 +- search/search_l.png | Bin 604 -> 567 bytes search/search_r.png | Bin 612 -> 553 bytes search/searchdata.js | 24 - search/typedefs_0.html | 26 - search/typedefs_0.js | 4 - search/variables_0.html | 26 - search/variables_0.js | 5 - search/variables_1.html | 26 - search/variables_1.js | 28 - search/variables_10.html | 26 - search/variables_10.js | 11 - search/variables_11.html | 26 - search/variables_11.js | 4 - search/variables_12.html | 26 - search/variables_12.js | 4 - search/variables_2.html | 26 - search/variables_2.js | 11 - search/variables_3.html | 26 - search/variables_3.js | 7 - search/variables_4.html | 26 - search/variables_4.js | 10 - search/variables_5.html | 26 - search/variables_5.js | 10 - search/variables_6.html | 26 - search/variables_6.js | 17 - search/variables_7.html | 26 - search/variables_7.js | 24 - search/variables_8.html | 26 - search/variables_8.js | 6 - search/variables_9.html | 26 - search/variables_9.js | 10 - search/variables_a.html | 26 - search/variables_a.js | 4 - search/variables_b.html | 26 - search/variables_b.js | 12 - search/variables_c.html | 26 - search/variables_c.js | 7 - search/variables_d.html | 26 - search/variables_d.js | 5 - search/variables_e.html | 26 - search/variables_e.js | 4 - search/variables_f.html | 26 - search/variables_f.js | 7 - structfranka_1_1CommandException.html | 112 -- ...ranka_1_1CommandException__coll__graph.map | 3 - ...ranka_1_1CommandException__coll__graph.md5 | 1 - ...ranka_1_1CommandException__coll__graph.png | Bin 6781 -> 0 bytes ...ka_1_1CommandException__inherit__graph.map | 3 - ...ka_1_1CommandException__inherit__graph.md5 | 1 - ...ka_1_1CommandException__inherit__graph.png | Bin 6781 -> 0 bytes structfranka_1_1ControlException-members.html | 91 - structfranka_1_1ControlException.html | 178 -- ...ranka_1_1ControlException__coll__graph.map | 3 - ...ranka_1_1ControlException__coll__graph.md5 | 1 - ...ranka_1_1ControlException__coll__graph.png | Bin 6432 -> 0 bytes ...ka_1_1ControlException__inherit__graph.map | 3 - ...ka_1_1ControlException__inherit__graph.md5 | 1 - ...ka_1_1ControlException__inherit__graph.png | Bin 6432 -> 0 bytes structfranka_1_1Errors-members.html | 132 -- structfranka_1_1Errors.html | 444 ----- structfranka_1_1Exception.html | 117 -- structfranka_1_1Exception__coll__graph.map | 2 - structfranka_1_1Exception__coll__graph.md5 | 1 - structfranka_1_1Exception__coll__graph.png | Bin 3504 -> 0 bytes structfranka_1_1Exception__inherit__graph.map | 10 - structfranka_1_1Exception__inherit__graph.md5 | 1 - structfranka_1_1Exception__inherit__graph.png | Bin 40443 -> 0 bytes structfranka_1_1Finishable-members.html | 90 - structfranka_1_1Finishable.html | 121 -- ...ctfranka_1_1Finishable__inherit__graph.map | 7 - ...ctfranka_1_1Finishable__inherit__graph.md5 | 1 - ...ctfranka_1_1Finishable__inherit__graph.png | Bin 14836 -> 0 bytes structfranka_1_1GripperState-members.html | 94 - structfranka_1_1GripperState.html | 183 -- structfranka_1_1GripperState__coll__graph.map | 3 - structfranka_1_1GripperState__coll__graph.md5 | 1 - structfranka_1_1GripperState__coll__graph.png | Bin 4271 -> 0 bytes ...1IncompatibleVersionException-members.html | 92 - ...ranka_1_1IncompatibleVersionException.html | 180 -- ...ompatibleVersionException__coll__graph.map | 3 - ...ompatibleVersionException__coll__graph.md5 | 1 - ...ompatibleVersionException__coll__graph.png | Bin 6509 -> 0 bytes ...atibleVersionException__inherit__graph.map | 3 - ...atibleVersionException__inherit__graph.md5 | 1 - ...atibleVersionException__inherit__graph.png | Bin 6509 -> 0 bytes ...ctfranka_1_1InvalidOperationException.html | 112 -- ...InvalidOperationException__coll__graph.map | 3 - ...InvalidOperationException__coll__graph.md5 | 1 - ...InvalidOperationException__coll__graph.png | Bin 7071 -> 0 bytes ...alidOperationException__inherit__graph.map | 3 - ...alidOperationException__inherit__graph.md5 | 1 - ...alidOperationException__inherit__graph.png | Bin 7071 -> 0 bytes structfranka_1_1ModelException.html | 112 -- ...tfranka_1_1ModelException__coll__graph.map | 3 - ...tfranka_1_1ModelException__coll__graph.md5 | 1 - ...tfranka_1_1ModelException__coll__graph.png | Bin 6530 -> 0 bytes ...anka_1_1ModelException__inherit__graph.map | 3 - ...anka_1_1ModelException__inherit__graph.md5 | 1 - ...anka_1_1ModelException__inherit__graph.png | Bin 6530 -> 0 bytes structfranka_1_1NetworkException.html | 112 -- ...ranka_1_1NetworkException__coll__graph.map | 3 - ...ranka_1_1NetworkException__coll__graph.md5 | 1 - ...ranka_1_1NetworkException__coll__graph.png | Bin 6641 -> 0 bytes ...ka_1_1NetworkException__inherit__graph.map | 3 - ...ka_1_1NetworkException__inherit__graph.md5 | 1 - ...ka_1_1NetworkException__inherit__graph.png | Bin 6641 -> 0 bytes structfranka_1_1ProtocolException.html | 112 -- ...anka_1_1ProtocolException__coll__graph.map | 3 - ...anka_1_1ProtocolException__coll__graph.md5 | 1 - ...anka_1_1ProtocolException__coll__graph.png | Bin 6364 -> 0 bytes ...a_1_1ProtocolException__inherit__graph.map | 3 - ...a_1_1ProtocolException__inherit__graph.md5 | 1 - ...a_1_1ProtocolException__inherit__graph.png | Bin 6364 -> 0 bytes structfranka_1_1RealtimeException.html | 112 -- ...anka_1_1RealtimeException__coll__graph.map | 3 - ...anka_1_1RealtimeException__coll__graph.md5 | 1 - ...anka_1_1RealtimeException__coll__graph.png | Bin 6615 -> 0 bytes ...a_1_1RealtimeException__inherit__graph.map | 3 - ...a_1_1RealtimeException__inherit__graph.md5 | 1 - ...a_1_1RealtimeException__inherit__graph.png | Bin 6615 -> 0 bytes structfranka_1_1Record-members.html | 91 - structfranka_1_1Record.html | 129 -- structfranka_1_1Record__coll__graph.map | 12 - structfranka_1_1Record__coll__graph.md5 | 1 - structfranka_1_1Record__coll__graph.png | Bin 47306 -> 0 bytes structfranka_1_1RobotCommand-members.html | 94 - structfranka_1_1RobotCommand.html | 137 -- structfranka_1_1RobotCommand__coll__graph.map | 8 - structfranka_1_1RobotCommand__coll__graph.md5 | 1 - structfranka_1_1RobotCommand__coll__graph.png | Bin 27007 -> 0 bytes structfranka_1_1RobotState-members.html | 135 -- structfranka_1_1RobotState.html | 892 --------- structfranka_1_1RobotState__coll__graph.map | 4 - structfranka_1_1RobotState__coll__graph.md5 | 1 - structfranka_1_1RobotState__coll__graph.png | Bin 6983 -> 0 bytes ...tfranka_1_1VacuumGripperState-members.html | 96 - structfranka_1_1VacuumGripperState.html | 190 -- ...nka_1_1VacuumGripperState__coll__graph.map | 3 - ...nka_1_1VacuumGripperState__coll__graph.md5 | 1 - ...nka_1_1VacuumGripperState__coll__graph.png | Bin 4984 -> 0 bytes ...ctfranka_1_1VirtualWallCuboid-members.html | 93 - structfranka_1_1VirtualWallCuboid.html | 120 -- tabs.css | 2 +- vacuum__gripper_8h.html | 116 -- vacuum__gripper_8h__incl.map | 4 - vacuum__gripper_8h__incl.md5 | 1 - vacuum__gripper_8h__incl.png | Bin 31286 -> 0 bytes vacuum__gripper_8h_source.html | 100 -- vacuum__gripper__state_8h.html | 179 -- vacuum__gripper__state_8h__dep__incl.map | 3 - vacuum__gripper__state_8h__dep__incl.md5 | 1 - vacuum__gripper__state_8h__dep__incl.png | Bin 5300 -> 0 bytes vacuum__gripper__state_8h__incl.map | 3 - vacuum__gripper__state_8h__incl.md5 | 1 - vacuum__gripper__state_8h__incl.png | Bin 15069 -> 0 bytes vacuum__gripper__state_8h_source.html | 92 - vacuum_object_8cpp-example.html | 83 - 577 files changed, 699 insertions(+), 27277 deletions(-) rename Logo_FRANKA_EMIKA_dark.png => Logo_FRANKA_ROBOTICS_dark.png (100%) delete mode 100644 annotated.html delete mode 100644 cartesian_impedance_control_8cpp-example.html delete mode 100644 classMotionGenerator-members.html delete mode 100644 classMotionGenerator.html delete mode 100644 classes.html delete mode 100644 classfranka_1_1CartesianPose-members.html delete mode 100644 classfranka_1_1CartesianPose.html delete mode 100644 classfranka_1_1CartesianPose__coll__graph.map delete mode 100644 classfranka_1_1CartesianPose__coll__graph.md5 delete mode 100644 classfranka_1_1CartesianPose__coll__graph.png delete mode 100644 classfranka_1_1CartesianPose__inherit__graph.map delete mode 100644 classfranka_1_1CartesianPose__inherit__graph.md5 delete mode 100644 classfranka_1_1CartesianPose__inherit__graph.png delete mode 100644 classfranka_1_1CartesianVelocities-members.html delete mode 100644 classfranka_1_1CartesianVelocities.html delete mode 100644 classfranka_1_1CartesianVelocities__coll__graph.map delete mode 100644 classfranka_1_1CartesianVelocities__coll__graph.md5 delete mode 100644 classfranka_1_1CartesianVelocities__coll__graph.png delete mode 100644 classfranka_1_1CartesianVelocities__inherit__graph.map delete mode 100644 classfranka_1_1CartesianVelocities__inherit__graph.md5 delete mode 100644 classfranka_1_1CartesianVelocities__inherit__graph.png delete mode 100644 classfranka_1_1Duration-members.html delete mode 100644 classfranka_1_1Duration.html delete mode 100644 classfranka_1_1Gripper-members.html delete mode 100644 classfranka_1_1Gripper.html delete mode 100644 classfranka_1_1JointPositions-members.html delete mode 100644 classfranka_1_1JointPositions.html delete mode 100644 classfranka_1_1JointPositions__coll__graph.map delete mode 100644 classfranka_1_1JointPositions__coll__graph.md5 delete mode 100644 classfranka_1_1JointPositions__coll__graph.png delete mode 100644 classfranka_1_1JointPositions__inherit__graph.map delete mode 100644 classfranka_1_1JointPositions__inherit__graph.md5 delete mode 100644 classfranka_1_1JointPositions__inherit__graph.png delete mode 100644 classfranka_1_1JointVelocities-members.html delete mode 100644 classfranka_1_1JointVelocities.html delete mode 100644 classfranka_1_1JointVelocities__coll__graph.map delete mode 100644 classfranka_1_1JointVelocities__coll__graph.md5 delete mode 100644 classfranka_1_1JointVelocities__coll__graph.png delete mode 100644 classfranka_1_1JointVelocities__inherit__graph.map delete mode 100644 classfranka_1_1JointVelocities__inherit__graph.md5 delete mode 100644 classfranka_1_1JointVelocities__inherit__graph.png delete mode 100644 classfranka_1_1Model-members.html delete mode 100644 classfranka_1_1Model.html delete mode 100644 classfranka_1_1Robot-members.html delete mode 100644 classfranka_1_1Robot.html delete mode 100644 classfranka_1_1Torques-members.html delete mode 100644 classfranka_1_1Torques.html delete mode 100644 classfranka_1_1Torques__coll__graph.map delete mode 100644 classfranka_1_1Torques__coll__graph.md5 delete mode 100644 classfranka_1_1Torques__coll__graph.png delete mode 100644 classfranka_1_1Torques__inherit__graph.map delete mode 100644 classfranka_1_1Torques__inherit__graph.md5 delete mode 100644 classfranka_1_1Torques__inherit__graph.png delete mode 100644 classfranka_1_1VacuumGripper-members.html delete mode 100644 classfranka_1_1VacuumGripper.html delete mode 100644 command__types_8h.html delete mode 100644 command__types_8h__dep__incl.map delete mode 100644 command__types_8h__dep__incl.md5 delete mode 100644 command__types_8h__dep__incl.png delete mode 100644 command__types_8h__incl.map delete mode 100644 command__types_8h__incl.md5 delete mode 100644 command__types_8h__incl.png delete mode 100644 command__types_8h_source.html delete mode 100644 communication_test_8cpp-example.html delete mode 100644 control__tools_8h.html delete mode 100644 control__tools_8h__incl.map delete mode 100644 control__tools_8h__incl.md5 delete mode 100644 control__tools_8h__incl.png delete mode 100644 control__tools_8h_source.html delete mode 100644 control__types_8h.html delete mode 100644 control__types_8h__dep__incl.map delete mode 100644 control__types_8h__dep__incl.md5 delete mode 100644 control__types_8h__dep__incl.png delete mode 100644 control__types_8h__incl.map delete mode 100644 control__types_8h__incl.md5 delete mode 100644 control__types_8h__incl.png delete mode 100644 control__types_8h_source.html delete mode 100644 deprecated.html delete mode 100644 dir_000000_000001.html delete mode 100644 dir_5f30c89189ebb3336d6b33aa932838ba.html delete mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4.html delete mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4_dep.map delete mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 delete mode 100644 dir_d28a4824dc47e487b107a5db32ef43c4_dep.png delete mode 100644 dir_d44c64559bbebec7f509842c48db8b23.html delete mode 100644 doxygen.png create mode 100644 doxygen.svg delete mode 100644 duration_8h.html delete mode 100644 duration_8h__dep__incl.map delete mode 100644 duration_8h__dep__incl.md5 delete mode 100644 duration_8h__dep__incl.png delete mode 100644 duration_8h__incl.map delete mode 100644 duration_8h__incl.md5 delete mode 100644 duration_8h__incl.png delete mode 100644 duration_8h_source.html delete mode 100644 echo_robot_state_8cpp-example.html delete mode 100644 errors_8h.html delete mode 100644 errors_8h__dep__incl.map delete mode 100644 errors_8h__dep__incl.md5 delete mode 100644 errors_8h__dep__incl.png delete mode 100644 errors_8h__incl.map delete mode 100644 errors_8h__incl.md5 delete mode 100644 errors_8h__incl.png delete mode 100644 errors_8h_source.html delete mode 100644 examples.html delete mode 100644 examples__common_8h.html delete mode 100644 examples__common_8h__incl.map delete mode 100644 examples__common_8h__incl.md5 delete mode 100644 examples__common_8h__incl.png delete mode 100644 examples__common_8h_source.html delete mode 100644 exception_8h.html delete mode 100644 exception_8h__incl.map delete mode 100644 exception_8h__incl.md5 delete mode 100644 exception_8h__incl.png delete mode 100644 exception_8h_source.html delete mode 100644 files.html delete mode 100644 force_control_8cpp-example.html delete mode 100644 functions.html delete mode 100644 functions_0x7e.html delete mode 100644 functions_b.html delete mode 100644 functions_c.html delete mode 100644 functions_d.html delete mode 100644 functions_e.html delete mode 100644 functions_enum.html delete mode 100644 functions_f.html delete mode 100644 functions_func.html delete mode 100644 functions_g.html delete mode 100644 functions_h.html delete mode 100644 functions_i.html delete mode 100644 functions_j.html delete mode 100644 functions_k.html delete mode 100644 functions_l.html delete mode 100644 functions_m.html delete mode 100644 functions_n.html delete mode 100644 functions_o.html delete mode 100644 functions_p.html delete mode 100644 functions_q.html delete mode 100644 functions_r.html delete mode 100644 functions_s.html delete mode 100644 functions_t.html delete mode 100644 functions_type.html delete mode 100644 functions_v.html delete mode 100644 functions_vars.html delete mode 100644 functions_w.html delete mode 100644 functions_z.html delete mode 100644 generate_cartesian_pose_motion_8cpp-example.html delete mode 100644 generate_cartesian_velocity_motion_8cpp-example.html delete mode 100644 generate_consecutive_motions_8cpp-example.html delete mode 100644 generate_elbow_motion_8cpp-example.html delete mode 100644 generate_joint_position_motion_8cpp-example.html delete mode 100644 generate_joint_velocity_motion_8cpp-example.html delete mode 100644 globals.html delete mode 100644 globals_func.html delete mode 100644 grasp_object_8cpp-example.html delete mode 100644 gripper_8h.html delete mode 100644 gripper_8h__incl.map delete mode 100644 gripper_8h__incl.md5 delete mode 100644 gripper_8h__incl.png delete mode 100644 gripper_8h_source.html delete mode 100644 gripper__state_8h.html delete mode 100644 gripper__state_8h__dep__incl.map delete mode 100644 gripper__state_8h__dep__incl.md5 delete mode 100644 gripper__state_8h__dep__incl.png delete mode 100644 gripper__state_8h__incl.map delete mode 100644 gripper__state_8h__incl.md5 delete mode 100644 gripper__state_8h__incl.png delete mode 100644 gripper__state_8h_source.html delete mode 100644 hierarchy.html delete mode 100644 inherit_graph_0.map delete mode 100644 inherit_graph_0.md5 delete mode 100644 inherit_graph_0.png delete mode 100644 inherit_graph_1.map delete mode 100644 inherit_graph_1.md5 delete mode 100644 inherit_graph_1.png delete mode 100644 inherit_graph_10.map delete mode 100644 inherit_graph_10.md5 delete mode 100644 inherit_graph_10.png delete mode 100644 inherit_graph_11.map delete mode 100644 inherit_graph_11.md5 delete mode 100644 inherit_graph_11.png delete mode 100644 inherit_graph_12.map delete mode 100644 inherit_graph_12.md5 delete mode 100644 inherit_graph_12.png delete mode 100644 inherit_graph_13.map delete mode 100644 inherit_graph_13.md5 delete mode 100644 inherit_graph_13.png delete mode 100644 inherit_graph_14.map delete mode 100644 inherit_graph_14.md5 delete mode 100644 inherit_graph_14.png delete mode 100644 inherit_graph_2.map delete mode 100644 inherit_graph_2.md5 delete mode 100644 inherit_graph_2.png delete mode 100644 inherit_graph_3.map delete mode 100644 inherit_graph_3.md5 delete mode 100644 inherit_graph_3.png delete mode 100644 inherit_graph_4.map delete mode 100644 inherit_graph_4.md5 delete mode 100644 inherit_graph_4.png delete mode 100644 inherit_graph_5.map delete mode 100644 inherit_graph_5.md5 delete mode 100644 inherit_graph_5.png delete mode 100644 inherit_graph_6.map delete mode 100644 inherit_graph_6.md5 delete mode 100644 inherit_graph_6.png delete mode 100644 inherit_graph_7.map delete mode 100644 inherit_graph_7.md5 delete mode 100644 inherit_graph_7.png delete mode 100644 inherit_graph_8.map delete mode 100644 inherit_graph_8.md5 delete mode 100644 inherit_graph_8.png delete mode 100644 inherit_graph_9.map delete mode 100644 inherit_graph_9.md5 delete mode 100644 inherit_graph_9.png delete mode 100644 inherits.html delete mode 100644 joint_impedance_control_8cpp-example.html delete mode 100644 joint_point_to_point_motion_8cpp-example.html delete mode 100644 log_8h.html delete mode 100644 log_8h__dep__incl.map delete mode 100644 log_8h__dep__incl.md5 delete mode 100644 log_8h__dep__incl.png delete mode 100644 log_8h__incl.map delete mode 100644 log_8h__incl.md5 delete mode 100644 log_8h__incl.png delete mode 100644 log_8h_source.html delete mode 100644 lowpass__filter_8h.html delete mode 100644 lowpass__filter_8h__dep__incl.map delete mode 100644 lowpass__filter_8h__dep__incl.md5 delete mode 100644 lowpass__filter_8h__dep__incl.png delete mode 100644 lowpass__filter_8h__incl.map delete mode 100644 lowpass__filter_8h__incl.md5 delete mode 100644 lowpass__filter_8h__incl.png delete mode 100644 lowpass__filter_8h_source.html delete mode 100644 model_8h.html delete mode 100644 model_8h__incl.map delete mode 100644 model_8h__incl.md5 delete mode 100644 model_8h__incl.png delete mode 100644 model_8h_source.html delete mode 100644 motion_with_control_8cpp-example.html delete mode 100644 pages.html delete mode 100644 print_joint_poses_8cpp-example.html delete mode 100644 rate__limiting_8h.html delete mode 100644 rate__limiting_8h__incl.map delete mode 100644 rate__limiting_8h__incl.md5 delete mode 100644 rate__limiting_8h__incl.png delete mode 100644 rate__limiting_8h_source.html delete mode 100644 robot_8h.html delete mode 100644 robot_8h__dep__incl.map delete mode 100644 robot_8h__dep__incl.md5 delete mode 100644 robot_8h__dep__incl.png delete mode 100644 robot_8h__incl.map delete mode 100644 robot_8h__incl.md5 delete mode 100644 robot_8h__incl.png delete mode 100644 robot_8h_source.html delete mode 100644 robot__state_8h.html delete mode 100644 robot__state_8h__dep__incl.map delete mode 100644 robot__state_8h__dep__incl.md5 delete mode 100644 robot__state_8h__dep__incl.png delete mode 100644 robot__state_8h__incl.map delete mode 100644 robot__state_8h__incl.md5 delete mode 100644 robot__state_8h__incl.png delete mode 100644 robot__state_8h_source.html delete mode 100644 search/all_0.html delete mode 100644 search/all_0.js delete mode 100644 search/all_1.html delete mode 100644 search/all_1.js delete mode 100644 search/all_10.html delete mode 100644 search/all_10.js delete mode 100644 search/all_11.html delete mode 100644 search/all_11.js delete mode 100644 search/all_12.html delete mode 100644 search/all_12.js delete mode 100644 search/all_13.html delete mode 100644 search/all_13.js delete mode 100644 search/all_14.html delete mode 100644 search/all_14.js delete mode 100644 search/all_15.html delete mode 100644 search/all_15.js delete mode 100644 search/all_16.html delete mode 100644 search/all_16.js delete mode 100644 search/all_17.html delete mode 100644 search/all_17.js delete mode 100644 search/all_2.html delete mode 100644 search/all_2.js delete mode 100644 search/all_3.html delete mode 100644 search/all_3.js delete mode 100644 search/all_4.html delete mode 100644 search/all_4.js delete mode 100644 search/all_5.html delete mode 100644 search/all_5.js delete mode 100644 search/all_6.html delete mode 100644 search/all_6.js delete mode 100644 search/all_7.html delete mode 100644 search/all_7.js delete mode 100644 search/all_8.html delete mode 100644 search/all_8.js delete mode 100644 search/all_9.html delete mode 100644 search/all_9.js delete mode 100644 search/all_a.html delete mode 100644 search/all_a.js delete mode 100644 search/all_b.html delete mode 100644 search/all_b.js delete mode 100644 search/all_c.html delete mode 100644 search/all_c.js delete mode 100644 search/all_d.html delete mode 100644 search/all_d.js delete mode 100644 search/all_e.html delete mode 100644 search/all_e.js delete mode 100644 search/all_f.html delete mode 100644 search/all_f.js delete mode 100644 search/classes_0.html delete mode 100644 search/classes_0.js delete mode 100644 search/classes_1.html delete mode 100644 search/classes_1.js delete mode 100644 search/classes_2.html delete mode 100644 search/classes_2.js delete mode 100644 search/classes_3.html delete mode 100644 search/classes_3.js delete mode 100644 search/classes_4.html delete mode 100644 search/classes_4.js delete mode 100644 search/classes_5.html delete mode 100644 search/classes_5.js delete mode 100644 search/classes_6.html delete mode 100644 search/classes_6.js delete mode 100644 search/classes_7.html delete mode 100644 search/classes_7.js delete mode 100644 search/classes_8.html delete mode 100644 search/classes_8.js delete mode 100644 search/classes_9.html delete mode 100644 search/classes_9.js delete mode 100644 search/classes_a.html delete mode 100644 search/classes_a.js delete mode 100644 search/classes_b.html delete mode 100644 search/classes_b.js delete mode 100644 search/classes_c.html delete mode 100644 search/classes_c.js delete mode 100644 search/close.png create mode 100644 search/close.svg delete mode 100644 search/enums_0.html delete mode 100644 search/enums_0.js delete mode 100644 search/enums_1.html delete mode 100644 search/enums_1.js delete mode 100644 search/enums_2.html delete mode 100644 search/enums_2.js delete mode 100644 search/enums_3.html delete mode 100644 search/enums_3.js delete mode 100644 search/enums_4.html delete mode 100644 search/enums_4.js delete mode 100644 search/files_0.html delete mode 100644 search/files_0.js delete mode 100644 search/files_1.html delete mode 100644 search/files_1.js delete mode 100644 search/files_2.html delete mode 100644 search/files_2.js delete mode 100644 search/files_3.html delete mode 100644 search/files_3.js delete mode 100644 search/files_4.html delete mode 100644 search/files_4.js delete mode 100644 search/files_5.html delete mode 100644 search/files_5.js delete mode 100644 search/files_6.html delete mode 100644 search/files_6.js delete mode 100644 search/files_7.html delete mode 100644 search/files_7.js delete mode 100644 search/functions_0.html delete mode 100644 search/functions_0.js delete mode 100644 search/functions_1.html delete mode 100644 search/functions_1.js delete mode 100644 search/functions_10.html delete mode 100644 search/functions_10.js delete mode 100644 search/functions_11.html delete mode 100644 search/functions_11.js delete mode 100644 search/functions_12.html delete mode 100644 search/functions_12.js delete mode 100644 search/functions_2.html delete mode 100644 search/functions_2.js delete mode 100644 search/functions_3.html delete mode 100644 search/functions_3.js delete mode 100644 search/functions_4.html delete mode 100644 search/functions_4.js delete mode 100644 search/functions_5.html delete mode 100644 search/functions_5.js delete mode 100644 search/functions_6.html delete mode 100644 search/functions_6.js delete mode 100644 search/functions_7.html delete mode 100644 search/functions_7.js delete mode 100644 search/functions_8.html delete mode 100644 search/functions_8.js delete mode 100644 search/functions_9.html delete mode 100644 search/functions_9.js delete mode 100644 search/functions_a.html delete mode 100644 search/functions_a.js delete mode 100644 search/functions_b.html delete mode 100644 search/functions_b.js delete mode 100644 search/functions_c.html delete mode 100644 search/functions_c.js delete mode 100644 search/functions_d.html delete mode 100644 search/functions_d.js delete mode 100644 search/functions_e.html delete mode 100644 search/functions_e.js delete mode 100644 search/functions_f.html delete mode 100644 search/functions_f.js delete mode 100644 search/mag_sel.png create mode 100644 search/mag_sel.svg delete mode 100644 search/pages_0.html delete mode 100644 search/pages_0.js delete mode 100644 search/pages_1.html delete mode 100644 search/pages_1.js delete mode 100644 search/typedefs_0.html delete mode 100644 search/typedefs_0.js delete mode 100644 search/variables_0.html delete mode 100644 search/variables_0.js delete mode 100644 search/variables_1.html delete mode 100644 search/variables_1.js delete mode 100644 search/variables_10.html delete mode 100644 search/variables_10.js delete mode 100644 search/variables_11.html delete mode 100644 search/variables_11.js delete mode 100644 search/variables_12.html delete mode 100644 search/variables_12.js delete mode 100644 search/variables_2.html delete mode 100644 search/variables_2.js delete mode 100644 search/variables_3.html delete mode 100644 search/variables_3.js delete mode 100644 search/variables_4.html delete mode 100644 search/variables_4.js delete mode 100644 search/variables_5.html delete mode 100644 search/variables_5.js delete mode 100644 search/variables_6.html delete mode 100644 search/variables_6.js delete mode 100644 search/variables_7.html delete mode 100644 search/variables_7.js delete mode 100644 search/variables_8.html delete mode 100644 search/variables_8.js delete mode 100644 search/variables_9.html delete mode 100644 search/variables_9.js delete mode 100644 search/variables_a.html delete mode 100644 search/variables_a.js delete mode 100644 search/variables_b.html delete mode 100644 search/variables_b.js delete mode 100644 search/variables_c.html delete mode 100644 search/variables_c.js delete mode 100644 search/variables_d.html delete mode 100644 search/variables_d.js delete mode 100644 search/variables_e.html delete mode 100644 search/variables_e.js delete mode 100644 search/variables_f.html delete mode 100644 search/variables_f.js delete mode 100644 structfranka_1_1CommandException.html delete mode 100644 structfranka_1_1CommandException__coll__graph.map delete mode 100644 structfranka_1_1CommandException__coll__graph.md5 delete mode 100644 structfranka_1_1CommandException__coll__graph.png delete mode 100644 structfranka_1_1CommandException__inherit__graph.map delete mode 100644 structfranka_1_1CommandException__inherit__graph.md5 delete mode 100644 structfranka_1_1CommandException__inherit__graph.png delete mode 100644 structfranka_1_1ControlException-members.html delete mode 100644 structfranka_1_1ControlException.html delete mode 100644 structfranka_1_1ControlException__coll__graph.map delete mode 100644 structfranka_1_1ControlException__coll__graph.md5 delete mode 100644 structfranka_1_1ControlException__coll__graph.png delete mode 100644 structfranka_1_1ControlException__inherit__graph.map delete mode 100644 structfranka_1_1ControlException__inherit__graph.md5 delete mode 100644 structfranka_1_1ControlException__inherit__graph.png delete mode 100644 structfranka_1_1Errors-members.html delete mode 100644 structfranka_1_1Errors.html delete mode 100644 structfranka_1_1Exception.html delete mode 100644 structfranka_1_1Exception__coll__graph.map delete mode 100644 structfranka_1_1Exception__coll__graph.md5 delete mode 100644 structfranka_1_1Exception__coll__graph.png delete mode 100644 structfranka_1_1Exception__inherit__graph.map delete mode 100644 structfranka_1_1Exception__inherit__graph.md5 delete mode 100644 structfranka_1_1Exception__inherit__graph.png delete mode 100644 structfranka_1_1Finishable-members.html delete mode 100644 structfranka_1_1Finishable.html delete mode 100644 structfranka_1_1Finishable__inherit__graph.map delete mode 100644 structfranka_1_1Finishable__inherit__graph.md5 delete mode 100644 structfranka_1_1Finishable__inherit__graph.png delete mode 100644 structfranka_1_1GripperState-members.html delete mode 100644 structfranka_1_1GripperState.html delete mode 100644 structfranka_1_1GripperState__coll__graph.map delete mode 100644 structfranka_1_1GripperState__coll__graph.md5 delete mode 100644 structfranka_1_1GripperState__coll__graph.png delete mode 100644 structfranka_1_1IncompatibleVersionException-members.html delete mode 100644 structfranka_1_1IncompatibleVersionException.html delete mode 100644 structfranka_1_1IncompatibleVersionException__coll__graph.map delete mode 100644 structfranka_1_1IncompatibleVersionException__coll__graph.md5 delete mode 100644 structfranka_1_1IncompatibleVersionException__coll__graph.png delete mode 100644 structfranka_1_1IncompatibleVersionException__inherit__graph.map delete mode 100644 structfranka_1_1IncompatibleVersionException__inherit__graph.md5 delete mode 100644 structfranka_1_1IncompatibleVersionException__inherit__graph.png delete mode 100644 structfranka_1_1InvalidOperationException.html delete mode 100644 structfranka_1_1InvalidOperationException__coll__graph.map delete mode 100644 structfranka_1_1InvalidOperationException__coll__graph.md5 delete mode 100644 structfranka_1_1InvalidOperationException__coll__graph.png delete mode 100644 structfranka_1_1InvalidOperationException__inherit__graph.map delete mode 100644 structfranka_1_1InvalidOperationException__inherit__graph.md5 delete mode 100644 structfranka_1_1InvalidOperationException__inherit__graph.png delete mode 100644 structfranka_1_1ModelException.html delete mode 100644 structfranka_1_1ModelException__coll__graph.map delete mode 100644 structfranka_1_1ModelException__coll__graph.md5 delete mode 100644 structfranka_1_1ModelException__coll__graph.png delete mode 100644 structfranka_1_1ModelException__inherit__graph.map delete mode 100644 structfranka_1_1ModelException__inherit__graph.md5 delete mode 100644 structfranka_1_1ModelException__inherit__graph.png delete mode 100644 structfranka_1_1NetworkException.html delete mode 100644 structfranka_1_1NetworkException__coll__graph.map delete mode 100644 structfranka_1_1NetworkException__coll__graph.md5 delete mode 100644 structfranka_1_1NetworkException__coll__graph.png delete mode 100644 structfranka_1_1NetworkException__inherit__graph.map delete mode 100644 structfranka_1_1NetworkException__inherit__graph.md5 delete mode 100644 structfranka_1_1NetworkException__inherit__graph.png delete mode 100644 structfranka_1_1ProtocolException.html delete mode 100644 structfranka_1_1ProtocolException__coll__graph.map delete mode 100644 structfranka_1_1ProtocolException__coll__graph.md5 delete mode 100644 structfranka_1_1ProtocolException__coll__graph.png delete mode 100644 structfranka_1_1ProtocolException__inherit__graph.map delete mode 100644 structfranka_1_1ProtocolException__inherit__graph.md5 delete mode 100644 structfranka_1_1ProtocolException__inherit__graph.png delete mode 100644 structfranka_1_1RealtimeException.html delete mode 100644 structfranka_1_1RealtimeException__coll__graph.map delete mode 100644 structfranka_1_1RealtimeException__coll__graph.md5 delete mode 100644 structfranka_1_1RealtimeException__coll__graph.png delete mode 100644 structfranka_1_1RealtimeException__inherit__graph.map delete mode 100644 structfranka_1_1RealtimeException__inherit__graph.md5 delete mode 100644 structfranka_1_1RealtimeException__inherit__graph.png delete mode 100644 structfranka_1_1Record-members.html delete mode 100644 structfranka_1_1Record.html delete mode 100644 structfranka_1_1Record__coll__graph.map delete mode 100644 structfranka_1_1Record__coll__graph.md5 delete mode 100644 structfranka_1_1Record__coll__graph.png delete mode 100644 structfranka_1_1RobotCommand-members.html delete mode 100644 structfranka_1_1RobotCommand.html delete mode 100644 structfranka_1_1RobotCommand__coll__graph.map delete mode 100644 structfranka_1_1RobotCommand__coll__graph.md5 delete mode 100644 structfranka_1_1RobotCommand__coll__graph.png delete mode 100644 structfranka_1_1RobotState-members.html delete mode 100644 structfranka_1_1RobotState.html delete mode 100644 structfranka_1_1RobotState__coll__graph.map delete mode 100644 structfranka_1_1RobotState__coll__graph.md5 delete mode 100644 structfranka_1_1RobotState__coll__graph.png delete mode 100644 structfranka_1_1VacuumGripperState-members.html delete mode 100644 structfranka_1_1VacuumGripperState.html delete mode 100644 structfranka_1_1VacuumGripperState__coll__graph.map delete mode 100644 structfranka_1_1VacuumGripperState__coll__graph.md5 delete mode 100644 structfranka_1_1VacuumGripperState__coll__graph.png delete mode 100644 structfranka_1_1VirtualWallCuboid-members.html delete mode 100644 structfranka_1_1VirtualWallCuboid.html delete mode 100644 vacuum__gripper_8h.html delete mode 100644 vacuum__gripper_8h__incl.map delete mode 100644 vacuum__gripper_8h__incl.md5 delete mode 100644 vacuum__gripper_8h__incl.png delete mode 100644 vacuum__gripper_8h_source.html delete mode 100644 vacuum__gripper__state_8h.html delete mode 100644 vacuum__gripper__state_8h__dep__incl.map delete mode 100644 vacuum__gripper__state_8h__dep__incl.md5 delete mode 100644 vacuum__gripper__state_8h__dep__incl.png delete mode 100644 vacuum__gripper__state_8h__incl.map delete mode 100644 vacuum__gripper__state_8h__incl.md5 delete mode 100644 vacuum__gripper__state_8h__incl.png delete mode 100644 vacuum__gripper__state_8h_source.html delete mode 100644 vacuum_object_8cpp-example.html diff --git a/Logo_FRANKA_EMIKA_dark.png b/Logo_FRANKA_ROBOTICS_dark.png similarity index 100% rename from Logo_FRANKA_EMIKA_dark.png rename to Logo_FRANKA_ROBOTICS_dark.png diff --git a/annotated.html b/annotated.html deleted file mode 100644 index e96b126d..00000000 --- a/annotated.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -libfranka: Class List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Nfranka
 CCartesianPoseStores values for Cartesian pose motion generation
 CCartesianVelocitiesStores values for Cartesian velocity motion generation
 CCommandExceptionCommandException is thrown if an error occurs during command execution
 CControlExceptionControlException is thrown if an error occurs during motion generation or torque control
 CDurationRepresents a duration with millisecond resolution
 CErrorsEnumerates errors that can occur while controlling a franka::Robot
 CExceptionBase class for all exceptions used by libfranka
 CFinishableHelper type for control and motion generation loops
 CGripperMaintains a network connection to the gripper, provides the current gripper state, and allows the execution of commands
 CGripperStateDescribes the gripper state
 CIncompatibleVersionExceptionIncompatibleVersionException is thrown if the robot does not support this version of libfranka
 CInvalidOperationExceptionInvalidOperationException is thrown if an operation cannot be performed
 CJointPositionsStores values for joint position motion generation
 CJointVelocitiesStores values for joint velocity motion generation
 CModelCalculates poses of joints and dynamic properties of the robot
 CModelExceptionModelException is thrown if an error occurs when loading the model library
 CNetworkExceptionNetworkException is thrown if a connection to the robot cannot be established, or when a timeout occurs
 CProtocolExceptionProtocolException is thrown if the robot returns an incorrect message
 CRealtimeExceptionRealtimeException is thrown if realtime priority cannot be set
 CRecordOne row of the log contains a robot command of timestamp n and a corresponding robot state of timestamp n+1
 CRobotMaintains a network connection to the robot, provides the current robot state, gives access to the model library and allows to control the robot
 CRobotCommandCommand sent to the robot
 CRobotStateDescribes the robot state
 CTorquesStores joint-level torque commands without gravity and friction
 CVacuumGripperMaintains a network connection to the vacuum gripper, provides the current vacuum gripper state, and allows the execution of commands
 CVacuumGripperStateDescribes the vacuum gripper state
 CVirtualWallCuboidParameters of a cuboid used as virtual wall
 CMotionGeneratorAn example showing how to generate a joint pose motion to a goal position
-
-
- - - - diff --git a/cartesian_impedance_control_8cpp-example.html b/cartesian_impedance_control_8cpp-example.html deleted file mode 100644 index 776543f0..00000000 --- a/cartesian_impedance_control_8cpp-example.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -libfranka: cartesian_impedance_control.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
cartesian_impedance_control.cpp
-
-
-

An example showing a simple cartesian impedance controller without inertia shaping that renders a spring damper system where the equilibrium is the initial configuration.After starting the controller try to push the robot around and try different stiffness levels.

-
Warning
collision thresholds are set to high values. Make sure you have the user stop at hand!
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <array>
#include <cmath>
#include <functional>
#include <iostream>
#include <Eigen/Dense>
#include <franka/model.h>
#include <franka/robot.h>
int main(int argc, char** argv) {
// Check whether the required arguments were passed
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
// Compliance parameters
const double translational_stiffness{150.0};
const double rotational_stiffness{10.0};
Eigen::MatrixXd stiffness(6, 6), damping(6, 6);
stiffness.setZero();
stiffness.topLeftCorner(3, 3) << translational_stiffness * Eigen::MatrixXd::Identity(3, 3);
stiffness.bottomRightCorner(3, 3) << rotational_stiffness * Eigen::MatrixXd::Identity(3, 3);
damping.setZero();
damping.topLeftCorner(3, 3) << 2.0 * sqrt(translational_stiffness) *
Eigen::MatrixXd::Identity(3, 3);
damping.bottomRightCorner(3, 3) << 2.0 * sqrt(rotational_stiffness) *
Eigen::MatrixXd::Identity(3, 3);
try {
// connect to robot
franka::Robot robot(argv[1]);
// load the kinematics and dynamics model
franka::Model model = robot.loadModel();
franka::RobotState initial_state = robot.readOnce();
// equilibrium point is the initial position
Eigen::Affine3d initial_transform(Eigen::Matrix4d::Map(initial_state.O_T_EE.data()));
Eigen::Vector3d position_d(initial_transform.translation());
Eigen::Quaterniond orientation_d(initial_transform.linear());
// set collision behavior
robot.setCollisionBehavior({{100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0}},
{{100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0}},
{{100.0, 100.0, 100.0, 100.0, 100.0, 100.0}},
{{100.0, 100.0, 100.0, 100.0, 100.0, 100.0}});
// define callback for the torque control loop
std::function<franka::Torques(const franka::RobotState&, franka::Duration)>
impedance_control_callback = [&](const franka::RobotState& robot_state,
franka::Duration /*duration*/) -> franka::Torques {
// get state variables
std::array<double, 7> coriolis_array = model.coriolis(robot_state);
std::array<double, 42> jacobian_array =
model.zeroJacobian(franka::Frame::kEndEffector, robot_state);
// convert to Eigen
Eigen::Map<const Eigen::Matrix<double, 7, 1>> coriolis(coriolis_array.data());
Eigen::Map<const Eigen::Matrix<double, 6, 7>> jacobian(jacobian_array.data());
Eigen::Map<const Eigen::Matrix<double, 7, 1>> q(robot_state.q.data());
Eigen::Map<const Eigen::Matrix<double, 7, 1>> dq(robot_state.dq.data());
Eigen::Affine3d transform(Eigen::Matrix4d::Map(robot_state.O_T_EE.data()));
Eigen::Vector3d position(transform.translation());
Eigen::Quaterniond orientation(transform.linear());
// compute error to desired equilibrium pose
// position error
Eigen::Matrix<double, 6, 1> error;
error.head(3) << position - position_d;
// orientation error
// "difference" quaternion
if (orientation_d.coeffs().dot(orientation.coeffs()) < 0.0) {
orientation.coeffs() << -orientation.coeffs();
}
// "difference" quaternion
Eigen::Quaterniond error_quaternion(orientation.inverse() * orientation_d);
error.tail(3) << error_quaternion.x(), error_quaternion.y(), error_quaternion.z();
// Transform to base frame
error.tail(3) << -transform.linear() * error.tail(3);
// compute control
Eigen::VectorXd tau_task(7), tau_d(7);
// Spring damper system with damping ratio=1
tau_task << jacobian.transpose() * (-stiffness * error - damping * (jacobian * dq));
tau_d << tau_task + coriolis;
std::array<double, 7> tau_d_array{};
Eigen::VectorXd::Map(&tau_d_array[0], 7) = tau_d;
return tau_d_array;
};
// start real-time control loop
std::cout << "WARNING: Collision thresholds are set to high values. "
<< "Make sure you have the user stop at hand!" << std::endl
<< "After starting try to push the robot and see how it reacts." << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(impedance_control_callback);
} catch (const franka::Exception& ex) {
// print exception
std::cout << ex.what() << std::endl;
}
return 0;
}
- - - - diff --git a/classMotionGenerator-members.html b/classMotionGenerator-members.html deleted file mode 100644 index 5921c5b6..00000000 --- a/classMotionGenerator-members.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
MotionGenerator Member List
-
-
- -

This is the complete list of members for MotionGenerator, including all inherited members.

- - - -
MotionGenerator(double speed_factor, const std::array< double, 7 > q_goal)MotionGenerator
operator()(const franka::RobotState &robot_state, franka::Duration period)MotionGenerator
- - - - diff --git a/classMotionGenerator.html b/classMotionGenerator.html deleted file mode 100644 index 04b70630..00000000 --- a/classMotionGenerator.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - - - - -libfranka: MotionGenerator Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- -
-
- -
-
MotionGenerator Class Reference
-
-
- -

An example showing how to generate a joint pose motion to a goal position. - More...

- -

#include <examples_common.h>

- - - - - - - - -

-Public Member Functions

 MotionGenerator (double speed_factor, const std::array< double, 7 > q_goal)
 Creates a new MotionGenerator instance for a target q. More...
 
franka::JointPositions operator() (const franka::RobotState &robot_state, franka::Duration period)
 Sends joint position calculations. More...
 
-

Detailed Description

-

An example showing how to generate a joint pose motion to a goal position.

-

Adapted from: Wisama Khalil and Etienne Dombre. 2002. Modeling, Identification and Control of Robots (Kogan Page Science Paper edition).

-
Examples:
communication_test.cpp, generate_cartesian_pose_motion.cpp, generate_cartesian_velocity_motion.cpp, generate_consecutive_motions.cpp, generate_elbow_motion.cpp, generate_joint_position_motion.cpp, generate_joint_velocity_motion.cpp, joint_impedance_control.cpp, joint_point_to_point_motion.cpp, and motion_with_control.cpp.
-

Constructor & Destructor Documentation

- -

◆ MotionGenerator()

- -
-
- - - - - - - - - - - - - - - - - - -
MotionGenerator::MotionGenerator (double speed_factor,
const std::array< double, 7 > q_goal 
)
-
- -

Creates a new MotionGenerator instance for a target q.

-
Parameters
- - - -
[in]speed_factorGeneral speed factor in range [0, 1].
[in]q_goalTarget joint positions.
-
-
- -
-
-

Member Function Documentation

- -

◆ operator()()

- -
-
- - - - - - - - - - - - - - - - - - -
franka::JointPositions MotionGenerator::operator() (const franka::RobotStaterobot_state,
franka::Duration period 
)
-
- -

Sends joint position calculations.

-
Parameters
- - - -
[in]robot_stateCurrent state of the robot.
[in]periodDuration of execution.
-
-
-
Returns
Joint positions for use inside a control loop.
- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/classes.html b/classes.html deleted file mode 100644 index bb766a9f..00000000 --- a/classes.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -libfranka: Class Index - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
-
c | d | e | f | g | i | j | m | n | p | r | t | v
- - - - - - - - - - - - - - - -
  c  
-
Exception (franka)   InvalidOperationException (franka)   
  p  
-
  v  
-
  f  
-
  j  
-
CartesianPose (franka)   ProtocolException (franka)   VacuumGripper (franka)   
CartesianVelocities (franka)   Finishable (franka)   JointPositions (franka)   
  r  
-
VacuumGripperState (franka)   
CommandException (franka)   
  g  
-
JointVelocities (franka)   VirtualWallCuboid (franka)   
ControlException (franka)   
  m  
-
RealtimeException (franka)   
  d  
-
Gripper (franka)   Record (franka)   
GripperState (franka)   Model (franka)   Robot (franka)   
Duration (franka)   
  i  
-
ModelException (franka)   RobotCommand (franka)   
  e  
-
MotionGenerator   RobotState (franka)   
IncompatibleVersionException (franka)   
  n  
-
  t  
-
Errors (franka)   
NetworkException (franka)   Torques (franka)   
-
c | d | e | f | g | i | j | m | n | p | r | t | v
-
- - - - diff --git a/classfranka_1_1CartesianPose-members.html b/classfranka_1_1CartesianPose-members.html deleted file mode 100644 index ffbf6923..00000000 --- a/classfranka_1_1CartesianPose-members.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::CartesianPose Member List
-
-
- -

This is the complete list of members for franka::CartesianPose, including all inherited members.

- - - - - - - - - -
CartesianPose(const std::array< double, 16 > &cartesian_pose) noexceptfranka::CartesianPose
CartesianPose(const std::array< double, 16 > &cartesian_pose, const std::array< double, 2 > &elbow) noexceptfranka::CartesianPose
CartesianPose(std::initializer_list< double > cartesian_pose)franka::CartesianPose
CartesianPose(std::initializer_list< double > cartesian_pose, std::initializer_list< double > elbow)franka::CartesianPose
elbowfranka::CartesianPose
hasElbow() const noexceptfranka::CartesianPose
motion_finishedfranka::Finishable
O_T_EEfranka::CartesianPose
- - - - diff --git a/classfranka_1_1CartesianPose.html b/classfranka_1_1CartesianPose.html deleted file mode 100644 index 2019f644..00000000 --- a/classfranka_1_1CartesianPose.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - - -libfranka: franka::CartesianPose Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::CartesianPose Class Reference
-
-
- -

Stores values for Cartesian pose motion generation. - More...

- -

#include <control_types.h>

-
-Inheritance diagram for franka::CartesianPose:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for franka::CartesianPose:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - -

-Public Member Functions

 CartesianPose (const std::array< double, 16 > &cartesian_pose) noexcept
 Creates a new CartesianPose instance. More...
 
 CartesianPose (const std::array< double, 16 > &cartesian_pose, const std::array< double, 2 > &elbow) noexcept
 Creates a new CartesianPose instance. More...
 
 CartesianPose (std::initializer_list< double > cartesian_pose)
 Creates a new CartesianPose instance. More...
 
 CartesianPose (std::initializer_list< double > cartesian_pose, std::initializer_list< double > elbow)
 Creates a new CartesianPose instance. More...
 
bool hasElbow () const noexcept
 Determines whether there is a stored elbow configuration. More...
 
- - - - - - - - - - - -

-Public Attributes

std::array< double, 16 > O_T_EE {}
 Homogeneous transformation \(^O{\mathbf{T}_{EE}}_{d}\), column major, that transforms from the end effector frame \(EE\) to base frame \(O\). More...
 
std::array< double, 2 > elbow {}
 Elbow configuration. More...
 
- Public Attributes inherited from franka::Finishable
-bool motion_finished = false
 Determines whether to finish a currently running motion.
 
-

Detailed Description

-

Stores values for Cartesian pose motion generation.

-
Examples:
generate_cartesian_pose_motion.cpp, generate_elbow_motion.cpp, and joint_impedance_control.cpp.
-

Constructor & Destructor Documentation

- -

◆ CartesianPose() [1/4]

- -
-
- - - - - -
- - - - - - - - -
franka::CartesianPose::CartesianPose (const std::array< double, 16 > & cartesian_pose)
-
-noexcept
-
- -

Creates a new CartesianPose instance.

-
Parameters
- - -
[in]cartesian_poseDesired vectorized homogeneous transformation matrix \(^O {\mathbf{T}_{EE}}_{d}\), column major, that transforms from the end effector frame \(EE\) to base frame \(O\). Equivalently, it is the desired end effector pose in base frame.
-
-
- -
-
- -

◆ CartesianPose() [2/4]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
franka::CartesianPose::CartesianPose (const std::array< double, 16 > & cartesian_pose,
const std::array< double, 2 > & elbow 
)
-
-noexcept
-
- -

Creates a new CartesianPose instance.

-
Parameters
- - - -
[in]cartesian_poseDesired vectorized homogeneous transformation matrix \(^O {\mathbf{T}_{EE}}_{d}\), column major, that transforms from the end effector frame \(EE\) to base frame \(O\). Equivalently, it is the desired end effector pose in base frame.
[in]elbowElbow configuration (see elbow member for more details).
-
-
- -
-
- -

◆ CartesianPose() [3/4]

- -
-
- - - - - - - - -
franka::CartesianPose::CartesianPose (std::initializer_list< double > cartesian_pose)
-
- -

Creates a new CartesianPose instance.

-
Parameters
- - -
[in]cartesian_poseDesired vectorized homogeneous transformation matrix \(^O {\mathbf{T}_{EE}}_{d}\), column major, that transforms from the end effector frame \(EE\) to base frame \(O\). Equivalently, it is the desired end effector pose in base frame.
-
-
-
Exceptions
- - -
std::invalid_argumentif the given initializer list has an invalid number of arguments.
-
-
- -
-
- -

◆ CartesianPose() [4/4]

- -
-
- - - - - - - - - - - - - - - - - - -
franka::CartesianPose::CartesianPose (std::initializer_list< double > cartesian_pose,
std::initializer_list< double > elbow 
)
-
- -

Creates a new CartesianPose instance.

-
Parameters
- - - -
[in]cartesian_poseDesired vectorized homogeneous transformation matrix \(^O {\mathbf{T}_{EE}}_{d}\), column major, that transforms from the end effector frame \(EE\) to base frame \(O\). Equivalently, it is the desired end effector pose in base frame.
[in]elbowElbow configuration (see elbow member for more details).
-
-
-
Exceptions
- - -
std::invalid_argumentif a given initializer list has an invalid number of arguments.
-
-
- -
-
-

Member Function Documentation

- -

◆ hasElbow()

- -
-
- - - - - -
- - - - - - - -
bool franka::CartesianPose::hasElbow () const
-
-noexcept
-
- -

Determines whether there is a stored elbow configuration.

-
Returns
True if there is a stored elbow configuration, false otherwise.
- -
-
-

Member Data Documentation

- -

◆ elbow

- -
-
- - - - -
std::array<double, 2> franka::CartesianPose::elbow {}
-
- -

Elbow configuration.

-

The values of the array are:

    -
  • [0] Position of the 3rd joint in [rad].
  • -
  • [1] Sign of the 4th joint. Can be +1 or -1.
  • -
- -
-
- -

◆ O_T_EE

- -
-
- - - - -
std::array<double, 16> franka::CartesianPose::O_T_EE {}
-
- -

Homogeneous transformation \(^O{\mathbf{T}_{EE}}_{d}\), column major, that transforms from the end effector frame \(EE\) to base frame \(O\).

-

Equivalently, it is the desired end effector pose in base frame.

-
Examples:
joint_impedance_control.cpp.
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1CartesianPose__coll__graph.map b/classfranka_1_1CartesianPose__coll__graph.map deleted file mode 100644 index 9417f3d4..00000000 --- a/classfranka_1_1CartesianPose__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1CartesianPose__coll__graph.md5 b/classfranka_1_1CartesianPose__coll__graph.md5 deleted file mode 100644 index 96026a10..00000000 --- a/classfranka_1_1CartesianPose__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -a9137f421ac5a93eec21d3ded5fc8deb \ No newline at end of file diff --git a/classfranka_1_1CartesianPose__coll__graph.png b/classfranka_1_1CartesianPose__coll__graph.png deleted file mode 100644 index 9efbe52228995796929d34b67ef80f8cc56a9943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3497 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 - - diff --git a/classfranka_1_1CartesianPose__inherit__graph.md5 b/classfranka_1_1CartesianPose__inherit__graph.md5 deleted file mode 100644 index 44126b49..00000000 --- a/classfranka_1_1CartesianPose__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -afaf3e33d6cc699a015502f7abeafdba \ No newline at end of file diff --git a/classfranka_1_1CartesianPose__inherit__graph.png b/classfranka_1_1CartesianPose__inherit__graph.png deleted file mode 100644 index 9efbe52228995796929d34b67ef80f8cc56a9943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3497 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 - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::CartesianVelocities Member List
-
-
- -

This is the complete list of members for franka::CartesianVelocities, including all inherited members.

- - - - - - - - - -
CartesianVelocities(const std::array< double, 6 > &cartesian_velocities) noexceptfranka::CartesianVelocities
CartesianVelocities(const std::array< double, 6 > &cartesian_velocities, const std::array< double, 2 > &elbow) noexceptfranka::CartesianVelocities
CartesianVelocities(std::initializer_list< double > cartesian_velocities)franka::CartesianVelocities
CartesianVelocities(std::initializer_list< double > cartesian_velocities, std::initializer_list< double > elbow)franka::CartesianVelocities
elbowfranka::CartesianVelocities
hasElbow() const noexceptfranka::CartesianVelocities
motion_finishedfranka::Finishable
O_dP_EEfranka::CartesianVelocities
- - - - diff --git a/classfranka_1_1CartesianVelocities.html b/classfranka_1_1CartesianVelocities.html deleted file mode 100644 index 71308e5f..00000000 --- a/classfranka_1_1CartesianVelocities.html +++ /dev/null @@ -1,372 +0,0 @@ - - - - - - - -libfranka: franka::CartesianVelocities Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::CartesianVelocities Class Reference
-
-
- -

Stores values for Cartesian velocity motion generation. - More...

- -

#include <control_types.h>

-
-Inheritance diagram for franka::CartesianVelocities:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for franka::CartesianVelocities:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - - - - - - - - - - -

-Public Member Functions

 CartesianVelocities (const std::array< double, 6 > &cartesian_velocities) noexcept
 Creates a new CartesianVelocities instance. More...
 
 CartesianVelocities (const std::array< double, 6 > &cartesian_velocities, const std::array< double, 2 > &elbow) noexcept
 Creates a new CartesianVelocities instance. More...
 
 CartesianVelocities (std::initializer_list< double > cartesian_velocities)
 Creates a new CartesianVelocities instance. More...
 
 CartesianVelocities (std::initializer_list< double > cartesian_velocities, std::initializer_list< double > elbow)
 Creates a new CartesianVelocities instance. More...
 
bool hasElbow () const noexcept
 Determines whether there is a stored elbow configuration. More...
 
- - - - - - - - - - - -

-Public Attributes

std::array< double, 6 > O_dP_EE {}
 Desired Cartesian velocity w.r.t. More...
 
std::array< double, 2 > elbow {}
 Elbow configuration. More...
 
- Public Attributes inherited from franka::Finishable
-bool motion_finished = false
 Determines whether to finish a currently running motion.
 
-

Detailed Description

-

Stores values for Cartesian velocity motion generation.

-
Examples:
generate_cartesian_velocity_motion.cpp.
-

Constructor & Destructor Documentation

- -

◆ CartesianVelocities() [1/4]

- -
-
- - - - - -
- - - - - - - - -
franka::CartesianVelocities::CartesianVelocities (const std::array< double, 6 > & cartesian_velocities)
-
-noexcept
-
- -

Creates a new CartesianVelocities instance.

-
Parameters
- - -
[in]cartesian_velocitiesDesired Cartesian velocity w.r.t. O-frame {dx in [m/s], dy in [m/s], dz in [m/s], omegax in [rad/s], omegay in [rad/s], omegaz in [rad/s]}.
-
-
- -
-
- -

◆ CartesianVelocities() [2/4]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
franka::CartesianVelocities::CartesianVelocities (const std::array< double, 6 > & cartesian_velocities,
const std::array< double, 2 > & elbow 
)
-
-noexcept
-
- -

Creates a new CartesianVelocities instance.

-
Parameters
- - - -
[in]cartesian_velocitiesDesired Cartesian velocity w.r.t. O-frame {dx in [m/s], dy in [m/s], dz in [m/s], omegax in [rad/s], omegay in [rad/s], omegaz in [rad/s]}.
[in]elbowElbow configuration (see elbow member for more details).
-
-
- -
-
- -

◆ CartesianVelocities() [3/4]

- -
-
- - - - - - - - -
franka::CartesianVelocities::CartesianVelocities (std::initializer_list< double > cartesian_velocities)
-
- -

Creates a new CartesianVelocities instance.

-
Parameters
- - -
[in]cartesian_velocitiesDesired Cartesian velocity w.r.t. O-frame {dx in [m/s], dy in [m/s], dz in [m/s], omegax in [rad/s], omegay in [rad/s], omegaz in [rad/s]}.
-
-
-
Exceptions
- - -
std::invalid_argumentif the given initializer list has an invalid number of arguments.
-
-
- -
-
- -

◆ CartesianVelocities() [4/4]

- -
-
- - - - - - - - - - - - - - - - - - -
franka::CartesianVelocities::CartesianVelocities (std::initializer_list< double > cartesian_velocities,
std::initializer_list< double > elbow 
)
-
- -

Creates a new CartesianVelocities instance.

-
Parameters
- - - -
[in]cartesian_velocitiesDesired Cartesian velocity w.r.t. O-frame {dx in [m/s], dy in [m/s], dz in [m/s], omegax in [rad/s], omegay in [rad/s], omegaz in [rad/s]}.
[in]elbowElbow configuration (see elbow member for more details).
-
-
-
Exceptions
- - -
std::invalid_argumentif a given initializer list has an invalid number of arguments.
-
-
- -
-
-

Member Function Documentation

- -

◆ hasElbow()

- -
-
- - - - - -
- - - - - - - -
bool franka::CartesianVelocities::hasElbow () const
-
-noexcept
-
- -

Determines whether there is a stored elbow configuration.

-
Returns
True if there is a stored elbow configuration, false otherwise.
- -
-
-

Member Data Documentation

- -

◆ elbow

- -
-
- - - - -
std::array<double, 2> franka::CartesianVelocities::elbow {}
-
- -

Elbow configuration.

-

The values of the array are:

    -
  • [0] Position of the 3rd joint in [rad].
  • -
  • [1] Sign of the 4th joint. Can be +1 or -1.
  • -
- -
-
- -

◆ O_dP_EE

- -
-
- - - - -
std::array<double, 6> franka::CartesianVelocities::O_dP_EE {}
-
- -

Desired Cartesian velocity w.r.t.

-

O-frame {dx in [m/s], dy in [m/s], dz in [m/s], omegax in [rad/s], omegay in [rad/s], omegaz in [rad/s]}.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1CartesianVelocities__coll__graph.map b/classfranka_1_1CartesianVelocities__coll__graph.map deleted file mode 100644 index d0c32f1e..00000000 --- a/classfranka_1_1CartesianVelocities__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1CartesianVelocities__coll__graph.md5 b/classfranka_1_1CartesianVelocities__coll__graph.md5 deleted file mode 100644 index 2e575065..00000000 --- a/classfranka_1_1CartesianVelocities__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -eb7b3392f46b9f2910c56908292749b6 \ No newline at end of file diff --git a/classfranka_1_1CartesianVelocities__coll__graph.png b/classfranka_1_1CartesianVelocities__coll__graph.png deleted file mode 100644 index 44af0388176cdb06d869fa1d79263e15800a7a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3804 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 PDxHymxqgkFTim|@`+9Zr diff --git a/classfranka_1_1CartesianVelocities__inherit__graph.map b/classfranka_1_1CartesianVelocities__inherit__graph.map deleted file mode 100644 index d0c32f1e..00000000 --- a/classfranka_1_1CartesianVelocities__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1CartesianVelocities__inherit__graph.md5 b/classfranka_1_1CartesianVelocities__inherit__graph.md5 deleted file mode 100644 index a5a171c5..00000000 --- a/classfranka_1_1CartesianVelocities__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4b99121f517cbc2b5848d0a0a7aa9e1d \ No newline at end of file diff --git a/classfranka_1_1CartesianVelocities__inherit__graph.png b/classfranka_1_1CartesianVelocities__inherit__graph.png deleted file mode 100644 index 44af0388176cdb06d869fa1d79263e15800a7a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3804 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 PDxHymxqgkFTim|@`+9Zr diff --git a/classfranka_1_1Duration-members.html b/classfranka_1_1Duration-members.html deleted file mode 100644 index 516a129a..00000000 --- a/classfranka_1_1Duration-members.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::Duration Member List
-
-
- -

This is the complete list of members for franka::Duration, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Duration() noexceptfranka::Duration
Duration(uint64_t milliseconds) noexceptfranka::Durationexplicit
Duration(std::chrono::duration< uint64_t, std::milli > duration) noexceptfranka::Duration
Duration(const Duration &)=defaultfranka::Duration
operator std::chrono::duration< uint64_t, std::milli >() const noexceptfranka::Duration
operator!=(const Duration &rhs) const noexceptfranka::Duration
operator%(const Duration &rhs) const noexceptfranka::Duration
operator%(uint64_t rhs) const noexceptfranka::Duration
operator%=(const Duration &rhs) noexceptfranka::Duration
operator%=(uint64_t rhs) noexceptfranka::Duration
operator*(uint64_t rhs) const noexceptfranka::Duration
operator*=(uint64_t rhs) noexceptfranka::Duration
operator+(const Duration &rhs) const noexceptfranka::Duration
operator+=(const Duration &rhs) noexceptfranka::Duration
operator-(const Duration &rhs) const noexceptfranka::Duration
operator-=(const Duration &rhs) noexceptfranka::Duration
operator/(const Duration &rhs) const noexceptfranka::Duration
operator/(uint64_t rhs) const noexceptfranka::Duration
operator/=(uint64_t rhs) noexceptfranka::Duration
operator<(const Duration &rhs) const noexceptfranka::Duration
operator<=(const Duration &rhs) const noexceptfranka::Duration
operator=(const Duration &)=defaultfranka::Duration
operator==(const Duration &rhs) const noexceptfranka::Duration
operator>(const Duration &rhs) const noexceptfranka::Duration
operator>=(const Duration &rhs) const noexceptfranka::Duration
toMSec() const noexceptfranka::Duration
toSec() const noexceptfranka::Duration
- - - - diff --git a/classfranka_1_1Duration.html b/classfranka_1_1Duration.html deleted file mode 100644 index 43d285c4..00000000 --- a/classfranka_1_1Duration.html +++ /dev/null @@ -1,1039 +0,0 @@ - - - - - - - -libfranka: franka::Duration Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::Duration Class Reference
-
-
- -

Represents a duration with millisecond resolution. - More...

- -

#include <duration.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

Duration () noexcept
 Creates a new Duration instance with zero milliseconds.
 
 Duration (uint64_t milliseconds) noexcept
 Creates a new Duration instance from the given number of milliseconds. More...
 
 Duration (std::chrono::duration< uint64_t, std::milli > duration) noexcept
 Creates a new Duration instance from an std::chrono::duration. More...
 
Duration (const Duration &)=default
 Creates a copy of a Duration instance.
 
Durationoperator= (const Duration &)=default
 Assigns the contents of one Duration to another. More...
 
 operator std::chrono::duration< uint64_t, std::milli > () const noexcept
 Returns the stored duration as an std::chrono::duration. More...
 
double toSec () const noexcept
 Returns the stored duration in \([s]\). More...
 
uint64_t toMSec () const noexcept
 Returns the stored duration in \([ms]\). More...
 
Arithmetic operators
Duration operator+ (const Duration &rhs) const noexcept
 Performs addition. More...
 
Durationoperator+= (const Duration &rhs) noexcept
 Performs addition. More...
 
Duration operator- (const Duration &rhs) const noexcept
 Performs subtraction. More...
 
Durationoperator-= (const Duration &rhs) noexcept
 Performs subtraction. More...
 
Duration operator* (uint64_t rhs) const noexcept
 Performs multiplication. More...
 
Durationoperator*= (uint64_t rhs) noexcept
 Performs multiplication. More...
 
uint64_t operator/ (const Duration &rhs) const noexcept
 Performs division. More...
 
Duration operator/ (uint64_t rhs) const noexcept
 Performs division. More...
 
Durationoperator/= (uint64_t rhs) noexcept
 Performs division. More...
 
Duration operator% (const Duration &rhs) const noexcept
 Performs the modulo operation. More...
 
Duration operator% (uint64_t rhs) const noexcept
 Performs the modulo operation. More...
 
Durationoperator%= (const Duration &rhs) noexcept
 Performs the modulo operation. More...
 
Durationoperator%= (uint64_t rhs) noexcept
 Performs the modulo operation. More...
 
Comparison operators
bool operator== (const Duration &rhs) const noexcept
 Compares two durations for equality. More...
 
bool operator!= (const Duration &rhs) const noexcept
 Compares two durations for inequality. More...
 
bool operator< (const Duration &rhs) const noexcept
 Compares two durations. More...
 
bool operator<= (const Duration &rhs) const noexcept
 Compares two durations. More...
 
bool operator> (const Duration &rhs) const noexcept
 Compares two durations. More...
 
bool operator>= (const Duration &rhs) const noexcept
 Compares two durations. More...
 
-

Detailed Description

-

Constructor & Destructor Documentation

- -

◆ Duration() [1/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Duration::Duration (uint64_t milliseconds)
-
-explicitnoexcept
-
- -

Creates a new Duration instance from the given number of milliseconds.

-
Parameters
- - -
[in]millisecondsNumber of milliseconds.
-
-
- -
-
- -

◆ Duration() [2/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Duration::Duration (std::chrono::duration< uint64_t, std::milli > duration)
-
-noexcept
-
- -

Creates a new Duration instance from an std::chrono::duration.

-
Parameters
- - -
[in]durationDuration.
-
-
- -
-
-

Member Function Documentation

- -

◆ operator std::chrono::duration< uint64_t, std::milli >()

- -
-
- - - - - -
- - - - - - - -
franka::Duration::operator std::chrono::duration< uint64_t, std::milli > () const
-
-noexcept
-
- -

Returns the stored duration as an std::chrono::duration.

-
Returns
Duration as std::chrono::duration.
- -
-
- -

◆ operator!=()

- -
-
- - - - - -
- - - - - - - - -
bool franka::Duration::operator!= (const Durationrhs) const
-
-noexcept
-
- -

Compares two durations for inequality.

-
Parameters
- - -
[in]rhsRight-hand side of the comparison.
-
-
-
Returns
True if the duration are not equal, false otherwise.
- -
-
- -

◆ operator%() [1/2]

- -
-
- - - - - -
- - - - - - - - -
Duration franka::Duration::operator% (const Durationrhs) const
-
-noexcept
-
- -

Performs the modulo operation.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
Result of the operation.
- -
-
- -

◆ operator%() [2/2]

- -
-
- - - - - -
- - - - - - - - -
Duration franka::Duration::operator% (uint64_t rhs) const
-
-noexcept
-
- -

Performs the modulo operation.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
Result of the operation.
- -
-
- -

◆ operator%=() [1/2]

- -
-
- - - - - -
- - - - - - - - -
Duration& franka::Duration::operator%= (const Durationrhs)
-
-noexcept
-
- -

Performs the modulo operation.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
This duration.
- -
-
- -

◆ operator%=() [2/2]

- -
-
- - - - - -
- - - - - - - - -
Duration& franka::Duration::operator%= (uint64_t rhs)
-
-noexcept
-
- -

Performs the modulo operation.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
This duration.
- -
-
- -

◆ operator*()

- -
-
- - - - - -
- - - - - - - - -
Duration franka::Duration::operator* (uint64_t rhs) const
-
-noexcept
-
- -

Performs multiplication.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
Result of the operation.
- -
-
- -

◆ operator*=()

- -
-
- - - - - -
- - - - - - - - -
Duration& franka::Duration::operator*= (uint64_t rhs)
-
-noexcept
-
- -

Performs multiplication.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
This duration.
- -
-
- -

◆ operator+()

- -
-
- - - - - -
- - - - - - - - -
Duration franka::Duration::operator+ (const Durationrhs) const
-
-noexcept
-
- -

Performs addition.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
Result of the operation.
- -
-
- -

◆ operator+=()

- -
-
- - - - - -
- - - - - - - - -
Duration& franka::Duration::operator+= (const Durationrhs)
-
-noexcept
-
- -

Performs addition.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
This duration.
- -
-
- -

◆ operator-()

- -
-
- - - - - -
- - - - - - - - -
Duration franka::Duration::operator- (const Durationrhs) const
-
-noexcept
-
- -

Performs subtraction.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
Result of the operation.
- -
-
- -

◆ operator-=()

- -
-
- - - - - -
- - - - - - - - -
Duration& franka::Duration::operator-= (const Durationrhs)
-
-noexcept
-
- -

Performs subtraction.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
This duration.
- -
-
- -

◆ operator/() [1/2]

- -
-
- - - - - -
- - - - - - - - -
uint64_t franka::Duration::operator/ (const Durationrhs) const
-
-noexcept
-
- -

Performs division.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
Result of the operation.
- -
-
- -

◆ operator/() [2/2]

- -
-
- - - - - -
- - - - - - - - -
Duration franka::Duration::operator/ (uint64_t rhs) const
-
-noexcept
-
- -

Performs division.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
Result of the operation.
- -
-
- -

◆ operator/=()

- -
-
- - - - - -
- - - - - - - - -
Duration& franka::Duration::operator/= (uint64_t rhs)
-
-noexcept
-
- -

Performs division.

-
Parameters
- - -
[in]rhsRight-hand side of the operation.
-
-
-
Returns
This duration.
- -
-
- -

◆ operator<()

- -
-
- - - - - -
- - - - - - - - -
bool franka::Duration::operator< (const Durationrhs) const
-
-noexcept
-
- -

Compares two durations.

-
Parameters
- - -
[in]rhsRight-hand side of the comparison.
-
-
-
Returns
True if this duration is shorter than rhs, false otherwise.
- -
-
- -

◆ operator<=()

- -
-
- - - - - -
- - - - - - - - -
bool franka::Duration::operator<= (const Durationrhs) const
-
-noexcept
-
- -

Compares two durations.

-
Parameters
- - -
[in]rhsRight-hand side of the comparison.
-
-
-
Returns
True if this duration is shorter than or equal to rhs, false otherwise.
- -
-
- -

◆ operator=()

- -
-
- - - - - -
- - - - - - - - -
Duration& franka::Duration::operator= (const Duration)
-
-default
-
- -

Assigns the contents of one Duration to another.

-
Returns
Result of the operation.
- -
-
- -

◆ operator==()

- -
-
- - - - - -
- - - - - - - - -
bool franka::Duration::operator== (const Durationrhs) const
-
-noexcept
-
- -

Compares two durations for equality.

-
Parameters
- - -
[in]rhsRight-hand side of the comparison.
-
-
-
Returns
True if the duration are equal, false otherwise.
- -
-
- -

◆ operator>()

- -
-
- - - - - -
- - - - - - - - -
bool franka::Duration::operator> (const Durationrhs) const
-
-noexcept
-
- -

Compares two durations.

-
Parameters
- - -
[in]rhsRight-hand side of the comparison.
-
-
-
Returns
True if this duration is longer than rhs, false otherwise.
- -
-
- -

◆ operator>=()

- -
-
- - - - - -
- - - - - - - - -
bool franka::Duration::operator>= (const Durationrhs) const
-
-noexcept
-
- -

Compares two durations.

-
Parameters
- - -
[in]rhsRight-hand side of the comparison.
-
-
-
Returns
True if this duration is longer than or equal to rhs, false otherwise.
- -
-
- -

◆ toMSec()

- -
-
- - - - - -
- - - - - - - -
uint64_t franka::Duration::toMSec () const
-
-noexcept
-
- -

Returns the stored duration in \([ms]\).

-
Returns
Duration in \([ms]\).
-
Examples:
communication_test.cpp.
-
-
-
- -

◆ toSec()

- -
-
- - - - - -
- - - - - - - -
double franka::Duration::toSec () const
-
-noexcept
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1Gripper-members.html b/classfranka_1_1Gripper-members.html deleted file mode 100644 index 96b3a81c..00000000 --- a/classfranka_1_1Gripper-members.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::Gripper Member List
-
-
- -

This is the complete list of members for franka::Gripper, including all inherited members.

- - - - - - - - - - - - -
grasp(double width, double speed, double force, double epsilon_inner=0.005, double epsilon_outer=0.005) constfranka::Gripper
Gripper(const std::string &franka_address)franka::Gripperexplicit
Gripper(Gripper &&gripper) noexceptfranka::Gripper
homing() constfranka::Gripper
move(double width, double speed) constfranka::Gripper
operator=(Gripper &&gripper) noexceptfranka::Gripper
readOnce() constfranka::Gripper
ServerVersion typedeffranka::Gripper
serverVersion() const noexceptfranka::Gripper
stop() constfranka::Gripper
~Gripper() noexceptfranka::Gripper
- - - - diff --git a/classfranka_1_1Gripper.html b/classfranka_1_1Gripper.html deleted file mode 100644 index 8c2de47a..00000000 --- a/classfranka_1_1Gripper.html +++ /dev/null @@ -1,483 +0,0 @@ - - - - - - - -libfranka: franka::Gripper Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::Gripper Class Reference
-
-
- -

Maintains a network connection to the gripper, provides the current gripper state, and allows the execution of commands. - More...

- -

#include <gripper.h>

- - - - - -

-Public Types

-using ServerVersion = uint16_t
 Version of the gripper server.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Gripper (const std::string &franka_address)
 Establishes a connection with a gripper connected to a robot. More...
 
 Gripper (Gripper &&gripper) noexcept
 Move-constructs a new Gripper instance. More...
 
Gripperoperator= (Gripper &&gripper) noexcept
 Move-assigns this Gripper from another Gripper instance. More...
 
~Gripper () noexcept
 Closes the connection.
 
bool homing () const
 Performs homing of the gripper. More...
 
bool grasp (double width, double speed, double force, double epsilon_inner=0.005, double epsilon_outer=0.005) const
 Grasps an object. More...
 
bool move (double width, double speed) const
 Moves the gripper fingers to a specified width. More...
 
bool stop () const
 Stops a currently running gripper move or grasp. More...
 
GripperState readOnce () const
 Waits for a gripper state update and returns it. More...
 
ServerVersion serverVersion () const noexcept
 Returns the software version reported by the connected server. More...
 
-

Detailed Description

-

Maintains a network connection to the gripper, provides the current gripper state, and allows the execution of commands.

-
Note
The members of this class are threadsafe.
-
Examples:
grasp_object.cpp.
-

Constructor & Destructor Documentation

- -

◆ Gripper() [1/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Gripper::Gripper (const std::string & franka_address)
-
-explicit
-
- -

Establishes a connection with a gripper connected to a robot.

-
Parameters
- - -
[in]franka_addressIP/hostname of the robot the gripper is connected to.
-
-
-
Exceptions
- - - -
NetworkExceptionif the connection is unsuccessful.
IncompatibleVersionExceptionif this version of libfranka is not supported.
-
-
- -
-
- -

◆ Gripper() [2/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Gripper::Gripper (Gripper && gripper)
-
-noexcept
-
- -

Move-constructs a new Gripper instance.

-
Parameters
- - -
[in]gripperOther Gripper instance.
-
-
- -
-
-

Member Function Documentation

- -

◆ grasp()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
bool franka::Gripper::grasp (double width,
double speed,
double force,
double epsilon_inner = 0.005,
double epsilon_outer = 0.005 
) const
-
- -

Grasps an object.

-

An object is considered grasped if the distance \(d\) between the gripper fingers satisfies \((\text{width} - \text{epsilon_inner}) < d < (\text{width} + \text{epsilon_outer})\).

-
Parameters
- - - - - - -
[in]widthSize of the object to grasp. [m]
[in]speedClosing speed. [m/s]
[in]forceGrasping force. [N]
[in]epsilon_innerMaximum tolerated deviation when the actual grasped width is smaller than the commanded grasp width.
[in]epsilon_outerMaximum tolerated deviation when the actual grasped width is larger than the commanded grasp width.
-
-
-
Returns
True if an object has been grasped, false otherwise.
-
Exceptions
- - - -
CommandExceptionif an error occurred.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
grasp_object.cpp.
-
-
-
- -

◆ homing()

- -
-
- - - - - - - -
bool franka::Gripper::homing () const
-
- -

Performs homing of the gripper.

-

After changing the gripper fingers, a homing needs to be done. This is needed to estimate the maximum grasping width.

-
Returns
True if command was successful, false otherwise.
-
Exceptions
- - - -
CommandExceptionif an error occurred.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
See also
GripperState for the maximum grasping width.
-
Examples:
grasp_object.cpp.
-
-
-
- -

◆ move()

- -
-
- - - - - - - - - - - - - - - - - - -
bool franka::Gripper::move (double width,
double speed 
) const
-
- -

Moves the gripper fingers to a specified width.

-
Parameters
- - - -
[in]widthIntended opening width. [m]
[in]speedClosing speed. [m/s]
-
-
-
Returns
True if command was successful, false otherwise.
-
Exceptions
- - - -
CommandExceptionif an error occurred.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
- -
-
- -

◆ operator=()

- -
-
- - - - - -
- - - - - - - - -
Gripper& franka::Gripper::operator= (Gripper && gripper)
-
-noexcept
-
- -

Move-assigns this Gripper from another Gripper instance.

-
Parameters
- - -
[in]gripperOther Gripper instance.
-
-
-
Returns
Model instance.
- -
-
- -

◆ readOnce()

- -
-
- - - - - - - -
GripperState franka::Gripper::readOnce () const
-
- -

Waits for a gripper state update and returns it.

-
Returns
Current gripper state.
-
Exceptions
- - - -
NetworkExceptionif the connection is lost, e.g. after a timeout.
InvalidOperationExceptionif another readOnce is already running.
-
-
-
Examples:
grasp_object.cpp.
-
-
-
- -

◆ serverVersion()

- -
-
- - - - - -
- - - - - - - -
ServerVersion franka::Gripper::serverVersion () const
-
-noexcept
-
- -

Returns the software version reported by the connected server.

-
Returns
Software version of the connected server.
- -
-
- -

◆ stop()

- -
-
- - - - - - - -
bool franka::Gripper::stop () const
-
- -

Stops a currently running gripper move or grasp.

-
Returns
True if command was successful, false otherwise.
-
Exceptions
- - - -
CommandExceptionif an error occurred.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
grasp_object.cpp.
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1JointPositions-members.html b/classfranka_1_1JointPositions-members.html deleted file mode 100644 index 3aa5a2cc..00000000 --- a/classfranka_1_1JointPositions-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::JointPositions Member List
-
-
- -

This is the complete list of members for franka::JointPositions, including all inherited members.

- - - - - -
JointPositions(const std::array< double, 7 > &joint_positions) noexceptfranka::JointPositions
JointPositions(std::initializer_list< double > joint_positions)franka::JointPositions
motion_finishedfranka::Finishable
qfranka::JointPositions
- - - - diff --git a/classfranka_1_1JointPositions.html b/classfranka_1_1JointPositions.html deleted file mode 100644 index 227f8ef1..00000000 --- a/classfranka_1_1JointPositions.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -libfranka: franka::JointPositions Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::JointPositions Class Reference
-
-
- -

Stores values for joint position motion generation. - More...

- -

#include <control_types.h>

-
-Inheritance diagram for franka::JointPositions:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for franka::JointPositions:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - -

-Public Member Functions

 JointPositions (const std::array< double, 7 > &joint_positions) noexcept
 Creates a new JointPositions instance. More...
 
 JointPositions (std::initializer_list< double > joint_positions)
 Creates a new JointPositions instance. More...
 
- - - - - - - - -

-Public Attributes

-std::array< double, 7 > q {}
 Desired joint angles in [rad].
 
- Public Attributes inherited from franka::Finishable
-bool motion_finished = false
 Determines whether to finish a currently running motion.
 
-

Detailed Description

-

Stores values for joint position motion generation.

-
Examples:
generate_joint_position_motion.cpp.
-

Constructor & Destructor Documentation

- -

◆ JointPositions() [1/2]

- -
-
- - - - - -
- - - - - - - - -
franka::JointPositions::JointPositions (const std::array< double, 7 > & joint_positions)
-
-noexcept
-
- -

Creates a new JointPositions instance.

-
Parameters
- - -
[in]joint_positionsDesired joint angles in [rad].
-
-
- -
-
- -

◆ JointPositions() [2/2]

- -
-
- - - - - - - - -
franka::JointPositions::JointPositions (std::initializer_list< double > joint_positions)
-
- -

Creates a new JointPositions instance.

-
Parameters
- - -
[in]joint_positionsDesired joint angles in [rad].
-
-
-
Exceptions
- - -
std::invalid_argumentif the given initializer list has an invalid number of arguments.
-
-
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1JointPositions__coll__graph.map b/classfranka_1_1JointPositions__coll__graph.map deleted file mode 100644 index a426fa3e..00000000 --- a/classfranka_1_1JointPositions__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1JointPositions__coll__graph.md5 b/classfranka_1_1JointPositions__coll__graph.md5 deleted file mode 100644 index bb881281..00000000 --- a/classfranka_1_1JointPositions__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -93fcec579b6b664fdb0ea51619edb5f2 \ No newline at end of file diff --git a/classfranka_1_1JointPositions__coll__graph.png b/classfranka_1_1JointPositions__coll__graph.png deleted file mode 100644 index 3153acad72e11fd53f917bce322f99a4944de6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3602 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 bLpr0=14*t&c4G~IM;_?z9a9({>KOSSz()n^ diff --git a/classfranka_1_1JointPositions__inherit__graph.map b/classfranka_1_1JointPositions__inherit__graph.map deleted file mode 100644 index a426fa3e..00000000 --- a/classfranka_1_1JointPositions__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1JointPositions__inherit__graph.md5 b/classfranka_1_1JointPositions__inherit__graph.md5 deleted file mode 100644 index e7d077b6..00000000 --- a/classfranka_1_1JointPositions__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4addcb6c6d63aa3af7abcb961bccff56 \ No newline at end of file diff --git a/classfranka_1_1JointPositions__inherit__graph.png b/classfranka_1_1JointPositions__inherit__graph.png deleted file mode 100644 index 3153acad72e11fd53f917bce322f99a4944de6e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3602 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 bLpr0=14*t&c4G~IM;_?z9a9({>KOSSz()n^ diff --git a/classfranka_1_1JointVelocities-members.html b/classfranka_1_1JointVelocities-members.html deleted file mode 100644 index 94a5d6cf..00000000 --- a/classfranka_1_1JointVelocities-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::JointVelocities Member List
-
-
- -

This is the complete list of members for franka::JointVelocities, including all inherited members.

- - - - - -
dqfranka::JointVelocities
JointVelocities(const std::array< double, 7 > &joint_velocities) noexceptfranka::JointVelocities
JointVelocities(std::initializer_list< double > joint_velocities)franka::JointVelocities
motion_finishedfranka::Finishable
- - - - diff --git a/classfranka_1_1JointVelocities.html b/classfranka_1_1JointVelocities.html deleted file mode 100644 index 95c7c499..00000000 --- a/classfranka_1_1JointVelocities.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -libfranka: franka::JointVelocities Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::JointVelocities Class Reference
-
-
- -

Stores values for joint velocity motion generation. - More...

- -

#include <control_types.h>

-
-Inheritance diagram for franka::JointVelocities:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for franka::JointVelocities:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - -

-Public Member Functions

 JointVelocities (const std::array< double, 7 > &joint_velocities) noexcept
 Creates a new JointVelocities instance. More...
 
 JointVelocities (std::initializer_list< double > joint_velocities)
 Creates a new JointVelocities instance. More...
 
- - - - - - - - -

-Public Attributes

-std::array< double, 7 > dq {}
 Desired joint velocities in [rad/s].
 
- Public Attributes inherited from franka::Finishable
-bool motion_finished = false
 Determines whether to finish a currently running motion.
 
-

Detailed Description

-

Stores values for joint velocity motion generation.

-
Examples:
generate_consecutive_motions.cpp, generate_joint_velocity_motion.cpp, and motion_with_control.cpp.
-

Constructor & Destructor Documentation

- -

◆ JointVelocities() [1/2]

- -
-
- - - - - -
- - - - - - - - -
franka::JointVelocities::JointVelocities (const std::array< double, 7 > & joint_velocities)
-
-noexcept
-
- -

Creates a new JointVelocities instance.

-
Parameters
- - -
[in]joint_velocitiesDesired joint velocities in [rad/s].
-
-
- -
-
- -

◆ JointVelocities() [2/2]

- -
-
- - - - - - - - -
franka::JointVelocities::JointVelocities (std::initializer_list< double > joint_velocities)
-
- -

Creates a new JointVelocities instance.

-
Parameters
- - -
[in]joint_velocitiesDesired joint velocities in [rad/s].
-
-
-
Exceptions
- - -
std::invalid_argumentif the given initializer list has an invalid number of arguments.
-
-
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1JointVelocities__coll__graph.map b/classfranka_1_1JointVelocities__coll__graph.map deleted file mode 100644 index 52a19db2..00000000 --- a/classfranka_1_1JointVelocities__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1JointVelocities__coll__graph.md5 b/classfranka_1_1JointVelocities__coll__graph.md5 deleted file mode 100644 index c123aeb5..00000000 --- a/classfranka_1_1JointVelocities__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -ef18fbbcfcb43e83dcea384c0ea85dd9 \ No newline at end of file diff --git a/classfranka_1_1JointVelocities__coll__graph.png b/classfranka_1_1JointVelocities__coll__graph.png deleted file mode 100644 index 159e11c91f8307456901ea5bd7cf851966ef6155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 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 diff --git a/classfranka_1_1JointVelocities__inherit__graph.map b/classfranka_1_1JointVelocities__inherit__graph.map deleted file mode 100644 index 52a19db2..00000000 --- a/classfranka_1_1JointVelocities__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1JointVelocities__inherit__graph.md5 b/classfranka_1_1JointVelocities__inherit__graph.md5 deleted file mode 100644 index 815947a4..00000000 --- a/classfranka_1_1JointVelocities__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -fa0017fcfe7ea2237baafdbb653dccc9 \ No newline at end of file diff --git a/classfranka_1_1JointVelocities__inherit__graph.png b/classfranka_1_1JointVelocities__inherit__graph.png deleted file mode 100644 index 159e11c91f8307456901ea5bd7cf851966ef6155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3956 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 diff --git a/classfranka_1_1Model-members.html b/classfranka_1_1Model-members.html deleted file mode 100644 index 31061703..00000000 --- a/classfranka_1_1Model-members.html +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::Model Member List
-
-
- -

This is the complete list of members for franka::Model, including all inherited members.

- - - - - - - - - - - - - - - - - -
bodyJacobian(Frame frame, const franka::RobotState &robot_state) constfranka::Model
bodyJacobian(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) constfranka::Model
coriolis(const franka::RobotState &robot_state) const noexceptfranka::Model
coriolis(const std::array< double, 7 > &q, const std::array< double, 7 > &dq, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexceptfranka::Model
gravity(const std::array< double, 7 > &q, double m_total, const std::array< double, 3 > &F_x_Ctotal, const std::array< double, 3 > &gravity_earth={{0., 0., -9.81}}) const noexceptfranka::Model
gravity(const franka::RobotState &robot_state, const std::array< double, 3 > &gravity_earth={ {0., 0., -9.81}}) const noexceptfranka::Model
mass(const franka::RobotState &robot_state) const noexceptfranka::Model
mass(const std::array< double, 7 > &q, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexceptfranka::Model
Model(franka::Network &network)franka::Modelexplicit
Model(Model &&model) noexceptfranka::Model
operator=(Model &&model) noexceptfranka::Model
pose(Frame frame, const franka::RobotState &robot_state) constfranka::Model
pose(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) constfranka::Model
zeroJacobian(Frame frame, const franka::RobotState &robot_state) constfranka::Model
zeroJacobian(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) constfranka::Model
~Model() noexceptfranka::Model
- - - - diff --git a/classfranka_1_1Model.html b/classfranka_1_1Model.html deleted file mode 100644 index 2d6f06d5..00000000 --- a/classfranka_1_1Model.html +++ /dev/null @@ -1,853 +0,0 @@ - - - - - - - -libfranka: franka::Model Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::Model Class Reference
-
-
- -

Calculates poses of joints and dynamic properties of the robot. - More...

- -

#include <model.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Model (franka::Network &network)
 Creates a new Model instance. More...
 
 Model (Model &&model) noexcept
 Move-constructs a new Model instance. More...
 
Modeloperator= (Model &&model) noexcept
 Move-assigns this Model from another Model instance. More...
 
~Model () noexcept
 Unloads the model library.
 
std::array< double, 16 > pose (Frame frame, const franka::RobotState &robot_state) const
 Gets the 4x4 pose matrix for the given frame in base frame. More...
 
std::array< double, 16 > pose (Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const
 Gets the 4x4 pose matrix for the given frame in base frame. More...
 
std::array< double, 42 > bodyJacobian (Frame frame, const franka::RobotState &robot_state) const
 Gets the 6x7 Jacobian for the given frame, relative to that frame. More...
 
std::array< double, 42 > bodyJacobian (Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const
 Gets the 6x7 Jacobian for the given frame, relative to that frame. More...
 
std::array< double, 42 > zeroJacobian (Frame frame, const franka::RobotState &robot_state) const
 Gets the 6x7 Jacobian for the given joint relative to the base frame. More...
 
std::array< double, 42 > zeroJacobian (Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const
 Gets the 6x7 Jacobian for the given joint relative to the base frame. More...
 
std::array< double, 49 > mass (const franka::RobotState &robot_state) const noexcept
 Calculates the 7x7 mass matrix. More...
 
std::array< double, 49 > mass (const std::array< double, 7 > &q, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexcept
 Calculates the 7x7 mass matrix. More...
 
std::array< double, 7 > coriolis (const franka::RobotState &robot_state) const noexcept
 Calculates the Coriolis force vector (state-space equation): \( c= C \times dq\), in \([Nm]\). More...
 
std::array< double, 7 > coriolis (const std::array< double, 7 > &q, const std::array< double, 7 > &dq, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexcept
 Calculates the Coriolis force vector (state-space equation): \( c= C \times dq\), in \([Nm]\). More...
 
std::array< double, 7 > gravity (const std::array< double, 7 > &q, double m_total, const std::array< double, 3 > &F_x_Ctotal, const std::array< double, 3 > &gravity_earth={{0., 0., -9.81}}) const noexcept
 Calculates the gravity vector. More...
 
std::array< double, 7 > gravity (const franka::RobotState &robot_state, const std::array< double, 3 > &gravity_earth={ {0., 0., -9.81}}) const noexcept
 Calculates the gravity vector. More...
 
-

Detailed Description

-

Calculates poses of joints and dynamic properties of the robot.

-
Examples:
cartesian_impedance_control.cpp, force_control.cpp, joint_impedance_control.cpp, and print_joint_poses.cpp.
-

Constructor & Destructor Documentation

- -

◆ Model() [1/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Model::Model (franka::Network & network)
-
-explicit
-
- -

Creates a new Model instance.

-

This constructor is for internal use only.

-
See also
Robot::loadModel
-
Parameters
- - -
[in]networkFor internal use.
-
-
-
Exceptions
- - -
ModelExceptionif the model library cannot be loaded.
-
-
- -
-
- -

◆ Model() [2/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Model::Model (Model && model)
-
-noexcept
-
- -

Move-constructs a new Model instance.

-
Parameters
- - -
[in]modelOther Model instance.
-
-
- -
-
-

Member Function Documentation

- -

◆ bodyJacobian() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
std::array<double, 42> franka::Model::bodyJacobian (Frame frame,
const franka::RobotStaterobot_state 
) const
-
- -

Gets the 6x7 Jacobian for the given frame, relative to that frame.

-

The Jacobian is represented as a 6x7 matrix in column-major format.

-
Parameters
- - - -
[in]frameThe desired frame.
[in]robot_stateState from which the pose should be calculated.
-
-
-
Returns
Vectorized 6x7 Jacobian, column-major.
- -
-
- -

◆ bodyJacobian() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
std::array<double, 42> franka::Model::bodyJacobian (Frame frame,
const std::array< double, 7 > & q,
const std::array< double, 16 > & F_T_EE,
const std::array< double, 16 > & EE_T_K 
) const
-
- -

Gets the 6x7 Jacobian for the given frame, relative to that frame.

-

The Jacobian is represented as a 6x7 matrix in column-major format.

-
Parameters
- - - - - -
[in]frameThe desired frame.
[in]qJoint position.
[in]F_T_EEEnd effector in flange frame.
[in]EE_T_KStiffness frame K in the end effector frame.
-
-
-
Returns
Vectorized 6x7 Jacobian, column-major.
- -
-
- -

◆ coriolis() [1/2]

- -
-
- - - - - -
- - - - - - - - -
std::array<double, 7> franka::Model::coriolis (const franka::RobotStaterobot_state) const
-
-noexcept
-
- -

Calculates the Coriolis force vector (state-space equation): \( c= C \times dq\), in \([Nm]\).

-
Parameters
- - -
[in]robot_stateState from which the Coriolis force vector should be calculated.
-
-
-
Returns
Coriolis force vector.
-
Examples:
cartesian_impedance_control.cpp.
-
-
-
- -

◆ coriolis() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
std::array<double, 7> franka::Model::coriolis (const std::array< double, 7 > & q,
const std::array< double, 7 > & dq,
const std::array< double, 9 > & I_total,
double m_total,
const std::array< double, 3 > & F_x_Ctotal 
) const
-
-noexcept
-
- -

Calculates the Coriolis force vector (state-space equation): \( c= C \times dq\), in \([Nm]\).

-
Parameters
- - - - - - -
[in]qJoint position.
[in]dqJoint velocity.
[in]I_totalInertia of the attached total load including end effector, relative to center of mass, given as vectorized 3x3 column-major matrix. Unit: \([kg \times m^2]\).
[in]m_totalWeight of the attached total load including end effector. Unit: \([kg]\).
[in]F_x_CtotalTranslation from flange to center of mass of the attached total load. Unit: \([m]\).
-
-
-
Returns
Coriolis force vector.
- -
-
- -

◆ gravity() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
std::array<double, 7> franka::Model::gravity (const std::array< double, 7 > & q,
double m_total,
const std::array< double, 3 > & F_x_Ctotal,
const std::array< double, 3 > & gravity_earth = {{0., 0., -9.81}} 
) const
-
-noexcept
-
- -

Calculates the gravity vector.

-

Unit: \([Nm]\).

-
Parameters
- - - - - -
[in]qJoint position.
[in]m_totalWeight of the attached total load including end effector. Unit: \([kg]\).
[in]F_x_CtotalTranslation from flange to center of mass of the attached total load. Unit: \([m]\).
[in]gravity_earthEarth's gravity vector. Unit: \(\frac{m}{s^2}\). Default to {0.0, 0.0, -9.81}.
-
-
-
Returns
Gravity vector.
-
Examples:
force_control.cpp.
-
-
-
- -

◆ gravity() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
std::array<double, 7> franka::Model::gravity (const franka::RobotStaterobot_state,
const std::array< double, 3 > & gravity_earth = { {0., 0., -9.81}} 
) const
-
-noexcept
-
- -

Calculates the gravity vector.

-

Unit: \([Nm]\).

-
Parameters
- - - -
[in]robot_stateState from which the gravity vector should be calculated.
[in]gravity_earthEarth's gravity vector. Unit: \(\frac{m}{s^2}\). Default to {0.0, 0.0, -9.81}.
-
-
-
Returns
Gravity vector.
- -
-
- -

◆ mass() [1/2]

- -
-
- - - - - -
- - - - - - - - -
std::array<double, 49> franka::Model::mass (const franka::RobotStaterobot_state) const
-
-noexcept
-
- -

Calculates the 7x7 mass matrix.

-

Unit: \([kg \times m^2]\).

-
Parameters
- - -
[in]robot_stateState from which the pose should be calculated.
-
-
-
Returns
Vectorized 7x7 mass matrix, column-major.
- -
-
- -

◆ mass() [2/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
std::array<double, 49> franka::Model::mass (const std::array< double, 7 > & q,
const std::array< double, 9 > & I_total,
double m_total,
const std::array< double, 3 > & F_x_Ctotal 
) const
-
-noexcept
-
- -

Calculates the 7x7 mass matrix.

-

Unit: \([kg \times m^2]\).

-
Parameters
- - - - - -
[in]qJoint position.
[in]I_totalInertia of the attached total load including end effector, relative to center of mass, given as vectorized 3x3 column-major matrix. Unit: \([kg \times m^2]\).
[in]m_totalWeight of the attached total load including end effector. Unit: \([kg]\).
[in]F_x_CtotalTranslation from flange to center of mass of the attached total load. Unit: \([m]\).
-
-
-
Returns
Vectorized 7x7 mass matrix, column-major.
- -
-
- -

◆ operator=()

- -
-
- - - - - -
- - - - - - - - -
Model& franka::Model::operator= (Model && model)
-
-noexcept
-
- -

Move-assigns this Model from another Model instance.

-
Parameters
- - -
[in]modelOther Model instance.
-
-
-
Returns
Model instance.
- -
-
- -

◆ pose() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
std::array<double, 16> franka::Model::pose (Frame frame,
const franka::RobotStaterobot_state 
) const
-
- -

Gets the 4x4 pose matrix for the given frame in base frame.

-

The pose is represented as a 4x4 matrix in column-major format.

-
Parameters
- - - -
[in]frameThe desired frame.
[in]robot_stateState from which the pose should be calculated.
-
-
-
Returns
Vectorized 4x4 pose matrix, column-major.
-
Examples:
print_joint_poses.cpp.
-
-
-
- -

◆ pose() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
std::array<double, 16> franka::Model::pose (Frame frame,
const std::array< double, 7 > & q,
const std::array< double, 16 > & F_T_EE,
const std::array< double, 16 > & EE_T_K 
) const
-
- -

Gets the 4x4 pose matrix for the given frame in base frame.

-

The pose is represented as a 4x4 matrix in column-major format.

-
Parameters
- - - - - -
[in]frameThe desired frame.
[in]qJoint position.
[in]F_T_EEEnd effector in flange frame.
[in]EE_T_KStiffness frame K in the end effector frame.
-
-
-
Returns
Vectorized 4x4 pose matrix, column-major.
- -
-
- -

◆ zeroJacobian() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
std::array<double, 42> franka::Model::zeroJacobian (Frame frame,
const franka::RobotStaterobot_state 
) const
-
- -

Gets the 6x7 Jacobian for the given joint relative to the base frame.

-

The Jacobian is represented as a 6x7 matrix in column-major format.

-
Parameters
- - - -
[in]frameThe desired frame.
[in]robot_stateState from which the pose should be calculated.
-
-
-
Returns
Vectorized 6x7 Jacobian, column-major.
-
Examples:
cartesian_impedance_control.cpp, and force_control.cpp.
-
-
-
- -

◆ zeroJacobian() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
std::array<double, 42> franka::Model::zeroJacobian (Frame frame,
const std::array< double, 7 > & q,
const std::array< double, 16 > & F_T_EE,
const std::array< double, 16 > & EE_T_K 
) const
-
- -

Gets the 6x7 Jacobian for the given joint relative to the base frame.

-

The Jacobian is represented as a 6x7 matrix in column-major format.

-
Parameters
- - - - - -
[in]frameThe desired frame.
[in]qJoint position.
[in]F_T_EEEnd effector in flange frame.
[in]EE_T_KStiffness frame K in the end effector frame.
-
-
-
Returns
Vectorized 6x7 Jacobian, column-major.
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1Robot-members.html b/classfranka_1_1Robot-members.html deleted file mode 100644 index 2f5b0857..00000000 --- a/classfranka_1_1Robot-members.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::Robot Member List
-
-
- -

This is the complete list of members for franka::Robot, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
automaticErrorRecovery()franka::Robot
control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
control(std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)franka::Robot
getVirtualWall(int32_t id)franka::Robot
loadModel()franka::Robot
operator=(Robot &&other) noexceptfranka::Robot
read(std::function< bool(const RobotState &)> read_callback)franka::Robot
readOnce()franka::Robot
Robot(const std::string &franka_address, RealtimeConfig realtime_config=RealtimeConfig::kEnforce, size_t log_size=50)franka::Robotexplicit
Robot(Robot &&other) noexceptfranka::Robot
ServerVersion typedeffranka::Robot
serverVersion() const noexceptfranka::Robot
setCartesianImpedance(const std::array< double, 6 > &K_x)franka::Robot
setCollisionBehavior(const std::array< double, 7 > &lower_torque_thresholds_acceleration, const std::array< double, 7 > &upper_torque_thresholds_acceleration, const std::array< double, 7 > &lower_torque_thresholds_nominal, const std::array< double, 7 > &upper_torque_thresholds_nominal, const std::array< double, 6 > &lower_force_thresholds_acceleration, const std::array< double, 6 > &upper_force_thresholds_acceleration, const std::array< double, 6 > &lower_force_thresholds_nominal, const std::array< double, 6 > &upper_force_thresholds_nominal)franka::Robot
setCollisionBehavior(const std::array< double, 7 > &lower_torque_thresholds, const std::array< double, 7 > &upper_torque_thresholds, const std::array< double, 6 > &lower_force_thresholds, const std::array< double, 6 > &upper_force_thresholds)franka::Robot
setEE(const std::array< double, 16 > &NE_T_EE)franka::Robot
setFilters(double joint_position_filter_frequency, double joint_velocity_filter_frequency, double cartesian_position_filter_frequency, double cartesian_velocity_filter_frequency, double controller_filter_frequency)franka::Robot
setGuidingMode(const std::array< bool, 6 > &guiding_mode, bool elbow)franka::Robot
setJointImpedance(const std::array< double, 7 > &K_theta)franka::Robot
setK(const std::array< double, 16 > &EE_T_K)franka::Robot
setLoad(double load_mass, const std::array< double, 3 > &F_x_Cload, const std::array< double, 9 > &load_inertia)franka::Robot
stop()franka::Robot
~Robot() noexceptfranka::Robot
- - - - diff --git a/classfranka_1_1Robot.html b/classfranka_1_1Robot.html deleted file mode 100644 index ba3a0773..00000000 --- a/classfranka_1_1Robot.html +++ /dev/null @@ -1,1596 +0,0 @@ - - - - - - - -libfranka: franka::Robot Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::Robot Class Reference
-
-
- -

Maintains a network connection to the robot, provides the current robot state, gives access to the model library and allows to control the robot. - More...

- -

#include <robot.h>

- - - - - -

-Public Types

-using ServerVersion = uint16_t
 Version of the robot server.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 Robot (const std::string &franka_address, RealtimeConfig realtime_config=RealtimeConfig::kEnforce, size_t log_size=50)
 Establishes a connection with the robot. More...
 
 Robot (Robot &&other) noexcept
 Move-constructs a new Robot instance. More...
 
Robotoperator= (Robot &&other) noexcept
 Move-assigns this Robot from another Robot instance. More...
 
~Robot () noexcept
 Closes the connection.
 
void read (std::function< bool(const RobotState &)> read_callback)
 Starts a loop for reading the current robot state. More...
 
RobotState readOnce ()
 Waits for a robot state update and returns it. More...
 
Model loadModel ()
 Loads the model library from the robot. More...
 
ServerVersion serverVersion () const noexcept
 Returns the software version reported by the connected server. More...
 
Motion generation and joint-level torque commands

The following methods allow to perform motion generation and/or send joint-level torque commands without gravity and friction by providing callback functions.

-

Only one of these methods can be active at the same time; a franka::ControlException is thrown otherwise.

-

When a robot state is received, the callback function is used to calculate the response: the desired values for that time step. After sending back the response, the callback function will be called again with the most recently received robot state. Since the robot is controlled with a 1 kHz frequency, the callback functions have to compute their result in a short time frame in order to be accepted. Callback functions take two parameters:

-
    -
  • A franka::RobotState showing the current robot state.
  • -
  • A franka::Duration to indicate the time since the last callback invocation. Thus, the duration is zero on the first invocation of the callback function!
  • -
-

The following incomplete example shows the general structure of a callback function:

-
double time = 0.0;
auto control_callback = [&time](const franka::RobotState& robot_state,
time += time_step.toSec(); // Update time at the beginning of the callback.
franka::JointPositions output = getJointPositions(time);
if (time >= max_time) {
// Return MotionFinished at the end of the trajectory.
return franka::MotionFinished(output);
}
return output;
}
void control (std::function< Torques(const RobotState &, franka::Duration)> control_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for sending joint-level torque commands. More...
 
void control (std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for sending joint-level torque commands and joint positions. More...
 
void control (std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for sending joint-level torque commands and joint velocities. More...
 
void control (std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for sending joint-level torque commands and Cartesian poses. More...
 
void control (std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for sending joint-level torque commands and Cartesian velocities. More...
 
void control (std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for a joint position motion generator with a given controller mode. More...
 
void control (std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for a joint velocity motion generator with a given controller mode. More...
 
void control (std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for a Cartesian pose motion generator with a given controller mode. More...
 
void control (std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
 Starts a control loop for a Cartesian velocity motion generator with a given controller mode. More...
 
Commands

Commands are executed by communicating with the robot over the network.

-

These functions should therefore not be called from within control or motion generator loops.

-
VirtualWallCuboid getVirtualWall (int32_t id)
 Returns the parameters of a virtual wall. More...
 
void setCollisionBehavior (const std::array< double, 7 > &lower_torque_thresholds_acceleration, const std::array< double, 7 > &upper_torque_thresholds_acceleration, const std::array< double, 7 > &lower_torque_thresholds_nominal, const std::array< double, 7 > &upper_torque_thresholds_nominal, const std::array< double, 6 > &lower_force_thresholds_acceleration, const std::array< double, 6 > &upper_force_thresholds_acceleration, const std::array< double, 6 > &lower_force_thresholds_nominal, const std::array< double, 6 > &upper_force_thresholds_nominal)
 Changes the collision behavior. More...
 
void setCollisionBehavior (const std::array< double, 7 > &lower_torque_thresholds, const std::array< double, 7 > &upper_torque_thresholds, const std::array< double, 6 > &lower_force_thresholds, const std::array< double, 6 > &upper_force_thresholds)
 Changes the collision behavior. More...
 
void setJointImpedance (const std::array< double, 7 > &K_theta)
 Sets the impedance for each joint in the internal controller. More...
 
void setCartesianImpedance (const std::array< double, 6 > &K_x)
 Sets the Cartesian impedance for (x, y, z, roll, pitch, yaw) in the internal controller. More...
 
void setGuidingMode (const std::array< bool, 6 > &guiding_mode, bool elbow)
 Locks or unlocks guiding mode movement in (x, y, z, roll, pitch, yaw). More...
 
void setK (const std::array< double, 16 > &EE_T_K)
 Sets the transformation \(^{EE}T_K\) from end effector frame to stiffness frame. More...
 
void setEE (const std::array< double, 16 > &NE_T_EE)
 Sets the transformation \(^{NE}T_{EE}\) from nominal end effector to end effector frame. More...
 
void setLoad (double load_mass, const std::array< double, 3 > &F_x_Cload, const std::array< double, 9 > &load_inertia)
 Sets dynamic parameters of a payload. More...
 
void setFilters (double joint_position_filter_frequency, double joint_velocity_filter_frequency, double cartesian_position_filter_frequency, double cartesian_velocity_filter_frequency, double controller_filter_frequency)
 Sets the cut off frequency for the given motion generator or controller. More...
 
void automaticErrorRecovery ()
 Runs automatic error recovery on the robot. More...
 
void stop ()
 Stops all currently running motions. More...
 
-

Detailed Description

-

Maintains a network connection to the robot, provides the current robot state, gives access to the model library and allows to control the robot.

-
Note
The members of this class are threadsafe.
-
Nominal end effector frame NE
The nominal end effector frame is configured outside of libfranka and cannot be changed here.
-
End effector frame EE
By default, the end effector frame EE is the same as the nominal end effector frame NE (i.e. the transformation between NE and EE is the identity transformation). With Robot::setEE, a custom transformation matrix can be set.
-

Stiffness frame K
The stiffness frame is used for Cartesian impedance control, and for measuring and applying forces. It can be set with Robot::setK.
-
Examples:
cartesian_impedance_control.cpp, communication_test.cpp, echo_robot_state.cpp, force_control.cpp, generate_cartesian_pose_motion.cpp, generate_cartesian_velocity_motion.cpp, generate_consecutive_motions.cpp, generate_elbow_motion.cpp, generate_joint_position_motion.cpp, generate_joint_velocity_motion.cpp, joint_impedance_control.cpp, joint_point_to_point_motion.cpp, motion_with_control.cpp, and print_joint_poses.cpp.
-

Constructor & Destructor Documentation

- -

◆ Robot() [1/2]

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
franka::Robot::Robot (const std::string & franka_address,
RealtimeConfig realtime_config = RealtimeConfig::kEnforce,
size_t log_size = 50 
)
-
-explicit
-
- -

Establishes a connection with the robot.

-
Parameters
- - - - -
[in]franka_addressIP/hostname of the robot.
[in]realtime_configif set to Enforce, an exception will be thrown if realtime priority cannot be set when required. Setting realtime_config to Ignore disables this behavior.
[in]log_sizesets how many last states should be kept for logging purposes. The log is provided when a ControlException is thrown.
-
-
-
Exceptions
- - - -
NetworkExceptionif the connection is unsuccessful.
IncompatibleVersionExceptionif this version of libfranka is not supported.
-
-
- -
-
- -

◆ Robot() [2/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Robot::Robot (Robot && other)
-
-noexcept
-
- -

Move-constructs a new Robot instance.

-
Parameters
- - -
[in]otherOther Robot instance.
-
-
- -
-
-

Member Function Documentation

- -

◆ automaticErrorRecovery()

- -
-
- - - - - - - -
void franka::Robot::automaticErrorRecovery ()
-
- -

Runs automatic error recovery on the robot.

-

Automatic error recovery e.g. resets the robot after a collision occurred.

-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
generate_consecutive_motions.cpp.
-
-
-
- -

◆ control() [1/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< Torques(const RobotState &, franka::Duration)> control_callback,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for sending joint-level torque commands.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - -
[in]control_callbackCallback function providing joint-level torque commands. See here for more details.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to torque control or motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif joint-level torque commands are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
-
Examples:
cartesian_impedance_control.cpp, communication_test.cpp, force_control.cpp, generate_cartesian_pose_motion.cpp, generate_cartesian_velocity_motion.cpp, generate_consecutive_motions.cpp, generate_elbow_motion.cpp, generate_joint_position_motion.cpp, generate_joint_velocity_motion.cpp, joint_impedance_control.cpp, joint_point_to_point_motion.cpp, and motion_with_control.cpp.
-
-
-
- -

◆ control() [2/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< Torques(const RobotState &, franka::Duration)> control_callback,
std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for sending joint-level torque commands and joint positions.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]control_callbackCallback function providing joint-level torque commands. See here for more details.
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to torque control or motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif joint-level torque or joint position commands are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ control() [3/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< Torques(const RobotState &, franka::Duration)> control_callback,
std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for sending joint-level torque commands and joint velocities.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]control_callbackCallback function providing joint-level torque commands. See here for more details.
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to torque control or motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif joint-level torque or joint velocitiy commands are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ control() [4/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< Torques(const RobotState &, franka::Duration)> control_callback,
std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for sending joint-level torque commands and Cartesian poses.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]control_callbackCallback function providing joint-level torque commands. See here for more details.
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to torque control or motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif joint-level torque or Cartesian pose command elements are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ control() [5/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< Torques(const RobotState &, franka::Duration)> control_callback,
std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for sending joint-level torque commands and Cartesian velocities.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]control_callbackCallback function providing joint-level torque commands. See here for more details.
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to torque control or motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif joint-level torque or Cartesian velocity command elements are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ control() [6/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback,
ControllerMode controller_mode = ControllerMode::kJointImpedance,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for a joint position motion generator with a given controller mode.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]controller_modeController to use to execute the motion.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif joint position commands are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ control() [7/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback,
ControllerMode controller_mode = ControllerMode::kJointImpedance,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for a joint velocity motion generator with a given controller mode.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]controller_modeController to use to execute the motion.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif joint velocity commands are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ control() [8/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback,
ControllerMode controller_mode = ControllerMode::kJointImpedance,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for a Cartesian pose motion generator with a given controller mode.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]controller_modeController to use to execute the motion.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif Cartesian pose command elements are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ control() [9/9]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::control (std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback,
ControllerMode controller_mode = ControllerMode::kJointImpedance,
bool limit_rate = true,
double cutoff_frequency = kDefaultCutoffFrequency 
)
-
- -

Starts a control loop for a Cartesian velocity motion generator with a given controller mode.

-

Sets realtime priority for the current thread. Cannot be executed while another control or motion generator loop is active.

-
Parameters
- - - - - -
[in]motion_generator_callbackCallback function for motion generation. See here for more details.
[in]controller_modeController to use to execute the motion.
[in]limit_rateTrue if rate limiting should be activated. True by default. This could distort your motion!
[in]cutoff_frequencyCutoff frequency for a first order low-pass filter applied on the user commanded signal. Set to franka::kMaxCutoffFrequency to disable.
-
-
-
Exceptions
- - - - - - -
ControlExceptionif an error related to motion generation occurred.
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
RealtimeExceptionif realtime priority cannot be set for the current thread.
std::invalid_argumentif Cartesian velocity command elements are NaN or infinity.
-
-
-
See also
Robot::Robot to change behavior if realtime priority cannot be set.
- -
-
- -

◆ getVirtualWall()

- -
-
- - - - - - - - -
VirtualWallCuboid franka::Robot::getVirtualWall (int32_t id)
-
- -

Returns the parameters of a virtual wall.

-
Parameters
- - -
[in]idID of the virtual wall.
-
-
-
Returns
Parameters of virtual wall.
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
- -
-
- -

◆ loadModel()

- -
-
- - - - - - - -
Model franka::Robot::loadModel ()
-
- -

Loads the model library from the robot.

-
Returns
Model instance.
-
Exceptions
- - - -
ModelExceptionif the model library cannot be loaded.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
cartesian_impedance_control.cpp, force_control.cpp, joint_impedance_control.cpp, and print_joint_poses.cpp.
-
-
-
- -

◆ operator=()

- -
-
- - - - - -
- - - - - - - - -
Robot& franka::Robot::operator= (Robot && other)
-
-noexcept
-
- -

Move-assigns this Robot from another Robot instance.

-
Parameters
- - -
[in]otherOther Robot instance.
-
-
-
Returns
Robot instance.
- -
-
- -

◆ read()

- -
-
- - - - - - - - -
void franka::Robot::read (std::function< bool(const RobotState &)> read_callback)
-
- -

Starts a loop for reading the current robot state.

-

Cannot be executed while a control or motion generator loop is running.

-

This minimal example will print the robot state 100 times:

franka::Robot robot("robot.franka.de");
size_t count = 0;
robot.read([&count](const franka::RobotState& robot_state) {
std::cout << robot_state << std::endl;
return count++ < 100;
});
Parameters
- - -
[in]read_callbackCallback function for robot state reading.
-
-
-
Exceptions
- - - -
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
echo_robot_state.cpp.
-
-
-
- -

◆ readOnce()

- -
-
- - - - - - - -
RobotState franka::Robot::readOnce ()
-
- -

Waits for a robot state update and returns it.

-

Cannot be executed while a control or motion generator loop is running.

-
Returns
Current robot state.
-
Exceptions
- - - -
InvalidOperationExceptionif a conflicting operation is already running.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
See also
Robot::read for a way to repeatedly receive the robot state.
-
Examples:
cartesian_impedance_control.cpp, force_control.cpp, and print_joint_poses.cpp.
-
-
-
- -

◆ serverVersion()

- -
-
- - - - - -
- - - - - - - -
ServerVersion franka::Robot::serverVersion () const
-
-noexcept
-
- -

Returns the software version reported by the connected server.

-
Returns
Software version of the connected server.
- -
-
- -

◆ setCartesianImpedance()

- -
-
- - - - - - - - -
void franka::Robot::setCartesianImpedance (const std::array< double, 6 > & K_x)
-
- -

Sets the Cartesian impedance for (x, y, z, roll, pitch, yaw) in the internal controller.

-

User-provided torques are not affected by this setting.

-
Parameters
- - -
[in]K_xCartesian impedance values \(K_x=(x \in [10,3000] \frac{N}{m}, y \in [10,3000] \frac{N}{m}, z \in [10,3000] \frac{N}{m}, R \in [1,300] \frac{Nm}{rad}, P \in [1,300] \frac{Nm}{rad}, Y \in [1,300] \frac{Nm}{rad})\)
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
- -
-
- -

◆ setCollisionBehavior() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::setCollisionBehavior (const std::array< double, 7 > & lower_torque_thresholds_acceleration,
const std::array< double, 7 > & upper_torque_thresholds_acceleration,
const std::array< double, 7 > & lower_torque_thresholds_nominal,
const std::array< double, 7 > & upper_torque_thresholds_nominal,
const std::array< double, 6 > & lower_force_thresholds_acceleration,
const std::array< double, 6 > & upper_force_thresholds_acceleration,
const std::array< double, 6 > & lower_force_thresholds_nominal,
const std::array< double, 6 > & upper_force_thresholds_nominal 
)
-
- -

Changes the collision behavior.

-

Set separate torque and force boundaries for acceleration/deceleration and constant velocity movement phases.

-

Forces or torques between lower and upper threshold are shown as contacts in the RobotState. Forces or torques above the upper threshold are registered as collision and cause the robot to stop moving.

-
Parameters
- - - - - - - - - -
[in]lower_torque_thresholds_accelerationContact torque thresholds during acceleration/deceleration for each joint in \([Nm]\).
[in]upper_torque_thresholds_accelerationCollision torque thresholds during acceleration/deceleration for each joint in \([Nm]\).
[in]lower_torque_thresholds_nominalContact torque thresholds for each joint in \([Nm]\).
[in]upper_torque_thresholds_nominalCollision torque thresholds for each joint in \([Nm]\).
[in]lower_force_thresholds_accelerationContact force thresholds during acceleration/deceleration for \((x,y,z,R,P,Y)\) in \([N]\).
[in]upper_force_thresholds_accelerationCollision force thresholds during acceleration/deceleration for \((x,y,z,R,P,Y)\) in \([N]\).
[in]lower_force_thresholds_nominalContact force thresholds for \((x,y,z,R,P,Y)\) in \([N]\).
[in]upper_force_thresholds_nominalCollision force thresholds for \((x,y,z,R,P,Y)\) in \([N]\).
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
See also
RobotState::cartesian_contact
-
-RobotState::cartesian_collision
-
-RobotState::joint_contact
-
-RobotState::joint_collision
-
-Robot::automaticErrorRecovery for performing a reset after a collision.
-
Examples:
cartesian_impedance_control.cpp, communication_test.cpp, force_control.cpp, generate_cartesian_pose_motion.cpp, generate_cartesian_velocity_motion.cpp, generate_consecutive_motions.cpp, generate_elbow_motion.cpp, generate_joint_position_motion.cpp, generate_joint_velocity_motion.cpp, joint_impedance_control.cpp, joint_point_to_point_motion.cpp, and motion_with_control.cpp.
-
-
-
- -

◆ setCollisionBehavior() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::setCollisionBehavior (const std::array< double, 7 > & lower_torque_thresholds,
const std::array< double, 7 > & upper_torque_thresholds,
const std::array< double, 6 > & lower_force_thresholds,
const std::array< double, 6 > & upper_force_thresholds 
)
-
- -

Changes the collision behavior.

-

Set common torque and force boundaries for acceleration/deceleration and constant velocity movement phases.

-

Forces or torques between lower and upper threshold are shown as contacts in the RobotState. Forces or torques above the upper threshold are registered as collision and cause the robot to stop moving.

-
Parameters
- - - - - -
[in]lower_torque_thresholdsContact torque thresholds for each joint in \([Nm]\).
[in]upper_torque_thresholdsCollision torque thresholds for each joint in \([Nm]\).
[in]lower_force_thresholdsContact force thresholds for \((x,y,z,R,P,Y)\) in \([N]\).
[in]upper_force_thresholdsCollision force thresholds for \((x,y,z,R,P,Y)\) in \([N]\).
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
See also
RobotState::cartesian_contact
-
-RobotState::cartesian_collision
-
-RobotState::joint_contact
-
-RobotState::joint_collision
-
-Robot::automaticErrorRecovery for performing a reset after a collision.
- -
-
- -

◆ setEE()

- -
-
- - - - - - - - -
void franka::Robot::setEE (const std::array< double, 16 > & NE_T_EE)
-
- -

Sets the transformation \(^{NE}T_{EE}\) from nominal end effector to end effector frame.

-

The transformation matrix is represented as a vectorized 4x4 matrix in column-major format.

-
Parameters
- - -
[in]NE_T_EEVectorized NE-to-EE transformation matrix \(^{NE}T_{EE}\), column-major.
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
See also
RobotState::NE_T_EE for end effector pose in nominal end effector frame.
-
-RobotState::O_T_EE for end effector pose in world base frame.
-
-RobotState::F_T_EE for end effector pose in flange frame.
-
-Robot for an explanation of the NE and EE frames.
- -
-
- -

◆ setFilters()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::setFilters (double joint_position_filter_frequency,
double joint_velocity_filter_frequency,
double cartesian_position_filter_frequency,
double cartesian_velocity_filter_frequency,
double controller_filter_frequency 
)
-
- -

Sets the cut off frequency for the given motion generator or controller.

-
Deprecated:
Use franka::lowpassFilter() instead.
-

Allowed input range for all the filters is between 1.0 Hz and 1000.0 Hz. If the value is set to maximum (1000Hz) then no filtering is done.

-
Parameters
- - - - - - -
[in]joint_position_filter_frequencyFrequency at which the commanded joint position is cut off.
[in]joint_velocity_filter_frequencyFrequency at which the commanded joint velocity is cut off.
[in]cartesian_position_filter_frequencyFrequency at which the commanded Cartesian position is cut off.
[in]cartesian_velocity_filter_frequencyFrequency at which the commanded Cartesian velocity is cut off.
[in]controller_filter_frequencyFrequency at which the commanded torque is cut off.
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
- -
-
- -

◆ setGuidingMode()

- -
-
- - - - - - - - - - - - - - - - - - -
void franka::Robot::setGuidingMode (const std::array< bool, 6 > & guiding_mode,
bool elbow 
)
-
- -

Locks or unlocks guiding mode movement in (x, y, z, roll, pitch, yaw).

-

If a flag is set to true, movement is unlocked.

-
Note
Guiding mode can be enabled by pressing the two opposing buttons near the robot's flange.
-
Parameters
- - - -
[in]guiding_modeUnlocked movement in (x, y, z, R, P, Y) in guiding mode.
[in]elbowTrue if the elbow is free in guiding mode, false otherwise.
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
- -
-
- -

◆ setJointImpedance()

- -
-
- - - - - - - - -
void franka::Robot::setJointImpedance (const std::array< double, 7 > & K_theta)
-
- -

Sets the impedance for each joint in the internal controller.

-

User-provided torques are not affected by this setting.

-
Parameters
- - -
[in]K_thetaJoint impedance values \(K_{\theta}\).
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
generate_cartesian_velocity_motion.cpp.
-
-
-
- -

◆ setK()

- -
-
- - - - - - - - -
void franka::Robot::setK (const std::array< double, 16 > & EE_T_K)
-
- -

Sets the transformation \(^{EE}T_K\) from end effector frame to stiffness frame.

-

The transformation matrix is represented as a vectorized 4x4 matrix in column-major format.

-
Parameters
- - -
[in]EE_T_KVectorized EE-to-K transformation matrix \(^{EE}T_K\), column-major.
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
See also
Robot for an explanation of the stiffness frame.
- -
-
- -

◆ setLoad()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
void franka::Robot::setLoad (double load_mass,
const std::array< double, 3 > & F_x_Cload,
const std::array< double, 9 > & load_inertia 
)
-
- -

Sets dynamic parameters of a payload.

-
Note
This is not for setting end effector parameters, which have to be set in the administrator's interface.
-
Parameters
- - - - -
[in]load_massMass of the load in \([kg]\).
[in]F_x_CloadTranslation from flange to center of mass of load \(^Fx_{C_\text{load}}\) in \([m]\).
[in]load_inertiaInertia matrix \(I_\text{load}\) in \([kg \times m^2]\), column-major.
-
-
-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
- -
-
- -

◆ stop()

- -
-
- - - - - - - -
void franka::Robot::stop ()
-
- -

Stops all currently running motions.

-

If a control or motion generator loop is running in another thread, it will be preempted with a franka::ControlException.

-
Exceptions
- - - -
CommandExceptionif the Control reports an error.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1Torques-members.html b/classfranka_1_1Torques-members.html deleted file mode 100644 index afd0d844..00000000 --- a/classfranka_1_1Torques-members.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::Torques Member List
-
-
- -

This is the complete list of members for franka::Torques, including all inherited members.

- - - - - -
motion_finishedfranka::Finishable
tau_Jfranka::Torques
Torques(const std::array< double, 7 > &torques) noexceptfranka::Torques
Torques(std::initializer_list< double > torques)franka::Torques
- - - - diff --git a/classfranka_1_1Torques.html b/classfranka_1_1Torques.html deleted file mode 100644 index d7c36639..00000000 --- a/classfranka_1_1Torques.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - -libfranka: franka::Torques Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::Torques Class Reference
-
-
- -

Stores joint-level torque commands without gravity and friction. - More...

- -

#include <control_types.h>

-
-Inheritance diagram for franka::Torques:
-
-
Inheritance graph
- - - -
[legend]
-
-Collaboration diagram for franka::Torques:
-
-
Collaboration graph
- - - -
[legend]
- - - - - - - - -

-Public Member Functions

 Torques (const std::array< double, 7 > &torques) noexcept
 Creates a new Torques instance. More...
 
 Torques (std::initializer_list< double > torques)
 Creates a new Torques instance. More...
 
- - - - - - - - -

-Public Attributes

-std::array< double, 7 > tau_J {}
 Desired torques in [Nm].
 
- Public Attributes inherited from franka::Finishable
-bool motion_finished = false
 Determines whether to finish a currently running motion.
 
-

Detailed Description

-

Stores joint-level torque commands without gravity and friction.

-
Examples:
cartesian_impedance_control.cpp, communication_test.cpp, force_control.cpp, joint_impedance_control.cpp, and motion_with_control.cpp.
-

Constructor & Destructor Documentation

- -

◆ Torques() [1/2]

- -
-
- - - - - -
- - - - - - - - -
franka::Torques::Torques (const std::array< double, 7 > & torques)
-
-noexcept
-
- -

Creates a new Torques instance.

-
Parameters
- - -
[in]torquesDesired joint-level torques without gravity and friction in [Nm].
-
-
- -
-
- -

◆ Torques() [2/2]

- -
-
- - - - - - - - -
franka::Torques::Torques (std::initializer_list< double > torques)
-
- -

Creates a new Torques instance.

-
Parameters
- - -
[in]torquesDesired joint-level torques without gravity and friction in [Nm].
-
-
-
Exceptions
- - -
std::invalid_argumentif the given initializer list has an invalid number of arguments.
-
-
- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/classfranka_1_1Torques__coll__graph.map b/classfranka_1_1Torques__coll__graph.map deleted file mode 100644 index 9e73afb3..00000000 --- a/classfranka_1_1Torques__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/classfranka_1_1Torques__coll__graph.md5 b/classfranka_1_1Torques__coll__graph.md5 deleted file mode 100644 index 71231a46..00000000 --- a/classfranka_1_1Torques__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -3793a6eb9327455560caa48d89374163 \ No newline at end of file diff --git a/classfranka_1_1Torques__coll__graph.png b/classfranka_1_1Torques__coll__graph.png deleted file mode 100644 index 6cfaffa76f01a3ad9022d5cd7b3f755a0937ad34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3258 zcmb`KhgTEZ7RIC30-;3|0$d4*igam8Za`5%2oWP9N)Zr(6hn!02ncF`5Fo*T8j8V! zG$9bs7&=NMAfZTa0wPV3A_+|pdEMaTcbhZNeVS(QjGpHCJd{ zm8>_k_;3Joov9knzoMGc(7BisgxDvt^L}qBJewh^O^|!~K|0nNLbTj{)?oz`) zIu;L4N_Zxfr~6DrQ^;oj4q3^Aq?G5)-U06gjms4k%8)b2_{{m~lA4;~(I{LUd$o+l zb4Ad_6+gvzcyALDoSr%@sw;uH7Y-Re8sdEw-X&0GX8lf#5LTDk#T!+0&bIWpIj8p~}5{c$W zWYb5fnAq6OpMv(lWVgc}>bOdN;T6V<7ca^lX@Oew7FyEv7z_rcwEX4Et}?7fqUxqQ z`6S&Sw|wvs)p+Zto~~|61IFI5)iG?E9;)S7eoBk`?%k_buUhPQ_jTJfr;>~wpe83K zuKTM765FT0{kmXcLSRhV(d{##P-y7d_p#8urxU+ zl;|o$HXC0IJAC-?#KAl!lX>^<-7jCflv67rfAABbM`zB$?;_4^Rh{lyr4< z^H1j{U2<@knV$AcqmW2XDMoZOR8}^8>C44&Myfk7H5pMZ%e#-u*S;`-h_Z-4;(mvtNoE{sjLTUToQR` z-_hS+?%AF-GUCi~AdkZjxK!424FpZpgSI8kx7L?#*xRSuX`oT4XT{6Q%eNM4R$u!L zg)EHJbaZs|_Vzx1{+vV-*3-Y*Uk!B*8!IfS9jp%5OMTzc);7X)B@`gMUS*pnOIB6e zX&g7C3=}z4J#6)8IqEl+B980b)s9>nqp(u7ZNpf`_^;i{KPZ~aX83cNsr|<{J=87MS1@U&ZCAMzK0bBl$ z-v39h|H;Pxw@JB1)_W~HSmkEO${(PlV|$sXJ_Z~x4!754)eg|hZz}z{r&J& z_zJn<*S3O+ii*5E^FxwAv{zHEhfC{~u-OLM+TVZp`vnA8FN_cE(3hLzPx1sMjdFG^ z)l}-9T?E$xufWERj>YB&>ZX-UCLq-(3=H~Sr)W^zTX;O4_l+CdK;3~F05$v@}m>G|vc2j0`u0~}*1a4i0Y$$ix17>9@(trY`>&9VAI zX8Xs+#!jm|1v^&+xZB&?o0}79G+PV?bN1|6Cnx#D2K?6MDnLeot#kNJkRpv|y!MH( zzK#zKT`esw1;FavS4>Vy0)%OPq$Z-{*;&x-!9fQq^0}4D_U+q4=08^W4Cp2X!SA@Y zsB3C6^7G&L8yOmAwireKiuCvQcX3f9n^!v5G@kzC#S3tw|D99J=&h(b zr(9Ih+NWO*_&l|OBM=Ubjy@;}OEemW2#RmO$Qy`Ezu&^*Y+s(?# z%FK+bQQ5wuXe~N(zc|s-;MlRtwzd-D;*{j%KR{>BoN2o3b379X83i9PUX7an_?L9z zgS0dx`NkoNYSVRH1bu#P?!1N;fSuoIglah=r8HZsKhW>;VX1|iYtT#u9Z zB^5Qb7f+si0;FE;L34XMZk$Vwii&zE>9b!w!yLA`58P0DYa<~cp`OEWa&$z~5z9lk zx>marK!#bYV@HmdD?%W7hXtRl#%{vl6y9~+`XeOM?I1B5g00$vnCKXT z9YA$Y%;(sskz#;D6z3Wo91J*uk_Mo%^Yc~c=up7CI8}x8^!8@_II&TXmMr@afC?Qw zJvGI3(XOnjI;%ugWqk?4M@5}XZsavLD^9FYx?qW@5T$7QV`IZWU*9NV#mCDlA20_^6F1?w z>czNIih#-3yLWHs!ic7didA6`+iw`C{1oINIkH({53mF*%OSPO*JElNmjIMfS6A2S z+|VjuKyKf@eayQTP@Qz^JsjqvM~@b2H~jjFopy`w*ESS?P+wn$r?DG{@ zScW$itEQ%=+W^(q5&IjBg>_SGNfBucMbE)3^$$(|mBZiU%pIBDxpODA3n^5nMB@RD zNOL9oYK^LG%;iNs9}EWT<~% - - diff --git a/classfranka_1_1Torques__inherit__graph.md5 b/classfranka_1_1Torques__inherit__graph.md5 deleted file mode 100644 index 41a197ad..00000000 --- a/classfranka_1_1Torques__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c418dd4598306d343104c51be30338c3 \ No newline at end of file diff --git a/classfranka_1_1Torques__inherit__graph.png b/classfranka_1_1Torques__inherit__graph.png deleted file mode 100644 index 6cfaffa76f01a3ad9022d5cd7b3f755a0937ad34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3258 zcmb`KhgTEZ7RIC30-;3|0$d4*igam8Za`5%2oWP9N)Zr(6hn!02ncF`5Fo*T8j8V! zG$9bs7&=NMAfZTa0wPV3A_+|pdEMaTcbhZNeVS(QjGpHCJd{ zm8>_k_;3Joov9knzoMGc(7BisgxDvt^L}qBJewh^O^|!~K|0nNLbTj{)?oz`) zIu;L4N_Zxfr~6DrQ^;oj4q3^Aq?G5)-U06gjms4k%8)b2_{{m~lA4;~(I{LUd$o+l zb4Ad_6+gvzcyALDoSr%@sw;uH7Y-Re8sdEw-X&0GX8lf#5LTDk#T!+0&bIWpIj8p~}5{c$W zWYb5fnAq6OpMv(lWVgc}>bOdN;T6V<7ca^lX@Oew7FyEv7z_rcwEX4Et}?7fqUxqQ z`6S&Sw|wvs)p+Zto~~|61IFI5)iG?E9;)S7eoBk`?%k_buUhPQ_jTJfr;>~wpe83K zuKTM765FT0{kmXcLSRhV(d{##P-y7d_p#8urxU+ zl;|o$HXC0IJAC-?#KAl!lX>^<-7jCflv67rfAABbM`zB$?;_4^Rh{lyr4< z^H1j{U2<@knV$AcqmW2XDMoZOR8}^8>C44&Myfk7H5pMZ%e#-u*S;`-h_Z-4;(mvtNoE{sjLTUToQR` z-_hS+?%AF-GUCi~AdkZjxK!424FpZpgSI8kx7L?#*xRSuX`oT4XT{6Q%eNM4R$u!L zg)EHJbaZs|_Vzx1{+vV-*3-Y*Uk!B*8!IfS9jp%5OMTzc);7X)B@`gMUS*pnOIB6e zX&g7C3=}z4J#6)8IqEl+B980b)s9>nqp(u7ZNpf`_^;i{KPZ~aX83cNsr|<{J=87MS1@U&ZCAMzK0bBl$ z-v39h|H;Pxw@JB1)_W~HSmkEO${(PlV|$sXJ_Z~x4!754)eg|hZz}z{r&J& z_zJn<*S3O+ii*5E^FxwAv{zHEhfC{~u-OLM+TVZp`vnA8FN_cE(3hLzPx1sMjdFG^ z)l}-9T?E$xufWERj>YB&>ZX-UCLq-(3=H~Sr)W^zTX;O4_l+CdK;3~F05$v@}m>G|vc2j0`u0~}*1a4i0Y$$ix17>9@(trY`>&9VAI zX8Xs+#!jm|1v^&+xZB&?o0}79G+PV?bN1|6Cnx#D2K?6MDnLeot#kNJkRpv|y!MH( zzK#zKT`esw1;FavS4>Vy0)%OPq$Z-{*;&x-!9fQq^0}4D_U+q4=08^W4Cp2X!SA@Y zsB3C6^7G&L8yOmAwireKiuCvQcX3f9n^!v5G@kzC#S3tw|D99J=&h(b zr(9Ih+NWO*_&l|OBM=Ubjy@;}OEemW2#RmO$Qy`Ezu&^*Y+s(?# z%FK+bQQ5wuXe~N(zc|s-;MlRtwzd-D;*{j%KR{>BoN2o3b379X83i9PUX7an_?L9z zgS0dx`NkoNYSVRH1bu#P?!1N;fSuoIglah=r8HZsKhW>;VX1|iYtT#u9Z zB^5Qb7f+si0;FE;L34XMZk$Vwii&zE>9b!w!yLA`58P0DYa<~cp`OEWa&$z~5z9lk zx>marK!#bYV@HmdD?%W7hXtRl#%{vl6y9~+`XeOM?I1B5g00$vnCKXT z9YA$Y%;(sskz#;D6z3Wo91J*uk_Mo%^Yc~c=up7CI8}x8^!8@_II&TXmMr@afC?Qw zJvGI3(XOnjI;%ugWqk?4M@5}XZsavLD^9FYx?qW@5T$7QV`IZWU*9NV#mCDlA20_^6F1?w z>czNIih#-3yLWHs!ic7didA6`+iw`C{1oINIkH({53mF*%OSPO*JElNmjIMfS6A2S z+|VjuKyKf@eayQTP@Qz^JsjqvM~@b2H~jjFopy`w*ESS?P+wn$r?DG{@ zScW$itEQ%=+W^(q5&IjBg>_SGNfBucMbE)3^$$(|mBZiU%pIBDxpODA3n^5nMB@RD zNOL9oYK^LG%;iNs9}EWT<~% - - - - - - -libfranka: Member List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka::VacuumGripper Member List
-
-
- -

This is the complete list of members for franka::VacuumGripper, including all inherited members.

- - - - - - - - - - - - -
dropOff(std::chrono::milliseconds timeout) constfranka::VacuumGripper
operator=(VacuumGripper &&vacuum_gripper) noexceptfranka::VacuumGripper
ProductionSetupProfile enum namefranka::VacuumGripper
readOnce() constfranka::VacuumGripper
ServerVersion typedeffranka::VacuumGripper
serverVersion() const noexceptfranka::VacuumGripper
stop() constfranka::VacuumGripper
vacuum(uint8_t vacuum, std::chrono::milliseconds timeout, ProductionSetupProfile profile=ProductionSetupProfile::kP0) constfranka::VacuumGripper
VacuumGripper(const std::string &franka_address)franka::VacuumGripperexplicit
VacuumGripper(VacuumGripper &&vacuum_gripper) noexceptfranka::VacuumGripper
~VacuumGripper() noexceptfranka::VacuumGripper
- - - - diff --git a/classfranka_1_1VacuumGripper.html b/classfranka_1_1VacuumGripper.html deleted file mode 100644 index b1cc5e6b..00000000 --- a/classfranka_1_1VacuumGripper.html +++ /dev/null @@ -1,432 +0,0 @@ - - - - - - - -libfranka: franka::VacuumGripper Class Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
franka::VacuumGripper Class Reference
-
-
- -

Maintains a network connection to the vacuum gripper, provides the current vacuum gripper state, and allows the execution of commands. - More...

- -

#include <vacuum_gripper.h>

- - - - - - - - -

-Public Types

enum  ProductionSetupProfile { kP0, -kP1, -kP2, -kP3 - }
 Vacuum production setup profile.
 
-using ServerVersion = uint16_t
 Version of the vacuum gripper server.
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 VacuumGripper (const std::string &franka_address)
 Establishes a connection with a vacuum gripper connected to a robot. More...
 
 VacuumGripper (VacuumGripper &&vacuum_gripper) noexcept
 Move-constructs a new VacuumGripper instance. More...
 
VacuumGripperoperator= (VacuumGripper &&vacuum_gripper) noexcept
 Move-assigns this VacuumGripper from another VacuumGripper instance. More...
 
~VacuumGripper () noexcept
 Closes the connection.
 
bool vacuum (uint8_t vacuum, std::chrono::milliseconds timeout, ProductionSetupProfile profile=ProductionSetupProfile::kP0) const
 Vacuums an object. More...
 
bool dropOff (std::chrono::milliseconds timeout) const
 Drops the grasped object off. More...
 
bool stop () const
 Stops a currently running vacuum gripper vacuum or drop off operation. More...
 
VacuumGripperState readOnce () const
 Waits for a vacuum gripper state update and returns it. More...
 
ServerVersion serverVersion () const noexcept
 Returns the software version reported by the connected server. More...
 
-

Detailed Description

-

Maintains a network connection to the vacuum gripper, provides the current vacuum gripper state, and allows the execution of commands.

-
Note
The members of this class are threadsafe.
-
Examples:
vacuum_object.cpp.
-

Constructor & Destructor Documentation

- -

◆ VacuumGripper() [1/2]

- -
-
- - - - - -
- - - - - - - - -
franka::VacuumGripper::VacuumGripper (const std::string & franka_address)
-
-explicit
-
- -

Establishes a connection with a vacuum gripper connected to a robot.

-
Parameters
- - -
[in]franka_addressIP/hostname of the robot the vacuum gripper is connected to.
-
-
-
Exceptions
- - - -
NetworkExceptionif the connection is unsuccessful.
IncompatibleVersionExceptionif this version of libfranka is not supported.
-
-
- -
-
- -

◆ VacuumGripper() [2/2]

- -
-
- - - - - -
- - - - - - - - -
franka::VacuumGripper::VacuumGripper (VacuumGripper && vacuum_gripper)
-
-noexcept
-
- -

Move-constructs a new VacuumGripper instance.

-
Parameters
- - -
[in]vacuum_gripperOther VacuumGripper instance.
-
-
- -
-
-

Member Function Documentation

- -

◆ dropOff()

- -
-
- - - - - - - - -
bool franka::VacuumGripper::dropOff (std::chrono::milliseconds timeout) const
-
- -

Drops the grasped object off.

-
Parameters
- - -
[in]timeoutDropoff timeout. Unit: \([ms]\).
-
-
-
Returns
True if command was successful, false otherwise.
-
Exceptions
- - - -
CommandExceptionif an error occurred.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
vacuum_object.cpp.
-
-
-
- -

◆ operator=()

- -
-
- - - - - -
- - - - - - - - -
VacuumGripper& franka::VacuumGripper::operator= (VacuumGripper && vacuum_gripper)
-
-noexcept
-
- -

Move-assigns this VacuumGripper from another VacuumGripper instance.

-
Parameters
- - -
[in]vacuum_gripperOther VacuumGripper instance.
-
-
-
Returns
Model instance.
- -
-
- -

◆ readOnce()

- -
-
- - - - - - - -
VacuumGripperState franka::VacuumGripper::readOnce () const
-
- -

Waits for a vacuum gripper state update and returns it.

-
Returns
Current vacuum gripper state.
-
Exceptions
- - - -
NetworkExceptionif the connection is lost, e.g. after a timeout.
InvalidOperationExceptionif another readOnce is already running.
-
-
-
Examples:
vacuum_object.cpp.
-
-
-
- -

◆ serverVersion()

- -
-
- - - - - -
- - - - - - - -
ServerVersion franka::VacuumGripper::serverVersion () const
-
-noexcept
-
- -

Returns the software version reported by the connected server.

-
Returns
Software version of the connected server.
- -
-
- -

◆ stop()

- -
-
- - - - - - - -
bool franka::VacuumGripper::stop () const
-
- -

Stops a currently running vacuum gripper vacuum or drop off operation.

-
Returns
True if command was successful, false otherwise.
-
Exceptions
- - - -
CommandExceptionif an error occurred.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
vacuum_object.cpp.
-
-
-
- -

◆ vacuum()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
bool franka::VacuumGripper::vacuum (uint8_t vacuum,
std::chrono::milliseconds timeout,
ProductionSetupProfile profile = ProductionSetupProfile::kP0 
) const
-
- -

Vacuums an object.

-
Parameters
- - - - -
[in]vacuumSetpoint for control mode. Unit: \([10*mbar]\).
[in]timeoutVacuum timeout. Unit: \([ms]\).
[in]profileProduction setup profile P0 to P3. Default: P0.
-
-
-
Returns
True if the vacuum has been established, false otherwise.
-
Exceptions
- - - -
CommandExceptionif an error occurred.
NetworkExceptionif the connection is lost, e.g. after a timeout.
-
-
-
Examples:
vacuum_object.cpp.
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/command__types_8h.html b/command__types_8h.html deleted file mode 100644 index dde5b2cf..00000000 --- a/command__types_8h.html +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - -libfranka: include/franka/command_types.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
command_types.h File Reference
-
-
- -

Contains types for the commands that can be sent from franka::Robot. -More...

-
#include <array>
-#include <cstdint>
-
-Include dependency graph for command_types.h:
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

struct  franka::VirtualWallCuboid
 Parameters of a cuboid used as virtual wall. More...
 
-

Detailed Description

-

Contains types for the commands that can be sent from franka::Robot.

-
- - - - diff --git a/command__types_8h__dep__incl.map b/command__types_8h__dep__incl.map deleted file mode 100644 index f05f649c..00000000 --- a/command__types_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/command__types_8h__dep__incl.md5 b/command__types_8h__dep__incl.md5 deleted file mode 100644 index 011f64d6..00000000 --- a/command__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b9775641fd167c7c8ee458619e5d1f70 \ No newline at end of file diff --git a/command__types_8h__dep__incl.png b/command__types_8h__dep__incl.png deleted file mode 100644 index 37d71076296d8cb913ddb60983a2e18f4304ef71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9452 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 - diff --git a/command__types_8h__incl.md5 b/command__types_8h__incl.md5 deleted file mode 100644 index 8e1261b4..00000000 --- a/command__types_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -2349ab47d61e2e134bcf9927610463ac \ No newline at end of file diff --git a/command__types_8h__incl.png b/command__types_8h__incl.png deleted file mode 100644 index 10aaeee90f3483e10339a3b72b7172d6bdbf5ea8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6214 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 diff --git a/command__types_8h_source.html b/command__types_8h_source.html deleted file mode 100644 index 73fe4ced..00000000 --- a/command__types_8h_source.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -libfranka: include/franka/command_types.h Source File - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
command_types.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <array>
6 #include <cstdint>
7 
13 namespace franka {
14 
24  int32_t id;
25 
29  std::array<double, 3> object_world_size;
30 
34  std::array<double, 16> p_frame;
35 
39  bool active;
40 };
41 
42 } // namespace franka
bool active
True if this Cartesian limit is active, false otherwise.
Definition: command_types.h:39
-
Parameters of a cuboid used as virtual wall.
Definition: command_types.h:20
-
std::array< double, 16 > p_frame
4x4 transformation matrix, column-major.
Definition: command_types.h:34
-
Definition: command_types.h:13
-
int32_t id
ID of the virtual wall.
Definition: command_types.h:24
-
std::array< double, 3 > object_world_size
Corner point of the cuboid in world frame in .
Definition: command_types.h:29
-
- - - - diff --git a/communication_test_8cpp-example.html b/communication_test_8cpp-example.html deleted file mode 100644 index 55f152bd..00000000 --- a/communication_test_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: communication_test.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
communication_test.cpp
-
-
-

An example indicating the network performance.

Warning
Before executing this example, make sure there is enough space in front of the robot.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <chrono>
#include <iostream>
#include <thread>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
uint64_t counter = 0;
double avg_success_rate = 0.0;
double min_success_rate = 1.0;
double max_success_rate = 0.0;
uint64_t time = 0;
std::cout.precision(2);
std::cout << std::fixed;
try {
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl << std::endl;
std::cout << "Starting communication test." << std::endl;
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}});
franka::Torques zero_torques{{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0}};
robot.control(
[&time, &counter, &avg_success_rate, &min_success_rate, &max_success_rate, zero_torques](
const franka::RobotState& robot_state, franka::Duration period) -> franka::Torques {
time += period.toMSec();
if (time == 0.0) {
return zero_torques;
}
counter++;
if (counter % 100 == 0) {
std::cout << "#" << counter
<< " Current success rate: " << robot_state.control_command_success_rate
<< std::endl;
}
std::this_thread::sleep_for(std::chrono::microseconds(100));
avg_success_rate += robot_state.control_command_success_rate;
if (robot_state.control_command_success_rate > max_success_rate) {
max_success_rate = robot_state.control_command_success_rate;
}
if (robot_state.control_command_success_rate < min_success_rate) {
min_success_rate = robot_state.control_command_success_rate;
}
if (time >= 10000) {
std::cout << std::endl << "Finished test, shutting down example" << std::endl;
return franka::MotionFinished(zero_torques);
}
// Sending zero torques - if EE is configured correctly, robot should not move
return zero_torques;
},
false, 1000);
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
avg_success_rate = avg_success_rate / counter;
std::cout << std::endl
<< std::endl
<< "#######################################################" << std::endl;
uint64_t lost_robot_states = time - counter;
if (lost_robot_states > 0) {
std::cout << "The control loop did not get executed " << lost_robot_states << " times in the"
<< std::endl
<< "last " << time << " milliseconds! (lost " << lost_robot_states << " robot states)"
<< std::endl
<< std::endl;
}
std::cout << "Control command success rate of " << counter << " samples: " << std::endl;
std::cout << "Max: " << max_success_rate << std::endl;
std::cout << "Avg: " << avg_success_rate << std::endl;
std::cout << "Min: " << min_success_rate << std::endl;
if (avg_success_rate < 0.90) {
std::cout << std::endl
<< "WARNING: THIS SETUP IS PROBABLY NOT SUFFICIENT FOR FCI!" << std::endl;
std::cout << "PLEASE TRY OUT A DIFFERENT PC / NIC" << std::endl;
} else if (avg_success_rate < 0.95) {
std::cout << std::endl << "WARNING: MANY PACKETS GOT LOST!" << std::endl;
std::cout << "PLEASE INSPECT YOUR SETUP AND FOLLOW ADVICE ON" << std::endl
<< "https://frankaemika.github.io/docs/troubleshooting.html" << std::endl;
}
std::cout << "#######################################################" << std::endl << std::endl;
return 0;
}
- - - - diff --git a/control__tools_8h.html b/control__tools_8h.html deleted file mode 100644 index 2c7b9834..00000000 --- a/control__tools_8h.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - -libfranka: include/franka/control_tools.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
control_tools.h File Reference
-
-
- -

Contains helper functions for writing control loops. -More...

-
#include <array>
-#include <cmath>
-#include <string>
-
-Include dependency graph for control_tools.h:
-
-
-
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - -

-Functions

bool franka::isValidElbow (const std::array< double, 2 > &elbow) noexcept
 Determines whether the given elbow configuration is valid or not. More...
 
bool franka::isHomogeneousTransformation (const std::array< double, 16 > &transform) noexcept
 Determines whether the given array represents a valid homogeneous transformation matrix. More...
 
bool franka::hasRealtimeKernel ()
 Determines whether the current OS kernel is a realtime kernel. More...
 
bool franka::setCurrentThreadToHighestSchedulerPriority (std::string *error_message)
 Sets the current thread to the highest possible scheduler priority. More...
 
-

Detailed Description

-

Contains helper functions for writing control loops.

-

Function Documentation

- -

◆ hasRealtimeKernel()

- -
-
- - - - - - - -
bool franka::hasRealtimeKernel ()
-
- -

Determines whether the current OS kernel is a realtime kernel.

-

On Linux, this checks for the existence of /sys/kernel/realtime. On Windows, this always returns true.

-
Returns
True if running a realtime kernel, false otherwise.
- -
-
- -

◆ isHomogeneousTransformation()

- -
-
- - - - - -
- - - - - - - - -
bool franka::isHomogeneousTransformation (const std::array< double, 16 > & transform)
-
-inlinenoexcept
-
- -

Determines whether the given array represents a valid homogeneous transformation matrix.

-
Parameters
- - -
[in]transform4x4 matrix in column-major format.
-
-
-
Returns
True if the array represents a homogeneous transformation matrix, otherwise false.
- -
-
- -

◆ isValidElbow()

- -
-
- - - - - -
- - - - - - - - -
bool franka::isValidElbow (const std::array< double, 2 > & elbow)
-
-inlinenoexcept
-
- -

Determines whether the given elbow configuration is valid or not.

-
Parameters
- - -
[in]elbowElbow configuration.
-
-
-
Returns
True if valid, otherwise false.
- -
-
- -

◆ setCurrentThreadToHighestSchedulerPriority()

- -
-
- - - - - - - - -
bool franka::setCurrentThreadToHighestSchedulerPriority (std::string * error_message)
-
- -

Sets the current thread to the highest possible scheduler priority.

-
Parameters
- - -
[out]error_messageContains an error message if the scheduler priority cannot be set successfully.
-
-
-
Returns
True if successful, false otherwise.
- -
-
-
- - - - diff --git a/control__tools_8h__incl.map b/control__tools_8h__incl.map deleted file mode 100644 index 01694cd6..00000000 --- a/control__tools_8h__incl.map +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/control__tools_8h__incl.md5 b/control__tools_8h__incl.md5 deleted file mode 100644 index 34a77c04..00000000 --- a/control__tools_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -087701cc5ca4ad1b1572be777580d51c \ No newline at end of file diff --git a/control__tools_8h__incl.png b/control__tools_8h__incl.png deleted file mode 100644 index 592a3c73db4d4b4d06b3bcb711d1fa7aa50c053b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6995 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 F^gjhud4d1{ diff --git a/control__tools_8h_source.html b/control__tools_8h_source.html deleted file mode 100644 index 5bd46a21..00000000 --- a/control__tools_8h_source.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -libfranka: include/franka/control_tools.h Source File - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
control_tools.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2019 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <array>
6 #include <cmath>
7 #include <string>
8 
14 namespace franka {
15 
23 inline bool isValidElbow(const std::array<double, 2>& elbow) noexcept {
24  return elbow[1] == -1.0 || elbow[1] == 1.0;
25 }
26 
34 inline bool isHomogeneousTransformation(const std::array<double, 16>& transform) noexcept {
35  constexpr double kOrthonormalThreshold = 1e-5;
36 
37  if (transform[3] != 0.0 || transform[7] != 0.0 || transform[11] != 0.0 || transform[15] != 1.0) {
38  return false;
39  }
40  for (size_t j = 0; j < 3; ++j) { // i..column
41  if (std::abs(std::sqrt(std::pow(transform[j * 4 + 0], 2) + std::pow(transform[j * 4 + 1], 2) +
42  std::pow(transform[j * 4 + 2], 2)) -
43  1.0) > kOrthonormalThreshold) {
44  return false;
45  }
46  }
47  for (size_t i = 0; i < 3; ++i) { // j..row
48  if (std::abs(std::sqrt(std::pow(transform[0 * 4 + i], 2) + std::pow(transform[1 * 4 + i], 2) +
49  std::pow(transform[2 * 4 + i], 2)) -
50  1.0) > kOrthonormalThreshold) {
51  return false;
52  }
53  }
54  return true;
55 }
56 
65 bool hasRealtimeKernel();
66 
75 bool setCurrentThreadToHighestSchedulerPriority(std::string* error_message);
76 
77 } // namespace franka
bool isHomogeneousTransformation(const std::array< double, 16 > &transform) noexcept
Determines whether the given array represents a valid homogeneous transformation matrix.
Definition: control_tools.h:34
-
bool isValidElbow(const std::array< double, 2 > &elbow) noexcept
Determines whether the given elbow configuration is valid or not.
Definition: control_tools.h:23
-
Definition: command_types.h:13
-
bool hasRealtimeKernel()
Determines whether the current OS kernel is a realtime kernel.
-
bool setCurrentThreadToHighestSchedulerPriority(std::string *error_message)
Sets the current thread to the highest possible scheduler priority.
-
- - - - diff --git a/control__types_8h.html b/control__types_8h.html deleted file mode 100644 index deaec7e5..00000000 --- a/control__types_8h.html +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - -libfranka: include/franka/control_types.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
control_types.h File Reference
-
-
- -

Contains helper types for returning motion generation and joint-level torque commands. -More...

-
#include <array>
-#include <cmath>
-#include <initializer_list>
-
-Include dependency graph for control_types.h:
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - -

-Classes

struct  franka::Finishable
 Helper type for control and motion generation loops. More...
 
class  franka::Torques
 Stores joint-level torque commands without gravity and friction. More...
 
class  franka::JointPositions
 Stores values for joint position motion generation. More...
 
class  franka::JointVelocities
 Stores values for joint velocity motion generation. More...
 
class  franka::CartesianPose
 Stores values for Cartesian pose motion generation. More...
 
class  franka::CartesianVelocities
 Stores values for Cartesian velocity motion generation. More...
 
- - - - - - - -

-Enumerations

enum  franka::ControllerMode { kJointImpedance, -kCartesianImpedance - }
 Available controller modes for a franka::Robot.
 
enum  franka::RealtimeConfig { kEnforce, -kIgnore - }
 Used to decide whether to enforce realtime mode for a control loop thread. More...
 
- - - - - - - - - - - - - - - - -

-Functions

Torques franka::MotionFinished (Torques command) noexcept
 Helper method to indicate that a motion should stop after processing the given command. More...
 
JointPositions franka::MotionFinished (JointPositions command) noexcept
 Helper method to indicate that a motion should stop after processing the given command. More...
 
JointVelocities franka::MotionFinished (JointVelocities command) noexcept
 Helper method to indicate that a motion should stop after processing the given command. More...
 
CartesianPose franka::MotionFinished (CartesianPose command) noexcept
 Helper method to indicate that a motion should stop after processing the given command. More...
 
CartesianVelocities franka::MotionFinished (CartesianVelocities command) noexcept
 Helper method to indicate that a motion should stop after processing the given command. More...
 
-

Detailed Description

-

Contains helper types for returning motion generation and joint-level torque commands.

-

Enumeration Type Documentation

- -

◆ RealtimeConfig

- -
-
- - - - - -
- - - - -
enum franka::RealtimeConfig
-
-strong
-
- -

Used to decide whether to enforce realtime mode for a control loop thread.

-
See also
Robot::Robot
- -
-
-

Function Documentation

- -

◆ MotionFinished() [1/5]

- -
-
- - - - - -
- - - - - - - - -
Torques franka::MotionFinished (Torques command)
-
-inlinenoexcept
-
- -

Helper method to indicate that a motion should stop after processing the given command.

-
Parameters
- - -
[in]commandLast command to be executed before the motion terminates.
-
-
-
Returns
Command with motion_finished set to true.
-
See also
Documentation on callbacks
-
Examples:
communication_test.cpp, generate_cartesian_pose_motion.cpp, generate_cartesian_velocity_motion.cpp, generate_consecutive_motions.cpp, generate_elbow_motion.cpp, generate_joint_position_motion.cpp, generate_joint_velocity_motion.cpp, joint_impedance_control.cpp, and motion_with_control.cpp.
-
-
-
- -

◆ MotionFinished() [2/5]

- -
-
- - - - - -
- - - - - - - - -
JointPositions franka::MotionFinished (JointPositions command)
-
-inlinenoexcept
-
- -

Helper method to indicate that a motion should stop after processing the given command.

-
Parameters
- - -
[in]commandLast command to be executed before the motion terminates.
-
-
-
Returns
Command with motion_finished set to true.
-
See also
Documentation on callbacks
- -
-
- -

◆ MotionFinished() [3/5]

- -
-
- - - - - -
- - - - - - - - -
JointVelocities franka::MotionFinished (JointVelocities command)
-
-inlinenoexcept
-
- -

Helper method to indicate that a motion should stop after processing the given command.

-
Parameters
- - -
[in]commandLast command to be executed before the motion terminates.
-
-
-
Returns
Command with motion_finished set to true.
-
See also
Documentation on callbacks
- -
-
- -

◆ MotionFinished() [4/5]

- -
-
- - - - - -
- - - - - - - - -
CartesianPose franka::MotionFinished (CartesianPose command)
-
-inlinenoexcept
-
- -

Helper method to indicate that a motion should stop after processing the given command.

-
Parameters
- - -
[in]commandLast command to be executed before the motion terminates.
-
-
-
Returns
Command with motion_finished set to true.
-
See also
Documentation on callbacks
- -
-
- -

◆ MotionFinished() [5/5]

- -
-
- - - - - -
- - - - - - - - -
CartesianVelocities franka::MotionFinished (CartesianVelocities command)
-
-inlinenoexcept
-
- -

Helper method to indicate that a motion should stop after processing the given command.

-
Parameters
- - -
[in]commandLast command to be executed before the motion terminates.
-
-
-
Returns
Command with motion_finished set to true.
-
See also
Documentation on callbacks
- -
-
-
- - - - diff --git a/control__types_8h__dep__incl.map b/control__types_8h__dep__incl.map deleted file mode 100644 index e1161dda..00000000 --- a/control__types_8h__dep__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/control__types_8h__dep__incl.md5 b/control__types_8h__dep__incl.md5 deleted file mode 100644 index 05e9cf1b..00000000 --- a/control__types_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -da53e6f6aa93294e7bed9f34c107bd8f \ No newline at end of file diff --git a/control__types_8h__dep__incl.png b/control__types_8h__dep__incl.png deleted file mode 100644 index 9a09ce0bc4445c81ba82c62206a009a8b5f6f96c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17125 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 - diff --git a/control__types_8h__incl.md5 b/control__types_8h__incl.md5 deleted file mode 100644 index 252693f2..00000000 --- a/control__types_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -10ced2a4b84cfbf535eb66cca3771b2e \ No newline at end of file diff --git a/control__types_8h__incl.png b/control__types_8h__incl.png deleted file mode 100644 index 6471d32c3592a8910d3ec118d6cb52a25b428284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7703 zcmZXZcQjnlx5r1c(MRuHbRtm`b@W~$I$?AnNTNp_!{|hbAVlw?iy8z$5F~o^7SV#} z^&Ri`dw;!U4c3}_?!9O4?=I)FBXzY^i16v~ArJ_WnyTVs2n2%_{2v6x0l%|%J-ERi z9BT~~Maa$VPj*{T5(L6HsHO;i;`4rI&fAz`@*H>X@9vKR6FEg}JnPPIM?&k$U^sT? zmwJLb@F+?oPA-igj%WjvrdoL{IG36pA16qUhfYgQj+Kl+OHLk_)a&;NZfYCLzz;8P zuhf6OOw4xP$AgmSw8@9H!haFE6iOj1P$UznW-~hrH1{>TS_BK!^bLn1468zwj17u3 zeBgmQ!p+KxA$z%pIfsBL3X_tOdZ1a3x;gRe92{1D6llB?drmi(1H+1nib}}J()OmA zLr!tzC`)?p=1XEBJKA2KR5?!yHg|1M^@*|~SsaxTVQ^R-+kc;QXelTt*!W^axk&bA zSoX&1YYZ(nAK%v4@2#yZQWz}Q_uo2VXQnD1%m^dOblGOBKxwx#|Oun&u_lt*0 zV`Jmuz`geFRLej$Z*Gg@y(I-(TU!=3wmZ^(huM-0NEmIT3^_hNe&Q)s-ODxg{DOj| zwSiO`8UMy^j_j|EVg3F6c%!4E@)o#o*+^~qL_tYO`jnIuArTQp0|QE1JG(!`B^K#l zwO|%^4Z7~*;^MwbPiGSqrKF{$-54*UmXeYZ3cU1z$a#8-YQL8VIX(4xVrXc6e)wmq z3V}&ML19|g=Cg0@e|0oTBksx&9G)@xmfr;FJoyoBVnW-~(=+wSjrsB8$JseK7<_zX z_8%%sO5l!;+)PqF!KJ0VF?6E%^y03H3!ej;2D*EDySlrvetmLNv9@M|EY8$B8&_Ln zZ}03ZEiOXH$;tBz3)zH)$<02wDrssGl97{lS_zGOa z2j&OD!uwYz3o93Y+k5wxx=1M~x@&b}Vq?!fqG4`inJAy8fD19Nof&LtX=z18#g2sq z<~MKNSP9YWot&sBDPbRPPlwL8y%ggjO zX5jgFX4&P%&QM)_{jM}&hsBkZP@CSk7bF|N!c$XIR-0ob5*{0{DHky@xB1!fOt9%r zaHB3X32st<_h6bZ284ka*TlqRs@|EpuD<@h^F+DV5j-#G`V1FXuy-U!VQFazgEOf= zwx!~jeg&uFlMX$(88AJ#C3sKFprD}b>DrV~l4^B)_b%hg!wzf)937SXz`0<#6nmVtl3bwz$zjtte{PeS(B3-2M5Qv&XJT!#((OgjN{?@5Pf5Fv-M1!(^Q?4essfG z{ep;VU_knZ5Amz3wl1@cq#z8#3kx}CXJ-?VlgIeqHdsF|)0t`c-)*ENG&eswSvWX2 zfY60A0!>;yNCWS;d+-Rvbar<3h>L~Ruc6^#+!6QSfX%rU@6+wt;k}Jf_FHwTtE>A@ z7L=4sZ~uOMvb%J7_OI{z_pfLYW(b5`CC;Tm(>Y*dV|^$C_|f@3%0=fwYbEgPz^*L7 z)YuqG6^#w_w(ER#ae_NC5(Hk-)u_BxWGCqu2+HztD#|pkpa7c~eQV%d?Qij|t^T#4 zIdyf(7j8sEME<9H7zG6dv!TWJ_eDNNcUmoOj+f~g7_3bP`uj_1YH9t7$@>E<1tx9r z{`>W#MT?b-3!##dlKE$U+V<;n=ZqbZwT+F4-gsu4t%-`MS_hJo8MW6lZgk@9GUH=o zSQ$gg2n4IR6Y$0z$Bp*mMbB^?k-y~da&&g;7*VfjUP(!0BsmwGkPysmz7-DA#YfBb zI1~yiYk-7FiUwqr;_`AuI2_H zG~9;|9~M_s^h8tNyVW}I2nbLqzr*4#h0d87Q(cNMCTTx8Lqn=RfBt0higsF8?+uAB z$m!^iWQaXq=A3Gnxw&=uOr@o443jh+E(y~rF*=^%A@bhm)7&`+t~S4;FAG68L}D3p zn-7r2B=AbtBoxG|H;!@S=g-ihBChT2?S!-x6z%Nns_N^*K7A4|)J*%a zedX4EMI|aKYW&&%VQX6(!rp#jJHXA&ZDV7jI=ok|1wshFFApC(_WY??i6R(m#!^4Suj zF6`+C6-Uz>n#or3f_yplJsv3*oG%d-A?De8z>L~R_-`2`!_2qE9?kquRqXp@BeG&p z^JR9H!Km_SPk$0u)4yYlQAMH3Rzn#ygT1EApRYs!LHF!QjnpAgoQ)f z+hv>H#KWM8sO|)il-9pzMi&=zL*y(h7<2RTZgZGR6E*==M_(Tl#C%n4ZD@En4k%M2 z_B^B@jzK--=HY>BYZHfuhr4@ut<&o}sJp@xUneZRdskCag9O>m+`{5baxxZG^!T#t zTHw`r{b|#!?;o=j78dU9@55D9q2IoJ%dV^>p{J+c*xLF;r}N)?aB$%Gq?C`0kN4b` z9Y)63i<7@yzy}W=3-w7ZnXFDdFLcl6P_8pPic{rKRoH62fBT zwUyw+G37Hs*x7{k?Nk`i&S+W-75*%>Huq;zyq zv$N)7larxcON%SL@r&*fkYJFatOwo-uuXd*Ssdi8JHCG>25C>p)|MljkQSMp%>wCI z?N55K+DA%5OS{kCEf#d`j|vZe+0IA+g)S0j06o7r-Zt^^^UDQ!$} zy+BGaJox}-M4_|<(qBSq>R*qg2gn30uwmQ3^KGFZc7{&|2M70#CN2N@4+EnC8}A(+ zy1am=v*hDVw}feGXq4$I3<5d)3y>8NsjForMH#bp-T!~h+HG41x~{|TnUa5q;rZNA zcsQX7-ZT~+5Ofz-()2l2SR(Le#4fCvs9H@P6PI}PtfQbVmz#yJjQW|g3C(?ZcS(Pf zG^v_e1EH6zuS4qlb)IJ79~>m#w^hCW#6UL6HZ%9O5mHc4xa}9a*W>=|qK4M32Hr+D zzFgypW3~)!dZmJ2zEfN*yR_|(Czi zV5I;4-2rr@_}|~Z=%{m2_(QD5LPLndz)-k6BTBNm{?_{Y`?iSa*KluR6p97(^>kz- zwB0?@z0lhAJ*0Peb2!k^D zH}Bqs{rjDH-*uJ+EQ#!imhG)D%h0vBB3)mXW#QzE-A#brS4vEPjgR?vZ;o>%yni1X zO`VBwDcA5;WfQfHpmLp`MJYvpMGU2r+xjT)DJCW)JTVIDE;Z=gUshsbV;Aq}Q$_D4 zIOb%tM9;NUyx7ZT6nv`r1&NK`JFj=#MX+&Ts>#diKE1}!NX20nu7xZu3DU@zXMiQ2 zeD;4w#LdT?`wd-I3;y*(eef#?&Wo#jm=!h#kjpec1&wy%X#_y zDAu^f_RiupW$7pEnD@+a+Mv!L31-kxJ2l-4`d6jUG;zI7FKYV9n4MYYJ=Y26-hV zjDPEla>mAY=2%HZSk+V^QBk~Awra4_QkmrgJEM)w<3dS}NFggZ9rLE;a3Xs9F9Upc zc6SlQrEIm$Ug8{ho_YubHq||1d7u)b%4Wo3$5Rh9hn}tNyQ!KUh9d3hmEF1DLgF_V zfByJ-pp_zEYVsBd8D@9*%DS?-@lyqxlpW>^4e|1$3^RN->b}#*^qyAWO{z(m{)sn_(dPu!+E;`;XSR~LDmO9@M9A}ngfL_9px#?2x$%F39eRO=`vY1KQq8pB!A z?&o#VpR$f>>^k$a>M2;%BI0}FEfM?6EHU&&(Meo8K-3@(=AN$X@$-JeeE9J0J7I@= zyL0SE<#%b-no zYaQs9dzp>o4c`JGE7H?#nWVlov^m~xi-^@KlH|z6R3&@HCML$XHIW&dl5#(e$pVj- z_J?$0Zgp0DSdU}*Q%3c02Qn0c-3=vq5)KeSRs9vi#j(I$eOe6`Y;2S5xfaw|?OP!Z zyd1=}7x><|!R5{!OzI>ojwSH0$?*0I{g=6I32=N0You|5oDMSv5^ z!QupJZzR3A7@|KB&)tjjsJzGIleRpyAjg;SBL)V>qOM7ARyDcDh1FS}jvJ=k-T9!W z!|dzxQSmnJ=4yUUhEJf;(eQlfbh9k&bUowD1FZlZZS~C~C9kFY_U)jmPAXy`HRyJ$ zk*;Z|?^&_vA_punH?gib#<$?w2ss65XKx8f9W=Vvx3LAC)0|E?+ztQKLU4~`mFe>G z8uMPI@7~@!1#bz9$7W^=%j>PVx%iNd4Dp_!rw-NcXoRwh`mD)SVvovI;+Z01>F;&S z`pd>KnrU$s<yPiS+>zXo*TFU7}IagF+jLfu#j@ z(*bV~yu7NkIdOF^QI(VH(qGdrB6jK(z$P>{p^fI?RLiNDyY`#t=}DRTe3cl%zAcl_ zi>IVg#3oz|V<5(UeL;TOelq}pZ2zK;4Z69&xx9K_l=7?j0zO`q`-Ge&iS0%KfjPd10Zf1ft3`k7?vTb~fZUM%qma@FR*7PGtCCG_)W zPAY*%KgzQ_-Q5{>7lyGyF??QIDhCGg42`NYm#E1DL$XOrGrNf4LOPb*JM3S%|Fg%R zowc{wUmkXf)0Lp0Todx%?KAxF%BGfw-&91qTTd-ZCLkF^E0p;I_N?DT`_{_~Uv%g` zN$vseQDS&w`;7mc*Z#7Rs&*j3>x-nJ`N}dIb`YAszuz69$ni*w;_&#b&HLlWf$s!E zAveCKr%Sogqp3AF=m;__W!6qrg<% zT0s~ZeihjKeYjnMiX_MVN%6+k?^=qa#p??9Qt)DIvi8mUODZnyS!xTb$C}H-KTmd? zPnBbaT$?8Q`l{sgD5wM(2uR|aXrzpj!l6oC-HOZs=f#Ux7vYkH;2dY=eDTnjKk_C> z*_M~j8Q~UGYSA+y!GM2#Jt^co;l8n@@i*`;K3N-jzAYopVfdx#d+cgses1nQ>!VFI zpUWv~mALYRO)M;kCMPCvLZjv6tTVr*3~8I6sOI0HzkYN|dhRdI zno(%332`t9ak5KGA+Ik=+}+>di`MUoYQ1{-QjDKJ5CQ>* zCGvQtvxEbV%u^L!YUgB7p?YA`n4naW02!B zd^aD%r%&TZm}Q_90fF-JyX+jR7=o5hNdm59>bkQF3qd!!H2B2K*qA%nOLF<@g7@!oOiWBI^Tw*TnsFmIOuZJ0(fZ*vH4pNOqEC`}hO;O`ayOTDq)GFX zo$h2Oycw-FkqApe)zsGNJ$b@WcYH?s=m|!1^Rwa#0Y$$@(zxY0IXNTeM&`#uh^|#3 zmnld8Q>%#8Re34j17ci~`HoiKa}PA2X z1~(Hllj(Y^km>$bwFP`w-tYeo$!v`=F){ADvk#lQ5*~4KazcrS3M2_3%aj`Ii705v z#AxV8=>hK}IjSN>7UF7;g_iT?ru~)PuJLh70OoQeDRR^`HMf5pw4RsbJ@*pjL~N?^ zf0=RUOS^@|WU6E}b#+*wosgt{R8|(#=ZoDI`@2H1F)>v(y~LUyWEgpQc^iH9*@h=i z>&eN;ka~IP)Xq0smF+C-?4jar>C{}Qife0YdwYAqU^!@b@VL0Ro){Ql0IV~VA#U?6 znMc>qFgz!R6<~&{pqoHK8X?HDXV2U{Jh0IJ+HrZ#j@D}I2KH9_$;&NTsDP5e7H5a; zY;CR92h#v@>H#?M#qaNoqh6@sfJd`J4;~=n<8{h@O?jM6od5YL_G{+mtcQY;@oM2W zQ^rkXY%DeeU}A7c$82tH2H6i?P+(Vkl{xuhEamzk;3$WOha-6^B${atuysDjto@?C z0}sf}&JK=>j=nft^D3#VECSh7orp>59XclYkyF@S%H z0c6ml7#}eT#UaWKyt(o&&CNxcws;8?J3JMki5)67g0bVJoR;8ATEA6kb z^eUN;JWHo*Y`(_iczAde=jU^jmX=1H@3#Eq*3#07>RPIMExEkBT#Q5_iJ!k#@u<53 zXbSl#@KWOBcSFPe&o$qppG5;A&nhZqEk4%|>r*HJ@E`p^Oso)impdw#8xYuUU%nvE z0evn3vGWX^!^ftoZFs~ohUT&+;_{9URepXDe(-=BP~XkYP~0b4T0|)c33AWpnp4~? z>!?4h2%2Yi-KUBU1H1e(G(-fB|3mYyJUwrTfiXYT!lbFQ3ZU|QMjsUciU{}0|zn*Fu1T8FEs$ruR8=2 zccjed9t{nR)kL|;>`i_8@`>b95AZiRr)F?sBAL0lxvsHs1mKz>uJ`6p^|6dQTRNE! zU*Qz#d;qo-&n_>I0oca8=_U4UtOG;`rU7>_G2f)5gw@rF?EW^DjC-UGaNx_AFM$AGPJVQ=lnYIO9(eYCeoS#?7dgtflbY6V|_XgMs=rP{Da(wL4?cnqA zrM8dLxdbZLx-0XK)~^&CMp^+ zAmI)Ez7IRoLM06rh7cqJh6J#1` zzH~tUrN=WeWKqL;N!x|2EP(%9hULZ~1F83Hzl=XZjZID2BqV5(I7L6a*H=-&1+m$YF6w+sWj8mUNd;cgOiWAwM!fUGYaa}E zLU(?B0(C95xU38_V`$x#nWZ(La6rv*BpVJTBt!x31ERm$_n$q#X`QO$jqjC@sK*Wuyok`eSRd z(s%x}&q}EKe4ioG&r5UWGcP9;PAB3BTac{pNm0xMjF&awKch{K|MFfaGMiFO9t%EF zI_}o1ct0pvgpZe(Er6Q?kalZfJho9!GD#v2BegA&k!87=q7cqU@slDW0=HvK6jW`( wh8_#9$_$F!|J_C%M-FQa4#OIKe)n3I5<+Q9RLb%XOnM<|O4^Da<*kta1Kbv#q5uE@ diff --git a/control__types_8h_source.html b/control__types_8h_source.html deleted file mode 100644 index 2b68b2d9..00000000 --- a/control__types_8h_source.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - -libfranka: include/franka/control_types.h Source File - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
control_types.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <array>
6 #include <cmath>
7 #include <initializer_list>
8 
14 namespace franka {
15 
19 enum class ControllerMode { kJointImpedance, kCartesianImpedance };
20 
26 enum class RealtimeConfig { kEnforce, kIgnore };
27 
35 struct Finishable {
39  bool motion_finished = false;
40 };
41 
45 class Torques : public Finishable {
46  public:
52  Torques(const std::array<double, 7>& torques) noexcept;
53 
61  Torques(std::initializer_list<double> torques);
62 
66  std::array<double, 7> tau_J{}; // NOLINT(readability-identifier-naming)
67 };
68 
72 class JointPositions : public Finishable {
73  public:
79  JointPositions(const std::array<double, 7>& joint_positions) noexcept;
80 
88  JointPositions(std::initializer_list<double> joint_positions);
89 
93  std::array<double, 7> q{};
94 };
95 
99 class JointVelocities : public Finishable {
100  public:
107  JointVelocities(const std::array<double, 7>& joint_velocities) noexcept;
108 
116  JointVelocities(std::initializer_list<double> joint_velocities);
117 
121  std::array<double, 7> dq{};
122 };
123 
127 class CartesianPose : public Finishable {
128  public:
136  CartesianPose(const std::array<double, 16>& cartesian_pose) noexcept;
137 
146  CartesianPose(const std::array<double, 16>& cartesian_pose,
147  const std::array<double, 2>& elbow) noexcept;
148 
158  CartesianPose(std::initializer_list<double> cartesian_pose);
159 
171  CartesianPose(std::initializer_list<double> cartesian_pose, std::initializer_list<double> elbow);
172 
178  std::array<double, 16> O_T_EE{}; // NOLINT(readability-identifier-naming)
179 
187  std::array<double, 2> elbow{};
188 
195  bool hasElbow() const noexcept;
196 };
197 
202  public:
209  CartesianVelocities(const std::array<double, 6>& cartesian_velocities) noexcept;
210 
218  CartesianVelocities(const std::array<double, 6>& cartesian_velocities,
219  const std::array<double, 2>& elbow) noexcept;
220 
229  CartesianVelocities(std::initializer_list<double> cartesian_velocities);
230 
240  CartesianVelocities(std::initializer_list<double> cartesian_velocities,
241  std::initializer_list<double> elbow);
242 
247  std::array<double, 6> O_dP_EE{}; // NOLINT(readability-identifier-naming)
248 
256  std::array<double, 2> elbow{};
257 
263  bool hasElbow() const noexcept;
264 };
265 
275 inline Torques MotionFinished(Torques command) noexcept { // NOLINT(readability-identifier-naming)
276  command.motion_finished = true;
277  return command;
278 }
279 
289 inline JointPositions MotionFinished( // NOLINT(readability-identifier-naming)
290  JointPositions command) noexcept {
291  command.motion_finished = true;
292  return command;
293 }
294 
304 inline JointVelocities MotionFinished( // NOLINT(readability-identifier-naming)
305  JointVelocities command) noexcept {
306  command.motion_finished = true;
307  return command;
308 }
309 
319 inline CartesianPose MotionFinished( // NOLINT(readability-identifier-naming)
320  CartesianPose command) noexcept {
321  command.motion_finished = true;
322  return command;
323 }
324 
334 inline CartesianVelocities MotionFinished( // NOLINT(readability-identifier-naming)
335  CartesianVelocities command) noexcept {
336  command.motion_finished = true;
337  return command;
338 }
339 
340 } // namespace franka
Stores values for joint velocity motion generation.
Definition: control_types.h:99
-
Stores values for Cartesian velocity motion generation.
Definition: control_types.h:201
-
RealtimeConfig
Used to decide whether to enforce realtime mode for a control loop thread.
Definition: control_types.h:26
-
Stores joint-level torque commands without gravity and friction.
Definition: control_types.h:45
-
Helper type for control and motion generation loops.
Definition: control_types.h:35
-
bool motion_finished
Determines whether to finish a currently running motion.
Definition: control_types.h:39
-
Stores values for Cartesian pose motion generation.
Definition: control_types.h:127
-
Definition: command_types.h:13
-
Stores values for joint position motion generation.
Definition: control_types.h:72
-
Torques MotionFinished(Torques command) noexcept
Helper method to indicate that a motion should stop after processing the given command.
Definition: control_types.h:275
-
ControllerMode
Available controller modes for a franka::Robot.
Definition: control_types.h:19
-
- - - - diff --git a/deprecated.html b/deprecated.html deleted file mode 100644 index 95d64fe1..00000000 --- a/deprecated.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - -libfranka: Deprecated List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Deprecated List
-
-
-
-
Member franka::Robot::setFilters (double joint_position_filter_frequency, double joint_velocity_filter_frequency, double cartesian_position_filter_frequency, double cartesian_velocity_filter_frequency, double controller_filter_frequency)
-
Use franka::lowpassFilter() instead.
-
-
- - - - diff --git a/dir_000000_000001.html b/dir_000000_000001.html deleted file mode 100644 index 6eff7755..00000000 --- a/dir_000000_000001.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - -libfranka: examples -> include Relation - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-

examples → include Relation

File in examplesIncludes file in include
cartesian_impedance_control.cppfranka / duration.h
cartesian_impedance_control.cppfranka / exception.h
cartesian_impedance_control.cppfranka / model.h
cartesian_impedance_control.cppfranka / robot.h
communication_test.cppfranka / duration.h
communication_test.cppfranka / exception.h
communication_test.cppfranka / robot.h
echo_robot_state.cppfranka / exception.h
echo_robot_state.cppfranka / robot.h
examples_common.cppfranka / exception.h
examples_common.cppfranka / robot.h
examples_common.hfranka / control_types.h
examples_common.hfranka / duration.h
examples_common.hfranka / robot.h
examples_common.hfranka / robot_state.h
force_control.cppfranka / duration.h
force_control.cppfranka / exception.h
force_control.cppfranka / model.h
force_control.cppfranka / robot.h
generate_cartesian_pose_motion.cppfranka / exception.h
generate_cartesian_pose_motion.cppfranka / robot.h
generate_cartesian_velocity_motion.cppfranka / exception.h
generate_cartesian_velocity_motion.cppfranka / robot.h
generate_consecutive_motions.cppfranka / exception.h
generate_consecutive_motions.cppfranka / robot.h
generate_elbow_motion.cppfranka / exception.h
generate_elbow_motion.cppfranka / robot.h
generate_joint_position_motion.cppfranka / exception.h
generate_joint_position_motion.cppfranka / robot.h
generate_joint_velocity_motion.cppfranka / exception.h
generate_joint_velocity_motion.cppfranka / robot.h
grasp_object.cppfranka / exception.h
grasp_object.cppfranka / gripper.h
joint_impedance_control.cppfranka / duration.h
joint_impedance_control.cppfranka / exception.h
joint_impedance_control.cppfranka / model.h
joint_impedance_control.cppfranka / rate_limiting.h
joint_impedance_control.cppfranka / robot.h
joint_point_to_point_motion.cppfranka / exception.h
joint_point_to_point_motion.cppfranka / robot.h
motion_with_control.cppfranka / exception.h
motion_with_control.cppfranka / robot.h
print_joint_poses.cppfranka / exception.h
print_joint_poses.cppfranka / model.h
vacuum_object.cppfranka / exception.h
vacuum_object.cppfranka / vacuum_gripper.h
- - - - diff --git a/dir_5f30c89189ebb3336d6b33aa932838ba.html b/dir_5f30c89189ebb3336d6b33aa932838ba.html deleted file mode 100644 index 31534b2a..00000000 --- a/dir_5f30c89189ebb3336d6b33aa932838ba.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -libfranka: include/franka Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
franka Directory Reference
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Files

file  command_types.h [code]
 Contains types for the commands that can be sent from franka::Robot.
 
file  control_tools.h [code]
 Contains helper functions for writing control loops.
 
file  control_types.h [code]
 Contains helper types for returning motion generation and joint-level torque commands.
 
file  duration.h [code]
 Contains the franka::Duration type.
 
file  errors.h [code]
 Contains the franka::Errors type.
 
file  exception.h [code]
 Contains exception definitions.
 
file  gripper.h [code]
 Contains the franka::Gripper type.
 
file  gripper_state.h [code]
 Contains the franka::GripperState type.
 
file  log.h [code]
 Contains helper types for logging sent commands and received robot states.
 
file  lowpass_filter.h [code]
 Contains functions for filtering signals with a low-pass filter.
 
file  model.h [code]
 Contains model library types.
 
file  rate_limiting.h [code]
 Contains functions for limiting the rate of torques, Cartesian pose, Cartesian velocity, joint position and joint velocity.
 
file  robot.h [code]
 Contains the franka::Robot type.
 
file  robot_state.h [code]
 Contains the franka::RobotState types.
 
file  vacuum_gripper.h [code]
 Contains the franka::VacuumGripper type.
 
file  vacuum_gripper_state.h [code]
 Contains the franka::VacuumGripperState type.
 
-
- - - - diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4.html b/dir_d28a4824dc47e487b107a5db32ef43c4.html deleted file mode 100644 index 1416c039..00000000 --- a/dir_d28a4824dc47e487b107a5db32ef43c4.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -libfranka: examples Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
examples Directory Reference
-
-
-
-Directory dependency graph for examples:
-
-
examples
- - - - - -
- - - - - -

-Files

file  examples_common.h [code]
 Contains common types and functions for the examples.
 
-
- - - - diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map deleted file mode 100644 index 2df9d3f9..00000000 --- a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 deleted file mode 100644 index 3c7dbfb8..00000000 --- a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.md5 +++ /dev/null @@ -1 +0,0 @@ -1ece70f7e40cd6bf5407d3fc8c32ec4a \ No newline at end of file diff --git a/dir_d28a4824dc47e487b107a5db32ef43c4_dep.png b/dir_d28a4824dc47e487b107a5db32ef43c4_dep.png deleted file mode 100644 index 9d86018004d692c2f3ff06738c317afb56324ef8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3139 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 diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html deleted file mode 100644 index 3f7b69d5..00000000 --- a/dir_d44c64559bbebec7f509842c48db8b23.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -libfranka: include Directory Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
include Directory Reference
-
-
- - -

-Directories

-
- - - - diff --git a/doxygen.css b/doxygen.css index 4f1ab919..ffbff022 100644 --- a/doxygen.css +++ b/doxygen.css @@ -1,4 +1,4 @@ -/* The standard CSS for doxygen 1.8.13 */ +/* The standard CSS for doxygen 1.9.1 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; @@ -53,17 +53,24 @@ dt { font-weight: bold; } -div.multicol { +ul.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; + column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; + column-count: 3; } p.startli, p.startdd { margin-top: 2px; } +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + p.starttd { margin-top: 0px; } @@ -80,6 +87,15 @@ p.endtd { margin-bottom: 2px; } +p.interli { +} + +p.interdd { +} + +p.intertd { +} + /* @end */ caption { @@ -87,30 +103,96 @@ caption { } span.legend { - font-size: 70%; - text-align: center; + font-size: 70%; + text-align: center; } h3.version { - font-size: 90%; - text-align: center; + font-size: 90%; + text-align: center; } -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; +div.navtab { + border-right: 1px solid #A3B4D7; + padding-right: 15px; + text-align: right; + line-height: 110%; } -div.qindex, div.navpath { +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} +td.navtabHL { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; width: 100%; line-height: 140%; + font-size: 130%; + color: #A0A0A0; } -div.navtab { - margin-right: 15px; +dt.alphachar{ + font-size: 180%; + font-weight: bold; } +.alphachar a{ + color: black; +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + /* @group Link Styling */ a { @@ -127,19 +209,8 @@ a:hover { text-decoration: underline; } -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - .contents a.qindexHL:visited { - color: #ffffff; + color: #FFFFFF; } a.el { @@ -163,6 +234,25 @@ dl.el { margin-left: -1cm; } +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; @@ -177,8 +267,8 @@ pre.fragment { } div.fragment { - padding: 0px; - margin: 4px 8px 4px 2px; + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } @@ -248,7 +338,7 @@ span.lineno a:hover { div.ah, span.ah { background-color: black; font-weight: bold; - color: #ffffff; + color: #FFFFFF; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; @@ -324,7 +414,7 @@ img.formulaDsp { } -img.formulaInl { +img.formulaInl, img.inline { vertical-align: middle; } @@ -402,6 +492,13 @@ blockquote { padding: 0 12px 0 16px; } +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + /* @end */ /* @@ -498,7 +595,7 @@ table.memberdecls { white-space: nowrap; } -.memItemRight { +.memItemRight, .memTemplItemRight { width: 100%; } @@ -666,17 +763,17 @@ dl.reflist dd { padding-left: 0px; } -.params .paramname, .retval .paramname { +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { font-weight: bold; vertical-align: top; } -.params .paramtype { +.params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; } -.params .paramdir { +.params .paramdir, .tparams .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } @@ -1081,72 +1178,143 @@ div.headertitle padding: 5px 5px 5px 10px; } -dl -{ - padding: 0 0 0 10px; +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; } -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { margin-left: 0px; padding-left: 0px; } -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; } -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; } -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; } -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; } -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; } -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; } -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; } dl.section dd { @@ -1245,10 +1413,12 @@ dl.citelist dt { font-weight:bold; margin-right:10px; padding:5px; + text-align:right; + width:52px; } dl.citelist dd { - margin:2px 0; + margin:2px 0 2px 72px; padding:5px 0; } @@ -1263,6 +1433,11 @@ div.toc { width: 200px; } +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; @@ -1271,6 +1446,12 @@ div.toc li { padding-top: 2px; } +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; @@ -1300,6 +1481,32 @@ div.toc li.level4 { margin-left: 45px; } +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + .inherit_header { font-weight: bold; color: gray; @@ -1413,7 +1620,7 @@ tr.heading h2 { } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; + border-top-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } @@ -1441,7 +1648,7 @@ tr.heading h2 { } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; + border-bottom-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } @@ -1468,7 +1675,7 @@ tr.heading h2 { left: 100%; } #powerTip.e:after { - border-left-color: #ffffff; + border-left-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; @@ -1484,7 +1691,7 @@ tr.heading h2 { right: 100%; } #powerTip.w:after { - border-right-color: #ffffff; + border-right-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; @@ -1517,7 +1724,6 @@ tr.heading h2 { /* @group Markdown */ -/* table.markdownTable { border-collapse:collapse; margin-top: 4px; @@ -1529,15 +1735,10 @@ table.markdownTable td, table.markdownTable th { padding: 3px 7px 2px; } -table.markdownTableHead tr { -} - -table.markdownTableBodyLeft td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; +table.markdownTable tr { } -th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { background-color: #374F7F; color: #FFFFFF; font-size: 110%; @@ -1545,52 +1746,48 @@ th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th padding-top: 5px; } -th.markdownTableHeadLeft { +th.markdownTableHeadLeft, td.markdownTableBodyLeft { text-align: left } -th.markdownTableHeadRight { +th.markdownTableHeadRight, td.markdownTableBodyRight { text-align: right } -th.markdownTableHeadCenter { +th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } -*/ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; +.DocNodeRTL { + text-align: right; + direction: rtl; } -table.markdownTable tr { +.DocNodeLTR { + text-align: left; + direction: ltr; } -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; } -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; } -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; } +/* @end */ -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center +u { + text-decoration: underline; } - -/* @end */ diff --git a/doxygen.png b/doxygen.png deleted file mode 100644 index 3ff17d807fd8aa003bed8bb2a69e8f0909592fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3779 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 diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 00000000..d42dad52 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/duration_8h.html b/duration_8h.html deleted file mode 100644 index 405f451f..00000000 --- a/duration_8h.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -libfranka: include/franka/duration.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
duration.h File Reference
-
-
- -

Contains the franka::Duration type. -More...

-
#include <chrono>
-#include <cstdint>
-#include <ratio>
-
-Include dependency graph for duration.h:
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  franka::Duration
 Represents a duration with millisecond resolution. More...
 
- - - - -

-Functions

Duration franka::operator* (uint64_t lhs, const Duration &rhs) noexcept
 Performs multiplication. More...
 
-

Detailed Description

-

Contains the franka::Duration type.

-

Function Documentation

- -

◆ operator*()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
Duration franka::operator* (uint64_t lhs,
const Durationrhs 
)
-
-noexcept
-
- -

Performs multiplication.

-
Parameters
- - - -
[in]lhsLeft-hand side of the multiplication.
[in]rhsRight-hand side of the multiplication.
-
-
-
Returns
Result of the multiplication.
- -
-
-
- - - - diff --git a/duration_8h__dep__incl.map b/duration_8h__dep__incl.map deleted file mode 100644 index 3ee2399e..00000000 --- a/duration_8h__dep__incl.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/duration_8h__dep__incl.md5 b/duration_8h__dep__incl.md5 deleted file mode 100644 index 7bd6ecdc..00000000 --- a/duration_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -a5c544af6c4d26ad19928b6da5a42ee8 \ No newline at end of file diff --git a/duration_8h__dep__incl.png b/duration_8h__dep__incl.png deleted file mode 100644 index 1b4c881df07fc01008b2019725a14fe6361fcbf5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37776 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 T#4>O=G~0CC_Eg-u5!Ejc;t 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 - diff --git a/duration_8h__incl.md5 b/duration_8h__incl.md5 deleted file mode 100644 index f958f6e3..00000000 --- a/duration_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ca700753331c49d70901a9a4e2f50120 \ No newline at end of file diff --git a/duration_8h__incl.png b/duration_8h__incl.png deleted file mode 100644 index 3239b1424cebe44aedd7f17ea0619c056c5a9a64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6002 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 diff --git a/duration_8h_source.html b/duration_8h_source.html deleted file mode 100644 index 3c2e23ff..00000000 --- a/duration_8h_source.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -libfranka: include/franka/duration.h Source File - - - - - - - - - - - -
-
-
duration.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <chrono>
6 #include <cstdint>
7 #include <ratio>
8 
14 namespace franka {
15 
19 class Duration {
20  public:
24  Duration() noexcept;
25 
31  explicit Duration(uint64_t milliseconds) noexcept;
32 
38  Duration(std::chrono::duration<uint64_t, std::milli> duration) noexcept;
39 
43  Duration(const Duration&) = default;
44 
50  Duration& operator=(const Duration&) = default;
51 
57  operator std::chrono::duration<uint64_t, std::milli>() const noexcept;
58 
64  double toSec() const noexcept;
65 
71  uint64_t toMSec() const noexcept;
72 
85  Duration operator+(const Duration& rhs) const noexcept;
93  Duration& operator+=(const Duration& rhs) noexcept;
94 
102  Duration operator-(const Duration& rhs) const noexcept;
110  Duration& operator-=(const Duration& rhs) noexcept;
111 
119  Duration operator*(uint64_t rhs) const noexcept;
127  Duration& operator*=(uint64_t rhs) noexcept;
128 
136  uint64_t operator/(const Duration& rhs) const noexcept;
144  Duration operator/(uint64_t rhs) const noexcept;
152  Duration& operator/=(uint64_t rhs) noexcept;
153 
161  Duration operator%(const Duration& rhs) const noexcept;
169  Duration operator%(uint64_t rhs) const noexcept;
177  Duration& operator%=(const Duration& rhs) noexcept;
185  Duration& operator%=(uint64_t rhs) noexcept;
186 
203  bool operator==(const Duration& rhs) const noexcept;
211  bool operator!=(const Duration& rhs) const noexcept;
212 
220  bool operator<(const Duration& rhs) const noexcept;
228  bool operator<=(const Duration& rhs) const noexcept;
229 
237  bool operator>(const Duration& rhs) const noexcept;
245  bool operator>=(const Duration& rhs) const noexcept;
246 
251  private:
252  std::chrono::duration<uint64_t, std::milli> duration_;
253 };
254 
263 Duration operator*(uint64_t lhs, const Duration& rhs) noexcept;
264 
265 } // namespace franka
bool operator==(const Duration &rhs) const noexcept
Compares two durations for equality.
-
bool operator<=(const Duration &rhs) const noexcept
Compares two durations.
-
Duration & operator*=(uint64_t rhs) noexcept
Performs multiplication.
-
Duration() noexcept
Creates a new Duration instance with zero milliseconds.
-
double toSec() const noexcept
Returns the stored duration in .
-
Duration & operator=(const Duration &)=default
Assigns the contents of one Duration to another.
-
bool operator<(const Duration &rhs) const noexcept
Compares two durations.
-
Duration operator+(const Duration &rhs) const noexcept
Performs addition.
-
bool operator>(const Duration &rhs) const noexcept
Compares two durations.
-
Duration & operator-=(const Duration &rhs) noexcept
Performs subtraction.
-
Represents a duration with millisecond resolution.
Definition: duration.h:19
-
bool operator!=(const Duration &rhs) const noexcept
Compares two durations for inequality.
-
Duration & operator%=(const Duration &rhs) noexcept
Performs the modulo operation.
-
Definition: command_types.h:13
-
Duration operator*(uint64_t rhs) const noexcept
Performs multiplication.
-
uint64_t operator/(const Duration &rhs) const noexcept
Performs division.
-
Duration & operator/=(uint64_t rhs) noexcept
Performs division.
-
Duration operator%(const Duration &rhs) const noexcept
Performs the modulo operation.
-
uint64_t toMSec() const noexcept
Returns the stored duration in .
-
bool operator>=(const Duration &rhs) const noexcept
Compares two durations.
-
Duration operator-(const Duration &rhs) const noexcept
Performs subtraction.
-
Duration & operator+=(const Duration &rhs) noexcept
Performs addition.
-
- - - - diff --git a/dynsections.js b/dynsections.js index 85e18369..3174bd7b 100644 --- a/dynsections.js +++ b/dynsections.js @@ -1,3 +1,27 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ function toggleVisibility(linkObj) { var base = $(linkObj).attr('id'); @@ -15,7 +39,7 @@ function toggleVisibility(linkObj) summary.hide(); $(linkObj).removeClass('closed').addClass('opened'); $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } + } return false; } @@ -94,4 +118,4 @@ function toggleInherit(id) $(img).attr('src',src.substring(0,src.length-10)+'open.png'); } } - +/* @license-end */ diff --git a/echo_robot_state_8cpp-example.html b/echo_robot_state_8cpp-example.html deleted file mode 100644 index 41503bd2..00000000 --- a/echo_robot_state_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: echo_robot_state.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
echo_robot_state.cpp
-
-
-

An example showing how to continuously read the robot state.

-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
size_t count = 0;
robot.read([&count](const franka::RobotState& robot_state) {
// Printing to std::cout adds a delay. This is acceptable for a read loop such as this, but
// should not be done in a control loop.
std::cout << robot_state << std::endl;
return count++ < 100;
});
std::cout << "Done." << std::endl;
} catch (franka::Exception const& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/errors_8h.html b/errors_8h.html deleted file mode 100644 index 2c15e7e7..00000000 --- a/errors_8h.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - -libfranka: include/franka/errors.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
errors.h File Reference
-
-
- -

Contains the franka::Errors type. -More...

-
#include <array>
-#include <ostream>
-
-Include dependency graph for errors.h:
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

struct  franka::Errors
 Enumerates errors that can occur while controlling a franka::Robot. More...
 
- - - - -

-Functions

std::ostream & franka::operator<< (std::ostream &ostream, const Errors &errors)
 Streams the errors as JSON array. More...
 
-

Detailed Description

-

Contains the franka::Errors type.

-

Function Documentation

- -

◆ operator<<()

- -
-
- - - - - - - - - - - - - - - - - - -
std::ostream& franka::operator<< (std::ostream & ostream,
const Errorserrors 
)
-
- -

Streams the errors as JSON array.

-
Parameters
- - - -
[in]ostreamOstream instance
[in]errorsErrors struct instance to stream
-
-
-
Returns
Ostream instance
- -
-
-
- - - - diff --git a/errors_8h__dep__incl.map b/errors_8h__dep__incl.map deleted file mode 100644 index 679a4e93..00000000 --- a/errors_8h__dep__incl.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/errors_8h__dep__incl.md5 b/errors_8h__dep__incl.md5 deleted file mode 100644 index 239dbd28..00000000 --- a/errors_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -0520e734dfd458d20f04958c4be690db \ No newline at end of file diff --git a/errors_8h__dep__incl.png b/errors_8h__dep__incl.png deleted file mode 100644 index c0e65c0671600d64df82178068fcc264912f4a82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21864 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 diff --git a/errors_8h__incl.map b/errors_8h__incl.map deleted file mode 100644 index 4b79c32d..00000000 --- a/errors_8h__incl.map +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/errors_8h__incl.md5 b/errors_8h__incl.md5 deleted file mode 100644 index 3aa0b2ba..00000000 --- a/errors_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ac6dfd3f581968fbaf0ab72f855bc160 \ No newline at end of file diff --git a/errors_8h__incl.png b/errors_8h__incl.png deleted file mode 100644 index 58366a468490e8413f7013898858985e56b66991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5044 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 - - - - - - -libfranka: include/franka/errors.h Source File - - - - - - - - - - -

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

Contains common types and functions for the examples. -More...

-
#include <array>
-#include <Eigen/Core>
-#include <franka/control_types.h>
-#include <franka/duration.h>
-#include <franka/robot.h>
-#include <franka/robot_state.h>
-
-Include dependency graph for examples_common.h:
-
-
- - - - - - - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  MotionGenerator
 An example showing how to generate a joint pose motion to a goal position. More...
 
- - - - -

-Functions

void setDefaultBehavior (franka::Robot &robot)
 Sets a default collision behavior, joint impedance, Cartesian impedance, and filter frequency. More...
 
-

Detailed Description

-

Contains common types and functions for the examples.

-

Function Documentation

- -

◆ setDefaultBehavior()

- -
-
- - - - - - - - -
void setDefaultBehavior (franka::Robotrobot)
-
-
-
- - - - diff --git a/examples__common_8h__incl.map b/examples__common_8h__incl.map deleted file mode 100644 index 7b7ba38d..00000000 --- a/examples__common_8h__incl.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/examples__common_8h__incl.md5 b/examples__common_8h__incl.md5 deleted file mode 100644 index 8f67fd31..00000000 --- a/examples__common_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -87a44855d806b8919c0c10070c61beb4 \ No newline at end of file diff --git a/examples__common_8h__incl.png b/examples__common_8h__incl.png deleted file mode 100644 index bc250145d8d7fbbbfccb620eac41b17e3c8e0ce4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 79896 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 L^>bP0l+XkKD=jp$ diff --git a/examples__common_8h_source.html b/examples__common_8h_source.html deleted file mode 100644 index 315e8c1f..00000000 --- a/examples__common_8h_source.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -libfranka: examples/examples_common.h Source File - - - - - - - - - - - -
-
-
examples_common.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <array>
6 
7 #include <Eigen/Core>
8 
9 #include <franka/control_types.h>
10 #include <franka/duration.h>
11 #include <franka/robot.h>
12 #include <franka/robot_state.h>
13 
25 
32  public:
39  MotionGenerator(double speed_factor, const std::array<double, 7> q_goal);
40 
50 
51  private:
52  using Vector7d = Eigen::Matrix<double, 7, 1, Eigen::ColMajor>;
53  using Vector7i = Eigen::Matrix<int, 7, 1, Eigen::ColMajor>;
54 
55  bool calculateDesiredValues(double t, Vector7d* delta_q_d) const;
56  void calculateSynchronizedValues();
57 
58  static constexpr double kDeltaQMotionFinished = 1e-6;
59  const Vector7d q_goal_;
60 
61  Vector7d q_start_;
62  Vector7d delta_q_;
63 
64  Vector7d dq_max_sync_;
65  Vector7d t_1_sync_;
66  Vector7d t_2_sync_;
67  Vector7d t_f_sync_;
68  Vector7d q_1_;
69 
70  double time_ = 0.0;
71 
72  Vector7d dq_max_ = (Vector7d() << 2.0, 2.0, 2.0, 2.0, 2.5, 2.5, 2.5).finished();
73  Vector7d ddq_max_start_ = (Vector7d() << 5, 5, 5, 5, 5, 5, 5).finished();
74  Vector7d ddq_max_goal_ = (Vector7d() << 5, 5, 5, 5, 5, 5, 5).finished();
75 };
An example showing how to generate a joint pose motion to a goal position.
Definition: examples_common.h:31
-
Contains the franka::Robot type.
-
franka::JointPositions operator()(const franka::RobotState &robot_state, franka::Duration period)
Sends joint position calculations.
Definition: examples_common.cpp:114
-
Contains helper types for returning motion generation and joint-level torque commands.
-
Represents a duration with millisecond resolution.
Definition: duration.h:19
-
Contains the franka::RobotState types.
-
Contains the franka::Duration type.
-
MotionGenerator(double speed_factor, const std::array< double, 7 > q_goal)
Creates a new MotionGenerator instance for a target q.
Definition: examples_common.cpp:22
-
Stores values for joint position motion generation.
Definition: control_types.h:72
-
void setDefaultBehavior(franka::Robot &robot)
Sets a default collision behavior, joint impedance, Cartesian impedance, and filter frequency...
Definition: examples_common.cpp:12
-
Describes the robot state.
Definition: robot_state.h:35
-
Maintains a network connection to the robot, provides the current robot state, gives access to the mo...
Definition: robot.h:46
-
- - - - diff --git a/exception_8h.html b/exception_8h.html deleted file mode 100644 index b15e5741..00000000 --- a/exception_8h.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - -libfranka: include/franka/exception.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
exception.h File Reference
-
-
- -

Contains exception definitions. -More...

-
#include <stdexcept>
-#include <string>
-#include <franka/log.h>
-
-Include dependency graph for exception.h:
-
-
- - - - - - - -
-
-

Go to the source code of this file.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Classes

struct  franka::Exception
 Base class for all exceptions used by libfranka. More...
 
struct  franka::ModelException
 ModelException is thrown if an error occurs when loading the model library. More...
 
struct  franka::NetworkException
 NetworkException is thrown if a connection to the robot cannot be established, or when a timeout occurs. More...
 
struct  franka::ProtocolException
 ProtocolException is thrown if the robot returns an incorrect message. More...
 
struct  franka::IncompatibleVersionException
 IncompatibleVersionException is thrown if the robot does not support this version of libfranka. More...
 
struct  franka::ControlException
 ControlException is thrown if an error occurs during motion generation or torque control. More...
 
struct  franka::CommandException
 CommandException is thrown if an error occurs during command execution. More...
 
struct  franka::RealtimeException
 RealtimeException is thrown if realtime priority cannot be set. More...
 
struct  franka::InvalidOperationException
 InvalidOperationException is thrown if an operation cannot be performed. More...
 
-

Detailed Description

-

Contains exception definitions.

-
- - - - diff --git a/exception_8h__incl.map b/exception_8h__incl.map deleted file mode 100644 index 7a5c9d50..00000000 --- a/exception_8h__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/exception_8h__incl.md5 b/exception_8h__incl.md5 deleted file mode 100644 index 39d472b0..00000000 --- a/exception_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -821c9db4af7f5a40ef0d789571cc405d \ No newline at end of file diff --git a/exception_8h__incl.png b/exception_8h__incl.png deleted file mode 100644 index 88fb2f157b6f28a2ac99c6916cd7f11d12f8c37b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38154 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 RK!QK7U%nA95!Lnk{{Rd=JF5Ty diff --git a/exception_8h_source.html b/exception_8h_source.html deleted file mode 100644 index 1d366b81..00000000 --- a/exception_8h_source.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -libfranka: include/franka/exception.h Source File - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
exception.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <stdexcept>
6 #include <string>
7 
8 #include <franka/log.h>
9 
15 namespace franka {
16 
20 struct Exception : public std::runtime_error {
21  using std::runtime_error::runtime_error;
22 };
23 
27 struct ModelException : public Exception {
28  using Exception::Exception;
29 };
30 
35 struct NetworkException : public Exception {
36  using Exception::Exception;
37 };
38 
42 struct ProtocolException : public Exception {
43  using Exception::Exception;
44 };
45 
55  IncompatibleVersionException(uint16_t server_version, uint16_t library_version) noexcept;
56 
60  const uint16_t server_version;
64  const uint16_t library_version;
65 };
66 
73 struct ControlException : public Exception {
80  explicit ControlException(const std::string& what, std::vector<franka::Record> log = {}) noexcept;
81 
85  const std::vector<franka::Record> log;
86 };
87 
91 struct CommandException : public Exception {
92  using Exception::Exception;
93 };
94 
98 struct RealtimeException : public Exception {
99  using Exception::Exception;
100 };
101 
106  using Exception::Exception;
107 };
108 
109 } // namespace franka
IncompatibleVersionException is thrown if the robot does not support this version of libfranka...
Definition: exception.h:49
-
InvalidOperationException is thrown if an operation cannot be performed.
Definition: exception.h:105
-
RealtimeException is thrown if realtime priority cannot be set.
Definition: exception.h:98
-
ProtocolException is thrown if the robot returns an incorrect message.
Definition: exception.h:42
-
ModelException is thrown if an error occurs when loading the model library.
Definition: exception.h:27
-
NetworkException is thrown if a connection to the robot cannot be established, or when a timeout occu...
Definition: exception.h:35
-
Definition: command_types.h:13
-
Base class for all exceptions used by libfranka.
Definition: exception.h:20
-
ControlException is thrown if an error occurs during motion generation or torque control.
Definition: exception.h:73
-
const uint16_t library_version
libfranka protocol version.
Definition: exception.h:64
-
const uint16_t server_version
Control&#39;s protocol version.
Definition: exception.h:60
-
Contains helper types for logging sent commands and received robot states.
-
const std::vector< franka::Record > log
Vector of states and commands logged just before the exception occured.
Definition: exception.h:85
-
CommandException is thrown if an error occurs during command execution.
Definition: exception.h:91
-
- - - - diff --git a/files.html b/files.html deleted file mode 100644 index b431a315..00000000 --- a/files.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -libfranka: File List - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
-
[detail level 123]
- - - - - - - - - - - - - - - - - - - - -
  examples
 examples_common.hContains common types and functions for the examples
  include
  franka
 command_types.hContains types for the commands that can be sent from franka::Robot
 control_tools.hContains helper functions for writing control loops
 control_types.hContains helper types for returning motion generation and joint-level torque commands
 duration.hContains the franka::Duration type
 errors.hContains the franka::Errors type
 exception.hContains exception definitions
 gripper.hContains the franka::Gripper type
 gripper_state.hContains the franka::GripperState type
 log.hContains helper types for logging sent commands and received robot states
 lowpass_filter.hContains functions for filtering signals with a low-pass filter
 model.hContains model library types
 rate_limiting.hContains functions for limiting the rate of torques, Cartesian pose, Cartesian velocity, joint position and joint velocity
 robot.hContains the franka::Robot type
 robot_state.hContains the franka::RobotState types
 vacuum_gripper.hContains the franka::VacuumGripper type
 vacuum_gripper_state.hContains the franka::VacuumGripperState type
-
-
- - - - diff --git a/force_control_8cpp-example.html b/force_control_8cpp-example.html deleted file mode 100644 index b334bdaa..00000000 --- a/force_control_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: force_control.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
force_control.cpp
-
-
-

A simple PI force controller that renders in the Z axis the gravitational force corresponding to a target mass of 1 kg.

Warning
: make sure that no endeffector is mounted and that the robot's last joint is in contact with a horizontal rigid surface before starting.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <array>
#include <iostream>
#include <Eigen/Core>
#include <franka/model.h>
#include <franka/robot.h>
int main(int argc, char** argv) {
// Check whether the required arguments were passed
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
// parameters
double desired_mass{0.0};
constexpr double target_mass{1.0}; // NOLINT(readability-identifier-naming)
constexpr double k_p{1.0}; // NOLINT(readability-identifier-naming)
constexpr double k_i{2.0}; // NOLINT(readability-identifier-naming)
constexpr double filter_gain{0.001}; // NOLINT(readability-identifier-naming)
try {
// connect to robot
franka::Robot robot(argv[1]);
// load the kinematics and dynamics model
franka::Model model = robot.loadModel();
// set collision behavior
robot.setCollisionBehavior({{100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0}},
{{100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0}},
{{100.0, 100.0, 100.0, 100.0, 100.0, 100.0}},
{{100.0, 100.0, 100.0, 100.0, 100.0, 100.0}});
franka::RobotState initial_state = robot.readOnce();
Eigen::VectorXd initial_tau_ext(7), tau_error_integral(7);
// Bias torque sensor
std::array<double, 7> gravity_array = model.gravity(initial_state);
Eigen::Map<Eigen::Matrix<double, 7, 1>> initial_tau_measured(initial_state.tau_J.data());
Eigen::Map<Eigen::Matrix<double, 7, 1>> initial_gravity(gravity_array.data());
initial_tau_ext = initial_tau_measured - initial_gravity;
// init integrator
tau_error_integral.setZero();
// define callback for the torque control loop
Eigen::Vector3d initial_position;
double time = 0.0;
auto get_position = [](const franka::RobotState& robot_state) {
return Eigen::Vector3d(robot_state.O_T_EE[12], robot_state.O_T_EE[13],
robot_state.O_T_EE[14]);
};
auto force_control_callback = [&](const franka::RobotState& robot_state,
time += period.toSec();
if (time == 0.0) {
initial_position = get_position(robot_state);
}
if (time > 0 && (get_position(robot_state) - initial_position).norm() > 0.01) {
throw std::runtime_error("Aborting; too far away from starting pose!");
}
// get state variables
std::array<double, 42> jacobian_array =
model.zeroJacobian(franka::Frame::kEndEffector, robot_state);
Eigen::Map<const Eigen::Matrix<double, 6, 7>> jacobian(jacobian_array.data());
Eigen::Map<const Eigen::Matrix<double, 7, 1>> tau_measured(robot_state.tau_J.data());
Eigen::Map<const Eigen::Matrix<double, 7, 1>> gravity(gravity_array.data());
Eigen::VectorXd tau_d(7), desired_force_torque(6), tau_cmd(7), tau_ext(7);
desired_force_torque.setZero();
desired_force_torque(2) = desired_mass * -9.81;
tau_ext << tau_measured - gravity - initial_tau_ext;
tau_d << jacobian.transpose() * desired_force_torque;
tau_error_integral += period.toSec() * (tau_d - tau_ext);
// FF + PI control
tau_cmd << tau_d + k_p * (tau_d - tau_ext) + k_i * tau_error_integral;
// Smoothly update the mass to reach the desired target value
desired_mass = filter_gain * target_mass + (1 - filter_gain) * desired_mass;
std::array<double, 7> tau_d_array{};
Eigen::VectorXd::Map(&tau_d_array[0], 7) = tau_cmd;
return tau_d_array;
};
std::cout << "WARNING: Make sure sure that no endeffector is mounted and that the robot's last "
"joint is "
"in contact with a horizontal rigid surface before starting. Keep in mind that "
"collision thresholds are set to high values."
<< std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
// start real-time control loop
robot.control(force_control_callback);
} catch (const std::exception& ex) {
// print exception
std::cout << ex.what() << std::endl;
}
return 0;
}
- - - - diff --git a/functions.html b/functions.html deleted file mode 100644 index 9a3959d2..00000000 --- a/functions.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- a -

-
- - - - diff --git a/functions_0x7e.html b/functions_0x7e.html deleted file mode 100644 index 32a7e132..00000000 --- a/functions_0x7e.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- ~ -

-
- - - - diff --git a/functions_b.html b/functions_b.html deleted file mode 100644 index a54451db..00000000 --- a/functions_b.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- b -

-
- - - - diff --git a/functions_c.html b/functions_c.html deleted file mode 100644 index 7e15ba77..00000000 --- a/functions_c.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- c -

-
- - - - diff --git a/functions_d.html b/functions_d.html deleted file mode 100644 index 6a49cc8c..00000000 --- a/functions_d.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- d -

-
- - - - diff --git a/functions_e.html b/functions_e.html deleted file mode 100644 index fdc5b9dc..00000000 --- a/functions_e.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- e -

-
- - - - diff --git a/functions_enum.html b/functions_enum.html deleted file mode 100644 index 8c41d6c3..00000000 --- a/functions_enum.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: Class Members - Enumerations - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/functions_f.html b/functions_f.html deleted file mode 100644 index c6bbf620..00000000 --- a/functions_f.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- f -

-
- - - - diff --git a/functions_func.html b/functions_func.html deleted file mode 100644 index a5da29d7..00000000 --- a/functions_func.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - - -libfranka: Class Members - Functions - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- j -

- - -

- l -

- - -

- m -

- - -

- o -

- - -

- p -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- v -

- - -

- z -

- - -

- ~ -

-
- - - - diff --git a/functions_g.html b/functions_g.html deleted file mode 100644 index a42a0871..00000000 --- a/functions_g.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- g -

-
- - - - diff --git a/functions_h.html b/functions_h.html deleted file mode 100644 index 77c9dbc9..00000000 --- a/functions_h.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- h -

-
- - - - diff --git a/functions_i.html b/functions_i.html deleted file mode 100644 index 094aec76..00000000 --- a/functions_i.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- i -

-
- - - - diff --git a/functions_j.html b/functions_j.html deleted file mode 100644 index dc0d1524..00000000 --- a/functions_j.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- j -

-
- - - - diff --git a/functions_k.html b/functions_k.html deleted file mode 100644 index 8df6f8ee..00000000 --- a/functions_k.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- k -

-
- - - - diff --git a/functions_l.html b/functions_l.html deleted file mode 100644 index eec96d84..00000000 --- a/functions_l.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- l -

-
- - - - diff --git a/functions_m.html b/functions_m.html deleted file mode 100644 index 3bf8b994..00000000 --- a/functions_m.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- m -

-
- - - - diff --git a/functions_n.html b/functions_n.html deleted file mode 100644 index a43c9369..00000000 --- a/functions_n.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- n -

-
- - - - diff --git a/functions_o.html b/functions_o.html deleted file mode 100644 index 10c1a991..00000000 --- a/functions_o.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- o -

-
- - - - diff --git a/functions_p.html b/functions_p.html deleted file mode 100644 index ddb66ade..00000000 --- a/functions_p.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- p -

-
- - - - diff --git a/functions_q.html b/functions_q.html deleted file mode 100644 index 4f3599c2..00000000 --- a/functions_q.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- q -

-
- - - - diff --git a/functions_r.html b/functions_r.html deleted file mode 100644 index 3ecd4137..00000000 --- a/functions_r.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- r -

-
- - - - diff --git a/functions_s.html b/functions_s.html deleted file mode 100644 index cdd4a6fa..00000000 --- a/functions_s.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- s -

-
- - - - diff --git a/functions_t.html b/functions_t.html deleted file mode 100644 index 9e529079..00000000 --- a/functions_t.html +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- t -

-
- - - - diff --git a/functions_type.html b/functions_type.html deleted file mode 100644 index 9a8efd95..00000000 --- a/functions_type.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -libfranka: Class Members - Typedefs - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/functions_v.html b/functions_v.html deleted file mode 100644 index 7c902c92..00000000 --- a/functions_v.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- v -

-
- - - - diff --git a/functions_vars.html b/functions_vars.html deleted file mode 100644 index 923c9480..00000000 --- a/functions_vars.html +++ /dev/null @@ -1,489 +0,0 @@ - - - - - - - -libfranka: Class Members - Variables - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- i -

- - -

- j -

- - -

- k -

- - -

- l -

- - -

- m -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- q -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- v -

- - -

- w -

-
- - - - diff --git a/functions_w.html b/functions_w.html deleted file mode 100644 index 2adeacf4..00000000 --- a/functions_w.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- w -

-
- - - - diff --git a/functions_z.html b/functions_z.html deleted file mode 100644 index 11ae1900..00000000 --- a/functions_z.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - -libfranka: Class Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- z -

-
- - - - diff --git a/generate_cartesian_pose_motion_8cpp-example.html b/generate_cartesian_pose_motion_8cpp-example.html deleted file mode 100644 index 60901e7b..00000000 --- a/generate_cartesian_pose_motion_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: generate_cartesian_pose_motion.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
generate_cartesian_pose_motion.cpp
-
-
-

An example showing how to generate a Cartesian motion.

Warning
Before executing this example, make sure there is enough space in front of the robot.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <cmath>
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl;
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set collision behavior.
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}});
std::array<double, 16> initial_pose;
double time = 0.0;
robot.control([&time, &initial_pose](const franka::RobotState& robot_state,
time += period.toSec();
if (time == 0.0) {
initial_pose = robot_state.O_T_EE_c;
}
constexpr double kRadius = 0.3;
double angle = M_PI / 4 * (1 - std::cos(M_PI / 5.0 * time));
double delta_x = kRadius * std::sin(angle);
double delta_z = kRadius * (std::cos(angle) - 1);
std::array<double, 16> new_pose = initial_pose;
new_pose[12] += delta_x;
new_pose[14] += delta_z;
if (time >= 10.0) {
std::cout << std::endl << "Finished motion, shutting down example" << std::endl;
return franka::MotionFinished(new_pose);
}
return new_pose;
});
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/generate_cartesian_velocity_motion_8cpp-example.html b/generate_cartesian_velocity_motion_8cpp-example.html deleted file mode 100644 index 3546f068..00000000 --- a/generate_cartesian_velocity_motion_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: generate_cartesian_velocity_motion.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
generate_cartesian_velocity_motion.cpp
-
-
-

An example showing how to generate a Cartesian velocity motion.

Warning
Before executing this example, make sure there is enough space in front of the robot.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <cmath>
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl;
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set the joint impedance.
robot.setJointImpedance({{3000, 3000, 3000, 2500, 2500, 2000, 2000}});
// Set the collision behavior.
std::array<double, 7> lower_torque_thresholds_nominal{
{25.0, 25.0, 22.0, 20.0, 19.0, 17.0, 14.}};
std::array<double, 7> upper_torque_thresholds_nominal{
{35.0, 35.0, 32.0, 30.0, 29.0, 27.0, 24.0}};
std::array<double, 7> lower_torque_thresholds_acceleration{
{25.0, 25.0, 22.0, 20.0, 19.0, 17.0, 14.0}};
std::array<double, 7> upper_torque_thresholds_acceleration{
{35.0, 35.0, 32.0, 30.0, 29.0, 27.0, 24.0}};
std::array<double, 6> lower_force_thresholds_nominal{{30.0, 30.0, 30.0, 25.0, 25.0, 25.0}};
std::array<double, 6> upper_force_thresholds_nominal{{40.0, 40.0, 40.0, 35.0, 35.0, 35.0}};
std::array<double, 6> lower_force_thresholds_acceleration{{30.0, 30.0, 30.0, 25.0, 25.0, 25.0}};
std::array<double, 6> upper_force_thresholds_acceleration{{40.0, 40.0, 40.0, 35.0, 35.0, 35.0}};
lower_torque_thresholds_acceleration, upper_torque_thresholds_acceleration,
lower_torque_thresholds_nominal, upper_torque_thresholds_nominal,
lower_force_thresholds_acceleration, upper_force_thresholds_acceleration,
lower_force_thresholds_nominal, upper_force_thresholds_nominal);
double time_max = 4.0;
double v_max = 0.1;
double angle = M_PI / 4.0;
double time = 0.0;
robot.control([=, &time](const franka::RobotState&,
time += period.toSec();
double cycle = std::floor(pow(-1.0, (time - std::fmod(time, time_max)) / time_max));
double v = cycle * v_max / 2.0 * (1.0 - std::cos(2.0 * M_PI / time_max * time));
double v_x = std::cos(angle) * v;
double v_z = -std::sin(angle) * v;
franka::CartesianVelocities output = {{v_x, 0.0, v_z, 0.0, 0.0, 0.0}};
if (time >= 2 * time_max) {
std::cout << std::endl << "Finished motion, shutting down example" << std::endl;
return franka::MotionFinished(output);
}
return output;
});
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/generate_consecutive_motions_8cpp-example.html b/generate_consecutive_motions_8cpp-example.html deleted file mode 100644 index 0a981581..00000000 --- a/generate_consecutive_motions_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: generate_consecutive_motions.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
generate_consecutive_motions.cpp
-
-
-

An example showing how to execute consecutive motions with error recovery.

Warning
Before executing this example, make sure there is enough space in front and to the side of the robot.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <cmath>
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl;
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set collision behavior.
{{10.0, 10.0, 9.0, 9.0, 8.0, 7.0, 6.0}}, {{10.0, 10.0, 9.0, 9.0, 8.0, 7.0, 6.0}},
{{10.0, 10.0, 9.0, 9.0, 8.0, 7.0, 6.0}}, {{10.0, 10.0, 9.0, 9.0, 8.0, 7.0, 6.0}},
{{10.0, 10.0, 10.0, 12.5, 12.5, 12.5}}, {{10.0, 10.0, 10.0, 12.5, 12.5, 12.5}},
{{10.0, 10.0, 10.0, 12.5, 12.5, 12.5}}, {{10.0, 10.0, 10.0, 12.5, 12.5, 12.5}});
for (size_t i = 0; i < 5; i++) {
std::cout << "Executing motion." << std::endl;
try {
double time_max = 4.0;
double omega_max = 0.2;
double time = 0.0;
robot.control([=, &time](const franka::RobotState&,
time += period.toSec();
double cycle = std::floor(std::pow(-1.0, (time - std::fmod(time, time_max)) / time_max));
double omega = cycle * omega_max / 2.0 * (1.0 - std::cos(2.0 * M_PI / time_max * time));
franka::JointVelocities velocities = {{0.0, 0.0, omega, 0.0, 0.0, 0.0, 0.0}};
if (time >= 2 * time_max) {
std::cout << std::endl << "Finished motion." << std::endl;
return franka::MotionFinished(velocities);
}
return velocities;
});
} catch (const franka::ControlException& e) {
std::cout << e.what() << std::endl;
std::cout << "Running error recovery..." << std::endl;
}
}
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
std::cout << "Finished." << std::endl;
return 0;
}
- - - - diff --git a/generate_elbow_motion_8cpp-example.html b/generate_elbow_motion_8cpp-example.html deleted file mode 100644 index 9d4df678..00000000 --- a/generate_elbow_motion_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: generate_elbow_motion.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
generate_elbow_motion.cpp
-
-
-

An example showing how to move the robot's elbow.

Warning
Before executing this example, make sure that the elbow has enough space to move.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <cmath>
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl;
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set collision behavior.
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}});
std::array<double, 16> initial_pose;
std::array<double, 2> initial_elbow;
double time = 0.0;
robot.control(
[&time, &initial_pose, &initial_elbow](const franka::RobotState& robot_state,
time += period.toSec();
if (time == 0.0) {
initial_pose = robot_state.O_T_EE_c;
initial_elbow = robot_state.elbow_c;
}
double angle = M_PI / 10.0 * (1.0 - std::cos(M_PI / 5.0 * time));
auto elbow = initial_elbow;
elbow[0] += angle;
if (time >= 10.0) {
std::cout << std::endl << "Finished motion, shutting down example" << std::endl;
return franka::MotionFinished({initial_pose, elbow});
}
return {initial_pose, elbow};
});
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/generate_joint_position_motion_8cpp-example.html b/generate_joint_position_motion_8cpp-example.html deleted file mode 100644 index 18479a9a..00000000 --- a/generate_joint_position_motion_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: generate_joint_position_motion.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
generate_joint_position_motion.cpp
-
-
-

An example showing how to generate a joint position motion.

Warning
Before executing this example, make sure there is enough space in front of the robot.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <cmath>
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl;
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set collision behavior.
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}});
std::array<double, 7> initial_position;
double time = 0.0;
robot.control([&initial_position, &time](const franka::RobotState& robot_state,
time += period.toSec();
if (time == 0.0) {
initial_position = robot_state.q_d;
}
double delta_angle = M_PI / 8.0 * (1 - std::cos(M_PI / 2.5 * time));
franka::JointPositions output = {{initial_position[0], initial_position[1],
initial_position[2], initial_position[3] + delta_angle,
initial_position[4] + delta_angle, initial_position[5],
initial_position[6] + delta_angle}};
if (time >= 5.0) {
std::cout << std::endl << "Finished motion, shutting down example" << std::endl;
return franka::MotionFinished(output);
}
return output;
});
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/generate_joint_velocity_motion_8cpp-example.html b/generate_joint_velocity_motion_8cpp-example.html deleted file mode 100644 index ad262206..00000000 --- a/generate_joint_velocity_motion_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: generate_joint_velocity_motion.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
generate_joint_velocity_motion.cpp
-
-
-

An example showing how to generate a joint velocity motion.

Warning
Before executing this example, make sure there is enough space in front of the robot.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <cmath>
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl;
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set collision behavior.
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}});
double time_max = 1.0;
double omega_max = 1.0;
double time = 0.0;
robot.control(
time += period.toSec();
double cycle = std::floor(std::pow(-1.0, (time - std::fmod(time, time_max)) / time_max));
double omega = cycle * omega_max / 2.0 * (1.0 - std::cos(2.0 * M_PI / time_max * time));
franka::JointVelocities velocities = {{0.0, 0.0, 0.0, omega, omega, omega, omega}};
if (time >= 2 * time_max) {
std::cout << std::endl << "Finished motion, shutting down example" << std::endl;
return franka::MotionFinished(velocities);
}
return velocities;
});
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/globals.html b/globals.html deleted file mode 100644 index 599140b2..00000000 --- a/globals.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: File Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented file members with links to the documentation:
-
- - - - diff --git a/globals_func.html b/globals_func.html deleted file mode 100644 index 80bf9510..00000000 --- a/globals_func.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: File Members - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
- - - - diff --git a/graph_legend.html b/graph_legend.html index 38e583b1..97959a38 100644 --- a/graph_legend.html +++ b/graph_legend.html @@ -1,9 +1,9 @@ - + - + libfranka: Graph Legend @@ -17,7 +17,8 @@ extensions: ["tex2jax.js"], jax: ["input/TeX","output/SVG"], }); - + + @@ -26,10 +27,10 @@ - + @@ -38,18 +39,21 @@
libfranka -  0.8.0 +  0.14.0
FCI C++ API
- + +/* @license-end */ @@ -72,11 +76,42 @@

This page explains how to interpret the graphs that are generated by doxygen.

-

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

-
- -
-

The boxes in the above graph have the following meaning:

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • @@ -103,9 +138,7 @@
diff --git a/graph_legend.md5 b/graph_legend.md5 index a06ed050..8fcdccd1 100644 --- a/graph_legend.md5 +++ b/graph_legend.md5 @@ -1 +1 @@ -387ff8eb65306fa251338d3c9bd7bfff \ No newline at end of file +f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/graph_legend.png b/graph_legend.png index 93e2541d73de9e052b80ade28e9f2742fd791833..7e2cbcfb2d143e382be6ed65635a3d859e53bc36 100644 GIT binary patch literal 20615 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 literal 19906 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 z - - - - - - -libfranka: grasp_object.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
grasp_object.cpp
-
-
-

An example showing how to control FRANKA's gripper.

-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <iostream>
#include <sstream>
#include <string>
#include <thread>
#include <franka/gripper.h>
int main(int argc, char** argv) {
if (argc != 4) {
std::cerr << "Usage: ./grasp_object <gripper-hostname> <homing> <object-width>" << std::endl;
return -1;
}
try {
franka::Gripper gripper(argv[1]);
double grasping_width = std::stod(argv[3]);
std::stringstream ss(argv[2]);
bool homing;
if (!(ss >> homing)) {
std::cerr << "<homing> can be 0 or 1." << std::endl;
return -1;
}
if (homing) {
// Do a homing in order to estimate the maximum grasping width with the current fingers.
gripper.homing();
}
// Check for the maximum grasping width.
franka::GripperState gripper_state = gripper.readOnce();
if (gripper_state.max_width < grasping_width) {
std::cout << "Object is too large for the current fingers on the gripper." << std::endl;
return -1;
}
// Grasp the object.
if (!gripper.grasp(grasping_width, 0.1, 60)) {
std::cout << "Failed to grasp object." << std::endl;
return -1;
}
// Wait 3s and check afterwards, if the object is still grasped.
std::this_thread::sleep_for(std::chrono::duration<double, std::milli>(3000));
gripper_state = gripper.readOnce();
if (!gripper_state.is_grasped) {
std::cout << "Object lost." << std::endl;
return -1;
}
std::cout << "Grasped object, will release it now." << std::endl;
gripper.stop();
} catch (franka::Exception const& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/gripper_8h.html b/gripper_8h.html deleted file mode 100644 index dbfb01fa..00000000 --- a/gripper_8h.html +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - -libfranka: include/franka/gripper.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
gripper.h File Reference
-
-
- -

Contains the franka::Gripper type. -More...

-
#include <cstdint>
-#include <memory>
-#include <string>
-#include <franka/gripper_state.h>
-
-Include dependency graph for gripper.h:
-
-
- - - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

class  franka::Gripper
 Maintains a network connection to the gripper, provides the current gripper state, and allows the execution of commands. More...
 
-

Detailed Description

-

Contains the franka::Gripper type.

-
- - - - diff --git a/gripper_8h__incl.map b/gripper_8h__incl.map deleted file mode 100644 index c6007737..00000000 --- a/gripper_8h__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/gripper_8h__incl.md5 b/gripper_8h__incl.md5 deleted file mode 100644 index 06288ecb..00000000 --- a/gripper_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6f40c009979209bf22070d822edac169 \ No newline at end of file diff --git a/gripper_8h__incl.png b/gripper_8h__incl.png deleted file mode 100644 index b05bc5d648130dc71b6a538075546d22dc15b57b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23417 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 - - - - - - -libfranka: include/franka/gripper.h Source File - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
gripper.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <cstdint>
6 #include <memory>
7 #include <string>
8 
9 #include <franka/gripper_state.h>
10 
16 namespace franka {
17 
18 class Network;
19 
27 class Gripper {
28  public:
32  using ServerVersion = uint16_t;
33 
42  explicit Gripper(const std::string& franka_address);
43 
49  Gripper(Gripper&& gripper) noexcept;
50 
58  Gripper& operator=(Gripper&& gripper) noexcept;
59 
63  ~Gripper() noexcept;
64 
78  bool homing() const;
79 
99  bool grasp(double width,
100  double speed,
101  double force,
102  double epsilon_inner = 0.005,
103  double epsilon_outer = 0.005) const;
104 
116  bool move(double width, double speed) const;
117 
126  bool stop() const;
127 
136  GripperState readOnce() const;
137 
143  ServerVersion serverVersion() const noexcept;
144 
146  Gripper(const Gripper&) = delete;
147  Gripper& operator=(const Gripper&) = delete;
149 
150  private:
151  std::unique_ptr<Network> network_;
152 
153  uint16_t ri_version_;
154 };
155 
156 } // namespace franka
bool grasp(double width, double speed, double force, double epsilon_inner=0.005, double epsilon_outer=0.005) const
Grasps an object.
-
ServerVersion serverVersion() const noexcept
Returns the software version reported by the connected server.
-
bool move(double width, double speed) const
Moves the gripper fingers to a specified width.
-
Maintains a network connection to the gripper, provides the current gripper state, and allows the execution of commands.
Definition: gripper.h:27
-
GripperState readOnce() const
Waits for a gripper state update and returns it.
-
Contains the franka::GripperState type.
-
Definition: command_types.h:13
-
uint16_t ServerVersion
Version of the gripper server.
Definition: gripper.h:32
-
~Gripper() noexcept
Closes the connection.
-
bool stop() const
Stops a currently running gripper move or grasp.
-
Describes the gripper state.
Definition: gripper_state.h:20
-
Gripper(const std::string &franka_address)
Establishes a connection with a gripper connected to a robot.
-
Gripper & operator=(Gripper &&gripper) noexcept
Move-assigns this Gripper from another Gripper instance.
-
bool homing() const
Performs homing of the gripper.
-
- - - - diff --git a/gripper__state_8h.html b/gripper__state_8h.html deleted file mode 100644 index cfec4af1..00000000 --- a/gripper__state_8h.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - -libfranka: include/franka/gripper_state.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
gripper_state.h File Reference
-
-
- -

Contains the franka::GripperState type. -More...

-
#include <cstdint>
-#include <ostream>
-#include <franka/duration.h>
-
-Include dependency graph for gripper_state.h:
-
-
- - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - -
-
-

Go to the source code of this file.

- - - - - -

-Classes

struct  franka::GripperState
 Describes the gripper state. More...
 
- - - - -

-Functions

std::ostream & franka::operator<< (std::ostream &ostream, const franka::GripperState &gripper_state)
 Streams the gripper state as JSON object: {"field_name_1": value, "field_name_2": value, ...}. More...
 
-

Detailed Description

-

Contains the franka::GripperState type.

-

Function Documentation

- -

◆ operator<<()

- -
-
- - - - - - - - - - - - - - - - - - -
std::ostream& franka::operator<< (std::ostream & ostream,
const franka::GripperStategripper_state 
)
-
- -

Streams the gripper state as JSON object: {"field_name_1": value, "field_name_2": value, ...}.

-
Parameters
- - - -
[in]ostreamOstream instance
[in]gripper_stateGripperState struct instance to stream
-
-
-
Returns
Ostream instance
- -
-
-
- - - - diff --git a/gripper__state_8h__dep__incl.map b/gripper__state_8h__dep__incl.map deleted file mode 100644 index f82aeb03..00000000 --- a/gripper__state_8h__dep__incl.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/gripper__state_8h__dep__incl.md5 b/gripper__state_8h__dep__incl.md5 deleted file mode 100644 index f6db03f1..00000000 --- a/gripper__state_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6db131e8ba31b277788167e9e5059c67 \ No newline at end of file diff --git a/gripper__state_8h__dep__incl.png b/gripper__state_8h__dep__incl.png deleted file mode 100644 index 596b10d2ee7b8200b98651840b4f4a0b7a409890..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5026 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 diff --git a/gripper__state_8h__incl.map b/gripper__state_8h__incl.map deleted file mode 100644 index 9e06f141..00000000 --- a/gripper__state_8h__incl.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/gripper__state_8h__incl.md5 b/gripper__state_8h__incl.md5 deleted file mode 100644 index 3eb3c5ca..00000000 --- a/gripper__state_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -76d4c313a671705f9d59d9385c4716ae \ No newline at end of file diff --git a/gripper__state_8h__incl.png b/gripper__state_8h__incl.png deleted file mode 100644 index ee7bedfa294a58a0f576c082e064836019092965..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12260 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 i{%218e@(Tx@c#fEX9isW diff --git a/gripper__state_8h_source.html b/gripper__state_8h_source.html deleted file mode 100644 index 28253d1e..00000000 --- a/gripper__state_8h_source.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - -libfranka: include/franka/gripper_state.h Source File - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
gripper_state.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <cstdint>
6 #include <ostream>
7 
8 #include <franka/duration.h>
9 
15 namespace franka {
16 
20 struct GripperState {
24  double width{};
25 
33  double max_width{};
34 
38  bool is_grasped{};
39 
43  uint16_t temperature{};
44 
49 };
50 
59 std::ostream& operator<<(std::ostream& ostream, const franka::GripperState& gripper_state);
60 
61 } // namespace franka
double max_width
Maximum gripper opening width.
Definition: gripper_state.h:33
-
std::ostream & operator<<(std::ostream &ostream, const Errors &errors)
Streams the errors as JSON array.
-
Represents a duration with millisecond resolution.
Definition: duration.h:19
-
uint16_t temperature
Current gripper temperature.
Definition: gripper_state.h:43
-
Duration time
Strictly monotonically increasing timestamp since robot start.
Definition: gripper_state.h:48
-
bool is_grasped
Indicates whether an object is currently grasped.
Definition: gripper_state.h:38
-
Definition: command_types.h:13
-
Contains the franka::Duration type.
-
double width
Current gripper opening width.
Definition: gripper_state.h:24
-
Describes the gripper state.
Definition: gripper_state.h:20
-
- - - - diff --git a/hierarchy.html b/hierarchy.html deleted file mode 100644 index 777735cd..00000000 --- a/hierarchy.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -libfranka: Class Hierarchy - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
-
-

Go to the graphical class hierarchy

-This inheritance list is sorted roughly, but not completely, alphabetically:
-
[detail level 123]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 Cfranka::DurationRepresents a duration with millisecond resolution
 Cfranka::ErrorsEnumerates errors that can occur while controlling a franka::Robot
 Cfranka::FinishableHelper type for control and motion generation loops
 Cfranka::CartesianPoseStores values for Cartesian pose motion generation
 Cfranka::CartesianVelocitiesStores values for Cartesian velocity motion generation
 Cfranka::JointPositionsStores values for joint position motion generation
 Cfranka::JointVelocitiesStores values for joint velocity motion generation
 Cfranka::TorquesStores joint-level torque commands without gravity and friction
 Cfranka::GripperMaintains a network connection to the gripper, provides the current gripper state, and allows the execution of commands
 Cfranka::GripperStateDescribes the gripper state
 Cfranka::ModelCalculates poses of joints and dynamic properties of the robot
 CMotionGeneratorAn example showing how to generate a joint pose motion to a goal position
 Cfranka::RecordOne row of the log contains a robot command of timestamp n and a corresponding robot state of timestamp n+1
 Cfranka::RobotMaintains a network connection to the robot, provides the current robot state, gives access to the model library and allows to control the robot
 Cfranka::RobotCommandCommand sent to the robot
 Cfranka::RobotStateDescribes the robot state
 Cruntime_error
 Cfranka::ExceptionBase class for all exceptions used by libfranka
 Cfranka::CommandExceptionCommandException is thrown if an error occurs during command execution
 Cfranka::ControlExceptionControlException is thrown if an error occurs during motion generation or torque control
 Cfranka::IncompatibleVersionExceptionIncompatibleVersionException is thrown if the robot does not support this version of libfranka
 Cfranka::InvalidOperationExceptionInvalidOperationException is thrown if an operation cannot be performed
 Cfranka::ModelExceptionModelException is thrown if an error occurs when loading the model library
 Cfranka::NetworkExceptionNetworkException is thrown if a connection to the robot cannot be established, or when a timeout occurs
 Cfranka::ProtocolExceptionProtocolException is thrown if the robot returns an incorrect message
 Cfranka::RealtimeExceptionRealtimeException is thrown if realtime priority cannot be set
 Cfranka::VacuumGripperMaintains a network connection to the vacuum gripper, provides the current vacuum gripper state, and allows the execution of commands
 Cfranka::VacuumGripperStateDescribes the vacuum gripper state
 Cfranka::VirtualWallCuboidParameters of a cuboid used as virtual wall
-
-
- - - - diff --git a/index.html b/index.html index 8b469d6e..5269853a 100644 --- a/index.html +++ b/index.html @@ -1,11 +1,11 @@ - + - + -libfranka: libfranka: C++ library for Franka Emika research robots +libfranka: Main Page @@ -17,7 +17,8 @@ extensions: ["tex2jax.js"], jax: ["input/TeX","output/SVG"], }); - + + @@ -26,10 +27,10 @@ - + @@ -38,18 +39,21 @@
libfranka -  0.8.0 +  0.14.0
FCI C++ API
- + +/* @license-end */ @@ -68,18 +72,13 @@
-
libfranka: C++ library for Franka Emika research robots
+
libfranka Documentation
-

With this library, you can control research versions of Franka Emika robots. See the Franka Control Interface (FCI) documentation for more information about what libfranka can do and how to set it up.

-

License

-

libfranka is licensed under the Apache 2.0 license.

-
+ diff --git a/inherit_graph_0.map b/inherit_graph_0.map deleted file mode 100644 index 4eda5ce6..00000000 --- a/inherit_graph_0.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_0.md5 b/inherit_graph_0.md5 deleted file mode 100644 index b9c6d2d4..00000000 --- a/inherit_graph_0.md5 +++ /dev/null @@ -1 +0,0 @@ -e1470a9c233b5252d32462406f417555 \ No newline at end of file diff --git a/inherit_graph_0.png b/inherit_graph_0.png deleted file mode 100644 index c20da1b97eb8b706bd4d8c6ac0d63a9ab058226e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1459 zcmV;k1x)&hP)0J;JS9x6snkBG!tDiNV{qZ^eBDK>#5HySuwS&Aqz1 z8q3SeXlQ5vAq3gk*#O*MhU|7bYHMquP$+Qm;ziWg*JFEo+o$vA6Z(hA$w_)lvsXHu zjy5(ny0l%pc8y-TbcxQ-&r^rP;nL@DIOxjC3QbH*qy~e*_jG@MpZ4_h zP=!K4old9N|NQxLYO~pBMn(p0YHD(;?XCX(`}gVP%a=WF7Z(>(ymIi~QLEJefUT`9 zwu!^HxqI{F%NM+R_YT9u!-$TKhFY!0;NT#pr>9}F*~I-$I)7&o(6GeD#=2~qOeUnI zr6D{#9E1?)^?C?`;IfZGp%5R-WHJE2!NGyp_VnpfgoTAcr_;F|kEOmZEEWp@ASx<~ z`8mGK{iHESrBcMj#ffc4FQG@{15Q4FXA#h_5JJSq-@kuHO-&8DySrht+2C|K(cj+> zhr@BIn!UZfxN_wRii(P`v$Ny(`o}RC42X$|K~ho@fM1L7`vTbQcDLu8cJ301_oYy) z)o?f**x1+*+m5b^M_0Z;JGXCe4-O9CbUG0k8Hv!)P%JDgpufNW)ODm%DGUY!Qc_Y- zP*5N)6ifZnyum#@JjB}C8rs_0Fg`wx!NEZ>02+-3V`F33-QC64uV2yL-hSq}E0s!o z{P@vhxDyf*keizeolXav%?69bg1dL`;>L{|P%4$)Pnw^cTUg@a;_&d{L)6sNAR;0H zt*x!7tgQ5@mP8`K$jAr^3k#8(n+rh@{8oQpU;u;=$mMdBl$5|~wZd#RqoSfh+~>iA z2iV-)gi57?R;xYnI4ompYiq;I%nW2QnfPhwPm`0A2oDd()vH&Lo}LbsN`>+9@l(&y zSA3=M_wRE12AAVJ;NReK?08r>W;`q$GaeR>*-xrCr<3ZJst*7F N002ovPDHLkV1k9`=XL-9 diff --git a/inherit_graph_1.map b/inherit_graph_1.map deleted file mode 100644 index 36180d0c..00000000 --- a/inherit_graph_1.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_1.md5 b/inherit_graph_1.md5 deleted file mode 100644 index 10b477a3..00000000 --- a/inherit_graph_1.md5 +++ /dev/null @@ -1 +0,0 @@ -12a2ece36a2b5df7a8a2e81095127e3b \ No newline at end of file diff --git a/inherit_graph_1.png b/inherit_graph_1.png deleted file mode 100644 index d64655f4158cfa3b4d759cf76a1ef3727b47864a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmV-~1bh35P)D1AZ00006VoOIv0RI60 z0RN!9r;`8x1UX4WK~!jg?U_wTDp3^2XT*x~t01hX#3`YTm6Q-I(v-q9BM3umBeW?H z5~LP=u7o5gG1^2BQAw$7+C{Z2v;yg46^)#{mjbp#8Rh{|L%!@}RsX56WxupyLC#+r6-`@LN)HkJi>!lgX3_-}N;N z!#g`Wq)W<8JRXnR?Z#*5$&*|z7g>68ng0HMLWa6tlLzHBc~D-HMv+L^W_V@P*mBZn1Z*OmR zcXuch!Zu1-$6~Pv1cK!8M-b!@!eB5sFfhR7a?8rf^m_gC^K;5oi;Ig81Th$lwzf8} z*ZW=5{(^4=hr>b0q{Lt_3=It>!p6qN^78WI<6{&>6G;?ByPe<5D<&S!^6Y)A}Q<4&d%1>)+Ub?3I(CBQ_3TRQmIs>Qr+L* z`~7~IOr}z)l2=_{U+3lJ9UUD-A`!RSJvus?)}nYkuF+^T8Vx>^9j~#zOU7oiX|>wK zwE6jYY>c%Jf*@Fae0&^&AdAKF(T?~!AE8hv2yOKA^pq?QAKu*D003}zcZY>nS62W4 zJUl!QrrqA&G8l}@%gfIN5J>hqJI~iV9xpL=xm-<6O-v>e1VN+Gh#*MfCoY$Z4GIej z0RV_ZB3QV(x>{6JWH1=;H9x8I5rn=jEiFx!hYw*Grqk(sJ|7FQ%MlF2glP~2ZEbCh zjg5)L;=#eei;Ii&j-(kw_#4gCP(Iz%V>AGNM!} zD=I1o(+&;}CMG6)K3_B%eS3Suv}Leemc8cl`Ezq~I-QQqW}8f=zP`S%>Y&k9R#vdC zK@cRfIyRdP|9ri+ww88@!{J~unGFpM&CSh~m6hx3>&bJZQfYBR^R Wo`mh9^z>i=0000 - - diff --git a/inherit_graph_10.md5 b/inherit_graph_10.md5 deleted file mode 100644 index 979ac889..00000000 --- a/inherit_graph_10.md5 +++ /dev/null @@ -1 +0,0 @@ -38459958b8e5a47ca042833eb4b218e1 \ No newline at end of file diff --git a/inherit_graph_10.png b/inherit_graph_10.png deleted file mode 100644 index 96f844b186728ac84030ce45a3a200e640f602da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1645 zcmV-z29o)SP)yQ&>VMi^4XUw3vtl z=9@~msIVd^BZ!P{QAyE@#A;!!Q0qldgfF5(Wrkp3y;`YbyK6O8vTTlM+j(9bp38l< zIdx6zxt!0dbI!i!cYeR~-QnKdI|4!oFoHnzrxU-9c-_;AHj!eqke=%~}_bL#8s6Grg$ zQaE5Qg#-3dIAr4GuV23o9y}kH^Nw zSeBK`h=1+&B(ob_Ywp_5JY}{erai`!{Nwo{ECW-J9qAIU6;#c zu~VY82%%1=J9+YCb#=8wB6;xO z0TK`dp;oKUo;@3n$I(QcPIv0mDTBcvl}a~l+B7&g$c^8P#lnj~_p{ zg_7f(KYzZsxH!38Q&WSygb>DJv7DTo`}gld2)}&!(%9IjP$)=}Y-(!y`t>Wf?uip8 zcJACMl}gLX%7%xB(RfOILqh{swO+6P{P{Bg;LV#i37eB3o3Dyw+3f6WTU#4NQF6Jw zwzk&ocBgj%LTI&GtyU|4WXWDa2x*!=a^wit)#-F=*RCBI8Hq-t++Z{s9UmXpYPAlB zgOgDd_4@Vea5&uA*-4TlDhzq)_xmdmHNdUm~^fc1Ed-o0i z@afYhZe4ErmMvSlySvlq6Lz0vS(>J`TJ5S;t12riA3b`6##4HkTm@g|^?CsSKA#VD zW3iY_CYzX;NMCQVm)ZG!Nl_Hn9vB$dzJ0qyA|VK(y}g}fS?(i}BvB(TFAo3^i9}HM z_U+sG`S~O0MKYO++2-D z!?J98Js+h~dHwqJ4<9}RgTVs_4%FAzzkK;JS+exlaurP`**k7yTMxPEOvs zb*reTC>o7=JRbDX$B!QY07XSbsEalcF*P-%QmNADMWWPuC6mc$npUgTBO@aTvNToj zW$V|k7l}l{V32>v%x3c<>*dJubDu~g5|78_a(QlU?&#=fS6A0!W{JgOhr>})QerR| z0)asKI1Iy}-X7lss&u3<4LZMK1cemT^*6Z~NvNToj zWfVo#)zvjOH@jS}xw*Nqu`!Fq^7H4FL?EYgbiO70a?2$KhygZJnE&v)k=`eSH#%q_niOyu4hgRQC4va+<@34|jBQtXsFv z;cz^C`c$D%008FGA3uKl*|TSPd3if_>`*F|EiEkDnmx9{G)J3*GF z3cd^g(A(R)dGltY(MXbHYinzBb8`m2`UuGTA6|cdKe{+CH40|sLGQfyFDUV|b>V=$ z6b{%+;efpq4%kcKfV~tB*h}G%;(rDG{rxMS2WF|TEUQwf_#-L2 - - diff --git a/inherit_graph_11.md5 b/inherit_graph_11.md5 deleted file mode 100644 index 0e3f97d7..00000000 --- a/inherit_graph_11.md5 +++ /dev/null @@ -1 +0,0 @@ -64ae792935bf2bd3427da89c67436775 \ No newline at end of file diff --git a/inherit_graph_11.png b/inherit_graph_11.png deleted file mode 100644 index 00cedeb4ca441d13fb30d4813982f328c2a25d0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1967 zcmV;g2T=HlP)RZFCw)PQYoizq9no>rW7vhK_UsJ`H&M)thvlYa{K;X{P5s(k2>A& zzyJM#!S4Gy=Q`hW?(3YL2X;6jA}|=9N1d0uD_}4d3l?sM$HKzR@K{*586Jzz?2gvf zR+N;KxT6*ZW8T!&)y?UfbL8&t??-)o{gM>KU@R1!PG>c*bB^58SlSa9jQ<*HwHle3 znHDv6&du;xShyJ;3kx^HV{u8i|Ni}pLx&DQBoZMyI@%SM7TK_21FEa57tNpHS-2$J z&z?O)TU#4+Ivu`z`Qi#ohMS3xkH>=t58PeGf^bQ=+uPd_7Z-=1pdeS+xrIG@_Tb>b zgBCS~LV*(}PAqXnuA!~14H+33kVqu(_4UQNb?cy1D$&)|Wph4_MuVeAk1kP_i-SwT zZ7>+HeED)$ShZ#xm-?{E?uJS+qY9-U?4qt z@7Lk#Pd7_ z2M3cP)CntxDMk5gsnM@|)d7h3RKW=vnEsa%NTpU$YRG3XuP*6aLiHRf35B-PZ^n9U=T$>`m?cQigePDMpUB#}sj08NK`aBz?|ZQ4Y~ zjvbrhZOh+QxQU3aUcE{&F)>1Wa&nSFLPDsrveF^{w6ruzOiZMXjtZZ04*mG?gS1*Lg@%TbTCFA`qK=LZ0zj>;t#h`| zY%GnHrEsrUv4WbKn#f=T@u~FMc|oSaPE-Q8p`80hTTvlJT}E9{K6 z@?s0Og}bPz$mV=^?%biw%uKU+Zr{Eww158mNdQQv(+PS(K>@8g?>aIISzfT~bma=uJ&c#BrSP%Rof5 zZ{I$;c<~|;5xsu>ngG!E@81Qzs;bKDS9TgpV`c5gJ(H-YC@L!}v#U?9%fP^Zpc#!u z5{t$3`SWM1H8_H;a4+h8ZkbGG)~>6o!^Vvp5f~T$;5$ji%{vph%qZ4nk0hLn^Pl$VzS0LshDap1rK`1||Y_3!QNg}1ji zA|fIjUY@grgoFs+eSLl5@9&R*fB>_;>1{PV?ZCi*pzq(mA4G)4#>P3`v&YI3;o;$P z+B3JWHNB^&2LK?IO2Kg)IF5t2w>N(M`i0)!UZ-kshD8lG$8o~Ho*h>3~8&Ye4<*Xv#GpPQSD+S*!t`t%7+O-;guq&<$;n9!4Gp2W zxp`im_wV0Fb8|Ds#>P-wTnwE~hxGJxyShv!Lt0uIva_?H)oStQ&mXk4wIMw{9g~xj z3tCTGELpgDp2w|Qw~&>U1+iF+GiS~qBO_y8US3{asHmvGjvYI&ZQC~JbUK&$dwF>w zCnpCzJw0Z({~YnJuC7K*Obn8ek`Nvqjt?I`K%r0o0B+vAiII^JNTpJwrl!uB*PcEf zl9Q9s($a#it}blZvISzX7@Ie5hE}VEMx$}sPpMR*u&@weVPUALsX;?SgW0K)E&cK1 z$5_99J(81?A(2RM^5jWmXJ;?&Eo3K7&>8>7%)AXdAAPZK+XW?q;Z9h%86Jz(f8sD0 zGih&cUy$w&*pZvzv9NG6JQfyihR4Ff&G1;PUQnvl>ZPoM!I&4Vt*urytKqixE(iwW ze+7<+y`P)mk+Ao3Gdvd-ZidIg!p-nlShyJ;%RhJYRzR;{P&@zt002ovPDHLkV1m`k B$D;rM diff --git a/inherit_graph_12.map b/inherit_graph_12.map deleted file mode 100644 index d63965f6..00000000 --- a/inherit_graph_12.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_12.md5 b/inherit_graph_12.md5 deleted file mode 100644 index 9033f5c8..00000000 --- a/inherit_graph_12.md5 +++ /dev/null @@ -1 +0,0 @@ -ce32168b405119232c6868b3c5b87e75 \ No newline at end of file diff --git a/inherit_graph_12.png b/inherit_graph_12.png deleted file mode 100644 index bea8afebf697e089e11844d5e0af6e35f06a79cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2091 zcmV+`2-Nq9P)M5E>0)4i=e0_%#{_3LguYziilk- zavCcmyJz%A8O<=Qh)7p0QYkO}5hW55rX^cgDv|`#bm|$RSaX?)OkU z^HMJQy#D%}_nz}S&z|!>$DOkw1|b9pgcHD7=mrpo|AV}Ua2Ajk5zYegBEng4Wp1d| z>f++!g=z)yw;>XV^78WN&Hr2%2L}ghYioadONhS_jYgwZtC@yvbA|j%qqGIlO5Pv$e@#52` zPg`4CNs|2V;lsQ)gouugzI*rXLU*wM%*Kly9UVfU(A(R4-n*GKJ9g~YyLYdJC>Dzk zA3nSw{aDl5+M1l4%;)pn+}zfzStFCldU|?nMrt&gg9i`((q^<;tyC)I^ZCBMz7mP# z_3PJ^9u*b!;K75R?(SgNOqq=rjYi{=B}?YLmAR0eon2d7J2o~(E8X4QO-)TQnQQ^O zqN%U1-?V8HK@iQ&%?5*^uC6XRI{NbE%L~;{TwI)&mseX`+rYp;US6I;p;)L+{sUxC zRaIr7SQ8%~Pw$(bpAR7n4-Y?g?%b9wTfDry9zA+Q1z;FP5X7ZRm&|4}wPSdA`1$ka z#bPm+%U!*C^@|rTXuZ6=96~rTF_Dy%6c-ow?b|oHkaeCbSFQvF1zD_3CKHb1H*emg z`#f>tgh(V}$zwDcb8~YEg7ES2k;!CKQGr0v(9l2y3=R$g01O5Liyj^xe(cz>n3xz( zPtTB$5RFDtR8%Ao2zWeRR#ukDWP%Wy&1Qli4jnpVZ=@Cj6bgk(rILQ>?Afz1F)>^& zH!?Ev&6_vu`uO;GZf-7)|f_V4t-T3(U{{8#8Ty9oY*5}WkwOXyezkhXgHH5IM zs|x_2R;%sJ(_(-YUi9_#ZES2b8jT8tg2&^HjEu18QmIrTk@WWV8jZ%|$B#!wMpEYk zvxM1fUbSk~&Ye5eYW3vgB(szC>(?`fW^Z&BVfKo$^Q*jAP*7kq^2UuDX=!P6*tKid zsP&gGUjP6kNy2|l@s%rADijKP6`6VLq1WqOU0pRA4TSLV|A$;}f6#!shV1Uxg%gZhPC|L~9`npKJ z6cQ3rT3TvPryA4i^^|BbnRq;2XJ@B%36dn`a(QrY@S;VFL?Y3XCr>EdrWY+nXA#Cy zlpSj?&d>8j9LMQ(O-;?Zb?dymyf6$qdh{qslJrY_KA&2+ySoDbCMPGU&HMN7dw6)r z<#J|DmOM5I2ndLek1s1L0|1njmF?NH$HT+JULKuJ=i=fL6cjY~_wMKCM=jjk+&nxy zJUu<>P3jF&0eZcj(s%FP4Iyl3XkaE`4$y+Yz(D4jo`bdC*VhLC5C{YqhG7`y;^Ol4 z>sOslXI(-d5Zt>85tS*sqP3NAt3}ous=hk2WSm-uqk?bdzUX?ZcksaVg-l8866#EUThK* z6In{|cs#jWP7p*(OA7#i!}-?_EQf#@#$I$r%=7mylarHXv)S9*d-3AM8jYr;q{NZE zTwPr&D=R}oL&ah-b);GHC=`m|;9%=D03bFtcInckyLRmoiA2Zr{Fr@7}$WCr@g%+Nr6j z;o;$?rX~k>zjNnKQ&ZFU_;^uK5lNC#snnj1<9Je1Qf6kRR;&H~{d;R`t5hnTnwqjm zsMqTg6BA#)d}%Nkj7DQ=X{k=96AFa@fMv^;b#``Ao?|%#%rFOwI>J1AksyexSFfh0 zr}KEcyu7^R zz`*zK-;2d!06<}3;pph7Kp;p+NMHur(;Y-2ku*0q_w@8^+_;g)<89cmL95kjG#W?t zmC0oJ`S}3>0hN`Nb#-<0M*^Gr!-o&ou3amUNcepIkt0VkGc&E9z6k_^oSdA(!or}S zARNb)N~KDr+O};Q0N~WAQ}y-r?(Xi<(a|iUV}?0c)FGIcRtN805WfxjftQ2&AH=V^ zcR?WL4)P+xS+McDZiMsD(a|v@{f`D+7ZJ_^@*=`nKwd;R3&@KIXTiq3OLcYi@9zWg zw?UF5{e32d4KFf(poT#FI#N - - diff --git a/inherit_graph_13.md5 b/inherit_graph_13.md5 deleted file mode 100644 index 1af94957..00000000 --- a/inherit_graph_13.md5 +++ /dev/null @@ -1 +0,0 @@ -e468be2155d6736d9e2524456504559e \ No newline at end of file diff --git a/inherit_graph_13.png b/inherit_graph_13.png deleted file mode 100644 index d15ea9ee1c0e6b2b0e0eb1f76b485a352ca5c614..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2261 zcmZ`*c{o&UAD&dQG^jV!STeR`o6Oi{sU}0iO!lG%6Pl!Yvksc16vC*nYmgXAW1B@} zElXaEiZL4-4db46)`Ueqib+CLgKmWF+Hm>a00{orcrUS zy?VaU_kD{EWNwfgVq|U0tjqN3WJLB9XXAs>RQA|8XFBh(g+dYLWx;DD385Y5D5E_B zlK%thOKC4JuL{rRN0TvU6$twF4i57jb3S4$KBw5BaL39*;8cK8Cv%oq^~^|pBP(go z{ojyd*lcBW_1UT*{0FE+kpkyG@L3`tIW-l2V?cM{)eW?T#XTkE2=w{$5-76lHTZVp zk$T*RY}4?a^t%r1zTVNCR{SZ7^3SCuxffFs0aTL^@;-5Sg--Z~9P^NGR+N^NZ+$6D3gzGc`&x5~hKp>^0`P8Ze0(<%$jEd8Y^bTJRUD7l-qce~iZu$D)OGM$ zMIwke7Y#1i4yYo=uWtVGL2ZQ6{;()rmIO#fvBqfhC zdh>IrRKKM-x0SH3|2$>i8qIEw79V7@uJ>s#hnYr3M&8@*#hGHQDa7UJ1KdI^ilPiW z2br0f4OQPhvq9DDw4&svGhX%6dw|+bnwm-~ZEdcICbhS8q-fmWJWWk~ge!03@hWkf zJces2=b1s`5rj|0-R-cNkndz?x{89rJ-zFnPF(BBH=YoBl9JL2aPn~`aL>Md0aNeg zXxat_X~!K3K97x^iWZYg*S`UAZ@lX?OJ5^lFk+T@2eL4za$LP3X)`eEXR$_tep_pt zbZlIllD@tao!0>{ky1nYwaW16f{2KSq@N6hOT%z2zLoZ_t{oYOtA@lM3T=r;tGZ1B zrzP6k+b?KJ6=1T?+1SJnrx6$z4jTum;cz&rd4#;Qw6sdSviOv$=l811GvOv=eS;XBRJTnpszO5~OOIi3E&*%`ux8 zYmQFu^1A+7opO1@ zva<1Xx&}p=LFiWWy7($IF*-W>=K!C7+0$bBYgJP z2G0wqr#kBB=nyIg!Y23Rky_7009HZPzjvrXFc{4G#>VlW6f};-_bXKDgllVS>yNjNjy85L zI?=4Vpw^V1n}EDX6pDp!74i4?SA)T>j=xJtPD$aR5k^KCW~9v%ch>**-uP^_-QRz~ z-rk=0^Q*AIt&tM0Wu0&Kc?ObBX0cca?EwJ+GLp6BQ#~{^kjD~IQi5BxL+8-w zE7Koy*?xRxH;K!-irw1U@-@vXI^K3}q(1y=Kvq^(LSmwLLqh|w>*C@#idN?DytcAZ z$z5Dr%q=SVryyZ&Zq9hZ!DXjkIMmu&cw%Cr`t|GXmrfc$X7a0VU#SnGQmKYv%WAuJ z?b? z%iS9bs;kq1Mtzc;+|r(O?0Of20(6iEJY#)l+vHncIV#orU4jfMP5ZJC7_6eLO{P+1 z0Z~MywY_?a?1*7u12gNtej$iIJid&Nw|90bnV3AIq0>GY71sP{)-}btylZOvP-Y;1B&=p z`2sb3othe-pHJu}uwzSe87L&ugK;5Q#mRdsH#ZlE5%0#an1&-p{>s2v02mC&%!P#o zzzpM)lkfT&SN@a)91%c)QE6$?s6_b*K-dnZmWs+=7Z(?S-MeS{%8!nWjK~@XTIm%e zCm*`Iwf?6UEc3dd2K!$sIz?<+O}G - - diff --git a/inherit_graph_14.md5 b/inherit_graph_14.md5 deleted file mode 100644 index 09bb5bb9..00000000 --- a/inherit_graph_14.md5 +++ /dev/null @@ -1 +0,0 @@ -7ce9340b352c2ffa0e98972b29dfe4ff \ No newline at end of file diff --git a/inherit_graph_14.png b/inherit_graph_14.png deleted file mode 100644 index 621907141d52bddd0cd41b5a9c03753b668de97d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1362 zcmV-Y1+DstP)qx-~y3{WVn)++@Q2cxv<Zwd1ri^XC#o4FDHk4Y;lD?il_hM%&svUd@Dd=dxPCvkv%5(n5P zaqycyX*8Otsi|LVKtz1Sr-Fh42qAZityU|9P%4!QFHB2Io1L9yhZc*awzl>Q4KN%W z9F&%p5(E(x6qJyVP*+!Xa&q$JYTx0Vu7AN7zfUTaYGPu79ZpP4s8p)I)RIq_Os4GY zY?35*cX#jZ?lv|yG#bs|;NVa8@S`9O%gf8}BE011=XZB^E0xOq{e6VcExw%0Im6w;ZZr zT3RY9DgppN2uYG07#N^wnpc;A7H&0x9oFe|I-QOi`Jzv~y}f$9zPh>^Av8WduGMPS z*VkE}a&vPF3kxqUE*uU=US3{dVIdPwO--GdnPKa2ee$+MtyVK1h^MC~y;4&X0(Q*xTFlcsy)zkH>R(co-KK zx45{-t4l!3$7;O%O`qIuw_Gm2xw%oPR3?*&_38BV6aa93e$FIYtyTcQ<>lo^J*-ax zOVn!h@bEAbzrDQ$0JvPP?d@#(2LMDxML`H5gnoX0 z4-XG^yWLwg;e4f1$@aOjvXYXLB9%%ZgsrWuE|=@GTDa9d#kbDO8yg$f*4FCl>mh_} zP@zzGJRXO`!3>#mFoi+^0FX%d-%el&FG)#BBuOqTEbz|8#KcG>lI!bh?&ndf)q1NY zoX<*QjynDQ{a064G))@}29L+XOmTGyYvFFxr}&mn+1c3$p^lCYZZI}BHYX>isj2De z>dNVKwzRZR6crg62>^(Uj66CzV&(a=gck_m`1ttr^mJ!ur_E-2eSLMi-8(xw%&bzW zEG{mtsj0EqY|qcn2L}fwB_*$~uimQpnE&$fLesQdE)NI@uvjbxgMppm>iVn}ANeQ$ zbC;KwrBbO%rAkdrjf#qzo10_eU0q!!lPNejSfkPSxWpS2MeXkHo}8RyWo5}^vdqj( zo6TmiSeV(lxw*u|M2eyaf@p4TuBoXB3=9;g=1V?Fl0!p76%`dSnXIj?t+ce1oqDJ1 zvs!!sBF^(hMx&8AHh#Y@<~uO=HMlpJ@bx`$fPE4N*e7v-eG&)QCvkv%5(n5PalrFj zn9*qb`93gQTrO91bTl`@;}iFW3g)-a>2%y7#8)3g0X{y71MHJHz&?os?2|b71B%e> U%U^vYTmS$707*qoM6N<$f~UKj3jhEB diff --git a/inherit_graph_2.map b/inherit_graph_2.map deleted file mode 100644 index fc987fa3..00000000 --- a/inherit_graph_2.map +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/inherit_graph_2.md5 b/inherit_graph_2.md5 deleted file mode 100644 index 3880f4ef..00000000 --- a/inherit_graph_2.md5 +++ /dev/null @@ -1 +0,0 @@ -bba5db1feb44f2301db5c61f98d41996 \ No newline at end of file diff --git a/inherit_graph_2.png b/inherit_graph_2.png deleted file mode 100644 index e664b36f58d6c1edf79783ff3d09596b97ecb549..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33312 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 K&9~|%xBeHWH* - - - - - - - diff --git a/inherit_graph_3.md5 b/inherit_graph_3.md5 deleted file mode 100644 index 8f7fc399..00000000 --- a/inherit_graph_3.md5 +++ /dev/null @@ -1 +0,0 @@ -642edcc5f228ef2ad0efa9b0a87c787f \ No newline at end of file diff --git a/inherit_graph_3.png b/inherit_graph_3.png deleted file mode 100644 index a2fc1d9a001b1560f4e8cbd62c0f78854737eb1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14196 zcmcJ$by!s0{x>{yigY&!2+}1jE!~Z@(v1uag0yr=D@d2*(48V6-6bvEA;Pn`&wHP9 ze)(R{AJ538b2-f3Yp?jOPpxoOW!XpQr05U`m~y+ChO$OT%IB|M^ICvxuCzNGnCuB>^n=z zkL^Z%hj!%Kc1uU{CTlCf`Q-HphbM9m2PPZ@A|OdC2$~ZHsYQcO$9&?0gRJ9BFhBx? zY4Io^iUhV(r8I)@#5!15SVHc5#K)Ve>Fv)Oe6FinTK;@bK0e09!RZ zfV{!$+{W3NGqT6)>WF4kZ#@{?X13ZgTv;4asPrN_F*$i|cGlY38i&H7FeiuB*x2~h zt5;fDlSmkZ?-OjXn_S?5_QU%1!{QT3SqsK%1%gx@G4z{+t)5iWoZ>p=Ss=|h!B=z^d#O(UD zyIWRT>f_^+mYyE2OwWrM;QWsIrI%OZdjeq*5v0)9Zf-mwri6rqzb_A=E-vaiIw}eZ zT{b#=*~JGIZw>PbqjmBE&7Rzs-}2ic99!%THmRARs@G*lJ} zg?-9h-6t1t>7JSK=r>U|z1gNiOO=+vr6=-hnw_0BC7zm`B*4KD&r`3hsR0eJ zwY5Di!^Oq5;z=tm{xz1TaJbwS!(LNet)Qsr^BPKf8BkKfVw8TA8IZG`#G=E2X=`JH zj*dPyKAx+})X~wwZrqxP{lZXx;P%hMD^E{@yimy`qq&ODl$el`l9G^+!NbPXl+*X- zObB}5)L_^l!Iom6u5M;#7N3^JtQ#et2cG@n?5w-HTa^j_Rw;5iKO_VhbmdSwKL$T- z6-8X_&SaSSG{#_6k1VU{-$~sT->nUi6*A6q_9v` zQ}gzG+SuFM`}FiQHz(&PDcE*=_W;hhb^yG(x^i1vTg%IbL3ea@A#`y#!%5{QedTuo zQ}jJ&)f_$^9-Yh3`}gnL+h25mS>=4SR#(S|D6adAu+?X|)z?ihv%@58SFN5R&S9}J znEK_bSDEYUU36%SMCD3~40z(PH#c6lPh^lQM~D5OWh%p#0@a)lEt(Lq&MSV)aZOI)ZdFR!kp_2}_qA_ol#p{|{s9U4@1 zV`KJ{0^BrQWwz4%d}MKKNl8hcM167b&(+n{b#=+g1qFF|`*XE}b8}u@A&*|aeqAw{ zSuYYB8w-Z}0|_@e21bQpLrz7-hy~Yx1y__zmktLfr#SZe0gDJsYPPcXA`C2G{TWKC z;rj-SAli6e$%QmIR4)i*T6%Fcdxyw-Pdanab=C@wCpudlzfv^2(F z>wS5UkwH#CKmcYqqIi5l!q#x+?!kfbXVp4~MN(4I;?mN+_4O}hW%~yQ<+-_dR8-k< zah&UpK6Fb6U3mosB_$>7x?kHt3H$MbLqLE;9Q$DjP&iMINpjYYpc4}@MdTM0bdf*R zKopgg2i+EC5ODfX+d(0Q#LB9sLm(%pHh7R1l%U5U{d9#&5Qrz@UmL*+rK-s-SgA2~ zT}wt;5fOoQT>+duW|cCY>=N}CxF7IV4^!k|qIz=HA@R6x=XlI1V-}~}Uw;UE$NBT{ zP%O=s{WBljb*Dw$pR@6VY(FozEoCi#vFQb$%?N^g$2R*nrks)6Rwjnv#@$^UrC+|V zF&5kwWK-&B@)Vb_2ni1BRd!DFyv}NEWfPj62%U{vHg+2f~=X`|B-6BDRHwx4TeZ-?GakS6$dJWw`=;?!)JXwzg0& zuhpK&YsEM7V|k9Pmsvqgzu~z^T3=vUKzchnUM8k+t7Nw(WxmSK&nG9gA|r49s60(4 zi2qS@r5UXm8MDjpW@n&Cga2@;jEkH5b_GG!csY1H|0!-JhN1*044TL&o;u};x0h{V zV1(voe!%SXDqS|3r!(~-kR33H6+gzu{Z~6Pxh)-PVXoR0b?6udqR?`<(a-JcC~HbD zN{5G+Dq0(TFZS3G5Ef!%pHTU27gkhAyD@QSy|9O;t*JfF5P}ME9utXXQ{h&fQQbRD zjjBDgP=AG+;wmy4YuNw(x2yWtzV$dhzrFt5-ERe6o_rh%bVX?}>{MP}HzQepHr5By zEx4Wv`$)g+$F2WDhK(vZ4rk#Mo04UOPn0shxJX6X=(anRl$PdHj);m}Yc0QaT4_7| z4U1~n?>L8!Gk zRYFP%9i~~gglO#mi@e2y=o^rf?69Je@QXIukgOGPkT>FDi}@P za52PxnevRY!I=&nxw%6MvDR9>BQ!ah>fX8+lVTQ&6^>)r#AZtlzU%ARSL-(r%ljYetQ>nO-*V+{6Omd$r7E&$Vk0sQ(d8t!-r|v8Khcbv0WBUB<<5? zyu49<{&ZPf_zB*$-iw~}sepp?dsQ=w82Y}T7wTe8y9 zt1K98Fk|RrpPQY6&CSg#K>&`uyu3Uxw~ zIuG1-Zhl@RTQoB%iPxfwhF$wgw&J|=Nzfcm<;IqdfB@(A*{l0IsIvb(b)~6{b~*sk zQst?!vDn1KOuDRWY*_vaQ&S<-sF6LLDTnj0807+PVoYZdbQs-OnE?y{&61LY3?C2h zNS%&43<=@XFMWMQ?h^aftZi(PQ&Mzvbil|YrKCKzcK5Kyoz3hQQ8hMJVMqY1hy%09 zZ7062&K(R|J*3lD#QOqMJT@(j)F%_=F(ozX$eJhu>|@_!Gq|8_rcOW230^gc?u+4`glKt_&qB$&Bs_)#A|SXAl; zQmFwp@Gc?(J&-!^-LEfS=mA|jI&xa&ds4%lk(EUmNPT{OPV3M7`6+l38yg#JL{1(a zDK)^?kdT6hhljze6wJ&@POh_^W&>>E5gA`%Qc{aHU^MLj*aGG=k|7X8-Ji;BIaOf{ zFdQ>mfRn5uLxLj1xE0TBQFu67>({zEZ9r0IW^_9#@ho}R4M{;!3@9xf+Zc>lYB6~G zOY`XZl%Qghf&Jp*J)M<-OQthl(7Xv~U-GA1-zE1d4u zEI8^aSOLu@!LX#nyTN_G$p3aNr>*V0qU|6hbnxlxJQyrxWXsmt8Wdate0U68?~lg zA&e?nUuXBgBHr7xLu1#T2{W!w{KPl#6thcR{Y0nywz(+WcSF9r?e6?i&V3q>G>VXn zj0_+DOHomSd0#ZxC=?oK!lmRD6}$aus&z|oYSuP4!HmDWIyMJD`qit&PoJnkMRRm? z+)1Bn@rEiZM}y6wr9~u=8qh|-INw5{1*%L2Fb7a9w6wL|U0lYdrre=WAOVEO#EkU! z6QA(6#_hx5hMxg~J~c6cYAi_2)gJq3e0+RzauVz=CSWJ9vig{j@qt}MPL7kGANuw! zFBey%|9vYUWa~sMb{6c0@*IbG!o_9wiw&n^E#9^1e5}j03d*6$s`yGODxm`E0g9!1 z)yUVoice2GeyF@QWV=7xNzeAr`n{QcGdnx~eaI3w6BT0i!aklZhH~<7#<{4f%6gg& zHk6)8fWLyr|FIGDT5xM?M}0k&a%Q8oz0&XFzE?6bPHT7^lj8QYMrvy3b@tZw_9B&) zwo~P`LEeavfEV_(+Wumf+oQIY!|P?boa}t=QLU{DzQ$CL9Pruq1V;8c2c_3s^TZ!` z4_i>6EO0CApZIVf_vVIncEg>))&5tej8XXtZnThfEW>4?qv z7n(SRU)#75IiP}aTjIJVA!Ns#oiV+2XWrSyEG)*tj)&`46&HU8hQn}K3R9FyLB5d! zFX6R=gU6aoVkKwrwp8u|gBTV$@%U2CmRHX9n$MuJ$sn~)l7Qg)+cyfZbm6?cf74u= z2A}3TtLt34%-7ZYzO<#I)pnS_;4^HZ&jTfDY^*USCoL!E7kJYl4roMvSy^1vqs6IY z2M1BSyHWu?aeGo%;*d-+e?|s|!5Q7dnM&x^FfX-WT(kGx?Q1o)w}5P@sVTjFjTio& zluX0Ueut0G4Fx3uP2>?mEagOg<>c5{t+}kekx|c784Jwb+d$dDpVrYs*iTE#)!BJy ze_jQkX|L-l18M1j@85q+P4$DD+bT?tsXq~ZZyyyF zO=tW(<6Y=uy{iE=)79$XVbMoX*2&45vVAZ+yKV61`Zk1{m>+ys%3qA1fq~`ePF+e$ z&sH{yl}#~r=1aEr6&%nwhS}eLE<=uvBG1qFLm&UHFtV3+BMibImBuc^t6RDm1NK}YSXnr=bIQsQ=b zpolKL)*XKS=1quHAIW3zg#WVcsqhw2)qk`l>2C*g-R))7*Sq>>MxKbpu_ zD=M{{YZho|ZDr--`_X54vVbTZFt{P+jT|H!08vdhV&&!a-}vU)#i;Y``?Dq3;Yo(T zxJnjgzWOpX{k-l&3m$*sYmv~>I*lNxBqW@0Y+ICIxaVwMoScMNs%%b{wAs&m-CGgQ zmUF7*$E1YwM5vX+rHnb;NIKfa!RU$w>m@h01sm}xi@D#KnhO+aEYaCCJnR}i{M-e! zah+s>K@O~+x7$B1uh=BicsM!FdLpAGLtA0h+z$hDe$E??b>(GpgsKQgL3eS9_s)9v z_Tl}S_8?OP^V6qC9y3cVlvKX!!dcnQS;C&CHiG6B^PMX=A3uHK3-8@B_wzHpyO?)n zyBslSNEkp537O+}JRpH#AOYy@zW>eRC_qd5qUg*34A4i!6==TI*2ulry&r4#eM;xh z#>ubU`TO$<7TM@hl3fU(uB)9DoSb?H2*Q*x#s>4up8C$tL9&M}TaX}G6WYL22Aq%I z>ox{ST3Ui={UdU$BsvBC{dX%dR5iw{e7!+Ito0EMq$Uo3?{_S%`XV6eNDy=a1OIbJ zQuMB`{rx_Zd(0-Pdo`i$r`-vRG z=V*il?i&A2(z9@4A}}Y%Qc`q?29>s+CZd*iXc`)qoV-_H!OT`Z+xlk=pkLu7V`jRP z!I2?fppfkzuMr7TX3LD%R&(F1;~A5Y87`6fcRQqW1C>Vw|4;34C(p22UKK zr>}m0cPT9@it!ZxQR?OV>?{#ky6eG$Jra`U#8a{m>MzjcTBu8!xveb^Asi%@-)ZTL zXui&Oaak+?2vky?C|=|gTUS@l+}>u2xp(pNI|xTa$UEBZc5r+cB)BetmsYdrLDvAp zg!3CDp!s^x6ECu-(fg9^opqR&?o389fJoR}sTMZHEl#Usr<*&9>3ku}vO9a^{r!c0 zS6}}m*)lVIijE$Sp?oDf(Zc-tbp(~UhSZA}?b~G63ijXn`%y75$$fM2;sOKb$Q(;4 zh&@K9b!L~1BTW}758@Q3M#o%e5|*js-jDQq5Chz2ef8v}p~LC%S}WJJG2;(S(cXNl z)DQUKSBm_+vY*n@X6EK>zI{XV>8BuHudQ)w@fcm2n3(<1?qFxZ&--?2s*aDZ%0Ryn z8Tqa--lFQDJz%DdQu&$2DRDZw#Z?nZZ~7gF4|<|=ZebyZdC0{Fk{m{&!|fFwzA7@( z86%^+KY!}hG9Eqb3GvXmxnl6+x<%^rJcfsd;q*%y1T|gabRPl25F0m<57c7-Tftt+ z&0Rgp`1Nl^-+cY;TDZaT($d}DY<1Nj?|@Q~Ic6A7{G8kQugRZ3%?KmUk5(m9QQ~Q= zzriJ9Uh}9$SFVN$=Fp!Bi9bF8*9F?2kdP27YbSDyw2P~&WN>{$1Hd?T3-xLz+GC~M zmBOB5P8;%QfL$s$#8d)~EN3K}M)z%Q?&kLTv~%buN?AxqFTk>=CnqwoO7+V$`zk+z zeCTV#hu*NTunY=++m@D*F}r8y=TF&wzE)g*uu*9)#%ADd(GxLKQv;u~_91zJ(%c+T z%x(8Si2qW})8$G=Mn-)xRARn2JP|p7k-fm~9vkBl6!f}2*#OdA3frrblM@NGL@C>0a{Gue_IJ?E>H_I1YFCF+eE*-#tK~nSKry09Ul*Z(pOO+2br3gaorv} zbrw|p^dd6anyEB*6MUtlWItQ=`pFajEH6z>P0VFgLt#X5N-@7?yIC$Jr6K7^!o>zx zOOLMy2M7KA{lGH;h5!(qMEvgzBPiJQ6%=&T$Lyh(9w?zBfJ>K@q~jp2svMPkV(8|a zT3BdySQJDL2Kq1+E-t`AA?*GeYB2ZxIluth?(cpxMF1{?0R!5$C!o~;^xfY2puGwc zRz>=QPO6tqe(b3nh932`M7?D71U2bp<9o#@CbZJrTH4UikYwl8^>ss2 z6W~PEvwN9BP&UK**uJ$E7Z}|G{f-uUQ|-;o6|v-ddG(Kva zQW?(cF>-TdWo6)k0IC8=Ghij){gsP#wBY||VZfvE&x7&%%UbDvOLOpo-~jsacc&OG zk%5J#v#%WW#(f2kg+}_(vOw1pdU`};WOQvX54xzNou^7on2TxN$8QQ$_#s9!l#UJ!$^#`}+dT&%(yW>*maQHTt6>!(S}w3SF2| zMMJ~Yqpgbu6}U3)e{Q+}2;k9A{JeUR$_+(L`7-b-eSMv{E3*HeW<`pa#}Pz4mWbWR zq{}9uU-+jDUiwgUSlEvrKdkKR@TY_85wz0g=xOTu3xD3kzX++7em+u6NnU+S<1rfk<(2aX{X{sk#n&~OoMzF8?QDGB{f&f$GwhZ{aIH^+R-(m6lx{mf|8f>x(*2C#v8LkHjs-PIHq zqZ>1AY|@YYxTNq~npj+XrK-B}^CxXXqz+|a*F2T8-Oe&T7vtJt>Dk4_$+ZulJ5QeE z1qKFQU0toV$w|GZPSDWM=<4ju$jq!TZUc@2eNC4M$8eTN_n zPL=8jQ$BvoQI+EPYoZ7SG{Vsw=>nDPHRaxdF)*^*Y-=TI~Y$ zE&j;zDH77y$%d&Hy3-x;q}&c-4cbs%6T2L}g~t+DQQ5@O=SloZznLoU5NGF3yOG4jHnbN-7n z73cY}0wn&H!7{l$y}igtNI>H_0Cf>;Bx9S@aiF3c&wU5x#KLfxfPjFtt!-0N6Oib- z`}%+ZR9I3HX`tuQtd!0N9HEhqoOHar=X15TK*f>dQ&CpV5`vaDH3)Ll&UQVjw*=^`4r!zyj}vxEcn#ytn|}#vmAW8^3zb?lTQF1B4U|p`P;a#qI5O zrqJSt4@_Vgkk~`$LQQo|O-<$G!q>Ses3kdMztM~5wc_AZa?zS?BrrZAAb2Fzmud$O z4-d32Pz$mMShTS-Ul#|=@yvcqBmI~rFT{lLB{4Ns&h7nEl;JzL|L7DEJH|r;y-5m- zhYx>|(hFii)(~yRsn+i)RrU2*5|jFlWU?Ur1UQa8t5Ew4bcW6rZiA#mh5^f?BF_)+ zrcYAlYCMk3d?JF1ioSjoU{#WoevS3{l3WM-x=u^=MP?=|A-j>VyJ>G9zF2R-*$=dv z{db&I?)w8mP-aiz4^p%=r~rgUN4xs?5H>ar14iY0enIE5)(gPQ8L)HWj2C)7Gu=$; z95ywCXUZZ4$RXQ|8}sm1raTkqT*XAqmr+-xra=uf{h0UU{LtTceXTlHVl>vXEi==% zvQl7ccu`yRMZ>}>0lFmiSkvL0kibx7EiY*#1kz7ds3e*9W&Ln5ePHYHB5UB`je)_q zk1vs@r{4C?K)no*{_U3icCJsSRvA_Of2XH?{ye9x;Mb@*eBKu1%`l3`Fp)IXfv`p0PG9DCcDffGN{~L9sYJ%f} z^ukRrj1Ffu{W%o;w$K(%(zt}?i5hp z0iWjelh@Llm7@LJ+ly~t&g4rhQOS#_;}iwzWM6DwcHrPURTluMirxvX~V>`bsSPi3`~Ve@fo7NyTDQD zgW^QwSdN5DO+(2A&ss7wM^lVj3o0t)+}fuRBsERo-_6mZ#q?dC$a|cH1)KJ74h@fv z8leUzCUJ`0Ff{;M7W8#w#y3vbD2o`$#V}hT=67Oo zv^PuFpi|}(NW=U^0;F$d1_DefslGT7;v9IXcXK@YzP>@(J}w(SdzyBq z*}>-PtEHJ3rpyy!5{CW(Oy#P$%vW{Z(2(--n{d3{As{$WSPHje6A)_v%AeoRVA~g6 zW9(NH_Q9~$et!N65m^HfQw=UPXpUZiIK=mSa{uGUXP~$HV%qpqk^A%d){aYxA1+P! zPX!|J=BBPI^p8$O9jzc1h+Ck4z?{hE99+w%INXBMo-}ew1f5=CojG36s13%y2u((56PCW{9XqWp7 zC3RBhN@8Dx0JBuKT3{mo_~Ojk++uy2fFMc;+8BLG{f`2&EbgQZSYJLl`JhR9Sz$2j+a_eJ37LnqU>_; z;HYJRW+$hY>a!AX30=1Ly(oQs?Sh=~0*)F|8}7l!cb4tH^k+3xd31F7>YBp;qBM0| zO6q@b@nn@}=I66Typy-_L6uK1{K%&Sq&`?i1_hX1CE9;}cZX+#`ZoGG%=zDmT~2i~ zr6(IXZqnIZp zo>I9xZ{FOkfdYm> zKRfS?Jz-~O$Cs9)$IVoZ2@l7)-Dw{iJ6Venb9Z(gotVhrwj4g+oer(}zUl;QNf8kd zZ!fQ-XsJ4Y!W0!1L&OOGJJv;X=S0sn0z=sEG*Umvj(WRrMWpv%%9Eo10W^u5+qx(TNbfoZqx z)|i$ySM_>OUS9sopF?sAFe>QMqaaIgwNtRD`D=NqRKWRY1xh}=-gYAZnD<`}9A?*7 zz+Qb!)z!yVyF!Ho1*ghirDtYFna-@NtURE_)z09W8lH|iAgyB}=T=s7K7a1<=jOcA z{}?1=++1AJIL&)6m;Ed9^FyHY<(WF@sHi5@vtZaS4;Ib2Qg^2-h#KaOgaM$es;Ux% z9*~Eaf^-l)t~G$DfazV`fXodMn_;_3T3}ERpzV%}jaoW7{2(SKCMG88zkQWkPYf=? z{`4uZNA#7HqLPv(LF6nLMjCJWGM)A}2&`EH#w;)Y4cM|`_qV6hb2_Zon0wTS;NT(&zRMx@H*?*rAB zmPQhf1&;WwwYqwIaj}huN4--z?p)l50gLzn3(}|%u^zFr)x%#j-5WT3=DnD}5C(IY z8r5aMGj^Pny&}ysRE)7${`k| z@XU`N?OUh7#s;yoLqs5kI5@Q0Ocnz-VYDVFo!6EyWw5NIq$^wdAug7;kRe5S6OHj7 zEH(d6=_1~I;ZipC_5`BgM;8~#49HP3YsVf}dP!#_PPjMc7Z<}ImBq~L0z!dqZtG6H z=08yimGHt_T8__m)qY=kX9~U@oE5l8F=hsvWx1EP_q9(eP;cVn)dBzW@oDBUh#Oc3 z8U{BvHz-J(n{Nj8n_ZqQ0O4hHlv7x^8D!@MEM%ml>YJL#h+hgBe|q;$+|#qc>8ab> zx4=O1-O7Xl_xxy3sYtUpCPu}|Y8%uU0di$$=gRDCV}JiP9?n9|;*^wW(0xEq?tD{? zhldA@CF4{$#`0w{euur~HV{d%adHAO#;Uip@3@Ag^wVS8XC${7Yb^OWi_6BYQ~ogaXH5U2ucS0PeF;SRRCZ%`JPI3i zG*r~1)6;ptdm;!}!iKqO+gaNgf&^Ui{eSN#52hSai2Ce*ONzIjHx#=vAz5&gXOI!t z;U(sL?wCfeivOy*ck^KJj{&UwL*(FF7c-03Nw^f~0dc_E2igZyaA?KVMoP=nRLxL& z!gQ&?@zpT~2o!PPf)S!YK-f3$TWWE)H}Drb+=ty$;KT{OE$4yaqO)`m96>;f3<$-6i%E-utP ziVrcjx3{DG@Y6=h1P`_k7O*Ij=H|)v=eK|}NVNsII`>#xcuM_)$rb~omo}DK(z-$` z2=IjsYHjYaL?{7i!jK zc99k)Ha1vE$>E>N6#K)vpgF|5_Ek*!CyS!aKP~a4JG)*5dAKgf6zNlTyfMnzNke8n98450xDI-JJFoA`vojOWMPDT5f8HS>*c zpL~#f=Zsv776z6Zh<8+khkLfPAary@g6x>6Z==s5I=P}52#&EhJx3s7UlMuyOWVNU za{0d1>hz7JhK6;)0g6dCxO5RF)=9bHQvuJD&BHeSnZJW?!X0OKkbd$Bh9goA%-{{^c`}d=u$K<}gM9S&;FWuNU&_FbfPR(c-h-BLC?x|^ME+(J$Z_XoEBiUcn zed2o;XKTN&tis;x!P!=RkQepHcTGl?pWpRk0eL?FHXQoE?b%X(Eidl}GLK}Ag};B# zzYk&KFh>S9Y+(J2gJue@ER^7RB=Vq~WmHeE*jXa;}<*1^AeRjCf^pQ?%aa zdI?yKC523$9?y<0Va`q*3~?(lUJv;%c=Np6poGj<$*FpVhKAg}jmZTC(!dpJxK_+@ zeHRV~;*zdONlME;u7~N42h-EAk!;89Em(h-IoyK_%tk#89>ckF%RD%EGKGD4aLD(^ z(h|4h64*a59>*ZLZYnYgl0IZj|4THpXo4TC<->h@Q*+5sjG=ds35FNMqEt=LicSA} zmiy)VZ+fK{dewKE2M(<+8^S_D=JhYpL4#dBH)nY6>t8<>6ZW~OQG4~ubG8bmUHTDb z7F^US`rU^^8g%+e@POUmU`f62@13D^6~MHXy=-rawN4*cGAuL!0Dc?1SPcMRp@-Ta zqPhkms=!KCm(0E28BdT3P16U#_=lqmzbHV=7gAiDc7Gg`362`f!yFj}2Q_hsiC@~; z)8b8XLdLi`KU-O!TU!s&AC+-UV*3So;8rdoKmuO=$9!$VxBubfg9)O^Gjc^{9grPn zV*{$2zP{7wW;gPdl8O4$zw&Jf*_{*9)1eU(3|-b8ET9Jx(9?%Nj)_6ACmW=zLjJTt zK^!OOv1mILkj`>)2ZTU!|K#Z8M9}Z{3aIaD_##d#kU(m%gN=@k0u(e2#5@oHN=YG# z$f3s#S1#!5?nY%3uB)j5K5on_Lqh;Zw!Wvj0vJcb>iV1<*D0Z>+V*db@)F4Rg13`eUurxfdh0xLf#;( zXUKLrQKS(VEGH+o>~k6gAV^?fCjiXA%{cbh*w}!Bg9GB??o?Tqj)JoC@b~XL+}x2d zF~)6vzUJn+CY{N>y)qye0)j+qeK9OdOe+-OwzBfzTOfG^FsU#lJ3YMxc<$-)S7ekk zK)jXs41(!E^Iu(kf`Nr~u)Es?wmLG$=Hs1$?3?TBMKE1K=7^d3*XB?<7!z;}a6BcF zkkzZKrn?>T5%nL(DU2KRJv=;gbw92Y1qUPf8F3p*NJyBNd@`x6uYZ2a>4)BBR(Z7X z`(i(LdLCooZQw(Jy_lD`_Ti(AOed=HRZzmLzl9@nRpl7_Y0>}~{ zAK&e0r2`xp0RdntD)ylOo}dm6etzRx8!Zs`u$sf+`&UY;XC&s$P#Q1&5tvngSAi2b z#|5C!2ND9Hk2tCEwG;3nIeK+l+mfT%(EmP)wN(p`2l(?x=KmjbXW5MY(n|JQr4t<; zovdsh@U=h_84^fva8?fv9863&EO^1uk0%PrcC%Gr@belQy};R$Kq@_b{Rd$=H+Sv& zbj$l5HLOKxF!2t!}fQpH=fgt36hI7|>OZM;I%^~Ka|1Zg>k>|S4ro!fNlC!da z9oK5o0S~B=q-59nx`lHI$Txw+6mb8LP*58{)PkK8Ao#<66+uO_(&+SXz2kpf_1|jgAF31fpGx767$m^CHHe(F LvQ)W*N#OqhOVuTT diff --git a/inherit_graph_4.map b/inherit_graph_4.map deleted file mode 100644 index a9817340..00000000 --- a/inherit_graph_4.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_4.md5 b/inherit_graph_4.md5 deleted file mode 100644 index 511ad50b..00000000 --- a/inherit_graph_4.md5 +++ /dev/null @@ -1 +0,0 @@ -15a72a9c14f3df617c437890d3e90a25 \ No newline at end of file diff --git a/inherit_graph_4.png b/inherit_graph_4.png deleted file mode 100644 index 9328645a0826ca9b63cc22dfef92c69cae4a529e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1415 zcmV;21$g?2P)|`Cs|N<<4Go zFMt34-vjj*iA;ATIVKNs>LkC$0=f{3VAw|IB7H>gwwJ*7!XG$M7(4 z3=adxL?jFc2M1_uY=ly&L{U*uBwG4aTwIKgA3sK||NmV?!Z0>A2D{x3Ns{pW`}at+ zJa@{<%JBB>+jx(0CJ_n4;^HDoOG}|vt0U1auIzR@YHMqu(P)sIoQ(YZd^9&VV`*tA z;Bhva4fpTgkI|IT5s@&s-ELgCa3K<{;%Z`I0=I76f+&iZnVG@X))vOc$5B>RhNn-T z#(TWzqrZIq{F(ghmQ__%MF7~Nx3`ywh;%v~J$m$r?%cUUX=!Qn>C-3nTtN^>6h(US zWh=_J~cd4ePhAJy7>G$v7KC{U6 zfA;Jd<>ch}-S&FDB#I)nwzdXcv%j^KmX^}+@UYKwdU|^3=FOX=R4S>Yq=aT?XG5;< z?Cel`dpl{hT2iakR8>_)D=RAjX9z`r^J_kH7>J14+S=&Bg9kqQbUGbfx^#)==H|%b z@%Yp{9uF-nEKqK4E}2XwpJTLIEzQr*)9&sr_4oIaMx$XT^e7BYr<1NK`Z!KYsim0A#gVgRa-#+Wdv#;>C+JIXOvgx0{ScBdJs>+Su3#sctYBNUzt^^71md z-EQjY>Y|d85;{CQ4EpyCByM5o@9z(I+{>3QsjjZh=a|94LAL$t*DnGh)YKFKpw-n?wr^x)#OJCPXl-&=hT{qg3+c_9H$m%bYik66*4Nir z?eOrBR4NsH`}R$ChEN0wLsZ{q&}y|l+ZKxj*REYdT3Q+eK|n`G2P8@Id5%V-VLzv& zqyPZ+_V(Dm_wU~$H8mA&ZEYuhUnu?Mq^G9?0M^&n*}jH`1`rXxe*GGBZT@6uXP?+U zK95}e=g*%2fXvKH2!a4X5Rj0NfbH#VtgNhrHA6U}8U{fS*v~GP3-$H&c>MS=oK7da zUN44*hT!pd!s=->8gcdNRouIG4_jMX5$j)ASO`%RLw+CQ_}b(gozx@C%ge~h$_iS) zeEBjI3I#SdH$g-`kLv2`ux1EH%-(_A+uMWJ>xEjaMp9A|Y&IK)hK9oKlbDzYlgWgl zq9RmORA6IcBjo-@qY=5exqi0=LBOk5ukh~OJ9Kw({R_ zJw1(`ogF-X{v47d!C){1t!uSf)YR0Vsi_GLhXa59{DIwWhrwXL{{H@{W(h^i!XSzw z1_lODUtbTEN`=nOPSn=co~oBZp}_F)Fz(*Hi`%zvLz1M3^w;b4n3pD&}cMx`0yc` znwp~f5WFmMbH z1INhTK$^|wSkA%4h}CM9t;vQ#?z8pWf0sbSzn_5vz`vh?JC28eV|W-ihKGS;{sH*; V8_aiIoHhUe002ovPDHLkV1n*zy8!?I diff --git a/inherit_graph_5.map b/inherit_graph_5.map deleted file mode 100644 index e4d6bee7..00000000 --- a/inherit_graph_5.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_5.md5 b/inherit_graph_5.md5 deleted file mode 100644 index 9281f18c..00000000 --- a/inherit_graph_5.md5 +++ /dev/null @@ -1 +0,0 @@ -ffe66d0f8e9de0becf26651c277e63c6 \ No newline at end of file diff --git a/inherit_graph_5.png b/inherit_graph_5.png deleted file mode 100644 index d576e856f4d357137e8e7b5e6a101e7712a5ceab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 zcmV-42Fv-0P)R?_(Y>CG7BVU^E(Ey?V9XDz<@*_&qW*VlWuAT5ZJDY!bKIT~JVfVc6cidygMKURqi@HZ~SA z)8%sAxN#$@Vmuy?*=)uzEIvNoWHNpJ{F#lXr>DPt`}VJ=%S>A@8}Zxk_wU)WC*o2z zNpElO`Sa%qf*2ee^!a=}Jv~OF@xg-!+odNbCr7PT4-XGdOib8pHj*T_OUWNFJUTi$ z1Q9X0xw+iA)z#Gu!=$FB-n)12;>C+=^*y+qZ85 z8AU}!-0m3+hH%Rir-f@Ojm2WISS% z59{@Mhr_|8;W+;F>(`~FrMkL048z#9v3^faPp7A+mz9mH z0+9m0{SQFL~8Rw8aTn@uLu`1rWr@2{w+NJ~pwTU!&fplSNpv13=R zTyZ*`fk1$-BCR%>i)zyW}eE$4-QBe_>R$pJwj_2p+0RR+5 zG5=mhM~@yQNitkVew~o?_xA$;CMG7>X=`h%-~&t`Qha@Lhmw<%o0^)!#V02x0RU4| zQ*3Z;Z4E`y(a}+H3yPwwR;ymGkByDZ$jEs2?j0Ks>9=^9{4|NC(una+gzotYTG5h!LXLp31 zUb}XUVVJ(YzHlN1BqSv8$6POQ{MWBv005m%had=oAiH+$`u+R2*XtFx(CKuIjg3El z{+yeeyL$C%VPPTrLn%PcGNqfYi^%wmAP75{nVBgrF0QGmnVz1eX}Y1IAs7t)^>mUX zPo6xPot^FT`8HN3IXRgi2z3$PtxFH8(fMzi9IE@+4ZI zC~CD@34$0J8Ug^QRR8U{#4`D5(oNSzguh=41OhZoYqi?lyLY=>u7-vNIcLSh#5f#| zl$4aLtgPADS?M|?N$T}_!5Bf17cXACe*L<#veM)6tgNie%*+f749JxI^5x5cfq{jE zg(pv*P!wf0o5RI%9M8|sFDWVUcs$F?%Wk*ZY&Nf~tOyEDO-<$H<$e74(dYB|{r;w= zCa>3PFc<&;2M-<`9UWzTl~^V}O=eR$MA&bFARa${TwGj?qNvSgD<~+Ct3#!-+wGSw zUAl1L0!2|9sADpj1_uYn#>UQ_JBOm^*|TRo9*@iAlGDAkw6waq`p}_64u_+sr-!{e zgp0Sdw469`!elaG7x%Da z;PtI6px?>@`mHRW-^wDy^IB(T=ho|hL<5SVxbKEpLio-9TW3gEHQ-p#4|E(n8 m{aaZ;zm)~_TUkKAmBl|Yec&ESg>b6?0000 - - diff --git a/inherit_graph_6.md5 b/inherit_graph_6.md5 deleted file mode 100644 index b226252b..00000000 --- a/inherit_graph_6.md5 +++ /dev/null @@ -1 +0,0 @@ -8641f94a70de4b295832301211228d2b \ No newline at end of file diff --git a/inherit_graph_6.png b/inherit_graph_6.png deleted file mode 100644 index 4f516c22fa31fc9136b2f117b62c301bf418b767..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1414 zcmV;11$p|3P)D1AZ00006VoOIv0RI60 z0RN!9r;`8x1v^PZK~!jg?U_qR8(kE~?~S285|gf`_|`^HM5nn8zJR(=_1W1i?)U_=n)V<__L#?%=)V4k3GDHk)6+etlC?ZXY>0 zIZaJX%=C}GCQ0(sr%#+qx}8`o7PHyRjtI{tnM@|G^xS4%ym)ac!r!mCgZG*{c(1u5 z7_X0ykF{EDWMpJ|divEB$mR0)@84g&&b8olIw6E^w>v;ic6Ro=ckhBI?&sO~SEi<> ztX3;UQBtWih~@t*!Swaw;$l`-*8k1ur%#_k2-zKHv)LeoVzKxJRj~=i>%G0b(9qCp zmvVJ*9PjV%XQuuA{Wy-_pq^7)+G~O!`uh6bzI_WJeD&%T06;F6x3;!Ee*8ExGVV3M3LqN=nMy+}x?k2L}hwpFb}yF7|r8=tO?& z7z~EwdU@C5B=5?%mUBwLgFUL~)11 zK@fyQB1ub2o0ynj@;x3;V`F1NLc-m|OnW3Q}CSRk`EH5vA`SN9BVFw=RsZ>l_cXu}$qn@HD3dLJmT9T5I3+ z%O#accXoDg9RK|J^UTbQNF<_Z`uq3q0D#riRg`SA*#H1Pe*Cc8?EnCm%Z1|e^YZ|J z?d@%nBmn@Mo0};9`}c2&MDp$1H=3riva$vS1_FzrXPh=>TiUeB%>piTfV3{xl+)z#HrueYeE zh>4RVDHIA56BE%C-FZloq$o-x5;4MLG8r1IuC4+AVq#(-gb>1zkdXcT{k65Vi#p+u>whz2f~ORZM7x3@bS4xi80)6;Wua`M;Z27@6ZBcrge@YksV|#bW8{>AA=%p-}kY!-w?r^e0cApvw+WC&052k(ZZ8({yul zGdp%HE*n_nx?e_nJF+uepQwnmc%}xr6tbJ9w|T!_R-2 z@$qr)b=*EEii(YmWk>vYtx~DD(sRpEDwXUh<{907*qoM6N<$g3P$l5C8xG diff --git a/inherit_graph_7.map b/inherit_graph_7.map deleted file mode 100644 index 401322fd..00000000 --- a/inherit_graph_7.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_7.md5 b/inherit_graph_7.md5 deleted file mode 100644 index bf597df1..00000000 --- a/inherit_graph_7.md5 +++ /dev/null @@ -1 +0,0 @@ -5152493082affc8be9986056998aedca \ No newline at end of file diff --git a/inherit_graph_7.png b/inherit_graph_7.png deleted file mode 100644 index f43c58a3be2305311679d6a09846e01a350efbfa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1609 zcmV-P2DbT$P)x~QxPv1UiZx)8fi z3Bq96f$B#31HqyZloZ{F{Q+~(wz`PCif+R~ipV0cZT>mO*5*(qZW3*Ky7=M2IXAO5 zt=~BxIB?$QJ@5BC@B7`^`=0F_hKL98ygp`ljnR1 zBbzT_Wb-9VTFn3P;|E$=T9B8QhqAJ=bVx2rWo0FLdwVmc|F`q)+cz)_gFqmV7QLhk zzUA=j*)t3b3_uVB5*{hzNl|0H;o!LUVI7K7RbT+G%BkKQ^CbS=_yQ7hPRl zU>F9ME?olf-~4>>;zb-hco2Dcd3gNzF<6!b!!S@N6wv8(uvjdZ|BrHIWhE|OzKoih z8mLq%Y~8vQFJ8P@^t|D47)OsD#gQXN5DJCFTvF*Mw=SXe0pQmYtnVeSLjI zM8xwv0if~maq;+QG)gL!iavb!K%=9h1c1JL`I4aPcDo4x4G#~CvBAMX0zhBCeii#R zf4p2S7Xcuj&nL!SzI>Th^D}y%uhD4Y%1);fyLRnDZf-6Zh5^TM5CkFa7`0k0?yp_D z7633iJ1fQ>Ja`~}B`@Sx^p|38&iDKMsH>~P)vH$#jYcs%JPZIRDk>5eg;`lyn4X@- z$jAsrMn;g8l?AD z^JauXA^81%G3N1jeycCZSg~LDW@l#+i^Y(ipO5V9Y`lK`8l9b;%hpjUm9W`tC@U+2 z!C(*v=U4QXv)}`Of`S5ExNrg2u3bZ6VIk`4>(ScUilLz)gu`JB3=E*5p#k5&e}_h+ z0n4&DdGaJafBuYMFo^E%ZuIr_p`@e))z#H7o6Ycgz2JEsXV0F6$z;N&O`8@yw_dNu z-o1Nq=FAyPOiaMz@t~ulW7*@CiWM_otJUJhjT>lcYJy6o!nt$jaO~Kz-_lYj6zJ~m zMomo(s;jFZ2tr!*=hNQaj&L}PhYug3r>6(owrzvSWP)0)MtgfZT3cJi+uYvXUX+)Y z!)P?3q@)CI-@b*xU;qHv?RMnm=Axpa0=swbMp01_dU|?Np4)D>V`gRsdc7Vj%c8lt z`H%Y($1)ZOGXEf}w&0WbyOGV8FtYg)MmAr<$mUBJ*?b8jn=fIKKFQ;7I94(bnGDh2 z-=DNDsrkvC^_Kbnz!1sr=Svj%{d_4Sn=fHx^CgUIzJ&P+T`JM!D|3ZB00000NkvXX Hu0mjf9$6gM diff --git a/inherit_graph_8.map b/inherit_graph_8.map deleted file mode 100644 index 0a55956c..00000000 --- a/inherit_graph_8.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/inherit_graph_8.md5 b/inherit_graph_8.md5 deleted file mode 100644 index 032070c2..00000000 --- a/inherit_graph_8.md5 +++ /dev/null @@ -1 +0,0 @@ -2af33cfced54756c0cf6af2f87e64a5e \ No newline at end of file diff --git a/inherit_graph_8.png b/inherit_graph_8.png deleted file mode 100644 index ac949b4af33a2df4fdfd8a5988144f03683f1676..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmV<21S9*2P)gb+d)8XB6MoUGI7{F`4YmCnx2`n=p1qa6-MaB#5CTYeuJjRwc@o12^3+S=;s z>f__%pRVXX{@Q4TLNPizIzB!QA?)br002lNlJ@rYoSdAnu&~9&MTJ5EA!INZ0)arQ z)snAaB@#(zXJ>A1E`lJ5iHYm$>n}1tJUo<^mKGNmJDpBqBd>W-6cvd?ug4^zp`mKE z8bWwb7Wc;mZ004k{px5hPM7*L_tLy9Q$!SVTN_2Fz$z*c5Tx8JYa_#T$i$o%wPDje( z(6tuFkg5$W^Yz6>WEEYmT^!U})6}d0D{MWBvguxDY;L!EXlTgg za(%cQMbV_Bq`bVmySuxuD zu(Gl;p-}jip3CJP9v*)F^L~M!jppxlE%iyhlhumnHjxa&tkEXlatfZ(qdy{=jP@}OT zyrpk#ZCzVi3keCK?yiI8L%=s(3~4@uHku-6qbY(mnj&bUDS|edB50#2!pko#OG``C z*Aeh|F - - diff --git a/inherit_graph_9.md5 b/inherit_graph_9.md5 deleted file mode 100644 index 24a73280..00000000 --- a/inherit_graph_9.md5 +++ /dev/null @@ -1 +0,0 @@ -054b0a0210fd205768fdc46b51c0531b \ No newline at end of file diff --git a/inherit_graph_9.png b/inherit_graph_9.png deleted file mode 100644 index ad7bc2e832065db8bc6317af65f7ba10ca8e3bcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1879 zcmV-d2dMaoP)K~#90?VMXkR9zg!*D0UzfZNt-*zAn%oZZ-0=GegUEnr|unXJ<&#@hKb#*8$ zE&Ur_1Ok^)U0pq{Z`_`}y}ccG@7|piLjr-Tk!9Ioe#hFSV>X+Sot-`5 zm^fw^xD6ug0=GegUEnsjBo-@g6F^k>Td-QQf} z>({T4BniE}y)Mync!D||?%lhGH*elRmSqG41h_&{AaFS@*|WcY{~n2niE}>a>({S` zBuS7Y2|hkPh>eYf$z+OO>#`V8`{TiD$Z$@BXpyKPynKKw39-cLC{{k)v zdw+jF=Fgw+3aP(NettekqPMpfxw*N>$;rW|PoMsppU00MBPAsTOP4Oi%aXoP=Yjs;c4y-44mj%p?Hir>LliBpDYM$D>D&GBq`oetv$ubLWn- ztt3g*YPCFh@+9qcyP_2r7sq4AjxjAQjT()H%a$$UlP6D9UY@m6aq(i^W2N!N8!PAO;5qGbbm9 zeSLi@e}#pGOioUwMx)`%l`HxD`EzA_vij`oY}Gs_CMMEuw^OUta_`=~ldgd?z78Hd z$mHZ?`uh4(uh+A_zMdr|B@7D-qrbmDb8~Y!GBPrwnwhR|XJ;ofGc&2tXsFlgdGX>! z0$@*1&!nIKS0>4?dB$NU$-KNg?%usy)fX2R$B>W^zIgG1Hk(Z~X0zG&?%g{^M@Q3S zGO21JBP03h)hk-9Ru&f*GdMU{nXu8YcXf3!At8Z#_Usv_J(>P=!fv%%dEvqZdU|@Y zv9XaPnVOo)jEoF+bab$-t&M4EY0SvTQ2Af9Xc22_YS`c3PovRDe}8{=cXvBgA0Hpj zii!%Q-O$iL0IaL4n{@u2@uk&j`S$Hw4h#%%=gytfXf({t&1GL-9~&DR84?mgv)MeO znyKc0s`Xv7W(~J(+eVAU!ltGsCL|=xov;@d7f)Ju{``4nXJ@Nw&Ye4_w7-4(MgWv$ zSs5=ZEaZ|UOK3D2r}Q;ee=5?`(^Y#{FE1}Xc<_KE+1%Vr0Bmh-Rkr{5@go7Sv$Ip> z?^pDCJ+EB3;#B?Eus?hDi~!iy*5=T&v%X48OO^4Oni@)yr2IuB$?e;>v!I|rY5z{m zSf;bSO-)S%K#Rqqj6Z$))TLqnqu1FZBO_Jq>gsB&TD1y(etwW73HkZ?kY!o5O>l6q z^4iUZ-=L+C$w6v zvTby9G=QJqCmJOxDoUjn6%_?pmYuHum7t&?06<4aheN;4>W*pwz=8z};N#;1UteEU z-`Er0>DJ6-ePvmOudlCaT&L4H{M^689}T-CNy=-B#R7xDfaAxHqpPb6cDo&AWo5A0 zY}3*-8jV=Kd^y&wTZix8zq?$2l%Sv>T)TD+&CSgyFE2+#L=tng9S1 z5fMsXYip}Yr=_I@;o;#<)q8lTmqV}DL#x$JdhOm>Uw@jJ&VP7#IILDHy1ToTzLu62 zmwKGFJE+6M!?4@!2nYy(mzNjn>+4ZgRyJ)NPft&nOeVy{#2_s#O_>~L^o>TNve%oa zJ(h(F7vk{Y!#H*76vD&9k&=>vyu3Vgb#OU1wHO!} zKuJjnWLd_REn5&36*XmjXlN)teE6UQM3N+2x^xNU<>e?SD8QF5UobQ@gocI&6crW0 zY&JWkI~&Y&eRVn=R6%kEiEW4EOe>ISqr;XtHs%~XJIfH;P3B`Lx&Dw z>(;HmrRCw_fvZ=qV(r?sNJ&Y7EXyv{|CRmw_hV>i2o)6-sH&=hpPwIMV`C8?ACIuG zFxoBUAs_JRD{Kg7sF&S;o-xF%HhCN^+%2z!J|iy;O*^=q@*MOKd=4Q*4EWlt}f{1xCLj zN%7DD!5n0g{EDXw2;2t|c7fXxD6ug0=L28e=3>H=GpWi z5V(Z8x;lqr4#V!~*&71ETxHxHRDs|hMchFZxDO)i0=GegUEnr|unXLV{{U-0nzd=> RMQ;EA002ovPDHLkV1f%7lwkk> diff --git a/inherits.html b/inherits.html deleted file mode 100644 index 298e1ca0..00000000 --- a/inherits.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - -libfranka: Class Hierarchy - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
- - - - - - - - - - - - - - - - -
- - - -
- - - -
- - - - - - - - - - - -
- - - - - - - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
- - - -
-
- - - - diff --git a/joint_impedance_control_8cpp-example.html b/joint_impedance_control_8cpp-example.html deleted file mode 100644 index e702b241..00000000 --- a/joint_impedance_control_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: joint_impedance_control.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
joint_impedance_control.cpp
-
-
-

An example showing a joint impedance type control that executes a Cartesian motion in the shape of a circle. The example illustrates how to use the internal inverse kinematics to map a Cartesian trajectory to joint space. The joint space target is tracked by an impedance control that additionally compensates coriolis terms using the libfranka model library. This example also serves to compare commanded vs. measured torques. The results are printed from a separate thread to avoid blocking print functions in the real-time loop.

-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <array>
#include <atomic>
#include <cmath>
#include <functional>
#include <iostream>
#include <iterator>
#include <mutex>
#include <thread>
#include <franka/model.h>
#include <franka/robot.h>
namespace {
template <class T, size_t N>
std::ostream& operator<<(std::ostream& ostream, const std::array<T, N>& array) {
ostream << "[";
std::copy(array.cbegin(), array.cend() - 1, std::ostream_iterator<T>(ostream, ","));
std::copy(array.cend() - 1, array.cend(), std::ostream_iterator<T>(ostream));
ostream << "]";
return ostream;
}
} // anonymous namespace
int main(int argc, char** argv) {
// Check whether the required arguments were passed.
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
return -1;
}
// Set and initialize trajectory parameters.
const double radius = 0.05;
const double vel_max = 0.25;
const double acceleration_time = 2.0;
const double run_time = 20.0;
// Set print rate for comparing commanded vs. measured torques.
const double print_rate = 10.0;
double vel_current = 0.0;
double angle = 0.0;
double time = 0.0;
// Initialize data fields for the print thread.
struct {
std::mutex mutex;
bool has_data;
std::array<double, 7> tau_d_last;
franka::RobotState robot_state;
std::array<double, 7> gravity;
} print_data{};
std::atomic_bool running{true};
// Start print thread.
std::thread print_thread([print_rate, &print_data, &running]() {
while (running) {
// Sleep to achieve the desired print rate.
std::this_thread::sleep_for(
std::chrono::milliseconds(static_cast<int>((1.0 / print_rate * 1000.0))));
// Try to lock data to avoid read write collisions.
if (print_data.mutex.try_lock()) {
if (print_data.has_data) {
std::array<double, 7> tau_error{};
double error_rms(0.0);
std::array<double, 7> tau_d_actual{};
for (size_t i = 0; i < 7; ++i) {
tau_d_actual[i] = print_data.tau_d_last[i] + print_data.gravity[i];
tau_error[i] = tau_d_actual[i] - print_data.robot_state.tau_J[i];
error_rms += std::pow(tau_error[i], 2.0) / tau_error.size();
}
error_rms = std::sqrt(error_rms);
// Print data to console
std::cout << "tau_error [Nm]: " << tau_error << std::endl
<< "tau_commanded [Nm]: " << tau_d_actual << std::endl
<< "tau_measured [Nm]: " << print_data.robot_state.tau_J << std::endl
<< "root mean square of tau_error [Nm]: " << error_rms << std::endl
<< "-----------------------" << std::endl;
print_data.has_data = false;
}
print_data.mutex.unlock();
}
}
});
try {
// Connect to robot.
franka::Robot robot(argv[1]);
// First move the robot to a suitable joint configuration
std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
MotionGenerator motion_generator(0.5, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Finished moving to initial joint configuration." << std::endl;
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set collision behavior.
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}},
{{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}});
// Load the kinematics and dynamics model.
franka::Model model = robot.loadModel();
std::array<double, 16> initial_pose;
// Define callback function to send Cartesian pose goals to get inverse kinematics solved.
auto cartesian_pose_callback = [=, &time, &vel_current, &running, &angle, &initial_pose](
const franka::RobotState& robot_state,
// Update time.
time += period.toSec();
if (time == 0.0) {
// Read the initial pose to start the motion from in the first time step.
initial_pose = robot_state.O_T_EE_c;
}
// Compute Cartesian velocity.
if (vel_current < vel_max && time < run_time) {
vel_current += period.toSec() * std::fabs(vel_max / acceleration_time);
}
if (vel_current > 0.0 && time > run_time) {
vel_current -= period.toSec() * std::fabs(vel_max / acceleration_time);
}
vel_current = std::fmax(vel_current, 0.0);
vel_current = std::fmin(vel_current, vel_max);
// Compute new angle for our circular trajectory.
angle += period.toSec() * vel_current / std::fabs(radius);
if (angle > 2 * M_PI) {
angle -= 2 * M_PI;
}
// Compute relative y and z positions of desired pose.
double delta_y = radius * (1 - std::cos(angle));
double delta_z = radius * std::sin(angle);
franka::CartesianPose pose_desired = initial_pose;
pose_desired.O_T_EE[13] += delta_y;
pose_desired.O_T_EE[14] += delta_z;
// Send desired pose.
if (time >= run_time + acceleration_time) {
running = false;
return franka::MotionFinished(pose_desired);
}
return pose_desired;
};
// Set gains for the joint impedance control.
// Stiffness
const std::array<double, 7> k_gains = {{600.0, 600.0, 600.0, 600.0, 250.0, 150.0, 50.0}};
// Damping
const std::array<double, 7> d_gains = {{50.0, 50.0, 50.0, 50.0, 30.0, 25.0, 15.0}};
// Define callback for the joint torque control loop.
std::function<franka::Torques(const franka::RobotState&, franka::Duration)>
impedance_control_callback =
[&print_data, &model, k_gains, d_gains](
const franka::RobotState& state, franka::Duration /*period*/) -> franka::Torques {
// Read current coriolis terms from model.
std::array<double, 7> coriolis = model.coriolis(state);
// Compute torque command from joint impedance control law.
// Note: The answer to our Cartesian pose inverse kinematics is always in state.q_d with one
// time step delay.
std::array<double, 7> tau_d_calculated;
for (size_t i = 0; i < 7; i++) {
tau_d_calculated[i] =
k_gains[i] * (state.q_d[i] - state.q[i]) - d_gains[i] * state.dq[i] + coriolis[i];
}
// The following line is only necessary for printing the rate limited torque. As we activated
// rate limiting for the control loop (activated by default), the torque would anyway be
// adjusted!
std::array<double, 7> tau_d_rate_limited =
franka::limitRate(franka::kMaxTorqueRate, tau_d_calculated, state.tau_J_d);
// Update data to print.
if (print_data.mutex.try_lock()) {
print_data.has_data = true;
print_data.robot_state = state;
print_data.tau_d_last = tau_d_rate_limited;
print_data.gravity = model.gravity(state);
print_data.mutex.unlock();
}
// Send torque command.
return tau_d_rate_limited;
};
// Start real-time control loop.
robot.control(impedance_control_callback, cartesian_pose_callback);
} catch (const franka::Exception& ex) {
running = false;
std::cerr << ex.what() << std::endl;
}
if (print_thread.joinable()) {
print_thread.join();
}
return 0;
}
- - - - diff --git a/joint_point_to_point_motion_8cpp-example.html b/joint_point_to_point_motion_8cpp-example.html deleted file mode 100644 index 44083bda..00000000 --- a/joint_point_to_point_motion_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: joint_point_to_point_motion.cpp - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
joint_point_to_point_motion.cpp
-
-
-

An example that moves the robot to a target position by commanding joint positions.

Warning
Before executing this example, make sure there is enough space in front of the robot.
-
// Copyright (c) 2017 Franka Emika GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#include <cmath>
#include <iostream>
#include <franka/robot.h>
int main(int argc, char** argv) {
if (argc != 10) {
std::cerr << "Usage: " << argv[0] << " <robot-hostname> "
<< "<joint0> <joint1> <joint2> <joint3> <joint4> <joint5> <joint6> "
<< "<speed-factor>" << std::endl
<< "joint0 to joint6 are joint angles in [rad]." << std::endl
<< "speed-factor must be between zero and one." << std::endl;
return -1;
}
try {
franka::Robot robot(argv[1]);
std::array<double, 7> q_goal;
for (size_t i = 0; i < 7; i++) {
q_goal[i] = std::stod(argv[i + 2]);
}
double speed_factor = std::stod(argv[9]);
// Set additional parameters always before the control loop, NEVER in the control loop!
// Set collision behavior.
{{20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0}}, {{20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0}},
{{10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0}}, {{10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0}},
{{20.0, 20.0, 20.0, 20.0, 20.0, 20.0}}, {{20.0, 20.0, 20.0, 20.0, 20.0, 20.0}},
{{10.0, 10.0, 10.0, 10.0, 10.0, 10.0}}, {{10.0, 10.0, 10.0, 10.0, 10.0, 10.0}});
MotionGenerator motion_generator(speed_factor, q_goal);
std::cout << "WARNING: This example will move the robot! "
<< "Please make sure to have the user stop button at hand!" << std::endl
<< "Press Enter to continue..." << std::endl;
std::cin.ignore();
robot.control(motion_generator);
std::cout << "Motion finished" << std::endl;
} catch (const franka::Exception& e) {
std::cout << e.what() << std::endl;
return -1;
}
return 0;
}
- - - - diff --git a/jquery.js b/jquery.js index f5343eda..103c32d7 100644 --- a/jquery.js +++ b/jquery.js @@ -1,71 +1,26 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];4>e;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element +},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! - * jQuery UI 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! - * jQuery UI Widget 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! - * jQuery UI Mouse 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' - - - - -
- -
-
log.h File Reference
-
-
- -

Contains helper types for logging sent commands and received robot states. -More...

-
#include <vector>
-#include <franka/control_types.h>
-#include <franka/robot_state.h>
-
-Include dependency graph for log.h:
-
-
- - - - - - -
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - -
-
-

Go to the source code of this file.

-
- - - - - - - -

-Classes

struct  franka::RobotCommand
 Command sent to the robot. More...
 
struct  franka::Record
 One row of the log contains a robot command of timestamp n and a corresponding robot state of timestamp n+1. More...
 
- - - - -

-Functions

std::string franka::logToCSV (const std::vector< Record > &log)
 Writes the log to a string in CSV format. More...
 
-

Detailed Description

-

Contains helper types for logging sent commands and received robot states.

-

Function Documentation

- -

◆ logToCSV()

- -
-
- - - - - - - - -
std::string franka::logToCSV (const std::vector< Record > & log)
-
- -

Writes the log to a string in CSV format.

-

If the string is not empty, the first row contains the header with names of columns. The following lines contain rows of values separated by commas.

-

If the log is empty, the function returns an empty string.

-
Parameters
- - -
[in]logLog provided by the ControlException.
-
-
-
Returns
a string in CSV format, or empty string.
-
Examples:
motion_with_control.cpp.
-
-
-
-
- - - - diff --git a/log_8h__dep__incl.map b/log_8h__dep__incl.map deleted file mode 100644 index 3bd2aaa0..00000000 --- a/log_8h__dep__incl.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/log_8h__dep__incl.md5 b/log_8h__dep__incl.md5 deleted file mode 100644 index 3888ad9e..00000000 --- a/log_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -808cca58145b1cbc35f83f8fd67e92c8 \ No newline at end of file diff --git a/log_8h__dep__incl.png b/log_8h__dep__incl.png deleted file mode 100644 index f4950236c8c9ab3491f76aec133c542c9e127503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4276 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 e;s228<;W9H@%L - - - - - diff --git a/log_8h__incl.md5 b/log_8h__incl.md5 deleted file mode 100644 index bf53e3b2..00000000 --- a/log_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -898109ff4321d43ea686fa62274951a0 \ No newline at end of file diff --git a/log_8h__incl.png b/log_8h__incl.png deleted file mode 100644 index dde32f908ed4e63228c7e916f6b59f3f94c551c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28006 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 - - - - - - -libfranka: include/franka/log.h Source File - - - - - - - - - - - -
-
-
log.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2017 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <vector>
6 
7 #include <franka/control_types.h>
8 #include <franka/robot_state.h>
9 
15 namespace franka {
16 
20 struct RobotCommand {
24  JointPositions joint_positions{0, 0, 0, 0, 0, 0, 0};
28  JointVelocities joint_velocities{0, 0, 0, 0, 0, 0, 0};
32  CartesianPose cartesian_pose{1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1};
40  Torques torques{0, 0, 0, 0, 0, 0, 0};
41 };
42 
48 struct Record {
57 };
58 
69 std::string logToCSV(const std::vector<Record>& log);
70 } // namespace franka
Stores values for joint velocity motion generation.
Definition: control_types.h:99
-
CartesianVelocities cartesian_velocities
sent to the robot.
Definition: log.h:36
-
Stores values for Cartesian velocity motion generation.
Definition: control_types.h:201
-
JointPositions joint_positions
sent to the robot.
Definition: log.h:24
-
Contains helper types for returning motion generation and joint-level torque commands.
-
Stores joint-level torque commands without gravity and friction.
Definition: control_types.h:45
-
std::string logToCSV(const std::vector< Record > &log)
Writes the log to a string in CSV format.
-
Torques torques
sent to the robot.
Definition: log.h:40
-
RobotState state
Robot state of timestamp n+1.
Definition: log.h:52
-
RobotCommand command
Robot command of timestamp n, after rate limiting (if activated).
Definition: log.h:56
-
Stores values for Cartesian pose motion generation.
Definition: control_types.h:127
-
Definition: command_types.h:13
-
Contains the franka::RobotState types.
-
Command sent to the robot.
Definition: log.h:20
-
Stores values for joint position motion generation.
Definition: control_types.h:72
-
Describes the robot state.
Definition: robot_state.h:35
-
One row of the log contains a robot command of timestamp n and a corresponding robot state of timesta...
Definition: log.h:48
-
JointVelocities joint_velocities
sent to the robot.
Definition: log.h:28
-
CartesianPose cartesian_pose
sent to the robot.
Definition: log.h:32
-
- - - - diff --git a/lowpass__filter_8h.html b/lowpass__filter_8h.html deleted file mode 100644 index ae851bd4..00000000 --- a/lowpass__filter_8h.html +++ /dev/null @@ -1,257 +0,0 @@ - - - - - - - -libfranka: include/franka/lowpass_filter.h File Reference - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
lowpass_filter.h File Reference
-
-
- -

Contains functions for filtering signals with a low-pass filter. -More...

-
#include <array>
-#include <cmath>
-
-Include dependency graph for lowpass_filter.h:
-
-
-
-
-This graph shows which files directly or indirectly include this file:
-
-
- - - - - -
-
-

Go to the source code of this file.

- - - - - - - - -

-Functions

double franka::lowpassFilter (double sample_time, double y, double y_last, double cutoff_frequency)
 Applies a first-order low-pass filter. More...
 
std::array< double, 16 > franka::cartesianLowpassFilter (double sample_time, std::array< double, 16 > y, std::array< double, 16 > y_last, double cutoff_frequency)
 Applies a first-order low-pass filter to the translation and spherical linear interpolation to the rotation of a transformation matrix which represents a Cartesian Motion. More...
 
- - - - - - - -

-Variables

-constexpr double franka::kMaxCutoffFrequency = 1000.0
 Maximum cutoff frequency.
 
-constexpr double franka::kDefaultCutoffFrequency = 100.0
 Default cutoff frequency.
 
-

Detailed Description

-

Contains functions for filtering signals with a low-pass filter.

-

Function Documentation

- -

◆ cartesianLowpassFilter()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
std::array<double, 16> franka::cartesianLowpassFilter (double sample_time,
std::array< double, 16 > y,
std::array< double, 16 > y_last,
double cutoff_frequency 
)
-
- -

Applies a first-order low-pass filter to the translation and spherical linear interpolation to the rotation of a transformation matrix which represents a Cartesian Motion.

-
Parameters
- - - - - -
[in]sample_timeSample time constant
[in]yCurrent Cartesian transformation matrix to be filtered
[in]y_lastCartesian transformation matrix from the previous time step
[in]cutoff_frequencyCutoff frequency of the low-pass filter
-
-
-
Exceptions
- - - - - -
std::invalid_argumentif elements of y is infinite or NaN.
std::invalid_argumentif elements of y_last is infinite or NaN.
std::invalid_argumentif cutoff_frequency is zero, negative, infinite or NaN.
std::invalid_argumentif sample_time is negative, infinite or NaN.
-
-
-
Returns
Filtered Cartesian transformation matrix.
- -
-
- -

◆ lowpassFilter()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
double franka::lowpassFilter (double sample_time,
double y,
double y_last,
double cutoff_frequency 
)
-
- -

Applies a first-order low-pass filter.

-
Parameters
- - - - - -
[in]sample_timeSample time constant
[in]yCurrent value of the signal to be filtered
[in]y_lastValue of the signal to be filtered in the previous time step
[in]cutoff_frequencyCutoff frequency of the low-pass filter
-
-
-
Exceptions
- - - - - -
std::invalid_argumentif y is infinite or NaN.
std::invalid_argumentif y_last is infinite or NaN.
std::invalid_argumentif cutoff_frequency is zero, negative, infinite or NaN.
std::invalid_argumentif sample_time is negative, infinite or NaN.
-
-
-
Returns
Filtered value.
- -
-
-
- - - - diff --git a/lowpass__filter_8h__dep__incl.map b/lowpass__filter_8h__dep__incl.map deleted file mode 100644 index 3226363c..00000000 --- a/lowpass__filter_8h__dep__incl.map +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/lowpass__filter_8h__dep__incl.md5 b/lowpass__filter_8h__dep__incl.md5 deleted file mode 100644 index ec630bda..00000000 --- a/lowpass__filter_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -05bb06ffd9c89ef6a71e9f315573fb35 \ No newline at end of file diff --git a/lowpass__filter_8h__dep__incl.png b/lowpass__filter_8h__dep__incl.png deleted file mode 100644 index c66df6fc9ee849be08a24823bfbd593c28c54bdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9413 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 Id8-%y29-QJVE_OC diff --git a/lowpass__filter_8h__incl.map b/lowpass__filter_8h__incl.map deleted file mode 100644 index 76d08169..00000000 --- a/lowpass__filter_8h__incl.map +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/lowpass__filter_8h__incl.md5 b/lowpass__filter_8h__incl.md5 deleted file mode 100644 index 50fe20d7..00000000 --- a/lowpass__filter_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -070592ff0e7f1e4c0cf3a98cac170d7a \ No newline at end of file diff --git a/lowpass__filter_8h__incl.png b/lowpass__filter_8h__incl.png deleted file mode 100644 index 1dd03e77a770458318d65bb4b96daab9b0af374a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5955 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 - - - - - - -libfranka: include/franka/lowpass_filter.h Source File - - - - - - - - - - -
-
- - - - - - - -
-
libfranka -  0.8.0 -
-
FCI C++ API
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
lowpass_filter.h
-
-
-Go to the documentation of this file.
1 // Copyright (c) 2018 Franka Emika GmbH
2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
3 #pragma once
4 
5 #include <array>
6 #include <cmath>
7 
13 namespace franka {
17 constexpr double kMaxCutoffFrequency = 1000.0;
21 constexpr double kDefaultCutoffFrequency = 100.0;
37 double lowpassFilter(double sample_time, double y, double y_last, double cutoff_frequency);
38 
56 std::array<double, 16> cartesianLowpassFilter(double sample_time,
57  std::array<double, 16> y,
58  std::array<double, 16> y_last,
59  double cutoff_frequency);
60 } // namespace franka
constexpr double kMaxCutoffFrequency
Maximum cutoff frequency.
Definition: lowpass_filter.h:17
-
constexpr double kDefaultCutoffFrequency
Default cutoff frequency.
Definition: lowpass_filter.h:21
-
Definition: command_types.h:13
-
double lowpassFilter(double sample_time, double y, double y_last, double cutoff_frequency)
Applies a first-order low-pass filter.
-
std::array< double, 16 > cartesianLowpassFilter(double sample_time, std::array< double, 16 > y, std::array< double, 16 > y_last, double cutoff_frequency)
Applies a first-order low-pass filter to the translation and spherical linear interpolation to the ro...
-
- - - - diff --git a/menu.js b/menu.js index 97db4c23..2fe2214f 100644 --- a/menu.js +++ b/menu.js @@ -1,3 +1,27 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { function makeTree(data,relPath) { var result=''; @@ -17,10 +41,11 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); if (searchEnabled) { if (serverSide) { - $('#main-menu').append('
  • '); + $('#main-menu').append('
  • '); } else { - $('#main-menu').append('
  • '); + $('#main-menu').append('
  • '); } } $('#main-menu').smartmenus(); } +/* @license-end */ diff --git a/menudata.js b/menudata.js index ca835ff5..d1ece132 100644 --- a/menudata.js +++ b/menudata.js @@ -1,81 +1,26 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ var menudata={children:[ -{text:"Main Page",url:"index.html"}, -{text:"Related Pages",url:"pages.html"}, -{text:"Classes",url:"annotated.html",children:[ -{text:"Class List",url:"annotated.html"}, -{text:"Class Index",url:"classes.html"}, -{text:"Class Hierarchy",url:"inherits.html"}, -{text:"Class Members",url:"functions.html",children:[ -{text:"All",url:"functions.html",children:[ -{text:"a",url:"functions.html#index_a"}, -{text:"b",url:"functions_b.html#index_b"}, -{text:"c",url:"functions_c.html#index_c"}, -{text:"d",url:"functions_d.html#index_d"}, -{text:"e",url:"functions_e.html#index_e"}, -{text:"f",url:"functions_f.html#index_f"}, -{text:"g",url:"functions_g.html#index_g"}, -{text:"h",url:"functions_h.html#index_h"}, -{text:"i",url:"functions_i.html#index_i"}, -{text:"j",url:"functions_j.html#index_j"}, -{text:"k",url:"functions_k.html#index_k"}, -{text:"l",url:"functions_l.html#index_l"}, -{text:"m",url:"functions_m.html#index_m"}, -{text:"n",url:"functions_n.html#index_n"}, -{text:"o",url:"functions_o.html#index_o"}, -{text:"p",url:"functions_p.html#index_p"}, -{text:"q",url:"functions_q.html#index_q"}, -{text:"r",url:"functions_r.html#index_r"}, -{text:"s",url:"functions_s.html#index_s"}, -{text:"t",url:"functions_t.html#index_t"}, -{text:"v",url:"functions_v.html#index_v"}, -{text:"w",url:"functions_w.html#index_w"}, -{text:"z",url:"functions_z.html#index_z"}, -{text:"~",url:"functions_0x7e.html#index_0x7e"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"b",url:"functions_func.html#index_b"}, -{text:"c",url:"functions_func.html#index_c"}, -{text:"d",url:"functions_func.html#index_d"}, -{text:"e",url:"functions_func.html#index_e"}, -{text:"g",url:"functions_func.html#index_g"}, -{text:"h",url:"functions_func.html#index_h"}, -{text:"i",url:"functions_func.html#index_i"}, -{text:"j",url:"functions_func.html#index_j"}, -{text:"l",url:"functions_func.html#index_l"}, -{text:"m",url:"functions_func.html#index_m"}, -{text:"o",url:"functions_func.html#index_o"}, -{text:"p",url:"functions_func.html#index_p"}, -{text:"r",url:"functions_func.html#index_r"}, -{text:"s",url:"functions_func.html#index_s"}, -{text:"t",url:"functions_func.html#index_t"}, -{text:"v",url:"functions_func.html#index_v"}, -{text:"z",url:"functions_func.html#index_z"}, -{text:"~",url:"functions_func.html#index_0x7e"}]}, -{text:"Variables",url:"functions_vars.html",children:[ -{text:"a",url:"functions_vars.html#index_a"}, -{text:"c",url:"functions_vars.html#index_c"}, -{text:"d",url:"functions_vars.html#index_d"}, -{text:"e",url:"functions_vars.html#index_e"}, -{text:"f",url:"functions_vars.html#index_f"}, -{text:"i",url:"functions_vars.html#index_i"}, -{text:"j",url:"functions_vars.html#index_j"}, -{text:"k",url:"functions_vars.html#index_k"}, -{text:"l",url:"functions_vars.html#index_l"}, -{text:"m",url:"functions_vars.html#index_m"}, -{text:"n",url:"functions_vars.html#index_n"}, -{text:"o",url:"functions_vars.html#index_o"}, -{text:"p",url:"functions_vars.html#index_p"}, -{text:"q",url:"functions_vars.html#index_q"}, -{text:"r",url:"functions_vars.html#index_r"}, -{text:"s",url:"functions_vars.html#index_s"}, -{text:"t",url:"functions_vars.html#index_t"}, -{text:"v",url:"functions_vars.html#index_v"}, -{text:"w",url:"functions_vars.html#index_w"}]}, -{text:"Typedefs",url:"functions_type.html"}, -{text:"Enumerations",url:"functions_enum.html"}]}]}, -{text:"Files",url:"files.html",children:[ -{text:"File List",url:"files.html"}, -{text:"File Members",url:"globals.html",children:[ -{text:"All",url:"globals.html"}, -{text:"Functions",url:"globals_func.html"}]}]}, -{text:"Examples",url:"examples.html"}]} +{text:"Main Page",url:"index.html"}]} diff --git a/model_8h.html b/model_8h.html deleted file mode 100644 index b14d31e7..00000000 --- a/model_8h.html +++ /dev/null @@ -1,195 +0,0 @@ - - - - - - - -libfranka: include/franka/model.h File Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    model.h File Reference
    -
    -
    - -

    Contains model library types. -More...

    -
    #include <array>
    -#include <memory>
    -#include <franka/robot.h>
    -#include <franka/robot_state.h>
    -
    -Include dependency graph for model.h:
    -
    -
    - - - - - - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - -

    -Classes

    class  franka::Model
     Calculates poses of joints and dynamic properties of the robot. More...
     
    - - - - -

    -Enumerations

    enum  franka::Frame {
    -  kJoint1, -kJoint2, -kJoint3, -kJoint4, -
    -  kJoint5, -kJoint6, -kJoint7, -kFlange, -
    -  kEndEffector, -kStiffness -
    - }
     Enumerates the seven joints, the flange, and the end effector of a robot.
     
    - - - - -

    -Functions

    Frame franka::operator++ (Frame &frame, int) noexcept
     Post-increments the given Frame by one. More...
     
    -

    Detailed Description

    -

    Contains model library types.

    -

    Function Documentation

    - -

    ◆ operator++()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    Frame franka::operator++ (Frameframe,
    int  
    )
    -
    -noexcept
    -
    - -

    Post-increments the given Frame by one.

    -

    For example, Frame::kJoint2++ results in Frame::kJoint3.

    -
    Parameters
    - - -
    [in]frameFrame to increment.
    -
    -
    -
    Returns
    Original Frame.
    - -
    -
    -
    - - - - diff --git a/model_8h__incl.map b/model_8h__incl.map deleted file mode 100644 index fdc54499..00000000 --- a/model_8h__incl.map +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/model_8h__incl.md5 b/model_8h__incl.md5 deleted file mode 100644 index f2cbe7e5..00000000 --- a/model_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -cb9d3bba4a811f594e32eb5cf6ae0f63 \ No newline at end of file diff --git a/model_8h__incl.png b/model_8h__incl.png deleted file mode 100644 index ab634681df98dcaf8b00c43bcb716303e020a341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73832 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

    @k$<*4W*xaEM+y8Py4!G=O%*iA^zjreCi{Yvo! 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 - - - - - - -libfranka: include/franka/model.h Source File - - - - - - - - - - -

    -
    -
    -
    model.h
    -
    -
    -Go to the documentation of this file.
    1 // Copyright (c) 2017 Franka Emika GmbH
    2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    3 #pragma once
    4 
    5 #include <array>
    6 #include <memory>
    7 
    8 #include <franka/robot.h>
    9 #include <franka/robot_state.h>
    10 
    16 namespace franka {
    17 
    21 enum class Frame {
    22  kJoint1,
    23  kJoint2,
    24  kJoint3,
    25  kJoint4,
    26  kJoint5,
    27  kJoint6,
    28  kJoint7,
    29  kFlange,
    30  kEndEffector,
    31  kStiffness
    32 };
    33 
    43 Frame operator++(Frame& frame, int /* dummy */) noexcept;
    44 
    45 class ModelLibrary;
    46 class Network;
    47 
    51 class Model {
    52  public:
    64  explicit Model(franka::Network& network);
    65 
    71  Model(Model&& model) noexcept;
    72 
    80  Model& operator=(Model&& model) noexcept;
    81 
    85  ~Model() noexcept;
    86 
    97  std::array<double, 16> pose(Frame frame, const franka::RobotState& robot_state) const;
    98 
    111  std::array<double, 16> pose(
    112  Frame frame,
    113  const std::array<double, 7>& q,
    114  const std::array<double, 16>& F_T_EE, // NOLINT(readability-identifier-naming)
    115  const std::array<double, 16>& EE_T_K) // NOLINT(readability-identifier-naming)
    116  const;
    117 
    128  std::array<double, 42> bodyJacobian(Frame frame, const franka::RobotState& robot_state) const;
    129 
    142  std::array<double, 42> bodyJacobian(
    143  Frame frame,
    144  const std::array<double, 7>& q,
    145  const std::array<double, 16>& F_T_EE, // NOLINT(readability-identifier-naming)
    146  const std::array<double, 16>& EE_T_K) // NOLINT(readability-identifier-naming)
    147  const;
    148 
    159  std::array<double, 42> zeroJacobian(Frame frame, const franka::RobotState& robot_state) const;
    160 
    173  std::array<double, 42> zeroJacobian(
    174  Frame frame,
    175  const std::array<double, 7>& q,
    176  const std::array<double, 16>& F_T_EE, // NOLINT(readability-identifier-naming)
    177  const std::array<double, 16>& EE_T_K) // NOLINT(readability-identifier-naming)
    178  const;
    179 
    187  std::array<double, 49> mass(const franka::RobotState& robot_state) const noexcept;
    188 
    202  std::array<double, 49> mass(
    203  const std::array<double, 7>& q,
    204  const std::array<double, 9>& I_total, // NOLINT(readability-identifier-naming)
    205  double m_total,
    206  const std::array<double, 3>& F_x_Ctotal) // NOLINT(readability-identifier-naming)
    207  const noexcept;
    208 
    217  std::array<double, 7> coriolis(const franka::RobotState& robot_state) const noexcept;
    218 
    234  std::array<double, 7> coriolis(
    235  const std::array<double, 7>& q,
    236  const std::array<double, 7>& dq,
    237  const std::array<double, 9>& I_total, // NOLINT(readability-identifier-naming)
    238  double m_total,
    239  const std::array<double, 3>& F_x_Ctotal) // NOLINT(readability-identifier-naming)
    240  const noexcept;
    241 
    255  std::array<double, 7> gravity(
    256  const std::array<double, 7>& q,
    257  double m_total,
    258  const std::array<double, 3>& F_x_Ctotal, // NOLINT(readability-identifier-naming)
    259  const std::array<double, 3>& gravity_earth = {{0., 0., -9.81}}) const noexcept;
    260 
    270  std::array<double, 7> gravity(const franka::RobotState& robot_state,
    271  const std::array<double, 3>& gravity_earth = {
    272  {0., 0., -9.81}}) const noexcept;
    273 
    275  Model(const Model&) = delete;
    276  Model& operator=(const Model&) = delete;
    278 
    279  private:
    280  std::unique_ptr<ModelLibrary> library_;
    281 };
    282 
    283 } // namespace franka
    Frame
    Enumerates the seven joints, the flange, and the end effector of a robot.
    Definition: model.h:21
    -
    Frame operator++(Frame &frame, int) noexcept
    Post-increments the given Frame by one.
    -
    Contains the franka::Robot type.
    -
    Definition: command_types.h:13
    -
    Contains the franka::RobotState types.
    -
    Calculates poses of joints and dynamic properties of the robot.
    Definition: model.h:51
    -
    Describes the robot state.
    Definition: robot_state.h:35
    -
    - - - - diff --git a/motion_with_control_8cpp-example.html b/motion_with_control_8cpp-example.html deleted file mode 100644 index f7f50629..00000000 --- a/motion_with_control_8cpp-example.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -libfranka: motion_with_control.cpp - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    motion_with_control.cpp
    -
    -
    -

    An example showing how to use a joint velocity motion generator and torque control.Additionally, this example shows how to capture and write logs in case an exception is thrown during a motion.

    -
    Warning
    Before executing this example, make sure there is enough space in front of the robot.
    -
    // Copyright (c) 2017 Franka Emika GmbH
    // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    #include <cmath>
    #include <fstream>
    #include <iomanip>
    #include <iostream>
    #include <vector>
    #include <Poco/DateTimeFormatter.h>
    #include <Poco/File.h>
    #include <Poco/Path.h>
    #include <franka/robot.h>
    namespace {
    class Controller {
    public:
    Controller(size_t dq_filter_size,
    const std::array<double, 7>& K_P, // NOLINT(readability-identifier-naming)
    const std::array<double, 7>& K_D) // NOLINT(readability-identifier-naming)
    : dq_current_filter_position_(0), dq_filter_size_(dq_filter_size), K_P_(K_P), K_D_(K_D) {
    std::fill(dq_d_.begin(), dq_d_.end(), 0);
    dq_buffer_ = std::make_unique<double[]>(dq_filter_size_ * 7);
    std::fill(&dq_buffer_.get()[0], &dq_buffer_.get()[dq_filter_size_ * 7], 0);
    }
    inline franka::Torques step(const franka::RobotState& state) {
    updateDQFilter(state);
    std::array<double, 7> tau_J_d; // NOLINT(readability-identifier-naming)
    for (size_t i = 0; i < 7; i++) {
    tau_J_d[i] = K_P_[i] * (state.q_d[i] - state.q[i]) + K_D_[i] * (dq_d_[i] - getDQFiltered(i));
    }
    return tau_J_d;
    }
    void updateDQFilter(const franka::RobotState& state) {
    for (size_t i = 0; i < 7; i++) {
    dq_buffer_.get()[dq_current_filter_position_ * 7 + i] = state.dq[i];
    }
    dq_current_filter_position_ = (dq_current_filter_position_ + 1) % dq_filter_size_;
    }
    double getDQFiltered(size_t index) const {
    double value = 0;
    for (size_t i = index; i < 7 * dq_filter_size_; i += 7) {
    value += dq_buffer_.get()[i];
    }
    return value / dq_filter_size_;
    }
    private:
    size_t dq_current_filter_position_;
    size_t dq_filter_size_;
    const std::array<double, 7> K_P_; // NOLINT(readability-identifier-naming)
    const std::array<double, 7> K_D_; // NOLINT(readability-identifier-naming)
    std::array<double, 7> dq_d_;
    std::unique_ptr<double[]> dq_buffer_;
    };
    std::vector<double> generateTrajectory(double a_max) {
    // Generating a motion with smooth velocity and acceleration.
    // Squared sine is used for the acceleration/deceleration phase.
    std::vector<double> trajectory;
    constexpr double kTimeStep = 0.001; // [s]
    constexpr double kAccelerationTime = 1; // time spend accelerating and decelerating [s]
    constexpr double kConstantVelocityTime = 1; // time spend with constant speed [s]
    // obtained during the speed up
    // and slow down [rad/s^2]
    double a = 0; // [rad/s^2]
    double v = 0; // [rad/s]
    double t = 0; // [s]
    while (t < (2 * kAccelerationTime + kConstantVelocityTime)) {
    if (t <= kAccelerationTime) {
    a = pow(sin(t * M_PI / kAccelerationTime), 2) * a_max;
    } else if (t <= (kAccelerationTime + kConstantVelocityTime)) {
    a = 0;
    } else {
    const double deceleration_time =
    (kAccelerationTime + kConstantVelocityTime) - t; // time spent in the deceleration phase
    a = -pow(sin(deceleration_time * M_PI / kAccelerationTime), 2) * a_max;
    }
    v += a * kTimeStep;
    t += kTimeStep;
    trajectory.push_back(v);
    }
    return trajectory;
    }
    } // anonymous namespace
    void writeLogToFile(const std::vector<franka::Record>& log);
    int main(int argc, char** argv) {
    if (argc != 2) {
    std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
    return -1;
    }
    // Parameters
    const size_t joint_number{3};
    const size_t filter_size{5};
    // NOLINTNEXTLINE(readability-identifier-naming)
    const std::array<double, 7> K_P{{200.0, 200.0, 200.0, 200.0, 200.0, 200.0, 200.0}};
    // NOLINTNEXTLINE(readability-identifier-naming)
    const std::array<double, 7> K_D{{10.0, 10.0, 10.0, 10.0, 10.0, 10.0, 10.0}};
    const double max_acceleration{1.0};
    Controller controller(filter_size, K_P, K_D);
    try {
    franka::Robot robot(argv[1]);
    // First move the robot to a suitable joint configuration
    std::array<double, 7> q_goal = {{0, -M_PI_4, 0, -3 * M_PI_4, 0, M_PI_2, M_PI_4}};
    MotionGenerator motion_generator(0.5, q_goal);
    std::cout << "WARNING: This example will move the robot! "
    << "Please make sure to have the user stop button at hand!" << std::endl
    << "Press Enter to continue..." << std::endl;
    std::cin.ignore();
    robot.control(motion_generator);
    std::cout << "Finished moving to initial joint configuration." << std::endl;
    // Set additional parameters always before the control loop, NEVER in the control loop!
    // Set collision behavior.
    {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
    {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}}, {{20.0, 20.0, 18.0, 18.0, 16.0, 14.0, 12.0}},
    {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}},
    {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}}, {{20.0, 20.0, 20.0, 25.0, 25.0, 25.0}});
    size_t index = 0;
    std::vector<double> trajectory = generateTrajectory(max_acceleration);
    robot.control(
    [&](const franka::RobotState& robot_state, franka::Duration) -> franka::Torques {
    return controller.step(robot_state);
    },
    index += period.toMSec();
    if (index >= trajectory.size()) {
    index = trajectory.size() - 1;
    }
    franka::JointVelocities velocities{{0, 0, 0, 0, 0, 0, 0}};
    velocities.dq[joint_number] = trajectory[index];
    if (index >= trajectory.size() - 1) {
    return franka::MotionFinished(velocities);
    }
    return velocities;
    });
    } catch (const franka::ControlException& e) {
    std::cout << e.what() << std::endl;
    writeLogToFile(e.log);
    return -1;
    } catch (const franka::Exception& e) {
    std::cout << e.what() << std::endl;
    return -1;
    }
    return 0;
    }
    void writeLogToFile(const std::vector<franka::Record>& log) {
    if (log.empty()) {
    return;
    }
    try {
    Poco::Path temp_dir_path(Poco::Path::temp());
    temp_dir_path.pushDirectory("libfranka-logs");
    Poco::File temp_dir(temp_dir_path);
    temp_dir.createDirectories();
    std::string now_string =
    Poco::DateTimeFormatter::format(Poco::Timestamp{}, "%Y-%m-%d-%h-%m-%S-%i");
    std::string filename = std::string{"log-" + now_string + ".csv"};
    Poco::File log_file(Poco::Path(temp_dir_path, filename));
    if (!log_file.createFile()) {
    std::cout << "Failed to write log file." << std::endl;
    return;
    }
    std::ofstream log_stream(log_file.path().c_str());
    log_stream << franka::logToCSV(log);
    std::cout << "Log file written to: " << log_file.path() << std::endl;
    } catch (...) {
    std::cout << "Failed to write log file." << std::endl;
    }
    }
    - - - - diff --git a/pages.html b/pages.html deleted file mode 100644 index 2af7be31..00000000 --- a/pages.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -libfranka: Related Pages - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    Related Pages
    -
    -
    -
    Here is a list of all related documentation pages:
    - - -
     Deprecated List
    -
    -
    - - - - diff --git a/print_joint_poses_8cpp-example.html b/print_joint_poses_8cpp-example.html deleted file mode 100644 index 6780d2df..00000000 --- a/print_joint_poses_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: print_joint_poses.cpp - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    print_joint_poses.cpp
    -
    -
    -

    An example showing how to use the model library that prints the transformation matrix of each joint with respect to the base frame.

    -
    // Copyright (c) 2017 Franka Emika GmbH
    // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    #include <iostream>
    #include <iterator>
    #include <franka/model.h>
    template <class T, size_t N>
    std::ostream& operator<<(std::ostream& ostream, const std::array<T, N>& array) {
    ostream << "[";
    std::copy(array.cbegin(), array.cend() - 1, std::ostream_iterator<T>(ostream, ","));
    std::copy(array.cend() - 1, array.cend(), std::ostream_iterator<T>(ostream));
    ostream << "]";
    return ostream;
    }
    int main(int argc, char** argv) {
    if (argc != 2) {
    std::cerr << "Usage: " << argv[0] << " <robot-hostname>" << std::endl;
    return -1;
    }
    try {
    franka::Robot robot(argv[1]);
    franka::RobotState state = robot.readOnce();
    franka::Model model(robot.loadModel());
    for (franka::Frame frame = franka::Frame::kJoint1; frame <= franka::Frame::kEndEffector;
    frame++) {
    std::cout << model.pose(frame, state) << std::endl;
    }
    } catch (franka::Exception const& e) {
    std::cout << e.what() << std::endl;
    return -1;
    }
    return 0;
    }
    - - - - diff --git a/rate__limiting_8h.html b/rate__limiting_8h.html deleted file mode 100644 index 1c93dcd1..00000000 --- a/rate__limiting_8h.html +++ /dev/null @@ -1,900 +0,0 @@ - - - - - - - -libfranka: include/franka/rate_limiting.h File Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    rate_limiting.h File Reference
    -
    -
    - -

    Contains functions for limiting the rate of torques, Cartesian pose, Cartesian velocity, joint position and joint velocity. -More...

    -
    #include <array>
    -#include <limits>
    -
    -Include dependency graph for rate_limiting.h:
    -
    -
    -
    -
    -

    Go to the source code of this file.

    - - - - - - - - - - - - - - - - - - - - - - - -

    -Functions

    std::array< double, 7 > franka::limitRate (const std::array< double, 7 > &max_derivatives, const std::array< double, 7 > &commanded_values, const std::array< double, 7 > &last_commanded_values)
     Limits the rate of an input vector of per-joint commands considering the maximum allowed time derivatives. More...
     
    double franka::limitRate (double max_velocity, double max_acceleration, double max_jerk, double commanded_velocity, double last_commanded_velocity, double last_commanded_acceleration)
     Limits the rate of a desired joint velocity considering the limits provided. More...
     
    double franka::limitRate (double max_velocity, double max_acceleration, double max_jerk, double commanded_position, double last_commanded_position, double last_commanded_velocity, double last_commanded_acceleration)
     Limits the rate of a desired joint position considering the limits provided. More...
     
    std::array< double, 7 > franka::limitRate (const std::array< double, 7 > &max_velocity, const std::array< double, 7 > &max_acceleration, const std::array< double, 7 > &max_jerk, const std::array< double, 7 > &commanded_velocities, const std::array< double, 7 > &last_commanded_velocities, const std::array< double, 7 > &last_commanded_accelerations)
     Limits the rate of a desired joint velocity considering the limits provided. More...
     
    std::array< double, 7 > franka::limitRate (const std::array< double, 7 > &max_velocity, const std::array< double, 7 > &max_acceleration, const std::array< double, 7 > &max_jerk, const std::array< double, 7 > &commanded_positions, const std::array< double, 7 > &last_commanded_positions, const std::array< double, 7 > &last_commanded_velocities, const std::array< double, 7 > &last_commanded_accelerations)
     Limits the rate of a desired joint position considering the limits provided. More...
     
    std::array< double, 6 > franka::limitRate (double max_translational_velocity, double max_translational_acceleration, double max_translational_jerk, double max_rotational_velocity, double max_rotational_acceleration, double max_rotational_jerk, const std::array< double, 6 > &O_dP_EE_c, const std::array< double, 6 > &last_O_dP_EE_c, const std::array< double, 6 > &last_O_ddP_EE_c)
     Limits the rate of a desired Cartesian velocity considering the limits provided. More...
     
    std::array< double, 16 > franka::limitRate (double max_translational_velocity, double max_translational_acceleration, double max_translational_jerk, double max_rotational_velocity, double max_rotational_acceleration, double max_rotational_jerk, const std::array< double, 16 > &O_T_EE_c, const std::array< double, 16 > &last_O_T_EE_c, const std::array< double, 6 > &last_O_dP_EE_c, const std::array< double, 6 > &last_O_ddP_EE_c)
     Limits the rate of a desired Cartesian pose considering the limits provided. More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Variables

    -constexpr double franka::kDeltaT = 1e-3
     Sample time constant.
     
    -constexpr double franka::kLimitEps = 1e-3
     Epsilon value for checking limits.
     
    -constexpr double franka::kNormEps = std::numeric_limits<double>::epsilon()
     Epsilon value for limiting Cartesian accelerations/jerks or not.
     
    constexpr double franka::kTolNumberPacketsLost = 3.0
     Number of packets losts considered for the definition of velocity limits. More...
     
    -constexpr double franka::kFactorCartesianRotationPoseInterface = 0.99
     Factor for the definition of rotational limits using the Cartesian Pose interface.
     
    constexpr std::array< double, 7 > franka::kMaxTorqueRate
     Maximum torque rate. More...
     
    constexpr std::array< double, 7 > franka::kMaxJointJerk
     Maximum joint jerk. More...
     
    constexpr std::array< double, 7 > franka::kMaxJointAcceleration
     Maximum joint acceleration. More...
     
    constexpr std::array< double, 7 > franka::kMaxJointVelocity
     Maximum joint velocity. More...
     
    -constexpr double franka::kMaxTranslationalJerk = 6500.0 - kLimitEps
     Maximum translational jerk.
     
    -constexpr double franka::kMaxTranslationalAcceleration = 13.0000 - kLimitEps
     Maximum translational acceleration.
     
    constexpr double franka::kMaxTranslationalVelocity
     Maximum translational velocity. More...
     
    -constexpr double franka::kMaxRotationalJerk = 12500.0 - kLimitEps
     Maximum rotational jerk.
     
    -constexpr double franka::kMaxRotationalAcceleration = 25.0000 - kLimitEps
     Maximum rotational acceleration.
     
    constexpr double franka::kMaxRotationalVelocity
     Maximum rotational velocity. More...
     
    -constexpr double franka::kMaxElbowJerk = 5000 - kLimitEps
     Maximum elbow jerk.
     
    -constexpr double franka::kMaxElbowAcceleration = 10.0000 - kLimitEps
     Maximum elbow acceleration.
     
    constexpr double franka::kMaxElbowVelocity
     Maximum elbow velocity. More...
     
    -

    Detailed Description

    -

    Contains functions for limiting the rate of torques, Cartesian pose, Cartesian velocity, joint position and joint velocity.

    -

    Function Documentation

    - -

    ◆ limitRate() [1/7]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    std::array<double, 7> franka::limitRate (const std::array< double, 7 > & max_derivatives,
    const std::array< double, 7 > & commanded_values,
    const std::array< double, 7 > & last_commanded_values 
    )
    -
    - -

    Limits the rate of an input vector of per-joint commands considering the maximum allowed time derivatives.

    -
    Note
    FCI filters must be deactivated to work properly.
    -
    Parameters
    - - - - -
    [in]max_derivativesPer-joint maximum allowed time derivative.
    [in]commanded_valuesCommanded values of the current time step.
    [in]last_commanded_valuesCommanded values of the previous time step.
    -
    -
    -
    Exceptions
    - - -
    std::invalid_argumentif commanded_values are infinite or NaN.
    -
    -
    -
    Returns
    Rate-limited vector of desired values.
    -
    Examples:
    joint_impedance_control.cpp.
    -
    -
    -
    - -

    ◆ limitRate() [2/7]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    double franka::limitRate (double max_velocity,
    double max_acceleration,
    double max_jerk,
    double commanded_velocity,
    double last_commanded_velocity,
    double last_commanded_acceleration 
    )
    -
    - -

    Limits the rate of a desired joint velocity considering the limits provided.

    -
    Note
    FCI filters must be deactivated to work properly.
    -
    Parameters
    - - - - - - - -
    [in]max_velocityMaximum allowed velocity.
    [in]max_accelerationMaximum allowed acceleration.
    [in]max_jerkMaximum allowed jerk.
    [in]commanded_velocityCommanded joint velocity of the current time step.
    [in]last_commanded_velocityCommanded joint velocitiy of the previous time step.
    [in]last_commanded_accelerationCommanded joint acceleration of the previous time step.
    -
    -
    -
    Exceptions
    - - -
    std::invalid_argumentif commanded_velocity is infinite or NaN.
    -
    -
    -
    Returns
    Rate-limited desired joint velocity.
    - -
    -
    - -

    ◆ limitRate() [3/7]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    double franka::limitRate (double max_velocity,
    double max_acceleration,
    double max_jerk,
    double commanded_position,
    double last_commanded_position,
    double last_commanded_velocity,
    double last_commanded_acceleration 
    )
    -
    - -

    Limits the rate of a desired joint position considering the limits provided.

    -
    Note
    FCI filters must be deactivated to work properly.
    -
    Parameters
    - - - - - - - - -
    [in]max_velocityMaximum allowed velocity.
    [in]max_accelerationMaximum allowed acceleration.
    [in]max_jerkMaximum allowed jerk.
    [in]commanded_positionCommanded joint position of the current time step.
    [in]last_commanded_positionCommanded joint position of the previous time step.
    [in]last_commanded_velocityCommanded joint velocity of the previous time step.
    [in]last_commanded_accelerationCommanded joint acceleration of the previous time step.
    -
    -
    -
    Exceptions
    - - -
    std::invalid_argumentif commanded_position is infinite or NaN.
    -
    -
    -
    Returns
    Rate-limited desired joint position.
    - -
    -
    - -

    ◆ limitRate() [4/7]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    std::array<double, 7> franka::limitRate (const std::array< double, 7 > & max_velocity,
    const std::array< double, 7 > & max_acceleration,
    const std::array< double, 7 > & max_jerk,
    const std::array< double, 7 > & commanded_velocities,
    const std::array< double, 7 > & last_commanded_velocities,
    const std::array< double, 7 > & last_commanded_accelerations 
    )
    -
    - -

    Limits the rate of a desired joint velocity considering the limits provided.

    -
    Note
    FCI filters must be deactivated to work properly.
    -
    Parameters
    - - - - - - - -
    [in]max_velocityPer-joint maximum allowed velocity.
    [in]max_accelerationPer-joint maximum allowed acceleration.
    [in]max_jerkPer-joint maximum allowed jerk.
    [in]commanded_velocitiesCommanded joint velocity of the current time step.
    [in]last_commanded_velocitiesCommanded joint velocities of the previous time step.
    [in]last_commanded_accelerationsCommanded joint accelerations of the previous time step.
    -
    -
    -
    Exceptions
    - - -
    std::invalid_argumentif commanded_velocities are infinite or NaN.
    -
    -
    -
    Returns
    Rate-limited vector of desired joint velocities.
    - -
    -
    - -

    ◆ limitRate() [5/7]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    std::array<double, 7> franka::limitRate (const std::array< double, 7 > & max_velocity,
    const std::array< double, 7 > & max_acceleration,
    const std::array< double, 7 > & max_jerk,
    const std::array< double, 7 > & commanded_positions,
    const std::array< double, 7 > & last_commanded_positions,
    const std::array< double, 7 > & last_commanded_velocities,
    const std::array< double, 7 > & last_commanded_accelerations 
    )
    -
    - -

    Limits the rate of a desired joint position considering the limits provided.

    -
    Note
    FCI filters must be deactivated to work properly.
    -
    Parameters
    - - - - - - - - -
    [in]max_velocityPer-joint maximum allowed velocity.
    [in]max_accelerationPer-joint maximum allowed velocity.
    [in]max_jerkPer-joint maximum allowed velocity.
    [in]commanded_positionsPer-joint maximum allowed acceleration.
    [in]last_commanded_positionsCommanded joint positions of the current time step.
    [in]last_commanded_velocitiesCommanded joint positions of the previous time step.
    [in]last_commanded_accelerationsCommanded joint velocities of the previous time step.
    -
    -
    -
    Exceptions
    - - -
    std::invalid_argumentif commanded_positions are infinite or NaN.
    -
    -
    -
    Returns
    Rate-limited vector of desired joint positions.
    - -
    -
    - -

    ◆ limitRate() [6/7]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    std::array<double, 6> franka::limitRate (double max_translational_velocity,
    double max_translational_acceleration,
    double max_translational_jerk,
    double max_rotational_velocity,
    double max_rotational_acceleration,
    double max_rotational_jerk,
    const std::array< double, 6 > & O_dP_EE_c,
    const std::array< double, 6 > & last_O_dP_EE_c,
    const std::array< double, 6 > & last_O_ddP_EE_c 
    )
    -
    - -

    Limits the rate of a desired Cartesian velocity considering the limits provided.

    -
    Note
    FCI filters must be deactivated to work properly.
    -
    Parameters
    - - - - - - - - - - -
    [in]max_translational_velocityMaximum translational velocity.
    [in]max_translational_accelerationMaximum translational acceleration.
    [in]max_translational_jerkMaximum translational jerk.
    [in]max_rotational_velocityMaximum rotational velocity.
    [in]max_rotational_accelerationMaximum rotational acceleration.
    [in]max_rotational_jerkMaximum rotational jerk.
    [in]O_dP_EE_cCommanded end effector twist of the current time step.
    [in]last_O_dP_EE_cCommanded end effector twist of the previous time step.
    [in]last_O_ddP_EE_cCommanded end effector acceleration of the previous time step.
    -
    -
    -
    Exceptions
    - - -
    std::invalid_argumentif an element of O_dP_EE_c is infinite or NaN.
    -
    -
    -
    Returns
    Rate-limited desired end effector twist.
    - -
    -
    - -

    ◆ limitRate() [7/7]

    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    std::array<double, 16> franka::limitRate (double max_translational_velocity,
    double max_translational_acceleration,
    double max_translational_jerk,
    double max_rotational_velocity,
    double max_rotational_acceleration,
    double max_rotational_jerk,
    const std::array< double, 16 > & O_T_EE_c,
    const std::array< double, 16 > & last_O_T_EE_c,
    const std::array< double, 6 > & last_O_dP_EE_c,
    const std::array< double, 6 > & last_O_ddP_EE_c 
    )
    -
    - -

    Limits the rate of a desired Cartesian pose considering the limits provided.

    -
    Note
    FCI filters must be deactivated to work properly.
    -
    Parameters
    - - - - - - - - - - - -
    [in]max_translational_velocityMaximum translational velocity.
    [in]max_translational_accelerationMaximum translational acceleration.
    [in]max_translational_jerkMaximum translational jerk.
    [in]max_rotational_velocityMaximum rotational velocity.
    [in]max_rotational_accelerationMaximum rotational acceleration.
    [in]max_rotational_jerkMaximum rotational jerk.
    [in]O_T_EE_cCommanded pose of the current time step.
    [in]last_O_T_EE_cCommanded pose of the previous time step.
    [in]last_O_dP_EE_cCommanded end effector twist of the previous time step.
    [in]last_O_ddP_EE_cCommanded end effector acceleration of the previous time step.
    -
    -
    -
    Exceptions
    - - -
    std::invalid_argumentif an element of O_T_EE_c is infinite or NaN.
    -
    -
    -
    Returns
    Rate-limited desired pose.
    - -
    -
    -

    Variable Documentation

    - -

    ◆ kMaxElbowVelocity

    - -
    -
    - - - - -
    constexpr double franka::kMaxElbowVelocity
    -
    -Initial value:
    =
    constexpr double kTolNumberPacketsLost
    Number of packets losts considered for the definition of velocity limits.
    Definition: rate_limiting.h:31
    -
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    constexpr double kMaxElbowAcceleration
    Maximum elbow acceleration.
    Definition: rate_limiting.h:98
    -
    constexpr double kDeltaT
    Sample time constant.
    Definition: rate_limiting.h:18
    -
    -

    Maximum elbow velocity.

    - -
    -
    - -

    ◆ kMaxJointAcceleration

    - -
    -
    - - - - -
    constexpr std::array<double, 7> franka::kMaxJointAcceleration
    -
    -Initial value:
    {
    {15.0000 - kLimitEps, 7.500 - kLimitEps, 10.0000 - kLimitEps, 12.5000 - kLimitEps,
    15.0000 - kLimitEps, 20.0000 - kLimitEps, 20.0000 - kLimitEps}}
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    -

    Maximum joint acceleration.

    - -
    -
    - -

    ◆ kMaxJointJerk

    - -
    -
    - - - - -
    constexpr std::array<double, 7> franka::kMaxJointJerk
    -
    -Initial value:
    {
    {7500.0 - kLimitEps, 3750.0 - kLimitEps, 5000.0 - kLimitEps, 6250.0 - kLimitEps,
    7500.0 - kLimitEps, 10000.0 - kLimitEps, 10000.0 - kLimitEps}}
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    -

    Maximum joint jerk.

    - -
    -
    - -

    ◆ kMaxJointVelocity

    - -
    -
    - - - - -
    constexpr std::array<double, 7> franka::kMaxJointVelocity
    -
    -Initial value:
    {
    2.1750 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[1],
    2.1750 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[2],
    2.1750 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[3],
    2.6100 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[4],
    2.6100 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[5],
    2.6100 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[6]}}
    constexpr double kTolNumberPacketsLost
    Number of packets losts considered for the definition of velocity limits.
    Definition: rate_limiting.h:31
    -
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    constexpr double kDeltaT
    Sample time constant.
    Definition: rate_limiting.h:18
    -
    constexpr std::array< double, 7 > kMaxJointAcceleration
    Maximum joint acceleration.
    Definition: rate_limiting.h:51
    -
    -

    Maximum joint velocity.

    - -
    -
    - -

    ◆ kMaxRotationalVelocity

    - -
    -
    - - - - -
    constexpr double franka::kMaxRotationalVelocity
    -
    -Initial value:
    =
    constexpr double kMaxRotationalAcceleration
    Maximum rotational acceleration.
    Definition: rate_limiting.h:85
    -
    constexpr double kTolNumberPacketsLost
    Number of packets losts considered for the definition of velocity limits.
    Definition: rate_limiting.h:31
    -
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    constexpr double kDeltaT
    Sample time constant.
    Definition: rate_limiting.h:18
    -
    -

    Maximum rotational velocity.

    - -
    -
    - -

    ◆ kMaxTorqueRate

    - -
    -
    - - - - -
    constexpr std::array<double, 7> franka::kMaxTorqueRate
    -
    -Initial value:
    {
    {1000 - kLimitEps, 1000 - kLimitEps, 1000 - kLimitEps, 1000 - kLimitEps, 1000 - kLimitEps,
    1000 - kLimitEps, 1000 - kLimitEps}}
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    -

    Maximum torque rate.

    -
    Examples:
    joint_impedance_control.cpp.
    -
    -
    -
    - -

    ◆ kMaxTranslationalVelocity

    - -
    -
    - - - - -
    constexpr double franka::kMaxTranslationalVelocity
    -
    -Initial value:
    =
    constexpr double kTolNumberPacketsLost
    Number of packets losts considered for the definition of velocity limits.
    Definition: rate_limiting.h:31
    -
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    constexpr double kDeltaT
    Sample time constant.
    Definition: rate_limiting.h:18
    -
    constexpr double kMaxTranslationalAcceleration
    Maximum translational acceleration.
    Definition: rate_limiting.h:72
    -
    -

    Maximum translational velocity.

    - -
    -
    - -

    ◆ kTolNumberPacketsLost

    - -
    -
    - - - - -
    constexpr double franka::kTolNumberPacketsLost = 3.0
    -
    - -

    Number of packets losts considered for the definition of velocity limits.

    -

    When a packet is lost, FCI assumes a constant acceleration model

    - -
    -
    -
    - - - - diff --git a/rate__limiting_8h__incl.map b/rate__limiting_8h__incl.map deleted file mode 100644 index d038ac0c..00000000 --- a/rate__limiting_8h__incl.map +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/rate__limiting_8h__incl.md5 b/rate__limiting_8h__incl.md5 deleted file mode 100644 index 67606efb..00000000 --- a/rate__limiting_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -ac2bc3c406cc1547c70eff2de851611a \ No newline at end of file diff --git a/rate__limiting_8h__incl.png b/rate__limiting_8h__incl.png deleted file mode 100644 index e0baeec93bed034ee935cdb4ab37f687d82edf29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5371 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 Ogy?A-Y1Q4jkNO`{7$_(J diff --git a/rate__limiting_8h_source.html b/rate__limiting_8h_source.html deleted file mode 100644 index 968901d6..00000000 --- a/rate__limiting_8h_source.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -libfranka: include/franka/rate_limiting.h Source File - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    rate_limiting.h
    -
    -
    -Go to the documentation of this file.
    1 // Copyright (c) 2017 Franka Emika GmbH
    2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    3 #pragma once
    4 
    5 #include <array>
    6 #include <limits>
    7 
    14 namespace franka {
    18 constexpr double kDeltaT = 1e-3;
    22 constexpr double kLimitEps = 1e-3;
    26 constexpr double kNormEps = std::numeric_limits<double>::epsilon();
    31 constexpr double kTolNumberPacketsLost = 3.0;
    35 constexpr double kFactorCartesianRotationPoseInterface = 0.99;
    39 constexpr std::array<double, 7> kMaxTorqueRate{
    40  {1000 - kLimitEps, 1000 - kLimitEps, 1000 - kLimitEps, 1000 - kLimitEps, 1000 - kLimitEps,
    41  1000 - kLimitEps, 1000 - kLimitEps}};
    45 constexpr std::array<double, 7> kMaxJointJerk{
    46  {7500.0 - kLimitEps, 3750.0 - kLimitEps, 5000.0 - kLimitEps, 6250.0 - kLimitEps,
    47  7500.0 - kLimitEps, 10000.0 - kLimitEps, 10000.0 - kLimitEps}};
    51 constexpr std::array<double, 7> kMaxJointAcceleration{
    52  {15.0000 - kLimitEps, 7.500 - kLimitEps, 10.0000 - kLimitEps, 12.5000 - kLimitEps,
    53  15.0000 - kLimitEps, 20.0000 - kLimitEps, 20.0000 - kLimitEps}};
    57 constexpr std::array<double, 7> kMaxJointVelocity{
    58  {2.1750 - kLimitEps - kTolNumberPacketsLost * kDeltaT * kMaxJointAcceleration[0],
    59  2.1750 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[1],
    60  2.1750 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[2],
    61  2.1750 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[3],
    62  2.6100 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[4],
    63  2.6100 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[5],
    64  2.6100 - kLimitEps - kTolNumberPacketsLost* kDeltaT* kMaxJointAcceleration[6]}};
    68 constexpr double kMaxTranslationalJerk = 6500.0 - kLimitEps;
    72 constexpr double kMaxTranslationalAcceleration = 13.0000 - kLimitEps;
    76 constexpr double kMaxTranslationalVelocity =
    77  2.0000 - kLimitEps - kTolNumberPacketsLost * kDeltaT * kMaxTranslationalAcceleration;
    81 constexpr double kMaxRotationalJerk = 12500.0 - kLimitEps;
    85 constexpr double kMaxRotationalAcceleration = 25.0000 - kLimitEps;
    89 constexpr double kMaxRotationalVelocity =
    90  2.5000 - kLimitEps - kTolNumberPacketsLost * kDeltaT * kMaxRotationalAcceleration;
    94 constexpr double kMaxElbowJerk = 5000 - kLimitEps;
    98 constexpr double kMaxElbowAcceleration = 10.0000 - kLimitEps;
    102 constexpr double kMaxElbowVelocity =
    103  2.1750 - kLimitEps - kTolNumberPacketsLost * kDeltaT * kMaxElbowAcceleration;
    104 
    120 std::array<double, 7> limitRate(const std::array<double, 7>& max_derivatives,
    121  const std::array<double, 7>& commanded_values,
    122  const std::array<double, 7>& last_commanded_values);
    123 
    141 double limitRate(double max_velocity,
    142  double max_acceleration,
    143  double max_jerk,
    144  double commanded_velocity,
    145  double last_commanded_velocity,
    146  double last_commanded_acceleration);
    147 
    166 double limitRate(double max_velocity,
    167  double max_acceleration,
    168  double max_jerk,
    169  double commanded_position,
    170  double last_commanded_position,
    171  double last_commanded_velocity,
    172  double last_commanded_acceleration);
    173 
    191 std::array<double, 7> limitRate(const std::array<double, 7>& max_velocity,
    192  const std::array<double, 7>& max_acceleration,
    193  const std::array<double, 7>& max_jerk,
    194  const std::array<double, 7>& commanded_velocities,
    195  const std::array<double, 7>& last_commanded_velocities,
    196  const std::array<double, 7>& last_commanded_accelerations);
    197 
    216 std::array<double, 7> limitRate(const std::array<double, 7>& max_velocity,
    217  const std::array<double, 7>& max_acceleration,
    218  const std::array<double, 7>& max_jerk,
    219  const std::array<double, 7>& commanded_positions,
    220  const std::array<double, 7>& last_commanded_positions,
    221  const std::array<double, 7>& last_commanded_velocities,
    222  const std::array<double, 7>& last_commanded_accelerations);
    223 
    244 std::array<double, 6> limitRate(
    245  double max_translational_velocity,
    246  double max_translational_acceleration,
    247  double max_translational_jerk,
    248  double max_rotational_velocity,
    249  double max_rotational_acceleration,
    250  double max_rotational_jerk,
    251  const std::array<double, 6>& O_dP_EE_c, // NOLINT(readability-identifier-naming)
    252  const std::array<double, 6>& last_O_dP_EE_c, // NOLINT(readability-identifier-naming)
    253  const std::array<double, 6>& last_O_ddP_EE_c); // NOLINT(readability-identifier-naming)
    254 
    276 std::array<double, 16> limitRate(
    277  double max_translational_velocity,
    278  double max_translational_acceleration,
    279  double max_translational_jerk,
    280  double max_rotational_velocity,
    281  double max_rotational_acceleration,
    282  double max_rotational_jerk,
    283  const std::array<double, 16>& O_T_EE_c, // NOLINT(readability-identifier-naming)
    284  const std::array<double, 16>& last_O_T_EE_c, // NOLINT(readability-identifier-naming)
    285  const std::array<double, 6>& last_O_dP_EE_c, // NOLINT(readability-identifier-naming)
    286  const std::array<double, 6>& last_O_ddP_EE_c); // NOLINT(readability-identifier-naming)
    287 
    288 } // namespace franka
    constexpr double kMaxRotationalAcceleration
    Maximum rotational acceleration.
    Definition: rate_limiting.h:85
    -
    constexpr double kTolNumberPacketsLost
    Number of packets losts considered for the definition of velocity limits.
    Definition: rate_limiting.h:31
    -
    constexpr std::array< double, 7 > kMaxJointJerk
    Maximum joint jerk.
    Definition: rate_limiting.h:45
    -
    std::array< double, 7 > limitRate(const std::array< double, 7 > &max_derivatives, const std::array< double, 7 > &commanded_values, const std::array< double, 7 > &last_commanded_values)
    Limits the rate of an input vector of per-joint commands considering the maximum allowed time derivat...
    -
    constexpr double kMaxRotationalVelocity
    Maximum rotational velocity.
    Definition: rate_limiting.h:89
    -
    constexpr std::array< double, 7 > kMaxTorqueRate
    Maximum torque rate.
    Definition: rate_limiting.h:39
    -
    constexpr double kMaxRotationalJerk
    Maximum rotational jerk.
    Definition: rate_limiting.h:81
    -
    constexpr double kNormEps
    Epsilon value for limiting Cartesian accelerations/jerks or not.
    Definition: rate_limiting.h:26
    -
    constexpr double kLimitEps
    Epsilon value for checking limits.
    Definition: rate_limiting.h:22
    -
    constexpr double kFactorCartesianRotationPoseInterface
    Factor for the definition of rotational limits using the Cartesian Pose interface.
    Definition: rate_limiting.h:35
    -
    constexpr double kMaxElbowAcceleration
    Maximum elbow acceleration.
    Definition: rate_limiting.h:98
    -
    constexpr double kMaxTranslationalVelocity
    Maximum translational velocity.
    Definition: rate_limiting.h:76
    -
    constexpr double kDeltaT
    Sample time constant.
    Definition: rate_limiting.h:18
    -
    Definition: command_types.h:13
    -
    constexpr double kMaxElbowVelocity
    Maximum elbow velocity.
    Definition: rate_limiting.h:102
    -
    constexpr double kMaxTranslationalAcceleration
    Maximum translational acceleration.
    Definition: rate_limiting.h:72
    -
    constexpr double kMaxElbowJerk
    Maximum elbow jerk.
    Definition: rate_limiting.h:94
    -
    constexpr std::array< double, 7 > kMaxJointAcceleration
    Maximum joint acceleration.
    Definition: rate_limiting.h:51
    -
    constexpr std::array< double, 7 > kMaxJointVelocity
    Maximum joint velocity.
    Definition: rate_limiting.h:57
    -
    constexpr double kMaxTranslationalJerk
    Maximum translational jerk.
    Definition: rate_limiting.h:68
    -
    - - - - diff --git a/robot_8h.html b/robot_8h.html deleted file mode 100644 index c2467c34..00000000 --- a/robot_8h.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - -libfranka: include/franka/robot.h File Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    robot.h File Reference
    -
    -
    - -

    Contains the franka::Robot type. -More...

    -
    #include <functional>
    -#include <memory>
    -#include <mutex>
    -#include <string>
    -#include <franka/command_types.h>
    -#include <franka/control_types.h>
    -#include <franka/duration.h>
    -#include <franka/lowpass_filter.h>
    -#include <franka/robot_state.h>
    -
    -Include dependency graph for robot.h:
    -
    -
    - - - - - - - - -
    -
    -This graph shows which files directly or indirectly include this file:
    -
    -
    - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - -

    -Classes

    class  franka::Robot
     Maintains a network connection to the robot, provides the current robot state, gives access to the model library and allows to control the robot. More...
     
    -

    Detailed Description

    -

    Contains the franka::Robot type.

    -
    - - - - diff --git a/robot_8h__dep__incl.map b/robot_8h__dep__incl.map deleted file mode 100644 index c283f0b0..00000000 --- a/robot_8h__dep__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/robot_8h__dep__incl.md5 b/robot_8h__dep__incl.md5 deleted file mode 100644 index eddcb7ad..00000000 --- a/robot_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -29546bc5990006fe971a08d490a39439 \ No newline at end of file diff --git a/robot_8h__dep__incl.png b/robot_8h__dep__incl.png deleted file mode 100644 index ddbeabbc184f160eb65028b7f2011e08c58082f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6394 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 I9={6sFZC;yJOBUy diff --git a/robot_8h__incl.map b/robot_8h__incl.map deleted file mode 100644 index 39dabf1d..00000000 --- a/robot_8h__incl.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/robot_8h__incl.md5 b/robot_8h__incl.md5 deleted file mode 100644 index 2a03fb97..00000000 --- a/robot_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -30c6def571d84a75ada0bcd6be95a9c2 \ No newline at end of file diff --git a/robot_8h__incl.png b/robot_8h__incl.png deleted file mode 100644 index 15f4e0fd0fb099c64bcd9f2eb95580a80715eec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58135 zcmZ^L1z6SFx9z4o6r>wzq(hNTMNp(fKm-J&Q@W)a6eI;vLRzGyOHe>cIwYjKLF&!z zIsf*PLUFIo2;s?Y@`y|1Kkw>uUn39<9Q|@lBO}|KO+f|B84M?msY*F_me6H!i z{`}GWq2}4G=k~Y1b5}EdWNyJ0>!zfQR_gd5h@})SBOT-Se(qs>b|2aD{i7RGuZr)c z3VHhYX1QCK`=i>FO=YajSz5fVdN3%Y+OTy#DcWT&L?wgG7)UJp@4tpiV{A6A{qMiR z3u)9r@&D)bK;nY;v9JEi>&9B7>R12s+wi`^aH|arc)j#SP*Biu*V7B*4O3!)AA-H& z0cU4kR=ffK{H_22d)D$x(bXe{|t&STvi!A zon*Yuy{sZp8hieYo^9#j)qh7j80zu=eEHvZ|7WKML^Nj*BFk8AC>MyUoD6IyOf2QA7 zs)n3F+e%owF+LFyGYbm_ZV;+CUGMn4l=#v$)_-T}sW?#&6Px^WugX*E&+>;PQ9C+L zF0O}qdU#S&QfHg4jdCt7A_(a`&ABb#%iH(giUrNi8cllb^|<|6$!%WR>!9@<%GYw+ zX(x|MNWefWudFnCA5DeGg%CCm4w86#dmry*Tt@EhI-+A@&TZCiRaRegc4AAOZOf(I zbU=k6t*opZpKtjR#ocMsU;LS;k#yUYN5p14a4`1)8iJ5kEKt~L*l=UK!fn4_iQjco zUsGHAeQ_~iuf!1ztZq2GEuh_4=K58mm4R%XGBW}l?%^!kfYP6q!j;xzsPzUhJ*lDr zy-UyLzeYV0zZi8c(<#ImNlH!*bDeg_dfuCkf%v_+Xgu}Bd3$%)IJ$p)Jp9+iVU@YH zwY<4GyU*#wFQywe2oQWXZ@P`G*^Pb1aCUZf+v^eCSxmKKx^;^ZHf1yLh^SO2@_D-Z zVty6czsv9bH-JoZy-qi(+%_skh-qn~yiX5j4@RDLEM@o-l0^iKJoTlOlaq6sj}o2P z+KPGB5j}f$ve(($+qhU#X4*w|e0)6f`hldsdS2U`8+zQ5jozm&aO&#L4=1({55FqW zdj~!;aL3qcyp$w4ekH+)Cfq-|wHm^~m_!E0#xRl&Xs^4FAO6P0{g9RcuBRT~bm~1`ZCK;^N}!wc=V> z?a+n>$vfHVX)rDLKxq?`>*5j;rCukyYq;#UZ{L1sU=V$*eKTX(uN^grT`Pc11UCP zW=To9qe&;C`|0Ah@+O)JD=Mz74HvblicST>=f~VWOo*21|I$%hT2O#zYHIp7RDFGY zv4dpK7DXGIlLeo158E%jbu~U*AG3FL?LZ?E_iJjBhTt|H7|Dn%m?Hd7PDwx}!u)bGx1(BdHzB9 zW~o)Ya`ueA6TV@Wb9D%_?QwI`>iXo!~q0XG_K?d|zIJUm#v&%afVZ%F@}?f&NE zeJJ+-T1Uu{+CC@7kSi}ZHJtx6aL1xajeZExDoAbgHzLkj4g7k1G5(zLg? zyKUAiZGWY<Zrr3HH1Ihwl~+=FcK+u;1>spS z|G;djxw*Nsv$JW!uCd3u?6UXr?7{Dag~ysQbmDHr5J_sB38S^Hys!hG44Yrxee$cf zmq=Ar70zw^wI~m#@L9XZJ1Boy+G_(ni zx6ZG2tAYBq>t@?4mU~U}J8BOf`a|eO+~|3Ig_JZ9SyJ?>Y}*I2@9jY1Htv6~Fyg`- zX;!~vJhyL*h$PdQ1B~RA{Cw(u^ zk9Rugi|XSoj$jxq?d=#)SwB`JI;yTaPl?V|PP{Q(8+QHVxFB$RQUeJAt+@DSMeskx z6RR{PeF{F?K^HIuvPc!xM_QSctTkLIF6MVzddpe2cYi1;#$k4Tp3u(D)y=aus$mNg z{_FU-TITw0@SW?Qj*}W2$*c9p@BF(HMVZK*2p#-$JReh3AGl_W{4~q}%gK(PmbAYe zuL)7nVqz)v_4D(2JZ9eaKno5TqM+=LteqaU*SLN)5;Hl6cu(1%?VmDX^5<`r4kS*^ z)fS!KsM>Q_ddtNa*9m_ZUPl?)tKlSDo3zA~juqm_DU(GIy#0Ylwnmqe;}jCQV<<$G zIYjkN-6B)%W5<(_-lgV|5j083&Fwv>kdhLtvorCen3F#qO(P?;K0b8YM@RC8@5sf) z^`Fn>{9B_K|NZh>sN=+xD>0pSE(@Mg_$g-xspPcH%wU@cbV)nCkFgN?;?Oa(bJN~o zR<=YGpnzP#kQ`H7t2uhPt^`c?r{xVy%y_bq+84Jy)M7;gWt#)_`U3*I8Hl%Ye~U2v zJ*{nY{{pIz_NBe1CC{gWE*lp<7=KQ$QBbHwHb_NIPa7@HpP#qFU*A``Qh0l}&U5nK zq9GHPII(wf@-N^bf~0_khP!`2Fn@L;5*caECzM4+9_ry%&BWJ-cX5&4EtT09k@o{1 zn@`L9&xw0WZ!elS-E(DI=6^QM8s%R!`t0~5xzh2$8{ML3s67pm8uqtDme)6E6(95x z|M?TlFO=n{;$qRxLNqkCFM7@9fbb5`6dFAgn=_&mKK|2ZTofnwcJE>)4UY88Ve~Vwn4C7T>mCoaXM-*Ng}bg{y0KImbAekTCrVPd{j~0&Npd9G~!maw)~rBlQw5lRJVec|EJM;@%ME&_cXEEuVBHrb6E5+CzcUdm<$tLHU0`JrOAwyW(8aQ2jH z^zmN&qGn{2EZ<1`djeH({tm5~5?}Gf3w#~)xTq-gpCk7mz7a{70rE;%Og#5P<4K>! zzggXeLZSL?>Sg}hb;Q-xflY>L(wyfR)M7k|Yeb?|Zrdke6qI?*+uO-j zkFQNmUY%W~3Ttk*vooiCG&gq@AJJ$2C1=A*CAjgDlOoC^GE(19S&Qg{! zRY*iRxtVTydNVX~UrF{Qc37B9Xy~?*tSqtdvmlLulKZ)W?{aeRSXge{^c>zV$<8L{ zCd1p=VKOmOWMX5(ef;?0ojcfH7UvTaBOI31C<*C#6s)Z1nV8N1J8_eenlN*4xT$wQ zMy0ZzaG?+uexg&si8WD0-ZbRw@ncM4r%egrcl68GL^oRMu~M|AVQ=~%^39MLXQw^O zNO`QszH4;|7r}xlcIyxM8uyJwGfFeo}rpm<3OtZ3Lbmsw)oTB2*mKLvE zZ`HOo@sqQG@b0jD5l@d`Zq6G|^sBe`U-;+dQcq4jX_|L13fn(8iF`7$j*c6%opDz#?GE78CzSS&!68HTM&QKsi>H`=~Yeo)XRZTRaF8$sr?npicYC9nWN+TW@A-b zY6tk7N}Jn}By6jt_C}~8b`5ynzA=te&XATYodRYJ;=b$Pr6CT*qBd1pd~KO2$yGmUcs=;qPAK%Z%7Ps z9^~5(RU<;^9}DgUPfs(xaQ@aeC>XeDJ2+9Q(d91A|elN7WIW%)Gp& zp`+h1l+a}@ScT8Wip1NKrRPfwB+`|YDV)r_`pa$G zpYk}>8SLdWH4z$=$+7nQk-zucH5yp!r~QI4Ilgzbv-8+0K71&+y2b)2iZ~1%xp4RI z3pqM{hF?ep)gO=WN5RM% zV7!x^qpY&0=M-x}DAIFn+Ar^UeoPD&I;td8x8~VT&1PkpL#yx9R~Qqy`1#%i-ghls z%1KS_V$n*@sq*(Xz{cU%vIq`5R_U5&{96f=9g(OvRQQ{TGOJ%+iWJj%$k$l%#F&S^&3Jk6uy;7kY(k#)@i(ODKvO1$|50Jk{}Tn|7>XF-uBq@_T!PpABKj~ z{wI6$rDm#|u7=S}O$9(5>~?k&=c%hxk@JJ^nz7e`pi|2$r=ZjRQ1ZZtAJI8Ag^`)rKpa+g zg=SsiPea~S!JDI4OmPU<=;7nTzjIE*K$d<1E!!+k0j3r^#R9i(36!3R%7}}8bebr? zaP8_J62{JZflW(`w!9Mep-claO#bVBH_dHCXGaGuDhhpidhv|C%DI5En1tXrFSldk z?Ugy>{7!trL&ZCxz00SP*n}eW1Ox{`YRd}OlK%p$kr3p5){rgccSa1B^(4eSiB%3k zBpGxnDqut=r`x1t(UP;htUc}4R518XrSLUnM#Sd3Ph!R1vDgmJCce>Tv9!zjA zS6siI?vP47dT8oKt3MjcXnielQIR*uH61C!Cpt9(Bv1o~4W><_HZpY~dwmhpD7lxc zg2R&-l|+%LV4oa!<$gWhTfh6yrR}ze#l$cf6H-unHf<^Q9zgagbLxBlGzZoiP7EXQ z_U!5^Dq+V@E{!}P8{Wh_zq`ZO>0;2Nq=?M!owVOrM1{a*=H!gUy!Z!3ME;H1Q2k?J23E=K}0)rREKeHULiCBPu{waxVc$U`$;V% z6s@6l&TnPU_4nwG&k`+^oKsZ5E#mDbtw*!XDUnLG*BOS>5tML z*len+n>2Kvn|MtO=J^YPxNnY9~}6_#N4jd9}J@d zIVF=(7!#9JjZ?VW)Z1(F%2nh1I()o6IrEPz=dr}}fk7v-?4*9J$tQ=Tf45v)5ddae z&A}m|px);me-rO|^rG$J@%nN6N_hox?jm5<>ABV&icLC&V?>Ge1)^h1TxrNYy69a@N ztU)rU{kJ1fFnPrk%q*NBRCElSB!7#=S*gF1Ck%#22z83RWAd@!b>s@=m`$mI=lf=1 z92}X@2$FG4g$UguxyO&GkrUUq#%1yJ44Ga1-d_0lO6QMgSr->l0l^Opq(4-2gfyD3 zBLFIlmd<0trbcvkV_T1xqn@0UYPg)`Eq-KNKw^N=#zyoE9}gsxo586unM}OjjM5gOqSM4f}aN z12P;MdaL5g537=+l;!TGDl6L;NmQK74avmR)P|jx{KLnOlnM%}P&|ln>-ns-(UIl& zHHpN0fV7!F61pF7t!d9KC9mz~2LLBq_j-T%FLXU0``v5J{T$*OSX{$-<<(kO^0~G! z59}ZVfGW*$L_G?cntm0DqAWZFJY8Mw5YdRQSc%EWaU%WX38Nw(`jOdeV*?E|HhS;d zeusxBu%PC4TOHfm?H5TtKEOryUc!;D))#pph8C|p7@N`1V6^Cn>QCL$dQMEY8S;tm zsl5Dg%t<5tK|4~{3B7@A5*YgevrI|x06-_f8XNzvxR{zVfvl-bqx|)&mo^?;tD`dX zi$1Ro4z7M0<2LKcbMI7@eQEv`?MpHtnhir>@6fYjD6@S==Fc3(;5xN$h3(>ZN!X? zTmBKPd}OAlC#7MuGS?DRQgXYlehNhJKToJB`;G0@Q1bTYO!m06j3MJnGuW4nAKgPj ztXyO#qRr*o0y9~Fm8Df}e;7KT5;t)|DE~?!!`R6<;|>n8wMhe>D}Jf(-Hz}0y0>Is3eAqYOh(1@O+NQSkw7IrJe%p zDoy-x%v3GjPLJrdnLT$9QE$N(!tY1I_SyX2z4G(ti^rNzhDYv!Y|w#`NJ%*h&<%M; zpDAZ!Zfu+rN1XQe^M@X~Xei{=P-$=`2r{x}^agX#K`Vu6~*p!?X& zz@$eDjR7kw=3~!qZ8GK+9%gtoH7v?{dY9%3X1s%`ln9VXKzzp`BDzT0_|3V0zyUvi zQ2~H>_z*?qnwg17lX>XM7HMNIa&F0F$hnzCtK`T(dE55>smYVK=vTumURCDiazWL( zqk^yKRfm1|ZcbHZrliO(&uw+FwQ&LnJ3F(zxse)__|(9E+rH7_^2=bD?Dw#LVKeBhy)qyA zpY6;E0il~8)_ZMZsW$Y2no51P1*2=`bEXVxKr^;~69I5XGOfg6^F3*r48;#}j}omX zU3Q0uC543VCZ{Kf(_zVGB0w4f*%~Fa2Z^)wB~eS=5S$4Xh`xl%S8UhO$DSyNBU6$Y zKBT1BJhsG`ciGuTpA+H?47}u(VluL5>3Kg}V$4P@uTaWbtQ@0=0_;kXxczd4Ejg9? zncz@HC9w*s^#7MC3GP}L)nNGm6Y?j3Vmj5?NIk&3ojw|V*`k8Unz`+cZMX9Sh2A!(Kkk1&P z=a2i8!NH12^X{Itg1(m|Bmp1ES&`G}Mz#?38@~m|Es`@W@(GAf_HI7atg1ZB{P^*k zaZ^;kxx7i%<#MIX8bNipks@KwN~_Ds zp+jbs^)V+*7z>nF2u2#13)$o(jn(Ln3U&6M01O2J+>!K&i$v~2e{)wvOxAT=o-k(! z$`>w#_jQ8C1_sb-^f8(=gD8n-aOmk>Ar-uAHx``e%vQf8*w-;K5|Gyr8ICIr%*^;1 z+7(*bI}@EqeA|H(oPMvS-HJs2N>t6kWBYYx26p1st^Vzu(jR`QT&3BDR}pY@-L~rK zcbc)J7@1m#dZm1^-tcCaY8Y*5X2$N0uN+{ei48U3PdGR^HNSQJ@wJtxSI)yD3ARD- zpJbe5d2djUA4JZ*Q4>NQSj^Zo8dSQNXB(y@Y=aZGBNrFxgoKkXl7HD*tOTiBjMHtd ztc3TeJw5*85t$y#Cz~fkuxDYl7NA>%hQLO*4GqJQfAIogY>aw^gjpUrCu7t?5&dW+ z-qS$#ZaWnM0+bZ-IVd^xyhZ-n1n}?6<-OfIiUEJmlJ?g zW!$9t4^1f_BR{VsQ$fx7E^Lp>T|xKQ!hrOUp#-vkQKZ8_0Dxi8ZpiA z2T~GIDJeW=qdx+Oen55)ff+lo;_`5Dj%TV{B%_#+=Z1$E9j;?nSC1;5;>>xO2(akt zohFgITg2@S#>62p^zf`@=I$n!l(e1MQ905o(vE4CVWFbV2Aa~n@b##X6lfee9GC*{ z7-SBqVTBwr7x}dz_U%Ujb%q&cPD?LS6Zyc5R;^l#3Xk~2s`>RXGEyL4Sy_~T8sVHm zwnm~CVA&u~04*)7pXB=7Zg`b%>Z|7wnGq1}KJ$H@s!eS!X<@eicmWEZ)OK8-HUZmFS6U8@9-D$Cm+eqR;y6zm^A9`ld8(i7Oc060lxP&Dx- zTR?MYbhLkeewP7c3#9@+Pe!sMnOs2x0u@#K3f(3aK#}U29Ydkd@3gJ@0pBf}aX8hK zqU6*NxtL^0fmXG>ZC|lirHm|v_mC6rEZ03Z7d8>)(O;IgDYAH9sbh`HJT>(sDZCRJ zGFe%H42&{?Glm`cku+9rI#GK|dJi>!wpmYU=aqwQktEE8T2n)QdUsqd)T{uI8>me* z|E)MU=QkLWs^70ia_y5G)YGFxXb6e{F)&>C&Mm&%=>=F?*VElarbP5z=B%;(<44a| zojG1}G%tLHAS}n`5fo_InA?fHDG8f+czAKIGUn)gO$`=69H5;l$8=PyXpmPy2eqsq zJ3m)0uRMGYGAXbrC>fx7hDH-gzbMb!GPSm5n41g4COUFm=JbVtZc_yLJCwO^jlkTF z-jI{2M=#gX^2@va$$TO#dNol%h}JP#Sk0HBfA;bZ>8 zO^E=2ev7>^e<|GO>r-ZW{G$S4@@D*6by-;$XlUU$0bS+geATtLkEEH6^}1{2yL*FH zSFeAV_*R?L@CNE2h>IY>wTz4qP({&!!eI8YMrV>JpqcaqXefNWiQQUBz$CW!vsUlH zOifatsSsKpcgIAf_l^^T#q<}fq;$XMCV?@Mr6M*X_f_y+!Z$n@R~eib9&7%LtgMu@ zud#;RkG?+@{k6{B!R1lUb0XN^_&1eC6P2wu9p2O7k+T}^E!IN10Y}JVf}nUoXh6)5 zmQt<%dis)C>HF+#b4U2Kvh9MWH>8!r_ogp%TC$rLYMhFe*QhZ=S{1DeV=22|#}b>A zwYG*j2|i#D4M|*-Ow!V#C9CHpxhfwTLk`UX64+I$C_?qTG>Ztq%FFDNlLU^s7n5&p z!kO*FN4DSe0COaV!=xT-4f(^WA~Yy0e2lF<{MjA9e18*ng#ZXra^A#0A`$4D?P<5- zT&kQ;)eo<#p!(@dLf1BWrpdpovpcdWN0lo!gWd|}Lksf(er$AkarM8bg`kJcZ`KOt zp<0IPQ|Z5XQ^}7u+|BmATPyJ|%lN>k)OJXLuLyAaV}T$6uC;kAm?EeN2(ET6a3cJm z{c{!O6?F~S8UbBFw+ICwo=QTFrsbEd+G=}{dz!@AYIXc6O%i+mx_G#da-h}gE-iD5 z6(iKU8g_jA*RS3}bO|0VN(->Cv~6;t`{$=hQ+oeTC<{LNg ztt&Us-9}o{fl2~CoT)$ZX~UvF3k=1U62Cm7)oJj0(^E94%brzE2YKbyD>LNIp<(@i zGCgxRVKMsSMU7B3&8h49z>I*P-~h*E@Rig4sT*>@Y!41z_0J5D8Xg`JqVY}TYN*S` zzPcLzk=@tLeJ4}X60}nVz0^GQveJjR_0vt|lVKoxrFSTRdH_im1!dn8sk%qXK!p@+ z7jIi^3A(Re-Pex)d1ajj9RZ&a7fT$Nm1TIHB{{u~mF3nE$>{KK1ONH;)Q3-b0TszY z@T{;TCz1z*V*6V09t4l-fqa4+L{;nZw&};)U#)|$V-D8rI#!3=h0JHJlB$nm*60TX zVD&yb+LVn?jJQHV5{gCF+3J0?0DI9j-sPmT2&gor?M#wSvN{crk`GziVzO(E&U6V< z`s;3@b7C=7SH}j_4Vu6Q|6EeQKG5y^deBL8yN!>71ABVgs%hf&*i@1FJ7E0Z8$YR6TfWDgE>p-{hoz>>IN1 z$;qVtjfsB3o!?V*AnTD|Wj`^$Cujm+Z zB<`uK^vO{kEKkje7&GI!>K>C`NN9ZDFttPpcIqY{^owe)EZ%*!uwZOfaCov;L^k2y z?akcNijig-+B1YtRN!#o#U(hCQ(a97r0`$7nHLXhiORzh?ch0P^*;$*7F~;4YIiJZ z|7E+#@(@DL!@$r)0y^ziB;8e4|5TB!mR4{{LkfzEj(2^=gFOlXVa4m>_2% zU9t2`Fw7<*|DMw6gbdB#P(Bau2&N2E++%$8x))+6^0THM9u$+4Y0s0GpmK*u!@)@u zuu~9}qU7c!kMU$O_mClNv;GwpLq4|g?#;@(5$e7^2HFjlu|Q-uh3qJx%M`q3@s#$0 zb_Qv3+H<#LVK+c08LiylyPx*4qa_GuwC;rGI$Ma2=VO;3S>;n>J_?6j6A2K;zs|Or zLZ4Zu?j}Kj_JZMT3%V6=?+O7?0jP3DSM*atUjK&yi0@Y=kK%>NN3X8_=s&GkX_)Hg zMA;kDUnRI5MT}k~aMq-=f z!2v-G&hHMaM5jf0;~!~vfNkh#s;1~&i7NU6f;|{qctJ`5LJkn?&V3OZ{s*cA3XYE0 zfwENk3IH@#f!h2qS{I>oy6hYuFUHB`Pbs+0%)H@gy#E5iS513ZgzAn+=3m52#}wy> z!|e38akJRRi%HAzKPyF3M@IM9vtHoCkk=<3LGo69r}oidujekv3}0zoP5R_Lsf8+^ z?vKVQ6%8ZX63|j3Yc|zSBc>rdrwQAjrq)ltJ@S2DX3233Qj?6C*>7_6Y%Pg!e`yNizB0-7D_h{Nuv8YE=Sn2e#?W8 zdHlj`CHboq-V-<=L?f_qc4QnKx6NPg5?^P*U>4E7L-M2q64UzzgBH!Z$bJU&OKAwH z;qz43A*mC@bxw?Ty>*F3k_F|g|1KMO7ztp&thp^K2!DA$3Il-!DUkxr#Krx*((EG% z*VZQeT=pS0;hOO53wx*352X`d+5SxNZE>dvvc1ax2DDCv942{AMWOaCKOZe2;qAxb zO=(cE^TNO>00M&zH}F;#777qihYc!ws3#um0@OvSK!8l3s~Vd^^`G>9-^o+V7~~X# z^8cRRL#AHY5s<2j75__N&(@wQEU!`_$ERKNy}AC#tp5}4Z6n)L0g>v$!u6)kP_vd9 z$KgWk)deN%bZ8!GX<_}yuxqbzvbpJ58FZ^AEuK`|!|@g_2w1Qi$=ehp74n>1Rsot~ z=uM7lL|WIujgu@3NAT3p7T?FAz(w?*M&kCN%kxT$)ZTqowh%Sv-`An-nI`oM?48sO ziz+0b=0dp5LPI?*%^W(3OroNgd3l-lwH_~hY`$)oA1&ckjXzQ48w6eXNnc+c5o?{* zSh+~Efd^7UNJTRu#{1NU1z`x1Nkj~<4slGXt#VpvMcm3Wy2>)>L?YROt*!W^`w~sz zJGcv0IA-~`rP@)M;{ zNWjB`)X>QmtsI8mcqkd%4w8*>TGB;Qp#6Bw0_Xc94;+~iF<%=QHR#lh^1r-WHs7)K z$$3o%%DVB`=f`d*3)g^dlpTJiku@@6-mE{O1zi1Uj0Ecsm_1>9ScHWijN}RLaMHFk z2P~C7@3jCNgtWpH>Lx^C(Is`M%(EO?tbZHW-F1nNFNek*zmff2xx>&RP&wbde?Rp; zp?7Ac-9IFPj0KsQvvNb89Mr@pXDg_xk`J2YeHs6`rOxxnA50Je0~upu@#(gIBr+K# z06p_S%h6aOF+J)AubmRKZ#?QzpwSf?c12h7&cN%7wZRclaVlk9!kVzieR_iHs?8?G z#<3NNme&qxRH&l9-YqGCY&B6y`!$T@K&P4yB~|oS(C^=|76zG4{1lN%5~o_w^n9}8 z2p%AIu8Fx9Y$$1}AhsdJ>`o;Qfqo`2HCNg`|HSwoHLamrRQf67 z0u>bpD2SIY>u%)7J@3I)GGxF=gqcGw7L*3A31sd?*Uxs`yJ7N#hI0)fK&d=XeBT1X z)?j(8KN%Sw?(#`TT0afDrl!C1TiDmLlbys3x!?Hfw~~YeDI&pY9ka9iL6nh;Yxi>^ zNyI65dalsiv?ohWzA{>FfuXgn`T?jQIJBh*qZCDFm)yk(={(n2>&|w=DGew~-+<#F znuenT*|r2eB_lIky_C*<)_5rzlb=M}m)&d%0-c8k&*2U=bvLM24})%$-i1}Tc5Oq& z+#QY|DXy?QlO4BiykDx_{g(F%I3ts+X6AQ-@W{n(_$YO6r1G4f14Dnw$pbc|6Ci*& z!`q*zR8`d@aPK;icSD_Fz)M+_}<_Jp9yEt#shHQv1`*IvdOH(ms5%UjG^d zNzw2o33;v+ZEY_}`J(N$9;Hh>5RlV>l}Ae4Z*Mn-g$!H|# z>8VG2y>yQPtB}!bmtZ5iu?7qmzM^S!DhS!3rla#J)ZxdA5f`A(%X>ulsX|x6toH)# z)oZ!!7~eB0RR0P5q7)StCs0C0deTOVU_XGCWRZMn8%6@{RZWR#+5)hURRApv3JKvt z3JE=;Y_sHzcVu*uww&oRUIOWN&?QxW^$oN=IR%B=B+A;F<$@E5Uq#wPuwIGowgu{E z4N|H-nQFG4lJu$j@xIjEwm2`>#J~U_%qqhMoAJ;#7bX38%aYIHaHk{plToYW;-$3+ z9zVY@sBrXKy6||C4+o>Y(m|h7Q(%z=O+_~Yhc}A#P)I2v2gs1Uzig%}5Fruhj zz&PUiRm#IH-e$IpG{t-Oc)?NgP%Sp<<;!&(u9?P*FElX{m3TCSct%D(qh(8XsTh_R z{^^gXawdK2#16T0J?V`z$PbJ+N2!_Oj>>5=Zl=F^V?c9TI|4$Y`P=IQFdr}r3zJ5W z=guBZXs`+UEm^WxL-#5d&@$zgW7G`F_#2_Acx3`kF4aLY--{Z;_Vyl71OIK!l{rs5 zWV1_*7kW0BgLeF9?RhcB#~1sC1M3rZTtK;`4Eb~DG&(Ipzz*LmOknt{g(0vzbLcu&8~&Vzsqu0)+Q8zG|d*`1pp zNS0$?2U2d4y37Ks*1&V)9zeY3+kjnna;2tRdpf`_V!x=uT;^T-zj>z$LvjZFlIFz1 zHC$o1)bbRJaQL8cf3vCAXcO_c*R5&^l>r zxAD`q`T`DVZVLRSI``7ihI&ve-zQ%ThoY@4Q#85$(wduTRtH{k!6lT{Xr^tztePjM+84!eghF?O~OoPV&%gVpeOs6V$97wDp}cisX`PcA6!^ClBAa0Zalj_ z_UH!4)ZdFl`aPHNUR*-#SwKv)xb(gYe!SFYsQ9 zZ|cBq!=5+(8A7!l{Y09cUS1YFnFI<0jkr!Y=vzn=_VKAFj0k_y+m#jWPURe&ymc2% zb|+rQwjp(NdKUYdBnoV7-N__(ZxF#sE`s#JrKl+6b~Hu*$!Y0`kILvFOR4YWV3H`W zZOfW!`9g=+;+f+EY1-1n*%xu&;zz$65KEr#@0$xZw?9qXTY5@8Qr=KeVJ8%8jl{TM zFaql+sKPHHy~L(cN7dEoV55^VdGD!W`0S-lA&qn>*<&R>!t_#SY5|}$gQw`($?h1^ z#R)~B=#%am*hq9L*KPLqJ39!BlCdK&3ZFJo^h#8jU}`HBn=O2Q3uZ?Y#P8qovk|;L zR#O;PYF&0s(6o#GloS|5w;Ca(PkP@o3RKjO&xJ~})GZ!r4SmCxEBr|O0X!QZ#R1Mm z_Jl1gCQKiMJJir1ZL~zb)g)jBCG>qC+Z_pfh31yJzg&pQwKs4_3UHYUG_gba`jW?< zT!${U_VCxhH;|4fXf#{E=?0vqdo8cV=^3vu|DL6jf9Z zWj4QoC*k9>gTpzzyF21_m6Ox6nN{V4d^5<~aEC^C+WQC#(IihK1CasZ1cRvP*Oixd z1#7&}xwPw|78j>+$4>2-k>07YpMDri6$y)NoZ$-1mo@GM`(y?w+{#q zxAoi=+R}^ks;EN<6QWN&g|2|9I*Eu`=~O#3?X?&{uB$FrUkFYd>$B}>SRdnq5P)GgM;z55SdUm=ra<1Rfas3}i5T`J zE}j&h@VSS_>S!$h!{Op{EHL=8RXC5;EliAk)YL81J>dC~Zi8Zo%Y2LG&|EnC3Qe>{ zl8oc$JZCv@4mdb4wSC34z)L59_`mbu5-n1Z`FmH@O&dKd$9X_0S-Fh@d42Dc!8RAYfBSqub>r@l|3LB5^; z{S6ZvZh{^g($Tq_pajbD78F{TcWTz5^awj@w=U=}{)}va?Y8*OdpUN}nbHn2{^s8a2FrA}U97_& zt<#{Qp~XRdJwLs-J#a5Wu4vfcVCgE^VuXZeI=J+-o_ysf7+_vxWv&xbKMBP`;~7(=}c1>F~>YM6%9WzpO+48WC>%YCP* z9qAJpTfoK6-qhfITI^8+;1JpQN7}^TW=^4ga##m_BMz9s1wVZ+DA|BSnI*VPIt?hTeSAZBa6JcmB|D+)szdAe>xXI(N3+Q#NjHd{qCLRr2cy@LjpQa3z`@dh|=d$OsLg@50`! zLrWX*x;XMGHaa#QUTvJ|_zk$B>U&;*f4L{cVpyv4sOX*0yyGpX>@U=>Nk_jpt*j!N z3uCjDc~O2@UA8?mG!z=Xn{l{t-}7km?eP5V*G@|w&Bmp0*DPSzAiOmx57AHOL!_v< zkBC&u+wWV8f-?^|zRxo1gI&+%)!0{aXhcNg(dJvYcz8R96Lt@}N~x)`NHF6U4Hg$^ zr2yVfPm7~t)X1^FkdsEx%Vtuao$t*qEh*Rce#@$ZORBFMticl?VyhqgJmX0uZ=-n3 z(e&w+s;NpeSUb22tf2EnsMWGI>HT|D;%nFZ61W6W5a47=NXXfkmAcdqiK0G|%N{`X zzsjB~L9U{LUlWRjJJme%pBb~&+!j{(9Bn|F-JXk3dZ@)xv$&R0iCg)=qxOw7!@G=M z*TD}_cX<(WyxlryHLm#FxGh;w6|8^z1qK7KI2^vL;0Of!e{@UBaDR--Pv2JrGjn)U zWOyHpa_AtZ%^i$v)vuB~Q2OE>B+Dou$aXQQqE++YQBaDYZi7A=!rnEPE>puaM^^cd z1Vg3e7uoNS>lVEMCxPR$ts_-8OkM#487bgG0$Dq|Qsj5AYR=1Db-0ZKicP@Fm)1x^ za(S`!%x(9ZFB80TZFnl!bMxD0kL{(+&6fSF8XA+M|9Am>|Ex^B8(Mv+Jsb=&JwWnE z*Xa`!f#j=TO8`pCC_3^}fKyQLDi6=k)^uXoI0^HS6Ye% zj_mHoRy>KV)|Yg(Q6a5HAL{f~B(igw0cB-oW)iKe$i#jthx<`4RYZ&(DCuGdL{iZ{ z^z;2G(nhVXn~R^9uRMdI0C}Gf%#y(V@Ta}@tYD^D zxv7{tNPVNOjso`v4&(hWx)ZZIU?2uB)E^^DOU^w95C))FBRl@!Lntb$2gAOCTmU*) z1NzKg00&{`wQHQr{6+vl@JOUBz4c#4fsXxrG>oh^rmm4Yhi~kkmi{DEcI})Hd$` znKtU(yMhNQiQnP{KQY1hkWKN0z~Dc|Yr_f0N4||1TXlO97snlPNRQE9qF!c}-lM5~ z|2k6({go>hNau~8Y4*aeOCK8Fvw23O%@N}5KVo8b(8J3|vY~P*uLk*bi^yWccd_g0 z>SEu#5xEvp?(VeoqaALZ-`sf02G{AFmcGuBH@=fmtn8eam>R#w(3Wquy5kG?uSe@W zkK$?Va_CxZf(%MJ#w)C#adT_7*MikHChvlB{Ho`<#3!ui{o2)!Qc};qTu!u574{6< z1;CNBp3wFi%zgTGAe(aZ^8y1I&tx=^lP-MU&(6?@L$2s;SINLvucV-3XwVeF%Y#%y zrrnpYxF7G5o0!zS?4bV@6eB4X1}-RQ6~aaD?)bp?r#>ev;Smx2)6>!4zkkoW`CHg2 zi>)+}ctR=W7Hj49@q^;cf|3RRvy5V5Vrq{chrN1rb^8RKb*~baJfC`du4{Jw`0=&) zNiDae%b$Guv#@y5aFq>i z2{VJ%ejiwwo~Ok~P>&g-garNrNq51Elim*d*%lFaz=WXN@vIk|x7n3kDMicGE}hT6 zdEL$rT9K!hDr$2T3!Y&?&CepiVJbkW|Kv&ToEik>dZ>iN#mMlmvAsR9ySw|a!S_gN z3W`su8LuVY|3aJVUcPv+E(1Ud9-4sdbG{aIJWo$FyIFfl;yNXaRZ{mE6>bc`6$fV^ zvvBW03B>+%pFbkduuHo=5}x5(+}i&^>$v3dk5qL{4a4o*;VaLR0V!VgPQUGFFTeCf z`1WWH6kEY#4(=Te$jV+fRh4HkdFt4{pj+Zy;1X;Z774^G}8zyh| zPFt&dvP|4=_V>|S~sU^ zn`iAmK?fS)2M-V^HmKL#_6!RPgNy!m9z4L>ekSo+A%d*=>sQS2@p1F%x?9EiHR{`^ z$;rt{A~sa``1tSOQ3mjEgx|k^Hw_J4o1LAd5H!OF1wqVZ9ed^|FEKAKk3z(n!g44d zLqb9#l1doY!omV0Cb81j)6>)bCXIcKJ_X$EhsS&1GgGf6#VgdhZ16q%im&tdv5bZW zNs(?vOKS)b`0YHF*Vg2el(0zH?gy%|bGzM#M~UR9rUnNSP`}r$u>4e2rR3%16;#Rb z{Y3YZAxdFU5jci1tgNicZ6*#AM|O7??y+-mU0#hS?sBt3na zca1QLT9k0A)-^<$A+|5>BaL3AH9%4nAt50{Q_~=&7&;W`(vCd))7w60$95xW1H~M7 z@7`UWsNyZJsOZnv;ZQ1=^B<;=F9y#*77cCPyr80BLf46%=zyRYph0!)wixGua#t1oPIvM>%NBedGexb zf-XbCQ`_2;W96j%AmUa0flqeUGqq_e&xa;8w0b&1iiR^n>r=NeAEeg>BnSy+f)YUnRvJDnDBdPHuxV~k~PnGe~#V0p?DP3*-nx#06ZbL(SlLc(dp zOx{Vd>gwuA@L&Pb3x_aqad8S)*Q2LC+9d`OtnBO`XD)GYaPSd}U5UK-t$dNCrTl~M zWY898TSHXt-zS`3S^4%eUn}AYZV>X-fB>|??0e*_Vqz&Ly9;<_o=3KwU*Ef`TyS7Z$X(FKws3@WWG6OkcfvmE^iL%@4c%{LkTr-nN^?X>Z5UUNY=5 zziO(8X*96t^$U6E$F|EWC?u@hGIgH+O2Ep(qVW5dsECLem9S-7U{DbMmcm00DakaN#2DqANOb@3-98O zJ{sdS`0xOZ^78T|c-#y>JT1j!e}6v-j-Rscc|y&3QWAxtfUk^ zg{`!k=M`vkTQ*{hd>S$1T~t>lYXs+4SHEZFGgw6yM|)KtOOtg3%(CRl7Tj3{y-q#_#| zrCRw+J$vumyZ5YGpNE8=zLyWb^~L&VoW*bqX=#~P`sSzPJ*!$44zF}sIXOx#t)Z8fVB1s!pGua~trugG$FIxNW%Evc4%_?RsG z=S9~b-90PbY>CE?J`dA&Crjd8@c$QCZy8mE8g-4LNT<@>snRHt(y4TVbSNN=Gy>8k zNQs1WcPJp;Ate%mQW8pc!?*VFeZPC}xM!Rn$1x7L_Y-T)HP>A8>36o{R5F-!VqszF z?&~X58ovE$d+szcY4U#e$PP{SxC@)}q7-`ZuEqmu<<>VrO(rla(J3HcYx#FFqit<{ z*ccUis@?V%Wv8%Diq6VD5UHka0pA&y&konIsFh(Ikhmb0DtUVgBfs`I-Lr^2zk6Sv zjD(~I$@te75A~fBFdQO78azMVR{ZIw`oR9zAT}9KPVZ%yg5JA$aH=_3KBdGB=^Gm2 zIGNsA=y>mUbsA!ld@U9Ou?Hmv>()&fefKUow&&|!*}b977I(7Ity?vCe6*v%q-#S zL_)Z%hB&Xb#Qx>7riM?(&@ioUaL}AIZ)2NmWo2a$3f$z#NNgEd*^uc^_C{?XcOg1k z4kX@h`I6|dzjAp;8U7n9E`_N}Pwo6(>1JY17JSh1OQy8rs^)EC*~GZ`u~|HYhDkt` z@vM_-sz>Uvj7%NzzU3-ve)mg%Cej%O|e@6X`IbhA>EryuXrr!#P$epOS&Nx@a()-IFcuC_Yo$;(rG zFX)=bYxm=xIrCHD)>MJp?K%0Y6;$+eQoE`6iVLZGMR0c8TE35uBOw{J_;$^Fvd;to zD)W<+c$-EDWGY%(GTAawn7$J=&%XuqD9nf}Z~c3*HkXBpygUXZUib4OyZSn|zo#!oKDKc> zDyIvRU0q$BT%7V=TwHuCDT%zgJWo32l1rA&gY!$GO9CXj+@f6oAtt*#U&X=QcZOv%=Vi)09kA% zK0}+mu(!Wovi#Zl{2#K=a-)`ND!p7a?ed#KjT1W6-6#tSiVjQN21+UBQ3nSGgDJ}q z5A29DUv1;S`0*Wj27=#Ce|RNA4+?7-b5l}&aN27DilG<#q?#>*kA5pOBI54eZq@|B zxh@#=fZNF~fT)0sCeOp7`O2{z(0{ItWa@lz=Z<^#j*bws(s8Lf;INxew<8#*ZP{t} z&o>q>?EQg^J!W*cvq2>8FTWQN-Me=Wra^9O{HVpsmW>Gx4_Bx+eT$ZRSl@mr6YtDM zh{^q8oONnuW@&jKX{yD~Z@C2@V{NWQjKi?u&D*#5Q&UqPAq4k+y{u$bcAQKKzsL0q z(y6(X)pgaC`ITqz-rv&suzOz=ti?^nRgF;z6=N!m8&DjgpLB zhUZ&oOh0Wj4@5EXH}%+~FXQW!Rkw)3*UPhNyyOq%bs4{IwiJ*`+r@O%lBlK|{jf@I z?{{jU@8@RSt~FFm{y;I`9@Mh%=Mkx>Xj?_yvnZR%^h&D4PCol*6x7rr^Xum<^bAR6 z=WY*ctW|;M{VBWsi^BLt12zI#T%4ktTl$&_8Aybt7S%9X0EC?1+=Q)l>Fnt-+nTM1 zy%P^a1&G))RcW?+aq4UilUM@-SgS*6$VgxlhZY+f+x2UT@8vA1VWS&VV`#8g za&?B~b9NvOhG+^uuP4imU_&#rvjf>Ri{{$`(WX8-X7}z6RHNdMx3;z2fUT3UwY}%$ z?0g&iv1Das!J{d`<^$0qqjxOI-6{Mw4%b&cku+k>2Iom6|GT;1+7bqJ5T&3CI^d5k zfD3>-n06*(p3{v9toIoV}^Es28g z8D@7r_S9ff1Kgk}A35E!`%xnfPy*}DZmwO%@ahs6FTwZcbZUev+TijhU~o{0Qq=pi z@pw*Y>HUc^!}A$d1*9pc{9xOIN=ojP=zqe6+~wfna*ux^?uXTLJMGkd=O$L$i<4bx zY6@v4yUUL`UZvr`WN%~{Dt1-Us2=J5Xp(TetgUe~(#yyZ-MP*wy(EzyKhiPqy1jgA zQQyP5ei_c%^I3S(P1>dhcz*_2xArulePfeRQU)1!lktKk_iNF#%@IZgSy?JvTxK|Z zr1bQO;QmxkD)tLAEbMu*@F|zxr)RHkAlDh6AKAE{@&s)!^b3FJjagKfaHku<(aIij!H#9Va z^cv1zs2$CiLh7UjM-ns~%L8sR!EWWgyoOjbGC6r|f%(iN*Dz2+Q*#vXu?Cb;AN4BI z(x^ZYA91ns0ECD4bSjWs*C)DS8Dt%{go#*FTVdx zsx|$s`|KI@--*(Q&6!Uf-@n%y%oJ?w(}(SId|f*s-UP8SNERgZ^iq0<3pcKO7CSKj zWJzsJP^JLLh6Sp0T2=_#D2I!m%x?ojcC(CCV$vN84)g2l&`(ZMm=--mK2;xU3Me_8 z?0=ateifGU+fR3Wb+yNdG57o^3fSRtF((Z7Wv zBB`RnXKE()QIFqMN0+R9qK?S(@CCA+9e-U1g%SZE~@H z1*C&jR7HHn>v>>Z*TJABF>x;LG4tr>UHr#_Gh&8~7RnLCuK1(^RMnP;5c^2Dja!Ko zz7UO7n7BsL%+-E883JcS)$;T$`)}JVkv|q(Z9Z`F!4sN@$dKI zC2(Q14H0LY?|a8`=cf^XsoyVOFw+Gkd`e4lE2sT)r64ET;5NW)VZk9R?Abb02L6)g zq@G6xA#CcN^W`lYpf~Jvb61mwpn{B+Vmkj=edko-&6_XX--|~-JJ8(`ax;)E)ze#> zuEs%Z%-y?^8if*t7!v4A;DZG$5Q3kKB_p5ce$V@@!s{5PME@1WWVu++MCnWG+0V=~ znet5VcMH0{2!EQEV!FF{BQ)kZ^5aMATd1OKu?%=BwMCc>F3(ZDyv+1^;_y*qzaczQ z|NFIXd3tFyJz$y){T4Rj19yaMe?!;3{aYDJ%z1@VO6p!uk>*pRodLl_uj5}bPELXY zv3DdGqhw%e_&?GVoo;!gisJaUnGFf+Pg@$?JL#21;Rfye2RE z*T4Zp*ug3d%-R6yn%Ev| zkFeF9mObP;7-51x`9pW#F1Wiqg82B}*Qc{EqinXt-lC{fS=m?$IzmyMWeBXhOV{Ppn zl9J->eYCh6zjId05%-RN_o|6lO^xqutSV7`egFJ^{k#KdLBYl6U|{Py#>VbI32;yL zzOQBxYxb+{I_uFa+&cS~=x_Nn*=9Y=1*(z}a7>9qI>ehi8!GBv`iBuTw*6|RichFV z$Mz1en<-m3*~MpM%mFHp$aP%{8M;J5<`QzJ!b@B=Rh)2*_C6GAXP8{L+hbGPM%UUH zwk{`L22cLHq(w45-cnt}jd^?1!^7L4{tgOFhVg9E`5jNsAEd%llrLWQ5?EGRq%4X0+9tE1u_+tCpU0q8U4rd1pwm%5L&z29H)HvYJ zH!p>pA}0j})WNSw9RoIep2sisGwrys10OkG;KQ%Xmi;+eX-2>;-Pb%gXz#weC<0~0 zZL;^TdwZoiyK*IH@g?9Z-PfN8idFSNfZX6kR2z_TIgtc=$|QZHxr53@z7N z7|4PB%1>8jDwhQ7UN!}XhFX})7h&9zaCfKdj-ucMI|TnayTdO0T$jb&Tke-y)_yfH#V4?t$cM&f{};jbs#{xGl6kt& z%F2j!YWoW%)Pq^&RI!X0vc3etQZMGSfJ^vnp`Kii~sVXM)3{eZSH5DwS_hZP1 zfBz^56YI~^a`D@R^4oMi{F&ZEV0^IF6dI`ny%u#q?Ds3}^ndK0O2Fn5Gjf=jiP5sN zV;D96ek>mr!TjU}QDhw-tN?Gd%*hfSPF)Abr}JYY=&_+e6oyj$=H?7V1y!8EfU*uM zAPRHyn=Y>WBiTJMZ*ps0u`0h})4mBM`Y&I-^|l%o?T%*?B^8~$b5|R;Y$rtqj>IA@ zAUa5eI7#&=#xef;<_=>vP}V1MK%T@9BR zX(H#hsHsD4Q+@$6%Q$6$+kd*bux}zWRCpeuFf!-0eJv%(Q>ujG=(|oB%Y!52l2UCD zgs_=rq@=xj7eXiLw)idI7DnlCYG1G&{Rm=XBWqD2iV1ZO86Urg^g2D=t<8FX#&0qt z{n;`JGf~oT26T4MRA(EAK>Tvv-jR(qL&x^! zBVusKPJUQUL(X5+_Co2dc6vvldd$wwLY9KAEa>^rF3;_Q>)bSN-BK!y7v&gGQ{%y> z_z;ksjEB+(Wwv@N7q*MbIF^k53Jd24{%`Mo9KIwAZd>^(4pa7bP;q!V{(c{F;;l6# zhDf)tx6BI2L0o4_-`b|QZ7BLq;u|>(h5u51PmEY+iEeW;U!f2&#|CHJrdnKFyygPE zK<$g?ZGD9z!Fby`h4Lw!MowH#zn^{aIwlLjQ+^$*x~!qhX?yq=OTcXd1TIMA>#GS_ zIX6Z0B%E=Y{#Og2rwLBJRD~QPKx5y%I9(MVFUpN-^6IHb57m|m3o~-~GxjauO>Ux= z=E24^xtm)lq}1@Zo;PyT|Lq>@1EV?o!Bh`Qze@|2qfrAmsafG+r$~O+T%fTJ$F7gUz z0bf4^0>vc>;UwmCe-mmT-ntIIef0^veZ$d^;DzPzQ z$JD($vVY|x*d22$V_?7zS3zr`XgBBL&YdxbD{sc348H)`m|xyDjN<^biD*a^7=q45z0(ratfTKzPRS zxfI(O7V|N&w>MZgeBEU?luF=!z)B4qZ({G&P+CN5jyzhWbu9Ai&r+r;We+V4|MYxi zg4pzQa2w|!e`xvXvGOx&n*CKYa54x<7M@1kUpajDqwsI|;^nzZsu+#G^C~?)9Cty% z7i%+<=m3}7$Eq;m|TzHs+Nym-X3LS$p?LDZ$Oq%Lj(ER z)}WK>R*gd#FfU@@#e@{EKRx*S9aX;$yS(N$797P>QSV+vNQB>e zo94RyBYJdpHX9$G1{3vgSA;UR#~$6m+9>ACr|X0Nko`FfuL7f*eACC^8_ecM%_uU(bUwL197A5ak;mxCbF z4ilr8BN@f{f}gaf0>_A%bpgu+qb9_BIF_g#NM6U${*{&H6KKp?@^W$=)73GK7w+f? zL{Og20XPK9%E~#cbXh4h^OYy~V2Q01EHEksjIR$3_HQ;X=yXhtn- z$jER&HzX1nZ7b`^2hW`YN^IWhVA~MQA`AjtS`iU6U*9;R=+`|2;04PP7dHkrI&*i@ z0+g;Y3Q)jE_h9skhh2@W?k9=tfNx_?T+heoAiQ@MX%3O{z)pUSrQegGVSEF1H*=wQ?=K1V~TvXW+g zl_Yqnhh}jgiPB|j78@Yn+Rw)O#ou%x_y*%7Rho1V4JMBg@LC;N-cM{F8*?(YtRuXu zh233YLIo9gXsk*vEiEnfKvG7KO7Hx3ilBeuBrpLaPAV9m=61Sk zMtpWK{W|Z-p~LT9DLpJ@1?VEsad6Zc*DS~Uwz#>scVfym(y@wF37KEFK3MpSNp=7YmVP6-*qCuKoJ8O)wV5}+pxmH#BXAemWd$uvGSF*BH$=`qP2SON0{I8sKobI zT%kpvqfyS$q{#4=X1jJ_!G2+z2Bc!t3@j{omX=W?Eq+1*f+=IC3^^|Up;h{8ci|f{ z(Fg4jBz@@EsT`F#x0%?Mjo`#1;L4u4z^$8fo=3JF3b#|^ysw8sLPGG$jQpa1Hp;dE zn=(U3#0HrfT5$pUtJlF{^2l`^bVP5HdU_C>?7ZsgvNl2rNGLcnbEC9yZQ~0S#DS@5 zE54ab#P<4Kx)RQOYBT{}0DjIwW%Q=Va7If{Z>(2lQBkC12=hlrvlNAUSg?nmeS~12 zltC=P2!C1|FJuGsJenVKn~$HVg_@s^=kqIUaeQRm4i_CgLDQ43_4kftSf7AKZuminxd+@ z1ztA!W1+Y7R<0!r^WckT!p+RL{(vwLWfUOl#jhV?PWF{42H$@RiPPs{6%ip37a!d@ z#_MSE;>;}6B@*$flexay9BJ|zP`JM)7mEGyzYBKiy1#-INxBfkq=;$^CD)xfF(x(( zBftUCG)v9O3J*L6MxbV4TiSAOn z8*2*?;8b;WHluJuplTa*6Ud1p()_pz?~njzB%Af`0v=A7f^N3$ZUQa! zK(;OQc$u9a-F9%vIb8k#)%0n1&TsW&etw`{Z4Exb{*6bEJfw-&xF6axI&UL~ zLyfADDtd{2S4+IV4rh}Rvgv;u*A99t;eYrmR!moSZlvYf()xKJJ*_dOjrt+0 zJe&Sr#C)pYA-ZrnQj=$`KWrRSj1uzl5AuvqP^3G6CTMWAiB1!e?f)H`a&arRd^@9} zipN}tQZ4fB+sS13$*Su8o$Z!r2&$2rZ#!X#!&$)f?`?1rWUO6(K9sSI2iL}+f$tq= zA!`9#%}A<7JpLEf3nQ7kDq1U7Jen73(3IP=FhMY_9jREiUc2g+X)vOo#!>uVz5 z$`1bK^<2C*w}7K_aN!FIMkSi1bBg-6Z4oNH#=qq_g}sibNjQg2N)_@LRpZpoa`RUg zXY0}3z2>_1SGP^9bts00R!9YF7_Lqv>txcQNgb|R9c{K_>|A0fB$YQ=OU`AC^YkA4PH0Db;o34;@H^GgOHaxQO>v*{_krJOq6Pa%9ANoke?_o4@WmD z2pawJtmY2ezZ6eSZb9oRA9!*9z(5Q{xXqL_tLwO%v^i65vfRIq0I^uaa`vXu8Z64e zW@iW4=oq?@KWd++e5jEFbTnQli+_6;7mN6y=d+`hQ_=`JZZt6LGY*?SC<{3s5RoK> z|7v<@42ga4!z4sXbVbFb|K@ZBo)3Vl6755Rop``%&@fAN;X}wWcu;D- z4IdSW&oMWG8Uqv*M1*aHnu-*Fwn;_5Fd#~2H+Q1FOCcIW#!cc7=}Nrcu`oXp4fpCr zSGY3-Xlc1#)0F=HEYRSQjllBn-zKvH_QD=}xM;YM@A@%2i4u}eP!bc<5ikQJumf%aV37O=YxXA| zJ@6zGrOpYBQtl=soT6QCFn*!q7~WIY>?gQ028<3lG)HipR}M^sDBG*x6Yd_*^~}#3 z2jEZ`bX_qG53d`j`BVQ<9Xm^?(m;C4D*P|{`TY9zs=~bQ`N^qAYrBN!1Yr(iuDOM! zZx;YN023lo(oC7pzv%(CMh?cVd<;myHiYFtVWF;r^Gs9>P4)Z|@9k3kNi(4wg{74` zG+={zVw6pV2!jZqVE|mmN8d{^01bL8veXf#?Qf9bEuyY4f_Kxnxr2LiXvoO<9aEo0 zXBO}ie>PD>I4*q|Ei**kn0ZK?l9C{lRaS6Q1hOR3Ys`ZR+7{N28Ahy-3_rTrQ5~#X zVQWv~I{84&ck|yhsr%P!xDO>Pw^yA@6m2G>#qt1Wz|ty7I8>+5%z5*y=|}5yy$GO% zXgjuoAneq%PYfcLcR37G#1$FwrDT{}zuMvb{r;_Mp@V?w z%7O}R11_Sj*uFLsJUKu9!}XvH4^9E(T=}nq3=+Q3OM}KtmEsSvc-6S7Jw)O8yU&4A zlrr+wwkQcgxlr=wF75xi)HcpINysGeG?o($3aT zD{QI;3V8VnP*+Fm>z|xnh%C0DtJY?%$UegGNP;d9U>hBrWZ*1lIb-lZ6@xe#4X^Ck zNE8?F>j51gzK6~Am5@$@hG+gK$U0yCzx86lGehLd^AE;T717qyRk$+?nnjJT%(&e) ze3O&;;(NzMo>#$|yKQ~(?}U&+uXbxwN- z0hw80HEdlcS@@Pps0`e~6hFJJ(~Os2qrsVC+kx^*CUU181X}{$?({$EzFP_97=`M6 z>;YCUIJjZ5`&s?uiz8EYqzGy-mV@Wn$@gRC*~kfDQzZN5$r9J3CzD44~Z< z^&1L)Kg|Ph?Iuamk!=V=61A9bh-&s1mFm0)KoaLW^p(cPV<&&$3`v@_KG?cHBb@@p zjjinjf^p)>a9~<|2i#~F0Uj;mZ=5e*WIBE{pv=%E$kF1{bMIoo#|hQ=m~YsKTA=$5 z^B}$lP8k9ufG7sg4>xZY0{ftSP_1=qNBwv6pOlp~!lXyoK$4Y$-B@s3{BqL!Qyk!& zICKu09G6lMpaK|fIK{9MVbhJr4ce%d5v-M*l2S*#^S5bS=`Dk1 z%Ame?c-hXYc~kYyIkOx|DshNSS)Z^84b=%|*Ng{f(Ef5R+P`?6gHlWs12n8wLX`AO z@HO+E2!&&j&{tXvz@u)-6;x{P6SO|A%BrUS;Nlz4zA0kCNXUbZ<)vQXn+xsn;dHwK zL4jDle_uodkrF;T{t|GuWFP#BGX?k~KIdLzZ|^O@0M|}|8!MJ!a5LG)(Qx2Gn|3_{ z$cckB zQyz4}pKL?uA27&lh?_2w+(P-PHMOtc%R0f11!xI8 zraFQu+4`9@^6gvqd>bOEWzUjqFqHgbS*F{UFpTY*$eEdOD(pT`%q+x*#>HpJ%lEx* z@gt3<^mq+%jYx^#$%#k1*ERpdn{EXdpVzOsY<~%31J71P6{k^Asf!E^0G&oH-#hZQ zCZwq8>Hbg_F|T}Ghh8>e{^O@65PcAT35)VmU}~R0l(7BPe0d9CHar$e3tSCU3{w5J zbG|shQTHr%;X1tfWGO^hdAI1XvXs=#WG;7n*XXiedyqX zgPLI;f~T6;W>Q>y*V68-&mQ|IK*Bienlke76=nJPnF017`!8DvPe3~D=?p^yF5CuW z8stA46^|QC;%fY^sY-Mlabu|O`$tDFGL?5p)8d;BQHsG5!aTl-gNw!n<4J$Qs>9!L z24U~da$AY&I?Wf@(NtJ%m*@M>?H=t>APA_>JB$$4V89-3n);uD$I4ykLD*YAy)Xc5 zr3#VUK&q&=DScaQD3_b{UkNw83!$RHMK?_TUBeO(HdRzl3t8n)8=;W}5bLJVT!@_F zfcWarS486jTG(tCtT32sfGGMPLNDzsVDOdJzlDY!7r!9_1arHU5X~&~G6M1_RQGZC zqekeqNzS$}ZQ9@8Wr0RXsWbwV6j1wZT-btc2c50{d5A8-%tDwU&@wK6s_q~J2h&yl zwjq)^Be4u^$wHHO*|M+NTCN4z4YCR$FM{H0Y2S){L_H3w|68astx!zI#$uqX2RD9p zQTg0%Ben4_c)1}|iqOG#SRE2BRJ5jgbSDzJW3+^rSiXsAX=q3z;}_R|xIlXJEq})3 z#6dBvr#Eq9L)hR8DNqhvv-JcKg04j-BecAcl+*H=FD>82H4_S*J*1<<=?LCLjbUkp z;uR8R-ka=qIMtS?^uVZqoWIzCChzXw^H-wGPXyo0d@`Hg6v5Tf0-BG}@$8HjdP<;g zm4M!$vF$9<`h;QU;W|9bAx%}+QA~J#JO|%1z3cKEO9iZtfLl>p8+_k$vR=;M;9A@2 zcm0UyQPv4yd(6Y!?qL*9M1Pdx{KoEX#tjw!^mfn>%mXS$U^L*+e>U(V`gEYrV5kkc zAExm?ckV5qtTdr=MAeB%U^5FB%%WGkg06c0W52W>QQ~gR8NCk1DOP0VIr>e~_6RCB z2vVMhYJ>Cwtuaz|t3&BJ4dc6?{?u|lV>Fwp_&M@jvnQ5etH4k{B$qYU$i?N(#>NCZ z>w$Ui{<76&YyZ*V`YR}jgVxrL1)Msm;I2>MhCyTc%5cZt!h#8U|EzbN7v_y`qM;GE zZ2wZ*3Lo5Yzlk^qpdx^nWsFz_c2-t$0v77WbImeSUp!7YFX!j{hE0#RK74kw!-aJA z)ii#izqj{t?kq8jXzlrglJZvKTh_kgZA2Rz2hQ+k4_?&oMTH&H)09BMX92FW4Ushm z8Xj~dy$vjv|A*8VB^>zexYQDTPKYl>sE?2Y-f9SR1!#57XTc>2B0DR|Ec^c%EE){Pjk1RF;QVN zDOV>Mivh(0uvjF};BBAtiM2)Ejyua=hKr4n-!S^Mi;fMMeFH*xi5&kILC^%GwQ@Ctc|1ym) z;NG>VU88%tJV@Cx^7aX1KIbo?Y~aO54S(US(+5IRcZ#{;qPIS^D- zRpo)z1I7XR>efFS(r1~sFiB=qRaM(x-(Yrd;*kx(jT)#GktR4TDpWnc9np4(d-u)6 zasqv5Xp`H$f^2-eNJA~B%Ie4#jM{?(hDnf+;^RL<@h<*y>s2I~S&+p5>e!Q4WZvi9 zfq0*9HT;D7Kv5tJd?~{iEF%O7<%IDuy^gih~|10}k6qSdA>Q8xqJ0u}saWfN2ReSVk zv$Z3{u_Y?+x6`AF8e2@UmcDz^T6~#rK`r3FvyUb1eln((KeoEO>$t2yh+wRbw-kW~ zK@c#|!eZ|f{D8>0m^SO0Elgzz2?-xzkBhafB$bsvO>e#AeIY19>q~HOrQzr#+(=~uxxC5uNW8z5WN>bH_!%Y1AzOFCXbyZO2N+utn9FFiR~`j zW*<{nz?!L=O%9wtD(E4Jv)&m3FD{Y9ad!do3^a@3Wc+paL~S2fC-(McW;Z9=&Vt^c zi7{7WZx0+SM5lVDuJ72>Ykkrv;M1|;n-I?2Wu{(x1x1ycVsY_iJ#KAdxyVeEX^X7& zk7LLoxElUJ@oe_)Lp0x$xw9YE)ZVo(-6$!sM~DcZfq9$!3^j^kvU4Pp*unA7&Wzlc zcwij^<8OX}RGP^RXgCmg4J(+F{}*cIK0Rxi$kr@w02MeZFf5GF75Y)5d!nzVAT5od zoN;xRzpo%ZUg>lFrnr(44?sTn$ZHd&kKn5iUp&1UPYp!dhFM*VuPJ}px^hJf4DVYv zd_-^WSX!8`sP7ElW@lI6;(m^9G$+RPTt!AQc;iiY_!y^MA`-~od%k#FA^u(igCEsY z(c>o|L+y@Qy*P3P0TYnKU=^CLc<4mGh=@l=n@J`=8|WO|^6JE|XgaunTagX8!}>@B z%s?Y|c5*Qdv6aUd4L^b!UI&}3iU4wp$$|tL)WsTSReXqo7dA6nmWGyh|1QWJF@d5& z2#-Jt<+7z|HcI=yT7WNmNr$R8j8C0p>-AUD{&nXFy>{uz9z3wY$L9h*1c6x1p&8r* z(#!dMKc!PGwZ(Q&Y=XLAz{y-p*e^X2I32LvYowK#@A0&SJHGo@^Dk#a>M=BCA;>(J z(jo)mr`hKrEZlCAnE@q)A^l!CWHwP2~J)D$H2==g%J@ z&>9Jcl!Wek{oiZX-k`*BcRv6jt`8F_9a~8Wisz4-(U67)>-C^*Xz76t4K0S{R?>ht z=w5f`{GM9RHSZ#XVddl5YKZiL^Io0(jc{f( zyRnl55J3Sbz{~;-Y+}R(73kjeXA)szA$~R{SR4Oe1(OE1Y;Z8q^mp%2@}p`JsKVrd zj4ajXWc{28^FILvtjZJi=@6r#D@sF(+EV)deYxcmyHvqt|L!O@6Rl^!d>J-gg+MiM z?UuT4e?Y-^g3KV}(jIy{ZB6nSI6C=}0o6w68`T7?*+}CtDxXbW2!kxM8h0kWxrLA9 z{>nb))i8u;%P3x0LUV3*HDVIL|AWDAp-nhH*|{7;FH*}5L=hvi@2Q;-L<7XUm|!g$Xs!}^&$r(5#w;v2 zex5qln(tZrHBq|W-qVwo$PnlAKTAO^9NO_we8%B;%bV||!8@ReHp*L~=Lg@*A_wp=g;36}_7dqaz%;mmHg%8{ZGvosk_*WcM|K*@Z2%A{MEn;Q(AQMhnWvRo2` zPoOU8+1da2`Q5={k8l=vEdMD2Rt=&40}YhXpY<7B%Fi%&ZtwTuQau?!*ug=~!uol> zlJ84el#4aPFi>}BH27XV0(P9E`XPCAwB`IR>5jVuHl=m99wl(Or2H>9aj6OKiz99k zggH4{o>MR)2ytEK2r%(2dDXM*1Q{C_FNPW&OW#1n?){zk#mxMC9AM25>av;43QJIP zAe4Uo$V;r^x&ayGeoz@y+P-Iq7_At9ZX8Gp9M0XaXEO2Gw5#)oiSJd&TCbS``jLF{ z1f{=U0qOO|M!8E1Z3lez(QMhfN*^rIILk-Tai4{faB8)Gb5;q%P?+yYn#&NgLbNy> zTxP>phv&2vA`$7*dhLT6L40e>Xfqqz`?YUY3=$I0v=xM+Jpc&M_rs!*&Xtb^$mph~OQrLl){cI%_bDij;Ouf)8Pw;(R^Q3p z9zM4uUHN3r4i$;kgtovVJLvj(dk8Wb{SBmSSqgdYx$w|o%dcq5V7+t-hvl1!!Y zO=*;$Jn5>o8tx=2Gmujr?hw14eH|7?4Ha#qOq9zMZlMmp&4kqY1kv@K$K+ht$ajmc z!FV9_`bs_ZPa|TRhtt;)`i;bUWVB<>gdVpzlZu1&YP%QqR|)2KbCw2fI^G@VX+SV_ zF!}+yeC>sz#dH`Wk_^T+5yF1oy`bSA3=fj?DZNc_g%GN08zQAZ_xI3bMak&oH0bp( zr^i87cz?|8+G`^Nd30({6!71f-~Yyb=fw@p@2K-m{H+VDfdiT-A=%ip*K_RG=N_64 z0-9IH+w3SU9Sf{ieq^wWq=Ufg`g(t<;}1ZI&U_l~fYGM=dVE1eMVLien&JuU{VM9`yPq07iNLu* zT$171UK4uY(1Jq=>9}2=98p{Ay4*}kb_WP8G`teX=Ylht@vPtlu!-Lp-mzfZ8Tu5V zuv{7b6q2a5%kX*`dS|U5jpgDh2s_;$(3+l|oYek(`_vV6nz zRLz@wD_S5WM#>BW6~dJoMs?D{&p|7(^~(oCNa*xrOp!X_@a(N09`1!sos9gSo&tqn zlhy@?ogNx;>#-bSxFRs(2$(LI_0iC%uhU2dz6` zq7VwiVBA_`sBD%7zfvsx`PQj6na=Qr6%{m%Osp9H(~A6?lV{m?p|KqfO=&7H0-3^< z9eJz_lD!EIrsw9qt*WZgr2UJOd_v}X5j$iTV`IRox#QX^(GhNB21=|iuroi`?VC9X-?Q_@#XbvB!}GC-o#MNy8CbKYr{iK_=@nPsg9fobY=~_L-C+SIKE3F8 zhMfFAa^f!+wpU*e46G`Bcz}b7iaPTBdr)Je5Ll@oUFc+6z+`4cRaHP<9y4MtCIpYh z6vnb)1`>`LF7wk=^vs>>2z(d`4eVHWJ+R!~+B$zd)wo@eS0;)(Klg@~UR^w~%Amul(HP5cZGM;@Qh$}OAJ#P??>bgVLGRg7oiiJLvf z<15#QP58~cb1ob+tp0LKWHo8V>*Y(|N60XYo$#e)cc}-4S1AxPqL7t5fhT>m1;hD> z!EJw?YFLf2N^b3 zbAnT=Q&TBV&d;HtN#W+^Cg6MF9(dK#yjkr6uOvDEM5r}_wu!rN`fuvRjg3g6yIQR? zGZf$#vNoEHmX(#ocs}{+TD8vWO%0o~SJAc}FF${RFz?OBU=RdfBOG2`IiRLE+n9M< zH#@R_fLT0AB?;qmtjT4DVirf+F>wmINgRfzdwYB2U#`JrgA7p5%F*V`AY|+0G@(~K zEXwKTq`@Ys;9RMwsJH@dPnHUbith{6^LY@)88ET^zP(*y1#Vp=yuk_YT3^Z3OJu$U zguwi*-q~se20G(5MZAv8kG6j5+ZZ9tM&L~xz%?d7NezL;aUwStmvN`5W8j=DOtL!v z8Ouf8p3`~4)}mehY!C)|nfxY?MX#H#XNJDF9DC%J?O$%g2}w60T^ZnPG50)JYl}}z z+bWc(;K22E1sLtXpG!dueg8JyeRm@0^>5#}pQeG*e}2ZGZP{?s$6+jHNZ- z_x8%Iz$~h%qhJ}j|f&!P%s6PoD`RmDpKARS!PyiycrX@t~xssGMn{Wu;Edy z9=Hj9C_()0*VENjyfi)ss-A|KFtQm4vHEO(k_ zJvq;}RLEhT+{~={i+m4zab7B?g&o$mXWsMP!=F=D)Vjhf-(L-Z-Oqb&vu-Y!uTxS` zz(g3_AQ@v~V*c9otLbhLgS}HEgTXgu9v-zSI~ZFSd`l&O^{k2}Kx5(SVPWjN#25bOKhcd)CA3eBxH{wPs2(wE1wkzp| zn{l2GMAb*<98Moxop1BP3GvO2HX&tB{ZHUT7#-3hxB~B@%jcGKGqOSWBSnG{#XWta zS58i*;QC@vY>OMx0jO2J?nw$?m~QizElzK-iydU%m$L$WbFNHmE$3T8eRGg?EReXS zr>Ai|X|S_}<@;YX4X-e=8J!-VzO;_xVPt%>uz!kJ_71LVzY*_)wODhSSh-Gs=Dcv) z;*P7qnCMk{;H$2yvpI0#ii9Aav*DM`xZHSosK{{i-5{%{XW|% ze7c0aoP?Z`ZNckTjm71qLXRGCXZW76b%0&c;riqx#bnEX-`N4%w=zSaJn+8gvpbxd zfuU_OBqdMJ2J;zk{Z5j?d1{UQt)(C1(L~hw1t!7-iJhOyZK0lh@WYx$jEs z9Yb*j|KfpLKmfo?@Vo&ySN4z?85z0Huei7v`EjX}KIZe5;k@+iNr)V{;AbN#C3Pz@ zG7)WqKTQ*q5B4uEDEOF@a|`Uf;wf!jzWnuj$_VVIAY+=`)2+HyR#t{^g}FLi zr74X6Nq%xB2wHBe5L`nmp?J&by3H2+2r}=3SiG6c@xAT!FLeKfX9xrz5fkhXW+)E7 zYhPvfU12~Rvwr@Zzqquy`TpIzSi;nJFpU{!2Oli)%Tb+K%Gk^4=E?QHb;wABL zLy1!V?=8q@>)~5XwXm|1l$6Y#Sl{*xwh0A?ngwvsV7+&*6V{<^X&02Q6?*63)z-B8 z3PN|&F^$C++1_{bpIDw7+C1@y*&Z9Io1Iz@{kk6g?(lBC5`|E0Wo@zM4zYuhY#UH4WHE_y46Ne@Y6xZ#_oi)I$Em# zu+I$(3k&SyKz4NtyJP(9_$-M8SJo3t6o=vgw$)IoI9PF<9dE}VoEpA-VUB$~`L(eS z2(SzHhm?YZQGZ|Do>}0N_w{8v+Ncj#79~TXN^^rY^T7IKJ>L&1Brxx$#>K@2$uWMq z$oVy87!KR@@4k0&Zd0jsXJ-#!SQkDZj4mtG<>utbJu5CweO0S3ol|PKzg%5X61OZD z56ckrO5_{g!C7MMN;)stwh8-PQ9`1OvxD1*Q+92akqe6k3Re;d35g1`9$cmOJSZ?W zTzlk^5b53YR9*cW>QBG;O=>#j@Y!^7r_#dW;z@<6;12l61;Uh1y%1H8nh5v5emQ-VB)r}FGs z^ykk42s^)ogt2QUKX8yJ(W$%%7q+0RELe^)?u*##vJb&0^T>FF#G*YJe!onG;+dx_ zm*{J1ewhB?v#*o%$X}^z)OHu9#-$cU2Qxr0w@}_&E^FQck6Q%j0W^X%W>X9e41_U; z<#2iwzyxy(3llJO**QE6s;u1Ak0~twiHe411}|Yoi9W2#DV!!oQc)Y@@v`iDM_(7z zkp4Wy$!9>qdH8*8Ex)jc2)ES`B`Cx|l8ysW?0H~J`Fgd>M2YSRxC%RN{@@3XqW@Fa zTR>ISf8D}#x3nM9NU9)KP=PZJn%A7wmMfMe@fRGC z9E$o($^_wL#B^f3#oXW&#FU0=)Q z*RSfr!osH8^X-6EKf&PBSMVibPJ(SY5sn`($geRg2Y~$>ISiS@(VF;S11R8lZ%87$ ztW33-eu-;q@EhUcpCm{#T{N-e6xyH`C}E1QsEHyteypXPJI}#R?6##2?;1 zT|GURjg5_Ptz^Mk0&%2*!@{J&R1wKY2;a>7T@*6vdWFBg)`ch=!c14htcbBJpuw7 zEFHaY-83<2(w5QJ7xaR)oMyhodip3$7_XzZE*%GWFAc&_v-$ON5$l2N_Vw?mY1-pp zo@8cYqig4oG=5V;g3f(&S`s|cl0Nt_h}JpIVIV=vKI4~y<<>}^cMAWL+nh%Fp>V7~ ziPSD=AKrF(F+p_wjEbK>HyI7saInJefLNHP!#qXKp^pYO@IDs@6ZT=B(qMtZOE8mE zInmdB#EO>n5$)^{9sFos`>P?Pxwn#1)u8`DP>m50*nX#fZX^7F#_fO$&;!dT@HT%G zS>|Nv+oI{s;EIifg{026Wz9&Fm-%=04p4&R)n%=)Ya}^*LVlyUR-^Xc?lO-b!z>HG z9(ckXZeHNh`Ht$o$Nv0!6%nl#JaTtr-ldu4kGxS!t_b?^!UftV@aV&Syj6r#CqlES z?rr{WmX;-#$HH)DNa9hwJ6G6-I@XhFsHVoLc`r{tvTEj6&>9zmgn;{rh9iwQb=2GM7MYn5D zTZP~_jJH_>2&~TpJxeM+A0lcmd{56?AjiRas6l)8aof-kw)c_T2U?{T5M}PH4D+qZ zD*ntbDY5Q)uA-8r9{@HTXa9;&GnKTT1W%s=rQj3+mxf-6ou&60Xu71Jn>Ur+{4G;l zcW2gn#_UPakQ+;G5({V9AA$UwZ!y2X6fl_RFE#Mc6pohp!l(A*U&$X~7L^k&zSOH% z_uIl+d~dJM(RI18xO#2hq;PWjlX5r7>mkVrD<>x=(#lF<70qAEkiQi_&Snsy71>07OH8b>f)?iqEEBQy(y+DDM2yS* z*T>0*{Skof0syIoZ%lE0pe3M}QH-YgcJ2N9J6MFV7NW0&utLnwPuK9FgC>WYLe%iN zpDnP~&7iPo*y}yaflkV2$sxu;GjnpNbV{~+8eMM>7blY$8l6Png;7+|`scr6UcR%N z;WTL-aKp;Q20z$dH!SCZ?Cj9t9B&3DCX#OjN62A0!hLPeeXovF%;)X42nGu6aBvb&=rsHRq3LnAtj@Iid0@g5gj zG3<&!rOgnms2+V$T+Bs7qwhB2vGK#h!;3l_+(%$|PovG++e?v5D z(9qT6`JnqLX|@VAH$ssGpPqu8TX5F@qZ2JN5_EsqJG;qEyKro_JxVRqt5Q=R<-{&< z<4IrhAqG5*!)2@mNGzlGvsdJtf7aA$s~)jbnqy~pDRhNkp@y=RC@Io?z)XflAKPLj zFwBpiQPg&rsp#t?=c~;{O;3}YA6wi6T*16|x6Yv@U@(0M+}XNTM!M9O4_Mz3GuDEk z5b4@@w6*9fa#qG1qRPrA;ZYCd?d|U-B<{8SayEVX6iHqlG4U;VbH1ayTiwj-U0>SA zt0T~ibyAqTv=k+M_Y((4iTK8isJJ+mpFc_4zg6MB2s$&Jzb~3vT>#+-wzA|1yF2i} zXpc{VI9EAkW~Pb7@H_hB<0U_h*zyozC2@pOiUr^GKoBO9?{>dDAztc!+7odt3+7)q zYC9N$S>oT`R2#_hhZTBV+`J>8#SaeYy02NqfkEg7Jlr@8x^uAWJ;UgL zrsOXa)hXK#gBVceAX?jD6&)W>;Ordvogj#%va^#tI8<(FWmvcn><4e&4}b_}dHVgK zj!s1M^{dXGeVHms>L>x(*#y=DD^Xx+9=o$N^R>0b#oMcv^dAJ#s;-%0;CHzz_wtyK zS#35t2vb5Tj9{N$4eLpYS;w25E{faFw&z{h_4!jao)M9gN5R>w{T%WjSc(Uc^3)_Q zz%XM|ug(DvsDht560tp9%Y#b`YfV&8kM!g!ZaNnm5ChXgqn7z9+fJxi>c6xAcDjtU z(hrq9J-ZZ?2f!5XuDQjxxVX3oK;3xwH4DquAtAV!9mB(AC%2=3 zHBBgbPXcDaOzS^f(S;nu0AWype=JCry`+phT)3>5tN42jF)S!`L zUlLSh<5)?H@sNayDg+BZ8rBm}Jk-|@q?e|taQV~YoS}P{uZqa~(6Ifzc1PL_4|w0= z<5Cc`+hkotvTBO8|NeHA45d24pDEAsNl|QgI6BOyQ5>K7$7cCwVz|58{e5r);lYIz zg-yXZ9azrg-BF^Jp#*&<&NpwUB`TYFqh2a^uYbpcekQctma8(E3_f&H*nD9!`~D$k zvW_cdOz-EP%L_wrp6K{malmAK{e4LZ$<7WHd^Txwb68rc@lZnpnWMB8j8o+A2e3^~ zm&~u)vL+iFazwzBySuA&lbmnf*uZjQ$xHRwl0`1;)@1x6*gEhvA=QeR#pY8v{{XVI2EDvOqw}$P->dGk< zs0OvlZG{iTCkdj6-pwnkOm*}WupMqhnF}aV5yxZs`xof&Q809HgA9S8^<rSIhq0zuNT#3MC~@ey%8!3lY@{_XB_@2J zC+DlE_!@M-4OG;v&z>)J%+9_du^Y6s%ngD^I8%%@C=hv&P4yDCiK2YGx)CexT?Vwf zA*__PpE^YL@uhuafG^6)NlQ!|G5JwK&z6x(ORHY5@)Mn;r1$nh*zB|CRS8NB9O!?Q zL@YJ6Pqi!UCP+&j?O|FE-3yqU6 zh4?_Q%mJ-bBi9-%&^WwiV#>+UL?mB0-lleTD6j_Xd(~M-M-Jcq{?9qP;ygZ{VRWRQ z%ZRBcBqR;ZJz^4)5Jq|Pwgn_c`NOuujYRPCs7ANVm1VaER~X0b-Bs|FSqX+G^PwC!zAF0}h$zeTIN5z>LL?{+Bn=FdEqg zVr2kh%^z;aL!zlv{%q3XC5%CMNl>6R@$&smffY_=Ec)Com_Q+h$;=eK+oYG5bFeoS zk%BJy`J;$-G2j|RTtke)J^%%>?&jWSSs5nt74;r+e}5bZ4v5>f^o`7*PW44unYqu2 z&-JGpwa2T)@hKwDCFEjU;@3Xm?Y@qSLylJ{slZ-Z?(JofvA6%xFY7Q8|K<&l@~C!p zs4$mgKA1L4gmqj|$&)+#fc^254q0R4MqHxifE!CNIy!nDKs{Ln1yaa3^MAgh)6>&| zJ)UTYZLF155_pcNDQB)nILugn%K`UpRZ4;Px5rCGBaUX*R3#FcWo!b8q!gmep^nUv zw}E90Uo1L8v0!LwDcx~4EHCfgR5q~`sWJq?T6>YO#M@Wxla(k9W9g}n!bRP0EJbns zoD0%4{`~n)rH2!xD%|D0--KY65tPJ0FKVB{r~0No;?{#tPCJVlAt`*CqboVFL>i#wye1tgYunR#*={21TgmW)1~4BczokcN0Wf`I;RRs=UT4INnwL zWOlOoga)p~z6H+T0w))J?fW+rn;}jq1qCKShx2Pau~*TqYu#^6K05q8nnch%LUaR| zn63Ms`c+3!Y?-$q8I0?&CFL#kTy=l2k_X{?WJN_PH@{YErdMd_4-ov&vFYCE*5U6FJDR_@X+?c8Vg5hTO2)sUgN$+UaAxje2 zUME-Q&@KGzCiQip&-bXbjg3Q~Hkw={w+1)@$0!j|v~fR86VfTaQ8p_69R+m;oGDPq z*@a*5*^u8k@II*nWCty^g+E1l;-3AV?-0{v1wtT)>&3{-Om^!Q+1C+Ugf|NsTK%WN zL7cL(*Eln{QKLh>3Ya`RMPPB68*WAk=ZBG>pBmBzbTB(di;S^wc3(j5oLUgjgU21J z)JlKv^3ikAxEOt^Idm{NOh;I@Be*JZEm=|n=_ivb{36%4#wzKrrgE5W491+ zi|yi#VQ}0sHl7PqYXudyNgoGv$y(ev(8tCYJUm(DV-rF>_E)H^2e2fSl5Ew5m}*xXGRF0ZGE}FssLIE*@0L@b3izJXrsJv9K^q<>j^iXnKT->d*Yi zp31QEQpn0ynuc?XO6EpbwPYpdG5E`G}N~VMB1`=d0-r|C{Z%MJSQvt&#usdr$ zVhs)qB!}ky!g4pFWcimj{rE};XPQJPx#tZGTbuC&1?7NWp;mxbTsWE~=D;1>Ayuso+zO zlzTIn*O>Razhoru><#IH&zG!n+Rqp$g}y>MsFel_-99)b!Y(U!%S_aQnwn~qS9=FJ zz%BJg>#6N4<TN9Kf7wBI&XP`Yjxk zRDas~6dU)-tu09z1O+#KF$n!pQ2l}!@2IIkrlD1Ve)(g-c$1TqcYNO^^Ji5$4e~=v ztP326Q2sCJw2Ay%X5IhJG6S|W#k#RTyBvYyoIDiI$y9*6_CL>cK~YhtY!rqCY)TOJ z5yk)q6hthRd-)7OUw*A&6Tg3LWCW@aY;i9=)45ib)LX3Oh7E)Q0-z%Mkf3<7`|QH& z&b>YWnrqGJ9q`%KDpeC(3fcZU6>9i;FTmWq@x6dRPC zy-zWkCa{KtgWC@dWtF4-uLVNQw)cko%?8sXzLsZk)H-Bf0Y3*Ok?D|WxJ}#ST>hAc z`<}gkaaBcLKHTA^BmLm8p%=-z$ryCW$+|B)JMH@_HiCndwREFQ9~a^a39-Sg{g+?g zY5Qd}t1SJ2MWz08WVqzbJ#H*N1+=xL-iW6M8#R^9cSnc8WUVxyo9>r?zB3f;BL)2V zCjIQnkKpobE)U0vuz!GEChOkX&dF~^ZrAsqMDD%*pAQZDiqV(48|a~+M+BmwOg1dM zX>?p%aRl0e3ck=Ci=N{vB+cX9{yAcD^00>Im`W|@YZID0R*}2D3y9?RDMTKGnjGNM zNecGLjy%%m)JjGz_|P^C3kY}$4xx0%C#-Wg%LQt;rF83Py^hM73M&4`Qq{q!r6}Bo z>iU|xni6_K{KN3CUmt_unl>+wjFPt#`9ZQDo}(j3vl5FS)yV*0y}C3FQ2+{}q2Wfp z%HF5tK^q?Hmv+SlhX0&B6lm)W2_T;K%(ovZJYZ{E=-`=bJP;c%mxyi;+JH1ayGS>S z^+e@It#%iHLy#}wSJ@neMdIk%TG?2M1AgOy7K#R&=8c4e8wl91rKJUS&>}=wuh{&a z>~62Tth7MaYuFWTZf<0mks?OKYp6TgmoBavIoXP3e0(qvv_nctbV`aAA}Bv7=6I7a zNK7;jGYo7n-%vYgtQAb#-Q5VT6;vJEpt6z!pa@AeySzN2NV5f2)uH?Ps?>HQid3ew zua130kWKIq!(5R5@{m8FnVA!8*1TH$rgj074P}q(g&4&@-eh9Jfg&pu z*xi@3YoQNwyzZ-&|C0C$WP`ZRF`BWl3AB(1c^<2~7bTsol?zpvwwp~i9o395c>`AM z*!|Trzi1xwbc(s7?S9looSv?RMqsP&M2?As0n~oNz`j?65oWc0+p|00?mz>MNNG7i zS?P1A-T-(&Z2hWu$_HQyyaJWJr4yy<*KLx*?yj)szsaj;m5McidYJQ%?LpAiz(k{= z+yjQAZDOKwJeHDU1|njm&&fl`Oq4T?R8_QJuEQk%%Y!vFMqX!GJNGHsZu(M^p)KPwU897W`_W=9Q6Nowivn+&_ zDS@C4wSTH|lV}@}g`mtmjgRh~;re(EhVx$*#!Ch4!$xd#^OqUn>O+wh&;ib3>w$1H z&FqRjuJDS+udk)SwIo}C>m%cBS-QIab2(>SrUrMi=@UGPJzjm7{w}`e8 z7{y`cF+A)HVqyf}3bsOGR7DYrDU0rUz~OH;xUuP@NufN4(+@+?*YxyPALI?x*N1KI zud^q8uw)f)L27TOhm6!6i24m2?0`FFeFM~+(_*Iz`y-N=D2n8FMxtFSR0itmkr0gF z5-E~56qS&^11|E_Yn`^48R`eGj}fLvwzm5MaTWc57eNRjZyHnOtiK3N<84^!4|AEt3zTbm34F&SHp!G3cWZh8VN(hYV51;^9ODp_4Cf`m=~@}H!-p~Rh$Oa)bR%P^ zvF)Ggf^U7__L1&1y6%@ul~2u{VWwu;VKYqyZPSLa8*!vM#>Ut_KI4qsUuhvFSlkK) z7~k2Q-(vWanYORb6NXAEY6Sywa*8Z}Z9wW!PTl2u_fAKF%Cb?n2wnZrXs4^@DC zY`3I}3K=po%0S8jDv)LNVfozoYJ@N&FLJ!)pM0llUs=e(61>FdDjZF?F$lCu(ETj` znb3uc0pYRuvk&c!SSpMc*gy}V=WBKhIGsZKSnsQkBM9J{n@Q>$d_%TAW`#p=;x8^i zoS@!#N-zgx&Rfa7EmTKI=UYwazA4t-9c{tmY`HgUXZML4uRD4w5I_}B-|Fv8-1c@O zK|H`gRh#j@`Q2OMOtiEr3ybDEU%ax!Sfz(DO-%QecfgiM+jfU|#E>DL(&v)o{I^6P zIElgvk5~Htt%N0lA`mFwJA+bBcR}DC6VG@BUPVD<4zgSBo=JKw9!`%Qm`sDm0^+uc zf%PW1RKK~K6u@VbfH;RRe~F+nnvXKYeS8}444hjBSG%>hd+z|(rTXSL_t7uqj8ncJ z)eC07zuaV%Wu~1d%QGD>x%fJw(F4^Jsk5u5Y;q=I(}*CVV+VE5{lw2i5uFN(eg5Ac z@Zwii{^=cHM~m$VNlFUL4YS;u9gp6`ud(Q{^0~Tr)Y;>&*oX7(nb+Ytw7Je8qP5zG zy?e#Wivx>cqC3LMbAUDkzThU{;cSY1^F#>Q@SImykHTOS56DuKP1 z*W11!`1EcNYk$S!#nuvZcf?>+Dvd1r8TU7hMCMc zBMXrTet&-BDJpz?NJ9@I(4>AsIql)?kN6W<0D7i!XX$&@@0D3!GJ+fDSQn?RiO#_) zQNI(_2o|9_)T^~;u^w{J-;&t%m&yh^O@p_9#-We%k!S9ivGGp7*_6O@Mdn*p((Kj{ z-;SIoYpDR6fYldzGFwYSL(xPcYj&oD`k=}IKs1*{qB=?z43Bn;eX?Z(J+q! z0e(NAyJRB+s%`u5lG@Kt6%kSpk|ZZ5k?ENUGZ4wJ8;b>RJhKe(`kRj;-}!puqoH9D z5#78mD=PryPS>ygqh}|(zCepe1N?(-gVbE>3<3?`br&=Rr+j^WsHzC>ZMWsC*i@K@ z_$PXCPPblQA%XYdH*a&L2j=GF)&rB6+3LY_e(6z};v6uDB0IlR55@#yp#(FqWWBt- ztIIGU?q!T>d*W>?$mW5irPu%$tcNxU31h!}{g(K&ydXoA%K}cDk~&EUbULE^FZ;|z z@j_mwrNu&zjz)w873Lg8K48{5X5kqaq-Eyt{C~6?Fp(DJj(h z!#dE6DT2UbS1J^uaPN#!qrm5J6TVL-J2!!!) zF8$P0oyn&%qhxUG&BJ?VR}UB##>Ht`ydJ@(nLd7YbtPyY!fvMsM0+iyYjHTo#+0(H z?LICTl_i`oWxN?kZ&C8GfDmlf8#gHIXkCldoTh(%vecA6JHUzzTdCZ6mbwW=;)~TYa zf|Fe$VEf6*>g1^DTrf~0gk4PI;~2mbd+fZUhWcID&3^oPN2^sfykTh0bGsB;l%Be+ z*Tc=b=Ha2&FNPtN_8DNv$;mAUiRurt>HGgL#jj|?wA!ngwXB|UgQ{hwfq}a>S$Y#g z3UePoW(HJazBwI~a(8Sk`gas?8XjV08YW!-x$n+oWMju?TP`xPdEk_fj*U%4gwq8) z_KT(_0eJkN;*}~;1((7kqC8T%EHH%O0OfkaGuK}^A2h-xF2j3TedDnR4%>U<#gUL6 zB!?ncHQ>HYt;UGq6NX26Az@-_Lf;b&0v+^O?$p(5YV7h@$YJg7J=p%HM%UI;P&~cr zfc?3@IPTRe4n>9TuDqPWLKCLI5^zEm4ogCbe%oUkEtRfjpv)Tx>;S{ z;|M4*oi_9%Ee|H)ZYV3eAOsy~C~W(yRw1B+DwHRq$LF`~wN6P{c`-E6(;hSdt!QMB z7}#Uoha`mrB0M{A>Yy|hH!d!G2GLIvx=eVQd_8$UU^cq&bh^()hlPX~CoUD0kxOc8 z=Y5&*Kign_&5j)u9Zl@Ek%pqFnRoGtLFixC*sq~ig_`95&wm?pI$PjSP(-E!mbLE1D`Siy#deX>+Ra;o%y8MBCrX;p}um1G*w`hU&D*!tYrb7U!{_JOV5s z?{VA%PJ7xDsI_wSdbnmqXcN&EpC z72s?`iK@W;-Zki*XWrxJ2*GvVKJ?Q7mR08Qx6rWJ7K2TG^#5bqeEYE0Oq4%QM`IV| z0 zpzs6v>?iQ)K}Ie^loZ9qR#o0SHBWL-Kmc&QBQFL6FP)2N!7tTWb!+zY%7*kIy7(ALvisY&yEr?A!u_NeUGJ@B+J zO&Qbx|+J18&jhK45YtUhOK0g8}Nv2|%}v)2J^GH6CZ0%I~7$n_O< zTfw*#o2HP05Za~!)xogn=!c1GkFj@mBTWdV%2FTjva((`=RpN(4v0Z^<8@pJBI_F} zd8g9K%F5KsgQCGbv00K#=1AufLA~5~i;E+9jS9U0$qUQKTPiQK9p|cS5)nMzK)MiC z6ghspQbsVp_U|tkh$;*e8h&fyWJtm^usB_#HBdkulx;w89UU@c%@ZD&={L zi_ShfU3Ac|Mo;c9suFq%W%lN@CmuWxMWg8nyNAKYY%~N=NvPni5QV_mG6kkq>-XCD zIBj-mDQ8bO_44Kn&CBa`umkRg8PuX%(?S9QboBHOg`Jr&Xb8ZzoX~#m9#w5^w{v9e z0ZhPQmS3^#H|l0BAVQ-5RYr`&WlF)TZ*PNxWfr5jR7acO7TxPKmwO^F1>y*Rs`QQk zoZ+cL)L789LsQ?2OMa~r05B6ldo2&*A>@LQk+xvM5iqoc1u8e-n%hAF1rMW!QP*oC z&-af6_AHK19V8tboJwb@%14=4*=(Oy)d_X&ED6m`Cig6X`cX(1OH zN~__PBxtti1qJbG2xdj5vwD^on3+}Xz^dfkJEY{V$4(l7X9I!F(q!d#XemB*^9@!A z0w%M*$sOcetJlTbK{7(>?9dHoZW>5|xjqaN&sSGAFab5$EL>wQ!yZgS5nUj`A`N^2l zJO2HBene3X)y&J0kzl^~;n4|~ab)I~Wx#llOz_m1-Ng3*6VTtSjtOI8 z99e_}5&*%Pu*Qki|JV)sAV?Mh9ilH82EpjK1WWsWI`5KWAXDaBYmb8-XRxfw`rhZd ziH@bBw+|>7gTwq^643Ie8Bx%WRGYSYV__ZtiQa&!69qXdBz)Cv(~ty6oIxySkyZvE+ z7QST9miru=(Lp`cGmv`5H1YGJlW-d(+rQdCP{MUAIn5~;w(1KUjhEU_Hzq~r=EAzB z^k8Vy_HliOE1UyYcye--#?ET&;S>Mw%pB=(uLy3ui5SkgLaj{kWMtJcJm1QEl>u|_ zwi`W5PCP#Kxa;f6X{6FFF0eDJUdKjC3F7{sPyx`5`Ef0A)H(l?dgJ48V#HHG+2HJg zBPE@)^QWMvjXOZkP_&YRBm&?mFJZKb^q>HlRqT9^qNXbq!0zw95lLhpi)n6w%bsuIWZ0I;NkWdb4)#xwJ< z(!)AN52_L53=zXEypH*Wj@#f~OAL7&CS^S9y^naH`vjm2LC&xh$8cTC?1nl<2Gj^ObiH-E#gG{3ySR1B~S_;(Eop zW`mCRY1j>qjiZeC*Fjkb5g1=B>-EIxn+0bPV3(<&A8yUl$SkVF0ZuJg^t?R_&)R;w zqh-wz2UJ;}6?<~hiS_!Pa1kOzcB7*{P;~dj?W7qehgMV;{qg zW4G+ey&g^MCn!sUOcicb`;wEHl@$`?deC?bH`UdQ9LcSY_2VRSa`e2U@&*f|3Y}Ob zfOMdSOwY(wR^uuh3kvQ3)iyUrC2`LEu!y8F*OeNCy|89Ed~_5Av}yngx3^aY-1Gog z{_T3ugqJ<1<4i^{F3%P_4MpVSR-J!;u_!Doyw6^C(hmPxK*z%T+1Bmq71<8hXY}cN zRTQ_wv|DbTcs$dcE^`bJK(WhD{9B(Qg=J@)^?TP9wA+X->e1G3uq{kOvxXIXFmoMf zMhW$8B&QMHa6=VxNvYlC&dKTgp6JN790MOf{oXHrksy{S&+U=(^c=f>CUQ4zaUeA} z8Jh{VL*d(M_zF2%!+Kjb$BgGVg;XQjMjSFdG5P>c(K|v#SVw&v{vp)+_V%#IzKZx- zVq`)B4g$1+IsgU55Tw57y1M=3BDye!$o#3p2B8u=-~Z-+OS(#g21d~Ml~cYpJ^D4* zl+3260ak;EE@+LNJljTOS+45>I35XYiTmvKwI}-r9c0f!nKF=iEiyd3@plrsElH}A z6Jh*oov-V3*A@0|LFwF)x)mgfidWK9L$|hFoXK(!va+>NfrV*%3P{q zqM3jG5{mt`bF&p!sOZj)Y|9%5uJ>xH27w0`%1LK=GN*P*pe zBYqe6`7(`+Os52*$dNJ6Eud)Y?k>DUA;tR(>51O)^9zhYjYL2}v8O);@)AT520R!j zxRkt1U#0>*E8x&K(qhbQKPDx)I-gX*c0bH3b7%i=;O3c8hd6R?($f)-^ zYWE>cBMD%4#Y$|><$ASVU5aUF+9jyNyM}~GPVR+JC7xeoq%~uy0htMMEIe;-P3VVq zGAALARyTmuQ1Snz+DTI>E677|lZ~!?a_V1)5Lv$`HVPU{qq%5;NHF0|1En_@Zz05& z&{|q9Csz$`E`pfccN?|R{`0g4zGDD8- zNn*Ou(qi}Va8Z^F(lXN(j1+*Qm&KcV8R0Oqhg#@azqEH?=1_LDYk~=tQTss2@<##w zQ9Tb`8GVPjR*nPSWcHo=Zim-ku{NHN0~2t_2m0mi>xG~^Z)D)&LiO~FW)l^tA-Xyl zLPrWHDk3;NsFKUN=cA`zi;2WNzz3yX$vBU-wKXiWEvp&;Msa7O&VTWDR{0CFfW<|M z=*Xh~vq)%XSl$=frwczV%d~J6U~n@#H&@2t;NrK$C1Um9yBt2S`qYN0&+3J6_syTu zvLQjTQKxU+9mP`(mt2QobuJ92T!@n7(QmnJ-^IjKfk7xJj>M;1yyZ6!Y-}jNvK5Pz zR1EY26z|^~a^t~dE4?41NgrG_*(NtzklRJU_$oa;y(azgh$U+J#2_0KIVec=P3acD zK3}Sw4)|u2Y&m{t)m3{lNoMGP?sxLbQATd|MN*PE*W2+H?<1jF)}d=?2+XN)4IzFx z+ROmvygi?vPZmLWemM2i zXFCx0bieXNYN~2W4-Boo1!E^yW>zjJ(DEL1sH>|p|It1_b|MDIx@L$i_HUSmi=shM z9<)z@4oXV#=T{y_3fRekCKg6%DjrG?lBp;v!af(J+0^+YW_Fy^W=M_ot?qj zn(!A7NfV>usqxz43{}zDXB?#!+C)E9>lIMY7&@E%Wi-sCvFgya&r+QdU`$)=x5$tP zxP~;CPSrLDdwxI)3HjlN$y)P+-2OW+W|eh=n@33#DhWTop%G!@wJ2Gbh}0;L3c^Rv zD5J$Byu3~wjl-KtVadydBcv$*< zOAD%%6+R1_os4IL6{Y8+M~t68Q>z=#J~kSA#6-fttseMQ{lV7{#kZ|>ku*zn+B$-y z`)2-}pX_~o%&%Ug738=6j)9}oocPlx``_-PfAG{mMcD97I@9B(v?D@9}U`Zo+9|D?#q-Pk!)q)G|P86+N06>s!98`HyNWqsn| z;|zCfpKT_wmGvb3DlSxr!oC)2BQkDV1C8|i=H`n*j=w(Kz6GB=o_2QDT9&r(vNQ4i z*x$ztC`Ng8m@;S${vPNCwdZs%y9tmgu+>pslc~>nZ?VsMZ#^I-*Xgiq4BJ_{;C8h| z6MU-Fz5gdZJceN2uvEJ6BeD|GdW%XJV3hcHe(7U-h^gZ0;_|MfggA;qO;$&T zBwrOjOn>I=t1|-w!@KNHHxXB9_~tbnboF8~_zsV%`lu!!h8-QvA=tugXS@H^_Tcz* z4dvDAaq03aSEp;>o5zwwQaFYa91(v^uBJWI9<%gqcFu!2WUtW)p$^MaSC(?a&7c4z^ikUeSdUSQ z#;yIH2OfUuJZe6M+gC$FTs^B}S5f=>RC=vG7$_){dxS`Sr;1S%#-g#Swnka^CcZzB z^79kPS9RT3WRsDJ866$H$<0mV>gq}<}*k|^E*ALw3`Lrs7eqQ$mNKRqnyjQ8NGCzcfZ-2yUKe=xkjHLaMF6*uh*J?&al?Y=y$Z*gG ztoiQVRd$nLBaZ^RWbB|$?!Nl)`@A72G2kt&_ z{n&bq{5MGYde`Xh5)~CyLf-(JIvPVMkM8~ZGBC)OXan~880;md-)R2{dPz%$EhYJuyou%f4^PmpS@VOOMM$3B&mdW zQo{g)N}0a3;>nzKLFcdeVLdt~kdxic>u&Aq%eT5_0Mn&m&CMFq4How;EO1|TtELZm zdtj9Y_Ltqv&&ndT==oeS#V)CeeSU5^?(3B^QP5A^Ev1GaDi!j8)N1RxaU@ zvxj#);1Um#zwz*hF>%D7)ssA@+;}PEJF@*BR`a zh&Q;9$M*K*XW|l%dl?2CHEEr3!{)s&K0e!$cVli0c7kY5%6Qg4JNIWf%binPP7}ZD zHbV}b+0x}ufk@mG6~!(pQj^NT4y~)Bgc}96+4KOJ$kT=BdLqfZc^qds#V+=*Ocy)r zh)6yl^Y9qN$8Fm{9yo)dOVfVx8Rb-+e<hT!JrDYtKSf(9tBF*=Mu=7=2; z;orXH|M7a3uiKz?cvF>zh6e1^3=1?}5P9#!2;?0Y->7_|Sg&1aiUSlHNsQrT_L z8UkyOxiw5;q?H3NOB);D^HEw`TRl#GB@h4jf%A6D^=)G#HF$T#_5XrQ21QT(V8i0l zQlAo2W0D;%nP9{9^kDO&gI~gNcdhCMzp8n7p}I9S*a= zhP{~XZaKtjOG-+Ddo&Bo)Q8D~9BatcbZ4;(&<4VLxOaJMQSeQ^%zbT~ z!{=;C?>?$HO$hYtg<-Bx}3 z;lqd*tZH=sG%-OjQEpQACvdIsrL~n6tl0&e;dA1=4qhlCA|i1Az9_KqZn|D9cyb)`-LFacY zR_mbRcK3d2dU_OC>Pa&vO5P-bNOv6^t_07(3-WULIibVahA_Mh*xybGZd7sU>9~Z1 zgt__oca!9tW5Jlu!^7jInAmh<=~`?L{4Zdo`LEg1z+PUcwg{Sb=S33hpl?T)z*)(u~wCWuYbp9m(L}&{P`COsyJK5f;K%j?C%}8 zDC_>>gTxG9{0#hpwLhB4vCzgB=9Kc#_Ljv%2qg?-)+Xv;XiyNQQ%IH5$+5H5=l4Zy z?d&Qo`$(EE4yV9Ts2hs0xWvSuFRD{rfsLUW2i1eAOON@fm9y^Ao*iw0jM+ObJ|4MJ zZ{0<|@1Q%DF80e8RWO=)R0nVO(Hv?3P(si@qNsQILjq4^P;f9BB_0M+fcoRBq4G_u z+wAOkurKZ4;D9@QQ1A-;%Q84~WTbD2iP69T=<4cno7;Lo3*l7K&W^2Gztk1sYliWv zHFK2;pV0TBY<gwBb9#@0-MmTkr5t&yv%wy%eBalv{e6^zhv!4n97(h2Vhm zV+c4JuDIL<;_Ws}6S!op-Ph70wf^!Z!gXyNEQtu}9A-YHJGP3v-51dudhGEmUwm!D z?{J(mRx4)pkv|@PmSNHmo(3ZM4~M&dTJ1tYLh(?Pk<2hk;laQA@ZrC1NJqmB23UA2q01#1k})VVTh+;>MWg*V@o^oAA5*8|HQK7rD9e| z3kDA=uxtY7B2=URn@mptRU~jF5ROOSf){f`94A#71IYt?d0-ABtD~o9FkF1#>@2H6p@jW1A>GQq=uWiw8HSBkVA;b z$U1TYTc2M#WBTcQW*Cw#R?x{N>@4b7t@~=D; z++)Y5kjo*4Xg=BEU8l+R;|JfHa>x26zl*y_fLJ0NRQr0{&Z#pzO#HhJM?G^&r|TEJ z^jg`g^*O-95QZ3z=M5Ux6%mDy%ufvKDk^aG3XP2=H1^q%b-x{ks18cSrZZqOAOZ-+ z%P<6L6u|)9S-mL%+y(Ldf8dq`7h-d;Y>6o@-R?F%XxTuHi%O3qv;VA zO2}z8IBB1C&oRdA1^fl54AckUu{VwQOZ#5p@Uf;dUJ`fA&CSgyzNK&Tx_`m*<8w6I z524E&PRgc&>4Tf9Xz)t^zQn7YMgCT+|Nggu>|ablTn?F^I{%)vzdwpM;Q3oF{{0CM aPFK963h$)Jc@mM}OHo!;rcBE8#s30Uu?2?! diff --git a/robot_8h_source.html b/robot_8h_source.html deleted file mode 100644 index 29ed76ce..00000000 --- a/robot_8h_source.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - -libfranka: include/franka/robot.h Source File - - - - - - - - - - - -
    -
    -
    robot.h
    -
    -
    -Go to the documentation of this file.
    1 // Copyright (c) 2017 Franka Emika GmbH
    2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    3 #pragma once
    4 
    5 #include <functional>
    6 #include <memory>
    7 #include <mutex>
    8 #include <string>
    9 
    10 #include <franka/command_types.h>
    11 #include <franka/control_types.h>
    12 #include <franka/duration.h>
    13 #include <franka/lowpass_filter.h>
    14 #include <franka/robot_state.h>
    15 
    21 namespace franka {
    22 
    23 class Model;
    24 
    46 class Robot {
    47  public:
    51  using ServerVersion = uint16_t;
    52 
    65  explicit Robot(const std::string& franka_address,
    66  RealtimeConfig realtime_config = RealtimeConfig::kEnforce,
    67  size_t log_size = 50);
    68 
    74  Robot(Robot&& other) noexcept;
    75 
    83  Robot& operator=(Robot&& other) noexcept;
    84 
    88  ~Robot() noexcept;
    89 
    151  void control(std::function<Torques(const RobotState&, franka::Duration)> control_callback,
    152  bool limit_rate = true,
    153  double cutoff_frequency = kDefaultCutoffFrequency);
    154 
    179  void control(
    180  std::function<Torques(const RobotState&, franka::Duration)> control_callback,
    181  std::function<JointPositions(const RobotState&, franka::Duration)> motion_generator_callback,
    182  bool limit_rate = true,
    183  double cutoff_frequency = kDefaultCutoffFrequency);
    184 
    209  void control(
    210  std::function<Torques(const RobotState&, franka::Duration)> control_callback,
    211  std::function<JointVelocities(const RobotState&, franka::Duration)> motion_generator_callback,
    212  bool limit_rate = true,
    213  double cutoff_frequency = kDefaultCutoffFrequency);
    214 
    239  void control(
    240  std::function<Torques(const RobotState&, franka::Duration)> control_callback,
    241  std::function<CartesianPose(const RobotState&, franka::Duration)> motion_generator_callback,
    242  bool limit_rate = true,
    243  double cutoff_frequency = kDefaultCutoffFrequency);
    244 
    269  void control(std::function<Torques(const RobotState&, franka::Duration)> control_callback,
    270  std::function<CartesianVelocities(const RobotState&, franka::Duration)>
    271  motion_generator_callback,
    272  bool limit_rate = true,
    273  double cutoff_frequency = kDefaultCutoffFrequency);
    274 
    297  void control(
    298  std::function<JointPositions(const RobotState&, franka::Duration)> motion_generator_callback,
    299  ControllerMode controller_mode = ControllerMode::kJointImpedance,
    300  bool limit_rate = true,
    301  double cutoff_frequency = kDefaultCutoffFrequency);
    302 
    325  void control(
    326  std::function<JointVelocities(const RobotState&, franka::Duration)> motion_generator_callback,
    327  ControllerMode controller_mode = ControllerMode::kJointImpedance,
    328  bool limit_rate = true,
    329  double cutoff_frequency = kDefaultCutoffFrequency);
    330 
    353  void control(
    354  std::function<CartesianPose(const RobotState&, franka::Duration)> motion_generator_callback,
    355  ControllerMode controller_mode = ControllerMode::kJointImpedance,
    356  bool limit_rate = true,
    357  double cutoff_frequency = kDefaultCutoffFrequency);
    358 
    381  void control(std::function<CartesianVelocities(const RobotState&, franka::Duration)>
    382  motion_generator_callback,
    383  ControllerMode controller_mode = ControllerMode::kJointImpedance,
    384  bool limit_rate = true,
    385  double cutoff_frequency = kDefaultCutoffFrequency);
    386 
    411  void read(std::function<bool(const RobotState&)> read_callback);
    412 
    425  RobotState readOnce();
    426 
    445  VirtualWallCuboid getVirtualWall(int32_t id);
    446 
    483  void setCollisionBehavior(const std::array<double, 7>& lower_torque_thresholds_acceleration,
    484  const std::array<double, 7>& upper_torque_thresholds_acceleration,
    485  const std::array<double, 7>& lower_torque_thresholds_nominal,
    486  const std::array<double, 7>& upper_torque_thresholds_nominal,
    487  const std::array<double, 6>& lower_force_thresholds_acceleration,
    488  const std::array<double, 6>& upper_force_thresholds_acceleration,
    489  const std::array<double, 6>& lower_force_thresholds_nominal,
    490  const std::array<double, 6>& upper_force_thresholds_nominal);
    491 
    518  void setCollisionBehavior(const std::array<double, 7>& lower_torque_thresholds,
    519  const std::array<double, 7>& upper_torque_thresholds,
    520  const std::array<double, 6>& lower_force_thresholds,
    521  const std::array<double, 6>& upper_force_thresholds);
    522 
    533  void setJointImpedance(
    534  const std::array<double, 7>& K_theta); // NOLINT(readability-identifier-naming)
    535 
    548  const std::array<double, 6>& K_x); // NOLINT(readability-identifier-naming)
    549 
    564  void setGuidingMode(const std::array<bool, 6>& guiding_mode, bool elbow);
    565 
    578  void setK(const std::array<double, 16>& EE_T_K); // NOLINT(readability-identifier-naming)
    579 
    595  void setEE(const std::array<double, 16>& NE_T_EE); // NOLINT(readability-identifier-naming)
    596 
    613  void setLoad(double load_mass,
    614  const std::array<double, 3>& F_x_Cload, // NOLINT(readability-identifier-naming)
    615  const std::array<double, 9>& load_inertia);
    616 
    639  [[deprecated("Use franka::lowpassFilter instead")]] void setFilters(
    640  double joint_position_filter_frequency,
    641  double joint_velocity_filter_frequency,
    642  double cartesian_position_filter_frequency,
    643  double cartesian_velocity_filter_frequency,
    644  double controller_filter_frequency);
    653  void automaticErrorRecovery();
    654 
    664  void stop();
    665 
    678  Model loadModel();
    679 
    685  ServerVersion serverVersion() const noexcept;
    686 
    688  Robot(const Robot&) = delete;
    689  Robot& operator=(const Robot&) = delete;
    691 
    692  class Impl;
    693 
    694  private:
    695  std::unique_ptr<Impl> impl_;
    696  std::mutex control_mutex_;
    697 };
    698 
    699 } // namespace franka
    RobotState readOnce()
    Waits for a robot state update and returns it.
    -
    Stores values for joint velocity motion generation.
    Definition: control_types.h:99
    -
    void setGuidingMode(const std::array< bool, 6 > &guiding_mode, bool elbow)
    Locks or unlocks guiding mode movement in (x, y, z, roll, pitch, yaw).
    -
    Stores values for Cartesian velocity motion generation.
    Definition: control_types.h:201
    -
    Contains types for the commands that can be sent from franka::Robot.
    -
    ServerVersion serverVersion() const noexcept
    Returns the software version reported by the connected server.
    -
    Robot(const std::string &franka_address, RealtimeConfig realtime_config=RealtimeConfig::kEnforce, size_t log_size=50)
    Establishes a connection with the robot.
    -
    uint16_t ServerVersion
    Version of the robot server.
    Definition: robot.h:51
    -
    void setJointImpedance(const std::array< double, 7 > &K_theta)
    Sets the impedance for each joint in the internal controller.
    -
    RealtimeConfig
    Used to decide whether to enforce realtime mode for a control loop thread.
    Definition: control_types.h:26
    -
    void control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)
    Starts a control loop for sending joint-level torque commands.
    -
    Contains functions for filtering signals with a low-pass filter.
    -
    Model loadModel()
    Loads the model library from the robot.
    -
    Contains helper types for returning motion generation and joint-level torque commands.
    -
    void setCartesianImpedance(const std::array< double, 6 > &K_x)
    Sets the Cartesian impedance for (x, y, z, roll, pitch, yaw) in the internal controller.
    -
    Represents a duration with millisecond resolution.
    Definition: duration.h:19
    -
    Stores joint-level torque commands without gravity and friction.
    Definition: control_types.h:45
    -
    void setEE(const std::array< double, 16 > &NE_T_EE)
    Sets the transformation from nominal end effector to end effector frame.
    -
    void setK(const std::array< double, 16 > &EE_T_K)
    Sets the transformation from end effector frame to stiffness frame.
    -
    VirtualWallCuboid getVirtualWall(int32_t id)
    Returns the parameters of a virtual wall.
    -
    Parameters of a cuboid used as virtual wall.
    Definition: command_types.h:20
    -
    void setLoad(double load_mass, const std::array< double, 3 > &F_x_Cload, const std::array< double, 9 > &load_inertia)
    Sets dynamic parameters of a payload.
    -
    void setCollisionBehavior(const std::array< double, 7 > &lower_torque_thresholds_acceleration, const std::array< double, 7 > &upper_torque_thresholds_acceleration, const std::array< double, 7 > &lower_torque_thresholds_nominal, const std::array< double, 7 > &upper_torque_thresholds_nominal, const std::array< double, 6 > &lower_force_thresholds_acceleration, const std::array< double, 6 > &upper_force_thresholds_acceleration, const std::array< double, 6 > &lower_force_thresholds_nominal, const std::array< double, 6 > &upper_force_thresholds_nominal)
    Changes the collision behavior.
    -
    void stop()
    Stops all currently running motions.
    -
    void read(std::function< bool(const RobotState &)> read_callback)
    Starts a loop for reading the current robot state.
    -
    Stores values for Cartesian pose motion generation.
    Definition: control_types.h:127
    -
    Definition: command_types.h:13
    -
    Contains the franka::RobotState types.
    -
    Contains the franka::Duration type.
    -
    Calculates poses of joints and dynamic properties of the robot.
    Definition: model.h:51
    -
    Stores values for joint position motion generation.
    Definition: control_types.h:72
    -
    Describes the robot state.
    Definition: robot_state.h:35
    -
    Maintains a network connection to the robot, provides the current robot state, gives access to the mo...
    Definition: robot.h:46
    -
    ~Robot() noexcept
    Closes the connection.
    -
    void automaticErrorRecovery()
    Runs automatic error recovery on the robot.
    -
    void setFilters(double joint_position_filter_frequency, double joint_velocity_filter_frequency, double cartesian_position_filter_frequency, double cartesian_velocity_filter_frequency, double controller_filter_frequency)
    Sets the cut off frequency for the given motion generator or controller.
    -
    Robot & operator=(Robot &&other) noexcept
    Move-assigns this Robot from another Robot instance.
    -
    ControllerMode
    Available controller modes for a franka::Robot.
    Definition: control_types.h:19
    -
    - - - - diff --git a/robot__state_8h.html b/robot__state_8h.html deleted file mode 100644 index af1f34ae..00000000 --- a/robot__state_8h.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -libfranka: include/franka/robot_state.h File Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    robot_state.h File Reference
    -
    -
    - -

    Contains the franka::RobotState types. -More...

    -
    #include <array>
    -#include <ostream>
    -#include <franka/duration.h>
    -#include <franka/errors.h>
    -
    -Include dependency graph for robot_state.h:
    -
    -
    - - - - -
    -
    -This graph shows which files directly or indirectly include this file:
    -
    -
    - - - - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - -

    -Classes

    struct  franka::RobotState
     Describes the robot state. More...
     
    - - - - -

    -Enumerations

    enum  franka::RobotMode {
    -  kOther, -kIdle, -kMove, -kGuiding, -
    -  kReflex, -kUserStopped, -kAutomaticErrorRecovery -
    - }
     Describes the robot's current mode.
     
    - - - - -

    -Functions

    std::ostream & franka::operator<< (std::ostream &ostream, const franka::RobotState &robot_state)
     Streams the robot state as JSON object: {"field_name_1": [0,0,0,0,0,0,0], "field_name_2": [0,0,0,0,0,0], ...}. More...
     
    -

    Detailed Description

    -

    Contains the franka::RobotState types.

    -

    Function Documentation

    - -

    ◆ operator<<()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    std::ostream& franka::operator<< (std::ostream & ostream,
    const franka::RobotStaterobot_state 
    )
    -
    - -

    Streams the robot state as JSON object: {"field_name_1": [0,0,0,0,0,0,0], "field_name_2": [0,0,0,0,0,0], ...}.

    -
    Parameters
    - - - -
    [in]ostreamOstream instance
    [in]robot_stateRobotState instance to stream
    -
    -
    -
    Returns
    Ostream instance
    - -
    -
    -
    - - - - diff --git a/robot__state_8h__dep__incl.map b/robot__state_8h__dep__incl.map deleted file mode 100644 index 2e5bfc29..00000000 --- a/robot__state_8h__dep__incl.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/robot__state_8h__dep__incl.md5 b/robot__state_8h__dep__incl.md5 deleted file mode 100644 index b0a64086..00000000 --- a/robot__state_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -b69bb8fe211e9b313b6c8eb7b9dcedcc \ No newline at end of file diff --git a/robot__state_8h__dep__incl.png b/robot__state_8h__dep__incl.png deleted file mode 100644 index 1d2787a6f3768ca74a9ac34feef312253cc32017..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19147 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 diff --git a/robot__state_8h__incl.map b/robot__state_8h__incl.map deleted file mode 100644 index 102c4ef8..00000000 --- a/robot__state_8h__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/robot__state_8h__incl.md5 b/robot__state_8h__incl.md5 deleted file mode 100644 index e16f3119..00000000 --- a/robot__state_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -8c4b580bf8338e94759155505f147d93 \ No newline at end of file diff --git a/robot__state_8h__incl.png b/robot__state_8h__incl.png deleted file mode 100644 index ed6dcaa5ea14928b0441198dad70986128d7deac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17631 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 - - - - - - -libfranka: include/franka/robot_state.h Source File - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    robot_state.h
    -
    -
    -Go to the documentation of this file.
    1 // Copyright (c) 2017 Franka Emika GmbH
    2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    3 #pragma once
    4 
    5 #include <array>
    6 #include <ostream>
    7 
    8 #include <franka/duration.h>
    9 #include <franka/errors.h>
    10 
    16 namespace franka {
    17 
    22 enum class RobotMode {
    23  kOther,
    24  kIdle,
    25  kMove,
    26  kGuiding,
    27  kReflex,
    28  kUserStopped,
    29  kAutomaticErrorRecovery
    30 };
    31 
    35 struct RobotState {
    41  std::array<double, 16> O_T_EE{}; // NOLINT(readability-identifier-naming)
    42 
    48  std::array<double, 16> O_T_EE_d{}; // NOLINT(readability-identifier-naming)
    49 
    59  std::array<double, 16> F_T_EE{}; // NOLINT(readability-identifier-naming)
    60 
    70  std::array<double, 16> F_T_NE{}; // NOLINT(readability-identifier-naming)
    71 
    82  std::array<double, 16> NE_T_EE{}; // NOLINT(readability-identifier-naming)
    83 
    91  std::array<double, 16> EE_T_K{}; // NOLINT(readability-identifier-naming)
    92 
    97  double m_ee{};
    98 
    103  std::array<double, 9> I_ee{}; // NOLINT(readability-identifier-naming)
    104 
    109  std::array<double, 3> F_x_Cee{}; // NOLINT(readability-identifier-naming)
    110 
    115  double m_load{};
    116 
    121  std::array<double, 9> I_load{}; // NOLINT(readability-identifier-naming)
    122 
    127  std::array<double, 3> F_x_Cload{}; // NOLINT(readability-identifier-naming)
    128 
    133  double m_total{};
    134 
    140  std::array<double, 9> I_total{}; // NOLINT(readability-identifier-naming)
    141 
    147  std::array<double, 3> F_x_Ctotal{}; // NOLINT(readability-identifier-naming)
    148 
    156  std::array<double, 2> elbow{};
    157 
    165  std::array<double, 2> elbow_d{};
    166 
    174  std::array<double, 2> elbow_c{};
    175 
    183  std::array<double, 2> delbow_c{};
    184 
    192  std::array<double, 2> ddelbow_c{};
    193 
    198  std::array<double, 7> tau_J{}; // NOLINT(readability-identifier-naming)
    199 
    204  std::array<double, 7> tau_J_d{}; // NOLINT(readability-identifier-naming)
    205 
    210  std::array<double, 7> dtau_J{}; // NOLINT(readability-identifier-naming)
    211 
    216  std::array<double, 7> q{};
    217 
    222  std::array<double, 7> q_d{};
    223 
    228  std::array<double, 7> dq{};
    229 
    234  std::array<double, 7> dq_d{};
    235 
    240  std::array<double, 7> ddq_d{};
    241 
    248  std::array<double, 7> joint_contact{};
    249 
    256  std::array<double, 6> cartesian_contact{};
    257 
    265  std::array<double, 7> joint_collision{};
    266 
    274  std::array<double, 6> cartesian_collision{};
    275 
    280  std::array<double, 7> tau_ext_hat_filtered{};
    281 
    288  std::array<double, 6> O_F_ext_hat_K{}; // NOLINT(readability-identifier-naming)
    289 
    296  std::array<double, 6> K_F_ext_hat_K{}; // NOLINT(readability-identifier-naming)
    297 
    303  std::array<double, 6> O_dP_EE_d{}; // NOLINT(readability-identifier-naming)
    304 
    310  std::array<double, 16> O_T_EE_c{}; // NOLINT(readability-identifier-naming)
    311 
    317  std::array<double, 6> O_dP_EE_c{}; // NOLINT(readability-identifier-naming)
    318 
    325  std::array<double, 6> O_ddP_EE_c{}; // NOLINT(readability-identifier-naming)
    326 
    331  std::array<double, 7> theta{};
    332 
    337  std::array<double, 7> dtheta{};
    338 
    342  Errors current_errors{};
    343 
    347  Errors last_motion_errors{};
    348 
    356  double control_command_success_rate{};
    357 
    361  RobotMode robot_mode = RobotMode::kUserStopped;
    362 
    369  Duration time{};
    370 };
    371 
    381 std::ostream& operator<<(std::ostream& ostream, const franka::RobotState& robot_state);
    382 
    383 } // namespace franka
    Contains the franka::Errors type.
    -
    std::ostream & operator<<(std::ostream &ostream, const Errors &errors)
    Streams the errors as JSON array.
    -
    Enumerates errors that can occur while controlling a franka::Robot.
    Definition: errors.h:18
    -
    Represents a duration with millisecond resolution.
    Definition: duration.h:19
    -
    Definition: command_types.h:13
    -
    Contains the franka::Duration type.
    -
    Describes the robot state.
    Definition: robot_state.h:35
    -
    RobotMode
    Describes the robot&#39;s current mode.
    Definition: robot_state.h:22
    -
    - - - - diff --git a/search/all_0.html b/search/all_0.html deleted file mode 100644 index f25360b7..00000000 --- a/search/all_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_0.js b/search/all_0.js deleted file mode 100644 index 28fdf5ec..00000000 --- a/search/all_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['active',['active',['../structfranka_1_1VirtualWallCuboid.html#a69a20329da226fe49702b7d725670042',1,'franka::VirtualWallCuboid']]], - ['actual_5fpower',['actual_power',['../structfranka_1_1VacuumGripperState.html#a4230c68698cdbf6c1c560e181133bdc3',1,'franka::VacuumGripperState']]], - ['automaticerrorrecovery',['automaticErrorRecovery',['../classfranka_1_1Robot.html#af682aa673415718715bd859116bc2fed',1,'franka::Robot']]] -]; diff --git a/search/all_1.html b/search/all_1.html deleted file mode 100644 index b13f0f7f..00000000 --- a/search/all_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_1.js b/search/all_1.js deleted file mode 100644 index 9879306d..00000000 --- a/search/all_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['bodyjacobian',['bodyJacobian',['../classfranka_1_1Model.html#a914a197a900a275799cf8d7461bb9d8a',1,'franka::Model::bodyJacobian(Frame frame, const franka::RobotState &robot_state) const'],['../classfranka_1_1Model.html#a9ceca00546fa221f15ddaa7c0d27c40e',1,'franka::Model::bodyJacobian(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const']]] -]; diff --git a/search/all_10.html b/search/all_10.html deleted file mode 100644 index d1345a1f..00000000 --- a/search/all_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_10.js b/search/all_10.js deleted file mode 100644 index 4dc0dd8a..00000000 --- a/search/all_10.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['q',['q',['../classfranka_1_1JointPositions.html#a40e9098abe1c51cd48e17e41fbf78337',1,'franka::JointPositions::q()'],['../structfranka_1_1RobotState.html#ade3335d1ac2f6c44741a916d565f7091',1,'franka::RobotState::q()']]], - ['q_5fd',['q_d',['../structfranka_1_1RobotState.html#a706045af1b176049e9e56df755325bd2',1,'franka::RobotState']]] -]; diff --git a/search/all_11.html b/search/all_11.html deleted file mode 100644 index 2be8b711..00000000 --- a/search/all_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_11.js b/search/all_11.js deleted file mode 100644 index d4841bf2..00000000 --- a/search/all_11.js +++ /dev/null @@ -1,16 +0,0 @@ -var searchData= -[ - ['rate_5flimiting_2eh',['rate_limiting.h',['../rate__limiting_8h.html',1,'']]], - ['read',['read',['../classfranka_1_1Robot.html#a82f85eed20426901a7e77b66c041664b',1,'franka::Robot']]], - ['readonce',['readOnce',['../classfranka_1_1Gripper.html#ab0afc8a41c9c5fff808e76851dcf23ce',1,'franka::Gripper::readOnce()'],['../classfranka_1_1Robot.html#a7ea7074a07b63fcf6933e97b078c7168',1,'franka::Robot::readOnce()'],['../classfranka_1_1VacuumGripper.html#aaa61bfd1027cf5dc2eb9e96536a9fabf',1,'franka::VacuumGripper::readOnce()']]], - ['realtimeconfig',['RealtimeConfig',['../control__types_8h.html#aeede4f4629390fea21ca5e5a35a8a943',1,'franka']]], - ['realtimeexception',['RealtimeException',['../structfranka_1_1RealtimeException.html',1,'franka']]], - ['record',['Record',['../structfranka_1_1Record.html',1,'franka']]], - ['robot',['Robot',['../classfranka_1_1Robot.html',1,'franka::Robot'],['../classfranka_1_1Robot.html#ae63bc19390df3d54f3a270814df35eb6',1,'franka::Robot::Robot(const std::string &franka_address, RealtimeConfig realtime_config=RealtimeConfig::kEnforce, size_t log_size=50)'],['../classfranka_1_1Robot.html#a378d415475336082e81a35b9811dc6c2',1,'franka::Robot::Robot(Robot &&other) noexcept']]], - ['robot_2eh',['robot.h',['../robot_8h.html',1,'']]], - ['robot_5fmode',['robot_mode',['../structfranka_1_1RobotState.html#a4943ae75e0e2ec534e0afac31cbcc987',1,'franka::RobotState']]], - ['robot_5fstate_2eh',['robot_state.h',['../robot__state_8h.html',1,'']]], - ['robotcommand',['RobotCommand',['../structfranka_1_1RobotCommand.html',1,'franka']]], - ['robotmode',['RobotMode',['../robot__state_8h.html#adfe059ae23ebbad59e421edaa879651a',1,'franka']]], - ['robotstate',['RobotState',['../structfranka_1_1RobotState.html',1,'franka']]] -]; diff --git a/search/all_12.html b/search/all_12.html deleted file mode 100644 index 13c52637..00000000 --- a/search/all_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_12.js b/search/all_12.js deleted file mode 100644 index 743b4310..00000000 --- a/search/all_12.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['self_5fcollision_5favoidance_5fviolation',['self_collision_avoidance_violation',['../structfranka_1_1Errors.html#adf68f6333624cb5558864441a991de8c',1,'franka::Errors']]], - ['server_5fversion',['server_version',['../structfranka_1_1IncompatibleVersionException.html#a0928098d8c32f405d17b65a0f004b5ab',1,'franka::IncompatibleVersionException']]], - ['serverversion',['ServerVersion',['../classfranka_1_1Gripper.html#a613bf52d9433b733685d0fb9ea71602e',1,'franka::Gripper::ServerVersion()'],['../classfranka_1_1Robot.html#ad1dd3dccff6f33691d2c66eaa5ac5a10',1,'franka::Robot::ServerVersion()'],['../classfranka_1_1VacuumGripper.html#a7b1d752680134e2a9df347002c6ace61',1,'franka::VacuumGripper::ServerVersion()'],['../classfranka_1_1Gripper.html#a8b0b4246c042465fb00871b31efdbd8b',1,'franka::Gripper::serverVersion()'],['../classfranka_1_1Robot.html#a3b864e16b7accafdf1a755dc21765701',1,'franka::Robot::serverVersion()'],['../classfranka_1_1VacuumGripper.html#a19abac44be2fc6df7f54fa11078a13ca',1,'franka::VacuumGripper::serverVersion()']]], - ['setcartesianimpedance',['setCartesianImpedance',['../classfranka_1_1Robot.html#ac2678c5c31cc8c0627ecda7485f81f6d',1,'franka::Robot']]], - ['setcollisionbehavior',['setCollisionBehavior',['../classfranka_1_1Robot.html#a168e1214ac36d74ac64f894332b84534',1,'franka::Robot::setCollisionBehavior(const std::array< double, 7 > &lower_torque_thresholds_acceleration, const std::array< double, 7 > &upper_torque_thresholds_acceleration, const std::array< double, 7 > &lower_torque_thresholds_nominal, const std::array< double, 7 > &upper_torque_thresholds_nominal, const std::array< double, 6 > &lower_force_thresholds_acceleration, const std::array< double, 6 > &upper_force_thresholds_acceleration, const std::array< double, 6 > &lower_force_thresholds_nominal, const std::array< double, 6 > &upper_force_thresholds_nominal)'],['../classfranka_1_1Robot.html#aa188f58c9025594be4d1700da744a962',1,'franka::Robot::setCollisionBehavior(const std::array< double, 7 > &lower_torque_thresholds, const std::array< double, 7 > &upper_torque_thresholds, const std::array< double, 6 > &lower_force_thresholds, const std::array< double, 6 > &upper_force_thresholds)']]], - ['setcurrentthreadtohighestschedulerpriority',['setCurrentThreadToHighestSchedulerPriority',['../control__tools_8h.html#a5c090196bc50ead82194d3e594e61e65',1,'franka']]], - ['setdefaultbehavior',['setDefaultBehavior',['../examples__common_8h.html#ad0c6e1cb044845ee8a01b5aa1e801a45',1,'examples_common.cpp']]], - ['setee',['setEE',['../classfranka_1_1Robot.html#aec4abdefbc0f9a7400a36bfa0a6068af',1,'franka::Robot']]], - ['setfilters',['setFilters',['../classfranka_1_1Robot.html#aebce1a0dbe3b139bb24001845b2afe07',1,'franka::Robot']]], - ['setguidingmode',['setGuidingMode',['../classfranka_1_1Robot.html#a7992cee203e66f9a61fe2f318ef88a26',1,'franka::Robot']]], - ['setjointimpedance',['setJointImpedance',['../classfranka_1_1Robot.html#aa18a28697cf6e3be16c6cff2dd839560',1,'franka::Robot']]], - ['setk',['setK',['../classfranka_1_1Robot.html#ad1cf59d1b11306d80cd3c7144a989c56',1,'franka::Robot']]], - ['setload',['setLoad',['../classfranka_1_1Robot.html#afcb708df10f24563dbcf7d5b907b4a15',1,'franka::Robot']]], - ['start_5felbow_5fsign_5finconsistent',['start_elbow_sign_inconsistent',['../structfranka_1_1Errors.html#aa6de1956ac056792a1dea6b9ddd52a50',1,'franka::Errors']]], - ['state',['state',['../structfranka_1_1Record.html#a58249658c9549fbc792eea90e7b6a7cc',1,'franka::Record']]], - ['stop',['stop',['../classfranka_1_1Gripper.html#add7397fb6c5631650c139d26a85c8e1d',1,'franka::Gripper::stop()'],['../classfranka_1_1Robot.html#a69cb08e075a81ecf3f26e94d26a06296',1,'franka::Robot::stop()'],['../classfranka_1_1VacuumGripper.html#a3722fe5488c516b4082c878a083cc865',1,'franka::VacuumGripper::stop()']]] -]; diff --git a/search/all_13.html b/search/all_13.html deleted file mode 100644 index b4a8bca6..00000000 --- a/search/all_13.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_13.js b/search/all_13.js deleted file mode 100644 index 4baa3301..00000000 --- a/search/all_13.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['tau_5fext_5fhat_5ffiltered',['tau_ext_hat_filtered',['../structfranka_1_1RobotState.html#acdef8005828d193e45b128085a9e363b',1,'franka::RobotState']]], - ['tau_5fj',['tau_J',['../classfranka_1_1Torques.html#ac2a266cc2d3b7e0fb4f8eff045dbaed8',1,'franka::Torques::tau_J()'],['../structfranka_1_1RobotState.html#ad90e2518d661da0d8fa4c864bae210e5',1,'franka::RobotState::tau_J()']]], - ['tau_5fj_5fd',['tau_J_d',['../structfranka_1_1RobotState.html#a7086a89a2705810f93a3a95d43df2d9d',1,'franka::RobotState']]], - ['tau_5fj_5frange_5fviolation',['tau_j_range_violation',['../structfranka_1_1Errors.html#a1491f8428341649befa3d088aebb317e',1,'franka::Errors']]], - ['temperature',['temperature',['../structfranka_1_1GripperState.html#aa6733fa786dbf3b073acbaf3779e34b3',1,'franka::GripperState']]], - ['theta',['theta',['../structfranka_1_1RobotState.html#aa34145d77dd411d7ca578c355f0ba2b4',1,'franka::RobotState']]], - ['time',['time',['../structfranka_1_1GripperState.html#a80bf474b0e4351e2eefab62d1bd10c07',1,'franka::GripperState::time()'],['../structfranka_1_1RobotState.html#aabfdabeaef8c1858c52dd32344bdd039',1,'franka::RobotState::time()'],['../structfranka_1_1VacuumGripperState.html#aaa98eb6e1888094aace2014121a468ab',1,'franka::VacuumGripperState::time()']]], - ['tomsec',['toMSec',['../classfranka_1_1Duration.html#a2a25ae33c8739b8f705f13798aa9e162',1,'franka::Duration']]], - ['torques',['Torques',['../classfranka_1_1Torques.html',1,'franka::Torques'],['../structfranka_1_1RobotCommand.html#a8b23e8b669b1fd594988ecdbf54bfbce',1,'franka::RobotCommand::torques()'],['../classfranka_1_1Torques.html#a509d63195827289ffc645e4b62a9750d',1,'franka::Torques::Torques(const std::array< double, 7 > &torques) noexcept'],['../classfranka_1_1Torques.html#a744a08e16dcfc40b3a90ab6a85bac0d8',1,'franka::Torques::Torques(std::initializer_list< double > torques)']]], - ['tosec',['toSec',['../classfranka_1_1Duration.html#a497af77a3280159547f231f0374e9ac1',1,'franka::Duration']]] -]; diff --git a/search/all_14.html b/search/all_14.html deleted file mode 100644 index fb4d0ecc..00000000 --- a/search/all_14.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_14.js b/search/all_14.js deleted file mode 100644 index 82f37301..00000000 --- a/search/all_14.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['vacuum',['vacuum',['../structfranka_1_1VacuumGripperState.html#ae94720737193caa696a47563a8efe6a8',1,'franka::VacuumGripperState::vacuum()'],['../classfranka_1_1VacuumGripper.html#a517d95d9800990ca1a5892473c2def89',1,'franka::VacuumGripper::vacuum()']]], - ['vacuum_5fgripper_2eh',['vacuum_gripper.h',['../vacuum__gripper_8h.html',1,'']]], - ['vacuum_5fgripper_5fstate_2eh',['vacuum_gripper_state.h',['../vacuum__gripper__state_8h.html',1,'']]], - ['vacuumgripper',['VacuumGripper',['../classfranka_1_1VacuumGripper.html',1,'franka::VacuumGripper'],['../classfranka_1_1VacuumGripper.html#ab5d8483a0bb16136da684cfac721eae1',1,'franka::VacuumGripper::VacuumGripper(const std::string &franka_address)'],['../classfranka_1_1VacuumGripper.html#ab80730b14b5948eea37395e87800ce5f',1,'franka::VacuumGripper::VacuumGripper(VacuumGripper &&vacuum_gripper) noexcept']]], - ['vacuumgripperdevicestatus',['VacuumGripperDeviceStatus',['../vacuum__gripper__state_8h.html#a423e2ce5f95933b9897c6e308d91b611',1,'franka']]], - ['vacuumgripperstate',['VacuumGripperState',['../structfranka_1_1VacuumGripperState.html',1,'franka']]], - ['virtualwallcuboid',['VirtualWallCuboid',['../structfranka_1_1VirtualWallCuboid.html',1,'franka']]] -]; diff --git a/search/all_15.html b/search/all_15.html deleted file mode 100644 index 8afe9a03..00000000 --- a/search/all_15.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_15.js b/search/all_15.js deleted file mode 100644 index 171b2654..00000000 --- a/search/all_15.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['width',['width',['../structfranka_1_1GripperState.html#adf095f446ec39a9a48e120b209dcd6e9',1,'franka::GripperState']]] -]; diff --git a/search/all_16.html b/search/all_16.html deleted file mode 100644 index e511edbc..00000000 --- a/search/all_16.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_16.js b/search/all_16.js deleted file mode 100644 index 3740dc14..00000000 --- a/search/all_16.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['zerojacobian',['zeroJacobian',['../classfranka_1_1Model.html#a6fb6347b571a6759bad10b3a9e28a28f',1,'franka::Model::zeroJacobian(Frame frame, const franka::RobotState &robot_state) const'],['../classfranka_1_1Model.html#a6522f1079e1dc5f6799dde6197b45259',1,'franka::Model::zeroJacobian(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const']]] -]; diff --git a/search/all_17.html b/search/all_17.html deleted file mode 100644 index 5ca9efdc..00000000 --- a/search/all_17.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_17.js b/search/all_17.js deleted file mode 100644 index 1b29018f..00000000 --- a/search/all_17.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7egripper',['~Gripper',['../classfranka_1_1Gripper.html#ade253b8a35312d52c636c6aafb7b2e1d',1,'franka::Gripper']]], - ['_7emodel',['~Model',['../classfranka_1_1Model.html#a1d6ffa26afc6cfdff7e329d15b8bd65e',1,'franka::Model']]], - ['_7erobot',['~Robot',['../classfranka_1_1Robot.html#a28abb25d25b5a1ce4463e32a518682e4',1,'franka::Robot']]], - ['_7evacuumgripper',['~VacuumGripper',['../classfranka_1_1VacuumGripper.html#af43f640f3cb9ca873b02bb464d3c279b',1,'franka::VacuumGripper']]] -]; diff --git a/search/all_2.html b/search/all_2.html deleted file mode 100644 index 9543c57b..00000000 --- a/search/all_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_2.js b/search/all_2.js deleted file mode 100644 index 46143f08..00000000 --- a/search/all_2.js +++ /dev/null @@ -1,39 +0,0 @@ -var searchData= -[ - ['cartesian_5fcollision',['cartesian_collision',['../structfranka_1_1RobotState.html#a52c20478f4c1e162df38582ea9bda044',1,'franka::RobotState']]], - ['cartesian_5fcontact',['cartesian_contact',['../structfranka_1_1RobotState.html#a7fc1f0358d2104d39d301d70544fa6c1',1,'franka::RobotState']]], - ['cartesian_5fmotion_5fgenerator_5facceleration_5fdiscontinuity',['cartesian_motion_generator_acceleration_discontinuity',['../structfranka_1_1Errors.html#a10c6ac36bf48b4a9edf91e74d9bc4837',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5felbow_5flimit_5fviolation',['cartesian_motion_generator_elbow_limit_violation',['../structfranka_1_1Errors.html#ac21ebdc1e0e8fb3099a7dce284550c4c',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5felbow_5fsign_5finconsistent',['cartesian_motion_generator_elbow_sign_inconsistent',['../structfranka_1_1Errors.html#a58b0e1199c9dded5a32bfeb110e63037',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5facceleration_5fdiscontinuity',['cartesian_motion_generator_joint_acceleration_discontinuity',['../structfranka_1_1Errors.html#a2e223ef3c771709a6a3f094adf12f9cb',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5fposition_5flimits_5fviolation',['cartesian_motion_generator_joint_position_limits_violation',['../structfranka_1_1Errors.html#a73aef7473fd6d1d5b207e68fa35948c5',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5fvelocity_5fdiscontinuity',['cartesian_motion_generator_joint_velocity_discontinuity',['../structfranka_1_1Errors.html#a1c8c56766fefc19fda5d5de909ca5b37',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5fvelocity_5flimits_5fviolation',['cartesian_motion_generator_joint_velocity_limits_violation',['../structfranka_1_1Errors.html#a435d16d62a123bfbf578bc76e3780605',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fstart_5felbow_5finvalid',['cartesian_motion_generator_start_elbow_invalid',['../structfranka_1_1Errors.html#a6d905b803bbe8a7be8490f2a94ba524a',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fvelocity_5fdiscontinuity',['cartesian_motion_generator_velocity_discontinuity',['../structfranka_1_1Errors.html#a17e4a9b6b7dc4cc12c1328d36cac3eaf',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fvelocity_5flimits_5fviolation',['cartesian_motion_generator_velocity_limits_violation',['../structfranka_1_1Errors.html#a91437c081452ef708563346b102ba894',1,'franka::Errors']]], - ['cartesian_5fpose',['cartesian_pose',['../structfranka_1_1RobotCommand.html#acce2090d696ebb9759fd0f37fd35a298',1,'franka::RobotCommand']]], - ['cartesian_5fposition_5flimits_5fviolation',['cartesian_position_limits_violation',['../structfranka_1_1Errors.html#a41c8b50ecbb015a2dba1a3dbbff694b6',1,'franka::Errors']]], - ['cartesian_5fposition_5fmotion_5fgenerator_5finvalid_5fframe',['cartesian_position_motion_generator_invalid_frame',['../structfranka_1_1Errors.html#aa1952c6da2f81578861a19b947c97b85',1,'franka::Errors']]], - ['cartesian_5fposition_5fmotion_5fgenerator_5fstart_5fpose_5finvalid',['cartesian_position_motion_generator_start_pose_invalid',['../structfranka_1_1Errors.html#aa910fad4992b91be1ea1c321ee9b7a1e',1,'franka::Errors']]], - ['cartesian_5freflex',['cartesian_reflex',['../structfranka_1_1Errors.html#a47bd58b0ab2198e4d038e0a24eafb310',1,'franka::Errors']]], - ['cartesian_5fvelocities',['cartesian_velocities',['../structfranka_1_1RobotCommand.html#a04b4841130fab920936190be1bc5dba3',1,'franka::RobotCommand']]], - ['cartesian_5fvelocity_5fprofile_5fsafety_5fviolation',['cartesian_velocity_profile_safety_violation',['../structfranka_1_1Errors.html#afc093fc5f99e1f6cab6de4fa9bc32692',1,'franka::Errors']]], - ['cartesian_5fvelocity_5fviolation',['cartesian_velocity_violation',['../structfranka_1_1Errors.html#a382fbec6b463ddcc2cbfd90340021ff1',1,'franka::Errors']]], - ['cartesianlowpassfilter',['cartesianLowpassFilter',['../lowpass__filter_8h.html#ac25e174345ea5e2ea9099287ad43cd2b',1,'franka']]], - ['cartesianpose',['CartesianPose',['../classfranka_1_1CartesianPose.html',1,'franka::CartesianPose'],['../classfranka_1_1CartesianPose.html#a5559a53a898f9b369b1df9d51f9351b5',1,'franka::CartesianPose::CartesianPose(const std::array< double, 16 > &cartesian_pose) noexcept'],['../classfranka_1_1CartesianPose.html#a17272cb33af9aa4b726fa96b31cf0101',1,'franka::CartesianPose::CartesianPose(const std::array< double, 16 > &cartesian_pose, const std::array< double, 2 > &elbow) noexcept'],['../classfranka_1_1CartesianPose.html#a70b6460e98bc763a49c53accd48d54a2',1,'franka::CartesianPose::CartesianPose(std::initializer_list< double > cartesian_pose)'],['../classfranka_1_1CartesianPose.html#ab7fb1dfd7cdb89c0caebab95c669ba49',1,'franka::CartesianPose::CartesianPose(std::initializer_list< double > cartesian_pose, std::initializer_list< double > elbow)']]], - ['cartesianvelocities',['CartesianVelocities',['../classfranka_1_1CartesianVelocities.html',1,'franka::CartesianVelocities'],['../classfranka_1_1CartesianVelocities.html#a713380954e1f10c1be3033b95ca00657',1,'franka::CartesianVelocities::CartesianVelocities(const std::array< double, 6 > &cartesian_velocities) noexcept'],['../classfranka_1_1CartesianVelocities.html#a95f6feec3539ed9f96d555447717eb72',1,'franka::CartesianVelocities::CartesianVelocities(const std::array< double, 6 > &cartesian_velocities, const std::array< double, 2 > &elbow) noexcept'],['../classfranka_1_1CartesianVelocities.html#a39c4b06c315c963460e24324de8ad079',1,'franka::CartesianVelocities::CartesianVelocities(std::initializer_list< double > cartesian_velocities)'],['../classfranka_1_1CartesianVelocities.html#aec434afa3f92e462ad3ab4766d3456a4',1,'franka::CartesianVelocities::CartesianVelocities(std::initializer_list< double > cartesian_velocities, std::initializer_list< double > elbow)']]], - ['command',['command',['../structfranka_1_1Record.html#a8106f2ba9c2cf5ec7cbcf914c4c99e9c',1,'franka::Record']]], - ['command_5ftypes_2eh',['command_types.h',['../command__types_8h.html',1,'']]], - ['commandexception',['CommandException',['../structfranka_1_1CommandException.html',1,'franka']]], - ['communication_5fconstraints_5fviolation',['communication_constraints_violation',['../structfranka_1_1Errors.html#a4d17af86c1ebb698c218796fa15f9bd7',1,'franka::Errors']]], - ['control',['control',['../classfranka_1_1Robot.html#a5b5ba0a4f2bfd20be963b05622e629e1',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a5f012ef276eb94d2a98a077bafb49bfe',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#ab16874af2fa32c9ab901683c1666888b',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a368c282fca42f4214864d0d39893fc6e',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a3cc02de96810eebc74f499f5821f2ac9',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a8a41a2f208cc0c7e68569a550af4e1b2',1,'franka::Robot::control(std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a7b2856e3c3c7a5582fd16f7414c30221',1,'franka::Robot::control(std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a6e59bd7b50b2de2e9e54f0b60d1a552e',1,'franka::Robot::control(std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a5d39a89a41edee89a776c3491dd20738',1,'franka::Robot::control(std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)']]], - ['control_5fcommand_5fsuccess_5frate',['control_command_success_rate',['../structfranka_1_1RobotState.html#af208572613a6afcdc61a24970c71fa28',1,'franka::RobotState']]], - ['control_5ftools_2eh',['control_tools.h',['../control__tools_8h.html',1,'']]], - ['control_5ftypes_2eh',['control_types.h',['../control__types_8h.html',1,'']]], - ['controlexception',['ControlException',['../structfranka_1_1ControlException.html',1,'franka::ControlException'],['../structfranka_1_1ControlException.html#a2efb9628eef80a3819031dbf2e2cb518',1,'franka::ControlException::ControlException()']]], - ['controller_5ftorque_5fdiscontinuity',['controller_torque_discontinuity',['../structfranka_1_1Errors.html#af40d93759ace9ee6026208110692a732',1,'franka::Errors']]], - ['controllermode',['ControllerMode',['../control__types_8h.html#a3e20bc77587e2c0c53598753e3f4816b',1,'franka']]], - ['coriolis',['coriolis',['../classfranka_1_1Model.html#a91424f181a93bb47bda6af2d3567c65c',1,'franka::Model::coriolis(const franka::RobotState &robot_state) const noexcept'],['../classfranka_1_1Model.html#a3445ad932ddda2e3540768af9b7b4852',1,'franka::Model::coriolis(const std::array< double, 7 > &q, const std::array< double, 7 > &dq, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexcept']]], - ['current_5ferrors',['current_errors',['../structfranka_1_1RobotState.html#abc5515f7a27f5de82396ea792a5ecb48',1,'franka::RobotState']]] -]; diff --git a/search/all_3.html b/search/all_3.html deleted file mode 100644 index 03405c0f..00000000 --- a/search/all_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_3.js b/search/all_3.js deleted file mode 100644 index cb5bb01e..00000000 --- a/search/all_3.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['ddelbow_5fc',['ddelbow_c',['../structfranka_1_1RobotState.html#a1e5b6caf84249b1129491dbbcb1fc2e6',1,'franka::RobotState']]], - ['ddq_5fd',['ddq_d',['../structfranka_1_1RobotState.html#a6251e748cf72f4b86bcfdcb97d77ace2',1,'franka::RobotState']]], - ['delbow_5fc',['delbow_c',['../structfranka_1_1RobotState.html#a57c2c145e9f79010adf23085b8a9c5ad',1,'franka::RobotState']]], - ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]], - ['device_5fstatus',['device_status',['../structfranka_1_1VacuumGripperState.html#ab44560b09c4a959c06ddafbd7f21da02',1,'franka::VacuumGripperState']]], - ['dq',['dq',['../classfranka_1_1JointVelocities.html#a14fddb6fe7a7c4034dc82c283de8c2d3',1,'franka::JointVelocities::dq()'],['../structfranka_1_1RobotState.html#af372a0081d72bc7b4fe873f99c7b2d8c',1,'franka::RobotState::dq()']]], - ['dq_5fd',['dq_d',['../structfranka_1_1RobotState.html#aed294a088be27b927be9575a18bec949',1,'franka::RobotState']]], - ['dropoff',['dropOff',['../classfranka_1_1VacuumGripper.html#a04645348e97b946a788205c8b1168cac',1,'franka::VacuumGripper']]], - ['dtau_5fj',['dtau_J',['../structfranka_1_1RobotState.html#ae6b0d4ee0d7b36240a2165e6ded6f4b9',1,'franka::RobotState']]], - ['dtheta',['dtheta',['../structfranka_1_1RobotState.html#a271db0a55dd346715ed8a0daf3f8887c',1,'franka::RobotState']]], - ['duration',['Duration',['../classfranka_1_1Duration.html',1,'franka::Duration'],['../classfranka_1_1Duration.html#af721da321423772b4ce7ff11280d38d5',1,'franka::Duration::Duration() noexcept'],['../classfranka_1_1Duration.html#a46f0cea3e05c27cdaaba5ff25e0e6cd6',1,'franka::Duration::Duration(uint64_t milliseconds) noexcept'],['../classfranka_1_1Duration.html#a389dfef50f34e9cc5be69838fbdafba7',1,'franka::Duration::Duration(std::chrono::duration< uint64_t, std::milli > duration) noexcept'],['../classfranka_1_1Duration.html#a886575e716b45e85de1bb78def2eb133',1,'franka::Duration::Duration(const Duration &)=default']]], - ['duration_2eh',['duration.h',['../duration_8h.html',1,'']]] -]; diff --git a/search/all_4.html b/search/all_4.html deleted file mode 100644 index 8e1f4b9c..00000000 --- a/search/all_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_4.js b/search/all_4.js deleted file mode 100644 index 58c46317..00000000 --- a/search/all_4.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['ee_5ft_5fk',['EE_T_K',['../structfranka_1_1RobotState.html#aeb78a3b4b76d4f57b9898cbea3a0f7aa',1,'franka::RobotState']]], - ['elbow',['elbow',['../classfranka_1_1CartesianPose.html#abef660743df9cf94d11c556d9c3d25be',1,'franka::CartesianPose::elbow()'],['../classfranka_1_1CartesianVelocities.html#a6419df1399d3dfab79b1654b94ced344',1,'franka::CartesianVelocities::elbow()'],['../structfranka_1_1RobotState.html#a43485841c427d70e7f36a912cc3116d1',1,'franka::RobotState::elbow()']]], - ['elbow_5fc',['elbow_c',['../structfranka_1_1RobotState.html#a16cfc844894e8b5b1ad829be529962f0',1,'franka::RobotState']]], - ['elbow_5fd',['elbow_d',['../structfranka_1_1RobotState.html#a295dada05d8588fc3c19a74fd427dcc0',1,'franka::RobotState']]], - ['errors',['Errors',['../structfranka_1_1Errors.html',1,'franka::Errors'],['../structfranka_1_1Errors.html#aedd6b6af230c01b6f106b5050b29d9ae',1,'franka::Errors::Errors()'],['../structfranka_1_1Errors.html#a4548a72089cc6d61c9249a1b8f4cc480',1,'franka::Errors::Errors(const Errors &other)'],['../structfranka_1_1Errors.html#a5f89cf2815adc679e232dcc6b8308c1b',1,'franka::Errors::Errors(const std::array< bool, 37 > &errors)']]], - ['errors_2eh',['errors.h',['../errors_8h.html',1,'']]], - ['examples_5fcommon_2eh',['examples_common.h',['../examples__common_8h.html',1,'']]], - ['exception',['Exception',['../structfranka_1_1Exception.html',1,'franka']]], - ['exception_2eh',['exception.h',['../exception_8h.html',1,'']]] -]; diff --git a/search/all_5.html b/search/all_5.html deleted file mode 100644 index 89a879ea..00000000 --- a/search/all_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_5.js b/search/all_5.js deleted file mode 100644 index 85890329..00000000 --- a/search/all_5.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['f_5ft_5fee',['F_T_EE',['../structfranka_1_1RobotState.html#a705b85049fef747008b0eba8284c8057',1,'franka::RobotState']]], - ['f_5ft_5fne',['F_T_NE',['../structfranka_1_1RobotState.html#a88142795c453775c360e18d8a6570d15',1,'franka::RobotState']]], - ['f_5fx_5fcee',['F_x_Cee',['../structfranka_1_1RobotState.html#a907c4561d8f1c1a2af7980cf58ceb112',1,'franka::RobotState']]], - ['f_5fx_5fcload',['F_x_Cload',['../structfranka_1_1RobotState.html#a48e921e6215ad32f36e424b4d7b66a89',1,'franka::RobotState']]], - ['f_5fx_5fctotal',['F_x_Ctotal',['../structfranka_1_1RobotState.html#a72ee7362018e3c9e95e3c41e857bfd8d',1,'franka::RobotState']]], - ['finishable',['Finishable',['../structfranka_1_1Finishable.html',1,'franka']]], - ['force_5fcontrol_5fsafety_5fviolation',['force_control_safety_violation',['../structfranka_1_1Errors.html#ae7b19674da28b11ba970c30c7d800923',1,'franka::Errors']]], - ['force_5fcontroller_5fdesired_5fforce_5ftolerance_5fviolation',['force_controller_desired_force_tolerance_violation',['../structfranka_1_1Errors.html#ae474f20a64b2585dbe6496966dddff0a',1,'franka::Errors']]], - ['frame',['Frame',['../model_8h.html#a00b729ddce916481d3f0d10febec4f5b',1,'franka']]] -]; diff --git a/search/all_6.html b/search/all_6.html deleted file mode 100644 index 6afac066..00000000 --- a/search/all_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_6.js b/search/all_6.js deleted file mode 100644 index dded06ba..00000000 --- a/search/all_6.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['getvirtualwall',['getVirtualWall',['../classfranka_1_1Robot.html#a1739f6dc13f0c33b3213375323c93399',1,'franka::Robot']]], - ['grasp',['grasp',['../classfranka_1_1Gripper.html#abff6a03a6c75b9079bd4b9b5ca380254',1,'franka::Gripper']]], - ['gravity',['gravity',['../classfranka_1_1Model.html#a9b28a648cf413297d80f383e62363ab9',1,'franka::Model::gravity(const std::array< double, 7 > &q, double m_total, const std::array< double, 3 > &F_x_Ctotal, const std::array< double, 3 > &gravity_earth={{0., 0., -9.81}}) const noexcept'],['../classfranka_1_1Model.html#a0552a9fa39f4b49d78e6b88d794cac92',1,'franka::Model::gravity(const franka::RobotState &robot_state, const std::array< double, 3 > &gravity_earth={ {0., 0., -9.81}}) const noexcept']]], - ['gripper',['Gripper',['../classfranka_1_1Gripper.html',1,'franka::Gripper'],['../classfranka_1_1Gripper.html#a02b30632b08001592c62d3563561afc5',1,'franka::Gripper::Gripper(const std::string &franka_address)'],['../classfranka_1_1Gripper.html#aa045ea81b36f22420f9bc6f2a256a4f0',1,'franka::Gripper::Gripper(Gripper &&gripper) noexcept']]], - ['gripper_2eh',['gripper.h',['../gripper_8h.html',1,'']]], - ['gripper_5fstate_2eh',['gripper_state.h',['../gripper__state_8h.html',1,'']]], - ['gripperstate',['GripperState',['../structfranka_1_1GripperState.html',1,'franka']]] -]; diff --git a/search/all_7.html b/search/all_7.html deleted file mode 100644 index de191077..00000000 --- a/search/all_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_7.js b/search/all_7.js deleted file mode 100644 index 36ebdf22..00000000 --- a/search/all_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['haselbow',['hasElbow',['../classfranka_1_1CartesianPose.html#a5fa9f47dbf73ab45f671d89e11f89ccf',1,'franka::CartesianPose::hasElbow()'],['../classfranka_1_1CartesianVelocities.html#a51a41893b10250982597fe367abb2ca6',1,'franka::CartesianVelocities::hasElbow()']]], - ['hasrealtimekernel',['hasRealtimeKernel',['../control__tools_8h.html#ad165a74da105c78586c0cd4c1ed57bd2',1,'franka']]], - ['homing',['homing',['../classfranka_1_1Gripper.html#aef356f93a4c3b9d6b2532c29126d478c',1,'franka::Gripper']]] -]; diff --git a/search/all_8.html b/search/all_8.html deleted file mode 100644 index 11e27cdb..00000000 --- a/search/all_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_8.js b/search/all_8.js deleted file mode 100644 index df20b55b..00000000 --- a/search/all_8.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['i_5fee',['I_ee',['../structfranka_1_1RobotState.html#a74cee1beb5d400694133deea2846e611',1,'franka::RobotState']]], - ['i_5fload',['I_load',['../structfranka_1_1RobotState.html#a5b194153497eff98049681f852118f82',1,'franka::RobotState']]], - ['i_5ftotal',['I_total',['../structfranka_1_1RobotState.html#ad9120ae7b7613e77df8c1c3eba8fb033',1,'franka::RobotState']]], - ['id',['id',['../structfranka_1_1VirtualWallCuboid.html#a2cee9b57fa420372a9576899875ad71a',1,'franka::VirtualWallCuboid']]], - ['in_5fcontrol_5frange',['in_control_range',['../structfranka_1_1VacuumGripperState.html#a70c1b14b10c2a79511fcada258c7e0ba',1,'franka::VacuumGripperState']]], - ['incompatibleversionexception',['IncompatibleVersionException',['../structfranka_1_1IncompatibleVersionException.html',1,'franka::IncompatibleVersionException'],['../structfranka_1_1IncompatibleVersionException.html#a518f40d994ed7e970c6f7fdafb673239',1,'franka::IncompatibleVersionException::IncompatibleVersionException()']]], - ['instability_5fdetected',['instability_detected',['../structfranka_1_1Errors.html#aebb701987262097687d21b3cf1bc8930',1,'franka::Errors']]], - ['invalidoperationexception',['InvalidOperationException',['../structfranka_1_1InvalidOperationException.html',1,'franka']]], - ['is_5fgrasped',['is_grasped',['../structfranka_1_1GripperState.html#aa65b46313e740454ead9c9ea27e7bf8d',1,'franka::GripperState']]], - ['ishomogeneoustransformation',['isHomogeneousTransformation',['../control__tools_8h.html#ad81c99e8af3f2536ae3c6ec1ce8dce1e',1,'franka']]], - ['isvalidelbow',['isValidElbow',['../control__tools_8h.html#a4eda3eda0514fabf6d630a6d8c0373a0',1,'franka']]] -]; diff --git a/search/all_9.html b/search/all_9.html deleted file mode 100644 index f8abbbe5..00000000 --- a/search/all_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_9.js b/search/all_9.js deleted file mode 100644 index 4875432c..00000000 --- a/search/all_9.js +++ /dev/null @@ -1,19 +0,0 @@ -var searchData= -[ - ['joint_5fcollision',['joint_collision',['../structfranka_1_1RobotState.html#a38757bafd4dd8e138410de1dca0c36f8',1,'franka::RobotState']]], - ['joint_5fcontact',['joint_contact',['../structfranka_1_1RobotState.html#a7243c652a8efe58c343a0d1252302fa4',1,'franka::RobotState']]], - ['joint_5fmotion_5fgenerator_5facceleration_5fdiscontinuity',['joint_motion_generator_acceleration_discontinuity',['../structfranka_1_1Errors.html#a633195adca91f5ecaf1506da12f3311f',1,'franka::Errors']]], - ['joint_5fmotion_5fgenerator_5fposition_5flimits_5fviolation',['joint_motion_generator_position_limits_violation',['../structfranka_1_1Errors.html#a9536ad072868b90525c56143cbb956ef',1,'franka::Errors']]], - ['joint_5fmotion_5fgenerator_5fvelocity_5fdiscontinuity',['joint_motion_generator_velocity_discontinuity',['../structfranka_1_1Errors.html#abd6da8e6a32d817a7b4848a24efd9379',1,'franka::Errors']]], - ['joint_5fmotion_5fgenerator_5fvelocity_5flimits_5fviolation',['joint_motion_generator_velocity_limits_violation',['../structfranka_1_1Errors.html#ae211638df9b0e23905c8a9d36e249207',1,'franka::Errors']]], - ['joint_5fmove_5fin_5fwrong_5fdirection',['joint_move_in_wrong_direction',['../structfranka_1_1Errors.html#a7d3a6480cbe572fd46e579b43732edc9',1,'franka::Errors']]], - ['joint_5fp2p_5finsufficient_5ftorque_5ffor_5fplanning',['joint_p2p_insufficient_torque_for_planning',['../structfranka_1_1Errors.html#a1c78be870253b510a4516acf14c2d3e3',1,'franka::Errors']]], - ['joint_5fposition_5flimits_5fviolation',['joint_position_limits_violation',['../structfranka_1_1Errors.html#a44ba0d45e52639280d32cf447f967e29',1,'franka::Errors']]], - ['joint_5fposition_5fmotion_5fgenerator_5fstart_5fpose_5finvalid',['joint_position_motion_generator_start_pose_invalid',['../structfranka_1_1Errors.html#a7af91cbf61dc79304bff3ffadc51ea86',1,'franka::Errors']]], - ['joint_5fpositions',['joint_positions',['../structfranka_1_1RobotCommand.html#a086afcec596eae5284b6c39dc1452280',1,'franka::RobotCommand']]], - ['joint_5freflex',['joint_reflex',['../structfranka_1_1Errors.html#afb0928680c586e73d4e2cd4b42c7fe48',1,'franka::Errors']]], - ['joint_5fvelocities',['joint_velocities',['../structfranka_1_1RobotCommand.html#a049657cf2bbbb53d6ffa5581721e7b71',1,'franka::RobotCommand']]], - ['joint_5fvelocity_5fviolation',['joint_velocity_violation',['../structfranka_1_1Errors.html#a803ac4acbc26350602ea2eb02b7b30c4',1,'franka::Errors']]], - ['jointpositions',['JointPositions',['../classfranka_1_1JointPositions.html',1,'franka::JointPositions'],['../classfranka_1_1JointPositions.html#a57bc9d7e033493b1182333276af5ce84',1,'franka::JointPositions::JointPositions(const std::array< double, 7 > &joint_positions) noexcept'],['../classfranka_1_1JointPositions.html#a1e2006bccc9de89d8eb1a4d1c4da2fb8',1,'franka::JointPositions::JointPositions(std::initializer_list< double > joint_positions)']]], - ['jointvelocities',['JointVelocities',['../classfranka_1_1JointVelocities.html',1,'franka::JointVelocities'],['../classfranka_1_1JointVelocities.html#a1130f851055de3b7ebe9e6fbac960826',1,'franka::JointVelocities::JointVelocities(const std::array< double, 7 > &joint_velocities) noexcept'],['../classfranka_1_1JointVelocities.html#aed384fad8e302638c2e5baea6378c2d2',1,'franka::JointVelocities::JointVelocities(std::initializer_list< double > joint_velocities)']]] -]; diff --git a/search/all_a.html b/search/all_a.html deleted file mode 100644 index 9601fcee..00000000 --- a/search/all_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_a.js b/search/all_a.js deleted file mode 100644 index 39e4f936..00000000 --- a/search/all_a.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['k_5ff_5fext_5fhat_5fk',['K_F_ext_hat_K',['../structfranka_1_1RobotState.html#a96267d443c05fcc58d7ac32f63912649',1,'franka::RobotState']]], - ['kdefaultcutofffrequency',['kDefaultCutoffFrequency',['../lowpass__filter_8h.html#ad8e3b7da346e03181ab5ac138a4171d4',1,'franka']]], - ['kdeltat',['kDeltaT',['../rate__limiting_8h.html#a1e207a0d5a6e90c1e1a78e6e1057120a',1,'franka']]], - ['kfactorcartesianrotationposeinterface',['kFactorCartesianRotationPoseInterface',['../rate__limiting_8h.html#a19166d1a64c5a84f80b4ed3aa0bfb3a0',1,'franka']]], - ['klimiteps',['kLimitEps',['../rate__limiting_8h.html#aad1f9b575274830b8da9e638559d424b',1,'franka']]], - ['kmaxcutofffrequency',['kMaxCutoffFrequency',['../lowpass__filter_8h.html#adb10b364af8deb9e17d9bcc1ff2695be',1,'franka']]], - ['kmaxelbowacceleration',['kMaxElbowAcceleration',['../rate__limiting_8h.html#af365e574ad7b1580ce15e30dd909b3ba',1,'franka']]], - ['kmaxelbowjerk',['kMaxElbowJerk',['../rate__limiting_8h.html#adc70178204d4da073c78de777a2dff74',1,'franka']]], - ['kmaxelbowvelocity',['kMaxElbowVelocity',['../rate__limiting_8h.html#a2896b2e0c8bd96f9ee242c1203ac3483',1,'franka']]], - ['kmaxjointacceleration',['kMaxJointAcceleration',['../rate__limiting_8h.html#a826ecf0b7d214df69c1ee416d3e66b93',1,'franka']]], - ['kmaxjointjerk',['kMaxJointJerk',['../rate__limiting_8h.html#a600a21a6151ff2eee38294293dd8aeec',1,'franka']]], - ['kmaxjointvelocity',['kMaxJointVelocity',['../rate__limiting_8h.html#a6d451800a90b939422dc9c3fb103ca23',1,'franka']]], - ['kmaxrotationalacceleration',['kMaxRotationalAcceleration',['../rate__limiting_8h.html#a5e3d5c95ba72f9660f17f8ebf1e0aa2e',1,'franka']]], - ['kmaxrotationaljerk',['kMaxRotationalJerk',['../rate__limiting_8h.html#a259520ce1b6b5b85a88d05262286820d',1,'franka']]], - ['kmaxrotationalvelocity',['kMaxRotationalVelocity',['../rate__limiting_8h.html#aafb1f5ef8f8a7abd546edea498c18b45',1,'franka']]], - ['kmaxtorquerate',['kMaxTorqueRate',['../rate__limiting_8h.html#a6c1a0e9a5e1f375d2aad61edac907d4e',1,'franka']]], - ['kmaxtranslationalacceleration',['kMaxTranslationalAcceleration',['../rate__limiting_8h.html#a3803b1a54ba526ccaa4fa0d15446f3db',1,'franka']]], - ['kmaxtranslationaljerk',['kMaxTranslationalJerk',['../rate__limiting_8h.html#a46b8f11959ed3f731a0914f524af8e69',1,'franka']]], - ['kmaxtranslationalvelocity',['kMaxTranslationalVelocity',['../rate__limiting_8h.html#a857e1e5e18d688ec7095264a629bf474',1,'franka']]], - ['knormeps',['kNormEps',['../rate__limiting_8h.html#a420d72830a872ef375d9d6cbb1c439b5',1,'franka']]], - ['ktolnumberpacketslost',['kTolNumberPacketsLost',['../rate__limiting_8h.html#a664b546834ceecd4e3220ffa92f1172c',1,'franka']]] -]; diff --git a/search/all_b.html b/search/all_b.html deleted file mode 100644 index 0814e4e0..00000000 --- a/search/all_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_b.js b/search/all_b.js deleted file mode 100644 index 1b89d4db..00000000 --- a/search/all_b.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['libfranka_3a_20c_2b_2b_20library_20for_20franka_20emika_20research_20robots',['libfranka: C++ library for Franka Emika research robots',['../index.html',1,'']]], - ['last_5fmotion_5ferrors',['last_motion_errors',['../structfranka_1_1RobotState.html#a06d7019f85339409e932dc086b7a260b',1,'franka::RobotState']]], - ['library_5fversion',['library_version',['../structfranka_1_1IncompatibleVersionException.html#a81e6d7f01965ed7ee34f83dc3883ad01',1,'franka::IncompatibleVersionException']]], - ['limitrate',['limitRate',['../rate__limiting_8h.html#aea6895d6bf209a86319c6cd5180e4b60',1,'franka::limitRate(const std::array< double, 7 > &max_derivatives, const std::array< double, 7 > &commanded_values, const std::array< double, 7 > &last_commanded_values)'],['../rate__limiting_8h.html#a6953f5b41a9fd77389b92b82cf378056',1,'franka::limitRate(double max_velocity, double max_acceleration, double max_jerk, double commanded_velocity, double last_commanded_velocity, double last_commanded_acceleration)'],['../rate__limiting_8h.html#a795142512ca54c220b2f2d52e239e35d',1,'franka::limitRate(double max_velocity, double max_acceleration, double max_jerk, double commanded_position, double last_commanded_position, double last_commanded_velocity, double last_commanded_acceleration)'],['../rate__limiting_8h.html#a1305865a42ca910eb5a9c912a8ae81a9',1,'franka::limitRate(const std::array< double, 7 > &max_velocity, const std::array< double, 7 > &max_acceleration, const std::array< double, 7 > &max_jerk, const std::array< double, 7 > &commanded_velocities, const std::array< double, 7 > &last_commanded_velocities, const std::array< double, 7 > &last_commanded_accelerations)'],['../rate__limiting_8h.html#aef657e3e3c7fc779c7944e0e5ac67308',1,'franka::limitRate(const std::array< double, 7 > &max_velocity, const std::array< double, 7 > &max_acceleration, const std::array< double, 7 > &max_jerk, const std::array< double, 7 > &commanded_positions, const std::array< double, 7 > &last_commanded_positions, const std::array< double, 7 > &last_commanded_velocities, const std::array< double, 7 > &last_commanded_accelerations)'],['../rate__limiting_8h.html#ad3e0243f9be5335ae3d04f87852dfccb',1,'franka::limitRate(double max_translational_velocity, double max_translational_acceleration, double max_translational_jerk, double max_rotational_velocity, double max_rotational_acceleration, double max_rotational_jerk, const std::array< double, 6 > &O_dP_EE_c, const std::array< double, 6 > &last_O_dP_EE_c, const std::array< double, 6 > &last_O_ddP_EE_c)'],['../rate__limiting_8h.html#a9288f438fcfc1aedf7e0b52aa95b23ba',1,'franka::limitRate(double max_translational_velocity, double max_translational_acceleration, double max_translational_jerk, double max_rotational_velocity, double max_rotational_acceleration, double max_rotational_jerk, const std::array< double, 16 > &O_T_EE_c, const std::array< double, 16 > &last_O_T_EE_c, const std::array< double, 6 > &last_O_dP_EE_c, const std::array< double, 6 > &last_O_ddP_EE_c)']]], - ['loadmodel',['loadModel',['../classfranka_1_1Robot.html#a2da598c539469827409ac7e3bb61d5da',1,'franka::Robot']]], - ['log',['log',['../structfranka_1_1ControlException.html#ae57f0ac0a9aa195057af1f1cc712b41e',1,'franka::ControlException']]], - ['log_2eh',['log.h',['../log_8h.html',1,'']]], - ['logtocsv',['logToCSV',['../log_8h.html#a01fbdb37b0e6beb04ba108d5f5024fd9',1,'franka']]], - ['lowpass_5ffilter_2eh',['lowpass_filter.h',['../lowpass__filter_8h.html',1,'']]], - ['lowpassfilter',['lowpassFilter',['../lowpass__filter_8h.html#a94c21b0e87afce0147a9cd6025c239ca',1,'franka']]] -]; diff --git a/search/all_c.html b/search/all_c.html deleted file mode 100644 index da08c387..00000000 --- a/search/all_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_c.js b/search/all_c.js deleted file mode 100644 index c8e75fb6..00000000 --- a/search/all_c.js +++ /dev/null @@ -1,17 +0,0 @@ -var searchData= -[ - ['m_5fee',['m_ee',['../structfranka_1_1RobotState.html#af982a16246e33c1495ec02972a36bce3',1,'franka::RobotState']]], - ['m_5fload',['m_load',['../structfranka_1_1RobotState.html#a99ea4ab9c5a42a5c17365ed8fd730cd1',1,'franka::RobotState']]], - ['m_5ftotal',['m_total',['../structfranka_1_1RobotState.html#a87880d4693c8f576ebdabf00f4d4f981',1,'franka::RobotState']]], - ['mass',['mass',['../classfranka_1_1Model.html#ad5f6156064bc18e42fc0b6d2f36b2006',1,'franka::Model::mass(const franka::RobotState &robot_state) const noexcept'],['../classfranka_1_1Model.html#a61c3a8968e927c8629f1d549d20aaf85',1,'franka::Model::mass(const std::array< double, 7 > &q, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexcept']]], - ['max_5fgoal_5fpose_5fdeviation_5fviolation',['max_goal_pose_deviation_violation',['../structfranka_1_1Errors.html#ac55d3624087e606cb4ffab121869d580',1,'franka::Errors']]], - ['max_5fpath_5fpose_5fdeviation_5fviolation',['max_path_pose_deviation_violation',['../structfranka_1_1Errors.html#ad90cffe703ca1b782007f3ba49da587c',1,'franka::Errors']]], - ['max_5fwidth',['max_width',['../structfranka_1_1GripperState.html#ab71a26356c2898c49609bf991843e166',1,'franka::GripperState']]], - ['model',['Model',['../classfranka_1_1Model.html',1,'franka::Model'],['../classfranka_1_1Model.html#a751d939935eb51f06dcfd18c6c756ceb',1,'franka::Model::Model(franka::Network &network)'],['../classfranka_1_1Model.html#a8b58ff37f62512aecdcd0e6aabfd9548',1,'franka::Model::Model(Model &&model) noexcept']]], - ['model_2eh',['model.h',['../model_8h.html',1,'']]], - ['modelexception',['ModelException',['../structfranka_1_1ModelException.html',1,'franka']]], - ['motion_5ffinished',['motion_finished',['../structfranka_1_1Finishable.html#a5d48028c0f912d4a089e6220d8715f7f',1,'franka::Finishable']]], - ['motionfinished',['MotionFinished',['../control__types_8h.html#a20791f7142d78bbbe3c957cc66a23ade',1,'franka::MotionFinished(Torques command) noexcept'],['../control__types_8h.html#a7f505509951b6568b08b3aec8ffb9098',1,'franka::MotionFinished(JointPositions command) noexcept'],['../control__types_8h.html#ab478c128d691a46c0ab85bbf3b5caac5',1,'franka::MotionFinished(JointVelocities command) noexcept'],['../control__types_8h.html#ab0b308e2a9348fd3eb5fd1d08db12dcf',1,'franka::MotionFinished(CartesianPose command) noexcept'],['../control__types_8h.html#a5898ad5e3bbc2682c24c0415bf7e9a95',1,'franka::MotionFinished(CartesianVelocities command) noexcept']]], - ['motiongenerator',['MotionGenerator',['../classMotionGenerator.html',1,'MotionGenerator'],['../classMotionGenerator.html#a23dd564a60401c539fb7f1bf63470894',1,'MotionGenerator::MotionGenerator()']]], - ['move',['move',['../classfranka_1_1Gripper.html#a047bc39267d66d6fb26c4c70669d68c2',1,'franka::Gripper']]] -]; diff --git a/search/all_d.html b/search/all_d.html deleted file mode 100644 index 9986c9cb..00000000 --- a/search/all_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_d.js b/search/all_d.js deleted file mode 100644 index 08a510f2..00000000 --- a/search/all_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['ne_5ft_5fee',['NE_T_EE',['../structfranka_1_1RobotState.html#ac53f1046fe758cfdda438a8e3ba08fff',1,'franka::RobotState']]], - ['networkexception',['NetworkException',['../structfranka_1_1NetworkException.html',1,'franka']]] -]; diff --git a/search/all_e.html b/search/all_e.html deleted file mode 100644 index 9fa42bba..00000000 --- a/search/all_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_e.js b/search/all_e.js deleted file mode 100644 index 2ac6020a..00000000 --- a/search/all_e.js +++ /dev/null @@ -1,35 +0,0 @@ -var searchData= -[ - ['duration_3c_20uint64_5ft_2c_20std_3a_3amilli_20_3e',['duration< uint64_t, std::milli >',['../classfranka_1_1Duration.html#ae58e283f511f9de8ac7e145db5cac1cf',1,'franka::Duration']]], - ['o_5fddp_5fee_5fc',['O_ddP_EE_c',['../structfranka_1_1RobotState.html#ac8dfcf78ddbb27852484e921d6d66ca1',1,'franka::RobotState']]], - ['o_5fdp_5fee',['O_dP_EE',['../classfranka_1_1CartesianVelocities.html#ab7a42c7c1ee7109025aff5c43a56b398',1,'franka::CartesianVelocities']]], - ['o_5fdp_5fee_5fc',['O_dP_EE_c',['../structfranka_1_1RobotState.html#a4be112bd1a9a7d777a67aea4a18a8dcc',1,'franka::RobotState']]], - ['o_5fdp_5fee_5fd',['O_dP_EE_d',['../structfranka_1_1RobotState.html#a1e0a82b98534929c3061295d5761d607',1,'franka::RobotState']]], - ['o_5ff_5fext_5fhat_5fk',['O_F_ext_hat_K',['../structfranka_1_1RobotState.html#a5a830b4f9d6a3c2dc92e4a9cc6050493',1,'franka::RobotState']]], - ['o_5ft_5fee',['O_T_EE',['../classfranka_1_1CartesianPose.html#a406e53e3d8fe594a11888f516eb4bf7d',1,'franka::CartesianPose::O_T_EE()'],['../structfranka_1_1RobotState.html#a193781d47722b32925e0ea7ac415f442',1,'franka::RobotState::O_T_EE()']]], - ['o_5ft_5fee_5fc',['O_T_EE_c',['../structfranka_1_1RobotState.html#a395c48eff099419ea5d42eaf0870fc18',1,'franka::RobotState']]], - ['o_5ft_5fee_5fd',['O_T_EE_d',['../structfranka_1_1RobotState.html#a3e5b4b7687856e92d826044be7d15733',1,'franka::RobotState']]], - ['object_5fworld_5fsize',['object_world_size',['../structfranka_1_1VirtualWallCuboid.html#a754b771744e0df1facecd31835a78790',1,'franka::VirtualWallCuboid']]], - ['operator_20bool',['operator bool',['../structfranka_1_1Errors.html#a50cb6e50c1ce2b5ec281dcad83f1779e',1,'franka::Errors']]], - ['operator_21_3d',['operator!=',['../classfranka_1_1Duration.html#a61603353e39361af2f405c1df7097e84',1,'franka::Duration']]], - ['operator_25',['operator%',['../classfranka_1_1Duration.html#a5e472345c1bec29b645bee938932fdb1',1,'franka::Duration::operator%(const Duration &rhs) const noexcept'],['../classfranka_1_1Duration.html#af06ff91f24d881c479768c1bcbf31a1e',1,'franka::Duration::operator%(uint64_t rhs) const noexcept']]], - ['operator_25_3d',['operator%=',['../classfranka_1_1Duration.html#a97a6ea669877875ffc54c801ac0b152d',1,'franka::Duration::operator%=(const Duration &rhs) noexcept'],['../classfranka_1_1Duration.html#acd85bab22062a2258af83ac5b3b7a647',1,'franka::Duration::operator%=(uint64_t rhs) noexcept']]], - ['operator_28_29',['operator()',['../classMotionGenerator.html#aefd763e7c31c54b56404f33d2295fda9',1,'MotionGenerator']]], - ['operator_2a',['operator*',['../classfranka_1_1Duration.html#a3eebc39550880fb2d23d45ba34d8acc5',1,'franka::Duration::operator*()'],['../duration_8h.html#ab3a36a47682756845ef855994aadd7b6',1,'franka::operator*()']]], - ['operator_2a_3d',['operator*=',['../classfranka_1_1Duration.html#a73f971b2efb29a8ce663e8675d1ec09a',1,'franka::Duration']]], - ['operator_2b',['operator+',['../classfranka_1_1Duration.html#adb459e7bf5c6b02f9e72c808f5f30237',1,'franka::Duration']]], - ['operator_2b_2b',['operator++',['../model_8h.html#ae39c3a098fdb1bc9a097a262312454d0',1,'franka']]], - ['operator_2b_3d',['operator+=',['../classfranka_1_1Duration.html#ac55eb81937a12e736560bd856a8f23ae',1,'franka::Duration']]], - ['operator_2d',['operator-',['../classfranka_1_1Duration.html#a2a3bc1a8278b91bebe88d7498d410de9',1,'franka::Duration']]], - ['operator_2d_3d',['operator-=',['../classfranka_1_1Duration.html#acb24af377db86646918bcfb3e1e2ebe6',1,'franka::Duration']]], - ['operator_2f',['operator/',['../classfranka_1_1Duration.html#a90c76be31b53e11f5761416a05d990be',1,'franka::Duration::operator/(const Duration &rhs) const noexcept'],['../classfranka_1_1Duration.html#a15b7299198f36734b62ac98da1ef8c9c',1,'franka::Duration::operator/(uint64_t rhs) const noexcept']]], - ['operator_2f_3d',['operator/=',['../classfranka_1_1Duration.html#ac866dd8d0e8f2dbb92089dbd78418571',1,'franka::Duration']]], - ['operator_3c',['operator<',['../classfranka_1_1Duration.html#af1650b31c1226a447406fc243f4a2ac1',1,'franka::Duration']]], - ['operator_3c_3c',['operator<<',['../errors_8h.html#ad1027058086c3c154f4bbc9cade1f197',1,'franka::operator<<(std::ostream &ostream, const Errors &errors)'],['../gripper__state_8h.html#ab66181a74d1d3b7e90ae3b424ee85f4f',1,'franka::operator<<(std::ostream &ostream, const franka::GripperState &gripper_state)'],['../robot__state_8h.html#aee38e87180cc96476d0f11335da29e20',1,'franka::operator<<(std::ostream &ostream, const franka::RobotState &robot_state)'],['../vacuum__gripper__state_8h.html#aa2caece6baf774e998b6dec6e803cf24',1,'franka::operator<<(std::ostream &ostream, const franka::VacuumGripperState &vacuum_gripper_state)']]], - ['operator_3c_3d',['operator<=',['../classfranka_1_1Duration.html#ae4b9c8646fd50a2105d36f3848a5b949',1,'franka::Duration']]], - ['operator_3d',['operator=',['../classfranka_1_1Duration.html#adf2fec0c87fe1668e42f217ab029df19',1,'franka::Duration::operator=()'],['../structfranka_1_1Errors.html#a6fefa4083d79362080b79f3492fd4cb6',1,'franka::Errors::operator=()'],['../classfranka_1_1Gripper.html#a3c99c6973f8951ca489c4177cfacb069',1,'franka::Gripper::operator=()'],['../classfranka_1_1Model.html#a625529a4c9aed7783c9c6e150dbba793',1,'franka::Model::operator=()'],['../classfranka_1_1Robot.html#a35465b8497a7adbd277e70e98b7d97a7',1,'franka::Robot::operator=()'],['../classfranka_1_1VacuumGripper.html#a21d59603ac4deb8d9de5e074a57d080d',1,'franka::VacuumGripper::operator=()']]], - ['operator_3d_3d',['operator==',['../classfranka_1_1Duration.html#add0c7bcdfe51b563016236b223d74eae',1,'franka::Duration']]], - ['operator_3e',['operator>',['../classfranka_1_1Duration.html#a1702ec9121fe6cff1de533d116edcce0',1,'franka::Duration']]], - ['operator_3e_3d',['operator>=',['../classfranka_1_1Duration.html#a5bc498cf96d96f5908d6bd93eea491aa',1,'franka::Duration']]], - ['string',['string',['../structfranka_1_1Errors.html#a63ed1948f69db5be95a9c70107955d68',1,'franka::Errors']]] -]; diff --git a/search/all_f.html b/search/all_f.html deleted file mode 100644 index 6ecfc0ed..00000000 --- a/search/all_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/all_f.js b/search/all_f.js deleted file mode 100644 index 8053923f..00000000 --- a/search/all_f.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['p_5fframe',['p_frame',['../structfranka_1_1VirtualWallCuboid.html#ab34ba4f99676a36a4e1171fd8b431391',1,'franka::VirtualWallCuboid']]], - ['part_5fdetached',['part_detached',['../structfranka_1_1VacuumGripperState.html#aa27a2b4b9d19bdcb059995a8121ba309',1,'franka::VacuumGripperState']]], - ['part_5fpresent',['part_present',['../structfranka_1_1VacuumGripperState.html#aeb5664ab2a9784c9e31ce5f67c914107',1,'franka::VacuumGripperState']]], - ['pose',['pose',['../classfranka_1_1Model.html#a593c39dae76a6801cdd2402c2a783157',1,'franka::Model::pose(Frame frame, const franka::RobotState &robot_state) const'],['../classfranka_1_1Model.html#adf4fdf0404c2acf783493f7e646a6281',1,'franka::Model::pose(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const']]], - ['power_5flimit_5fviolation',['power_limit_violation',['../structfranka_1_1Errors.html#a6c4d8cb1fb314567ebd07a6195b840f5',1,'franka::Errors']]], - ['productionsetupprofile',['ProductionSetupProfile',['../classfranka_1_1VacuumGripper.html#a0c81171a75c385780a82ff8dc36ef51e',1,'franka::VacuumGripper']]], - ['protocolexception',['ProtocolException',['../structfranka_1_1ProtocolException.html',1,'franka']]] -]; diff --git a/search/classes_0.html b/search/classes_0.html deleted file mode 100644 index 1c3e406a..00000000 --- a/search/classes_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_0.js b/search/classes_0.js deleted file mode 100644 index 62ba21c2..00000000 --- a/search/classes_0.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['cartesianpose',['CartesianPose',['../classfranka_1_1CartesianPose.html',1,'franka']]], - ['cartesianvelocities',['CartesianVelocities',['../classfranka_1_1CartesianVelocities.html',1,'franka']]], - ['commandexception',['CommandException',['../structfranka_1_1CommandException.html',1,'franka']]], - ['controlexception',['ControlException',['../structfranka_1_1ControlException.html',1,'franka']]] -]; diff --git a/search/classes_1.html b/search/classes_1.html deleted file mode 100644 index a8e70695..00000000 --- a/search/classes_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_1.js b/search/classes_1.js deleted file mode 100644 index 413d3685..00000000 --- a/search/classes_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['duration',['Duration',['../classfranka_1_1Duration.html',1,'franka']]] -]; diff --git a/search/classes_2.html b/search/classes_2.html deleted file mode 100644 index 5c09c969..00000000 --- a/search/classes_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_2.js b/search/classes_2.js deleted file mode 100644 index bb43eafb..00000000 --- a/search/classes_2.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['errors',['Errors',['../structfranka_1_1Errors.html',1,'franka']]], - ['exception',['Exception',['../structfranka_1_1Exception.html',1,'franka']]] -]; diff --git a/search/classes_3.html b/search/classes_3.html deleted file mode 100644 index 5faaeba8..00000000 --- a/search/classes_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_3.js b/search/classes_3.js deleted file mode 100644 index b0325712..00000000 --- a/search/classes_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['finishable',['Finishable',['../structfranka_1_1Finishable.html',1,'franka']]] -]; diff --git a/search/classes_4.html b/search/classes_4.html deleted file mode 100644 index b3f11bc7..00000000 --- a/search/classes_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_4.js b/search/classes_4.js deleted file mode 100644 index 5a0d18f1..00000000 --- a/search/classes_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['gripper',['Gripper',['../classfranka_1_1Gripper.html',1,'franka']]], - ['gripperstate',['GripperState',['../structfranka_1_1GripperState.html',1,'franka']]] -]; diff --git a/search/classes_5.html b/search/classes_5.html deleted file mode 100644 index 952ace6f..00000000 --- a/search/classes_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_5.js b/search/classes_5.js deleted file mode 100644 index d943a855..00000000 --- a/search/classes_5.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['incompatibleversionexception',['IncompatibleVersionException',['../structfranka_1_1IncompatibleVersionException.html',1,'franka']]], - ['invalidoperationexception',['InvalidOperationException',['../structfranka_1_1InvalidOperationException.html',1,'franka']]] -]; diff --git a/search/classes_6.html b/search/classes_6.html deleted file mode 100644 index 75eef9f4..00000000 --- a/search/classes_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_6.js b/search/classes_6.js deleted file mode 100644 index daeed84c..00000000 --- a/search/classes_6.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['jointpositions',['JointPositions',['../classfranka_1_1JointPositions.html',1,'franka']]], - ['jointvelocities',['JointVelocities',['../classfranka_1_1JointVelocities.html',1,'franka']]] -]; diff --git a/search/classes_7.html b/search/classes_7.html deleted file mode 100644 index 745f5f28..00000000 --- a/search/classes_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_7.js b/search/classes_7.js deleted file mode 100644 index 9dd0bf9f..00000000 --- a/search/classes_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['model',['Model',['../classfranka_1_1Model.html',1,'franka']]], - ['modelexception',['ModelException',['../structfranka_1_1ModelException.html',1,'franka']]], - ['motiongenerator',['MotionGenerator',['../classMotionGenerator.html',1,'']]] -]; diff --git a/search/classes_8.html b/search/classes_8.html deleted file mode 100644 index 5a443d9d..00000000 --- a/search/classes_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_8.js b/search/classes_8.js deleted file mode 100644 index 6ea0a677..00000000 --- a/search/classes_8.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['networkexception',['NetworkException',['../structfranka_1_1NetworkException.html',1,'franka']]] -]; diff --git a/search/classes_9.html b/search/classes_9.html deleted file mode 100644 index 9cb55be4..00000000 --- a/search/classes_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_9.js b/search/classes_9.js deleted file mode 100644 index 28d7ecaf..00000000 --- a/search/classes_9.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['protocolexception',['ProtocolException',['../structfranka_1_1ProtocolException.html',1,'franka']]] -]; diff --git a/search/classes_a.html b/search/classes_a.html deleted file mode 100644 index 54940d78..00000000 --- a/search/classes_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_a.js b/search/classes_a.js deleted file mode 100644 index 1a605827..00000000 --- a/search/classes_a.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['realtimeexception',['RealtimeException',['../structfranka_1_1RealtimeException.html',1,'franka']]], - ['record',['Record',['../structfranka_1_1Record.html',1,'franka']]], - ['robot',['Robot',['../classfranka_1_1Robot.html',1,'franka']]], - ['robotcommand',['RobotCommand',['../structfranka_1_1RobotCommand.html',1,'franka']]], - ['robotstate',['RobotState',['../structfranka_1_1RobotState.html',1,'franka']]] -]; diff --git a/search/classes_b.html b/search/classes_b.html deleted file mode 100644 index 6071ae04..00000000 --- a/search/classes_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_b.js b/search/classes_b.js deleted file mode 100644 index 91bfa4da..00000000 --- a/search/classes_b.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['torques',['Torques',['../classfranka_1_1Torques.html',1,'franka']]] -]; diff --git a/search/classes_c.html b/search/classes_c.html deleted file mode 100644 index 6cf1d008..00000000 --- a/search/classes_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/classes_c.js b/search/classes_c.js deleted file mode 100644 index 48bf9761..00000000 --- a/search/classes_c.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['vacuumgripper',['VacuumGripper',['../classfranka_1_1VacuumGripper.html',1,'franka']]], - ['vacuumgripperstate',['VacuumGripperState',['../structfranka_1_1VacuumGripperState.html',1,'franka']]], - ['virtualwallcuboid',['VirtualWallCuboid',['../structfranka_1_1VirtualWallCuboid.html',1,'franka']]] -]; diff --git a/search/close.png b/search/close.png deleted file mode 100644 index 9342d3dfeea7b7c4ee610987e717804b5a42ceb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 00000000..a933eea1 --- /dev/null +++ b/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/search/enums_0.html b/search/enums_0.html deleted file mode 100644 index ee343ac0..00000000 --- a/search/enums_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/enums_0.js b/search/enums_0.js deleted file mode 100644 index d64e9535..00000000 --- a/search/enums_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['controllermode',['ControllerMode',['../control__types_8h.html#a3e20bc77587e2c0c53598753e3f4816b',1,'franka']]] -]; diff --git a/search/enums_1.html b/search/enums_1.html deleted file mode 100644 index 3fd210a0..00000000 --- a/search/enums_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/enums_1.js b/search/enums_1.js deleted file mode 100644 index 08e14299..00000000 --- a/search/enums_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['frame',['Frame',['../model_8h.html#a00b729ddce916481d3f0d10febec4f5b',1,'franka']]] -]; diff --git a/search/enums_2.html b/search/enums_2.html deleted file mode 100644 index a042e520..00000000 --- a/search/enums_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/enums_2.js b/search/enums_2.js deleted file mode 100644 index 83bdfe58..00000000 --- a/search/enums_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['productionsetupprofile',['ProductionSetupProfile',['../classfranka_1_1VacuumGripper.html#a0c81171a75c385780a82ff8dc36ef51e',1,'franka::VacuumGripper']]] -]; diff --git a/search/enums_3.html b/search/enums_3.html deleted file mode 100644 index 265e0cb9..00000000 --- a/search/enums_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/enums_3.js b/search/enums_3.js deleted file mode 100644 index d78ca3be..00000000 --- a/search/enums_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['realtimeconfig',['RealtimeConfig',['../control__types_8h.html#aeede4f4629390fea21ca5e5a35a8a943',1,'franka']]], - ['robotmode',['RobotMode',['../robot__state_8h.html#adfe059ae23ebbad59e421edaa879651a',1,'franka']]] -]; diff --git a/search/enums_4.html b/search/enums_4.html deleted file mode 100644 index 97ee07fb..00000000 --- a/search/enums_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/enums_4.js b/search/enums_4.js deleted file mode 100644 index 4ada937f..00000000 --- a/search/enums_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['vacuumgripperdevicestatus',['VacuumGripperDeviceStatus',['../vacuum__gripper__state_8h.html#a423e2ce5f95933b9897c6e308d91b611',1,'franka']]] -]; diff --git a/search/files_0.html b/search/files_0.html deleted file mode 100644 index 4f272b83..00000000 --- a/search/files_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_0.js b/search/files_0.js deleted file mode 100644 index 686bbcfb..00000000 --- a/search/files_0.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['command_5ftypes_2eh',['command_types.h',['../command__types_8h.html',1,'']]], - ['control_5ftools_2eh',['control_tools.h',['../control__tools_8h.html',1,'']]], - ['control_5ftypes_2eh',['control_types.h',['../control__types_8h.html',1,'']]] -]; diff --git a/search/files_1.html b/search/files_1.html deleted file mode 100644 index dcce4223..00000000 --- a/search/files_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_1.js b/search/files_1.js deleted file mode 100644 index cc791975..00000000 --- a/search/files_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['duration_2eh',['duration.h',['../duration_8h.html',1,'']]] -]; diff --git a/search/files_2.html b/search/files_2.html deleted file mode 100644 index d5c6c3be..00000000 --- a/search/files_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_2.js b/search/files_2.js deleted file mode 100644 index 030282b2..00000000 --- a/search/files_2.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['errors_2eh',['errors.h',['../errors_8h.html',1,'']]], - ['examples_5fcommon_2eh',['examples_common.h',['../examples__common_8h.html',1,'']]], - ['exception_2eh',['exception.h',['../exception_8h.html',1,'']]] -]; diff --git a/search/files_3.html b/search/files_3.html deleted file mode 100644 index d5a95284..00000000 --- a/search/files_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_3.js b/search/files_3.js deleted file mode 100644 index 277b06c3..00000000 --- a/search/files_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['gripper_2eh',['gripper.h',['../gripper_8h.html',1,'']]], - ['gripper_5fstate_2eh',['gripper_state.h',['../gripper__state_8h.html',1,'']]] -]; diff --git a/search/files_4.html b/search/files_4.html deleted file mode 100644 index 7b4c42a0..00000000 --- a/search/files_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_4.js b/search/files_4.js deleted file mode 100644 index 838a3332..00000000 --- a/search/files_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['log_2eh',['log.h',['../log_8h.html',1,'']]], - ['lowpass_5ffilter_2eh',['lowpass_filter.h',['../lowpass__filter_8h.html',1,'']]] -]; diff --git a/search/files_5.html b/search/files_5.html deleted file mode 100644 index 1f77bb12..00000000 --- a/search/files_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_5.js b/search/files_5.js deleted file mode 100644 index e49e1d65..00000000 --- a/search/files_5.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['model_2eh',['model.h',['../model_8h.html',1,'']]] -]; diff --git a/search/files_6.html b/search/files_6.html deleted file mode 100644 index 7573254f..00000000 --- a/search/files_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_6.js b/search/files_6.js deleted file mode 100644 index 7166f968..00000000 --- a/search/files_6.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['rate_5flimiting_2eh',['rate_limiting.h',['../rate__limiting_8h.html',1,'']]], - ['robot_2eh',['robot.h',['../robot_8h.html',1,'']]], - ['robot_5fstate_2eh',['robot_state.h',['../robot__state_8h.html',1,'']]] -]; diff --git a/search/files_7.html b/search/files_7.html deleted file mode 100644 index 214b329d..00000000 --- a/search/files_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/files_7.js b/search/files_7.js deleted file mode 100644 index 942b332c..00000000 --- a/search/files_7.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['vacuum_5fgripper_2eh',['vacuum_gripper.h',['../vacuum__gripper_8h.html',1,'']]], - ['vacuum_5fgripper_5fstate_2eh',['vacuum_gripper_state.h',['../vacuum__gripper__state_8h.html',1,'']]] -]; diff --git a/search/functions_0.html b/search/functions_0.html deleted file mode 100644 index 4e6d87d1..00000000 --- a/search/functions_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_0.js b/search/functions_0.js deleted file mode 100644 index 83a768b3..00000000 --- a/search/functions_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['automaticerrorrecovery',['automaticErrorRecovery',['../classfranka_1_1Robot.html#af682aa673415718715bd859116bc2fed',1,'franka::Robot']]] -]; diff --git a/search/functions_1.html b/search/functions_1.html deleted file mode 100644 index b343e2db..00000000 --- a/search/functions_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_1.js b/search/functions_1.js deleted file mode 100644 index 9879306d..00000000 --- a/search/functions_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['bodyjacobian',['bodyJacobian',['../classfranka_1_1Model.html#a914a197a900a275799cf8d7461bb9d8a',1,'franka::Model::bodyJacobian(Frame frame, const franka::RobotState &robot_state) const'],['../classfranka_1_1Model.html#a9ceca00546fa221f15ddaa7c0d27c40e',1,'franka::Model::bodyJacobian(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const']]] -]; diff --git a/search/functions_10.html b/search/functions_10.html deleted file mode 100644 index 72bc1ea1..00000000 --- a/search/functions_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_10.js b/search/functions_10.js deleted file mode 100644 index 3ddfb8e4..00000000 --- a/search/functions_10.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['vacuum',['vacuum',['../classfranka_1_1VacuumGripper.html#a517d95d9800990ca1a5892473c2def89',1,'franka::VacuumGripper']]], - ['vacuumgripper',['VacuumGripper',['../classfranka_1_1VacuumGripper.html#ab5d8483a0bb16136da684cfac721eae1',1,'franka::VacuumGripper::VacuumGripper(const std::string &franka_address)'],['../classfranka_1_1VacuumGripper.html#ab80730b14b5948eea37395e87800ce5f',1,'franka::VacuumGripper::VacuumGripper(VacuumGripper &&vacuum_gripper) noexcept']]] -]; diff --git a/search/functions_11.html b/search/functions_11.html deleted file mode 100644 index 6948a615..00000000 --- a/search/functions_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_11.js b/search/functions_11.js deleted file mode 100644 index 3740dc14..00000000 --- a/search/functions_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['zerojacobian',['zeroJacobian',['../classfranka_1_1Model.html#a6fb6347b571a6759bad10b3a9e28a28f',1,'franka::Model::zeroJacobian(Frame frame, const franka::RobotState &robot_state) const'],['../classfranka_1_1Model.html#a6522f1079e1dc5f6799dde6197b45259',1,'franka::Model::zeroJacobian(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const']]] -]; diff --git a/search/functions_12.html b/search/functions_12.html deleted file mode 100644 index 3df84892..00000000 --- a/search/functions_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_12.js b/search/functions_12.js deleted file mode 100644 index 1b29018f..00000000 --- a/search/functions_12.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['_7egripper',['~Gripper',['../classfranka_1_1Gripper.html#ade253b8a35312d52c636c6aafb7b2e1d',1,'franka::Gripper']]], - ['_7emodel',['~Model',['../classfranka_1_1Model.html#a1d6ffa26afc6cfdff7e329d15b8bd65e',1,'franka::Model']]], - ['_7erobot',['~Robot',['../classfranka_1_1Robot.html#a28abb25d25b5a1ce4463e32a518682e4',1,'franka::Robot']]], - ['_7evacuumgripper',['~VacuumGripper',['../classfranka_1_1VacuumGripper.html#af43f640f3cb9ca873b02bb464d3c279b',1,'franka::VacuumGripper']]] -]; diff --git a/search/functions_2.html b/search/functions_2.html deleted file mode 100644 index ecce2f31..00000000 --- a/search/functions_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_2.js b/search/functions_2.js deleted file mode 100644 index 103d4332..00000000 --- a/search/functions_2.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['cartesianlowpassfilter',['cartesianLowpassFilter',['../lowpass__filter_8h.html#ac25e174345ea5e2ea9099287ad43cd2b',1,'franka']]], - ['cartesianpose',['CartesianPose',['../classfranka_1_1CartesianPose.html#a5559a53a898f9b369b1df9d51f9351b5',1,'franka::CartesianPose::CartesianPose(const std::array< double, 16 > &cartesian_pose) noexcept'],['../classfranka_1_1CartesianPose.html#a17272cb33af9aa4b726fa96b31cf0101',1,'franka::CartesianPose::CartesianPose(const std::array< double, 16 > &cartesian_pose, const std::array< double, 2 > &elbow) noexcept'],['../classfranka_1_1CartesianPose.html#a70b6460e98bc763a49c53accd48d54a2',1,'franka::CartesianPose::CartesianPose(std::initializer_list< double > cartesian_pose)'],['../classfranka_1_1CartesianPose.html#ab7fb1dfd7cdb89c0caebab95c669ba49',1,'franka::CartesianPose::CartesianPose(std::initializer_list< double > cartesian_pose, std::initializer_list< double > elbow)']]], - ['cartesianvelocities',['CartesianVelocities',['../classfranka_1_1CartesianVelocities.html#a713380954e1f10c1be3033b95ca00657',1,'franka::CartesianVelocities::CartesianVelocities(const std::array< double, 6 > &cartesian_velocities) noexcept'],['../classfranka_1_1CartesianVelocities.html#a95f6feec3539ed9f96d555447717eb72',1,'franka::CartesianVelocities::CartesianVelocities(const std::array< double, 6 > &cartesian_velocities, const std::array< double, 2 > &elbow) noexcept'],['../classfranka_1_1CartesianVelocities.html#a39c4b06c315c963460e24324de8ad079',1,'franka::CartesianVelocities::CartesianVelocities(std::initializer_list< double > cartesian_velocities)'],['../classfranka_1_1CartesianVelocities.html#aec434afa3f92e462ad3ab4766d3456a4',1,'franka::CartesianVelocities::CartesianVelocities(std::initializer_list< double > cartesian_velocities, std::initializer_list< double > elbow)']]], - ['control',['control',['../classfranka_1_1Robot.html#a5b5ba0a4f2bfd20be963b05622e629e1',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a5f012ef276eb94d2a98a077bafb49bfe',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#ab16874af2fa32c9ab901683c1666888b',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a368c282fca42f4214864d0d39893fc6e',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a3cc02de96810eebc74f499f5821f2ac9',1,'franka::Robot::control(std::function< Torques(const RobotState &, franka::Duration)> control_callback, std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a8a41a2f208cc0c7e68569a550af4e1b2',1,'franka::Robot::control(std::function< JointPositions(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a7b2856e3c3c7a5582fd16f7414c30221',1,'franka::Robot::control(std::function< JointVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a6e59bd7b50b2de2e9e54f0b60d1a552e',1,'franka::Robot::control(std::function< CartesianPose(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)'],['../classfranka_1_1Robot.html#a5d39a89a41edee89a776c3491dd20738',1,'franka::Robot::control(std::function< CartesianVelocities(const RobotState &, franka::Duration)> motion_generator_callback, ControllerMode controller_mode=ControllerMode::kJointImpedance, bool limit_rate=true, double cutoff_frequency=kDefaultCutoffFrequency)']]], - ['controlexception',['ControlException',['../structfranka_1_1ControlException.html#a2efb9628eef80a3819031dbf2e2cb518',1,'franka::ControlException']]], - ['coriolis',['coriolis',['../classfranka_1_1Model.html#a91424f181a93bb47bda6af2d3567c65c',1,'franka::Model::coriolis(const franka::RobotState &robot_state) const noexcept'],['../classfranka_1_1Model.html#a3445ad932ddda2e3540768af9b7b4852',1,'franka::Model::coriolis(const std::array< double, 7 > &q, const std::array< double, 7 > &dq, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexcept']]] -]; diff --git a/search/functions_3.html b/search/functions_3.html deleted file mode 100644 index 15f06abd..00000000 --- a/search/functions_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_3.js b/search/functions_3.js deleted file mode 100644 index 33fc8812..00000000 --- a/search/functions_3.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['dropoff',['dropOff',['../classfranka_1_1VacuumGripper.html#a04645348e97b946a788205c8b1168cac',1,'franka::VacuumGripper']]], - ['duration',['Duration',['../classfranka_1_1Duration.html#af721da321423772b4ce7ff11280d38d5',1,'franka::Duration::Duration() noexcept'],['../classfranka_1_1Duration.html#a46f0cea3e05c27cdaaba5ff25e0e6cd6',1,'franka::Duration::Duration(uint64_t milliseconds) noexcept'],['../classfranka_1_1Duration.html#a389dfef50f34e9cc5be69838fbdafba7',1,'franka::Duration::Duration(std::chrono::duration< uint64_t, std::milli > duration) noexcept'],['../classfranka_1_1Duration.html#a886575e716b45e85de1bb78def2eb133',1,'franka::Duration::Duration(const Duration &)=default']]] -]; diff --git a/search/functions_4.html b/search/functions_4.html deleted file mode 100644 index 8985ff27..00000000 --- a/search/functions_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_4.js b/search/functions_4.js deleted file mode 100644 index d1d18f7a..00000000 --- a/search/functions_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['errors',['Errors',['../structfranka_1_1Errors.html#aedd6b6af230c01b6f106b5050b29d9ae',1,'franka::Errors::Errors()'],['../structfranka_1_1Errors.html#a4548a72089cc6d61c9249a1b8f4cc480',1,'franka::Errors::Errors(const Errors &other)'],['../structfranka_1_1Errors.html#a5f89cf2815adc679e232dcc6b8308c1b',1,'franka::Errors::Errors(const std::array< bool, 37 > &errors)']]] -]; diff --git a/search/functions_5.html b/search/functions_5.html deleted file mode 100644 index 03149184..00000000 --- a/search/functions_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_5.js b/search/functions_5.js deleted file mode 100644 index 9c747c22..00000000 --- a/search/functions_5.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['getvirtualwall',['getVirtualWall',['../classfranka_1_1Robot.html#a1739f6dc13f0c33b3213375323c93399',1,'franka::Robot']]], - ['grasp',['grasp',['../classfranka_1_1Gripper.html#abff6a03a6c75b9079bd4b9b5ca380254',1,'franka::Gripper']]], - ['gravity',['gravity',['../classfranka_1_1Model.html#a9b28a648cf413297d80f383e62363ab9',1,'franka::Model::gravity(const std::array< double, 7 > &q, double m_total, const std::array< double, 3 > &F_x_Ctotal, const std::array< double, 3 > &gravity_earth={{0., 0., -9.81}}) const noexcept'],['../classfranka_1_1Model.html#a0552a9fa39f4b49d78e6b88d794cac92',1,'franka::Model::gravity(const franka::RobotState &robot_state, const std::array< double, 3 > &gravity_earth={ {0., 0., -9.81}}) const noexcept']]], - ['gripper',['Gripper',['../classfranka_1_1Gripper.html#a02b30632b08001592c62d3563561afc5',1,'franka::Gripper::Gripper(const std::string &franka_address)'],['../classfranka_1_1Gripper.html#aa045ea81b36f22420f9bc6f2a256a4f0',1,'franka::Gripper::Gripper(Gripper &&gripper) noexcept']]] -]; diff --git a/search/functions_6.html b/search/functions_6.html deleted file mode 100644 index c5061236..00000000 --- a/search/functions_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_6.js b/search/functions_6.js deleted file mode 100644 index 36ebdf22..00000000 --- a/search/functions_6.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['haselbow',['hasElbow',['../classfranka_1_1CartesianPose.html#a5fa9f47dbf73ab45f671d89e11f89ccf',1,'franka::CartesianPose::hasElbow()'],['../classfranka_1_1CartesianVelocities.html#a51a41893b10250982597fe367abb2ca6',1,'franka::CartesianVelocities::hasElbow()']]], - ['hasrealtimekernel',['hasRealtimeKernel',['../control__tools_8h.html#ad165a74da105c78586c0cd4c1ed57bd2',1,'franka']]], - ['homing',['homing',['../classfranka_1_1Gripper.html#aef356f93a4c3b9d6b2532c29126d478c',1,'franka::Gripper']]] -]; diff --git a/search/functions_7.html b/search/functions_7.html deleted file mode 100644 index 83a7b84b..00000000 --- a/search/functions_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_7.js b/search/functions_7.js deleted file mode 100644 index f11a6b67..00000000 --- a/search/functions_7.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['incompatibleversionexception',['IncompatibleVersionException',['../structfranka_1_1IncompatibleVersionException.html#a518f40d994ed7e970c6f7fdafb673239',1,'franka::IncompatibleVersionException']]], - ['ishomogeneoustransformation',['isHomogeneousTransformation',['../control__tools_8h.html#ad81c99e8af3f2536ae3c6ec1ce8dce1e',1,'franka']]], - ['isvalidelbow',['isValidElbow',['../control__tools_8h.html#a4eda3eda0514fabf6d630a6d8c0373a0',1,'franka']]] -]; diff --git a/search/functions_8.html b/search/functions_8.html deleted file mode 100644 index b55f0e65..00000000 --- a/search/functions_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_8.js b/search/functions_8.js deleted file mode 100644 index 3fa4ab43..00000000 --- a/search/functions_8.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['jointpositions',['JointPositions',['../classfranka_1_1JointPositions.html#a57bc9d7e033493b1182333276af5ce84',1,'franka::JointPositions::JointPositions(const std::array< double, 7 > &joint_positions) noexcept'],['../classfranka_1_1JointPositions.html#a1e2006bccc9de89d8eb1a4d1c4da2fb8',1,'franka::JointPositions::JointPositions(std::initializer_list< double > joint_positions)']]], - ['jointvelocities',['JointVelocities',['../classfranka_1_1JointVelocities.html#a1130f851055de3b7ebe9e6fbac960826',1,'franka::JointVelocities::JointVelocities(const std::array< double, 7 > &joint_velocities) noexcept'],['../classfranka_1_1JointVelocities.html#aed384fad8e302638c2e5baea6378c2d2',1,'franka::JointVelocities::JointVelocities(std::initializer_list< double > joint_velocities)']]] -]; diff --git a/search/functions_9.html b/search/functions_9.html deleted file mode 100644 index c73f07bb..00000000 --- a/search/functions_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_9.js b/search/functions_9.js deleted file mode 100644 index dbf68687..00000000 --- a/search/functions_9.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['limitrate',['limitRate',['../rate__limiting_8h.html#aea6895d6bf209a86319c6cd5180e4b60',1,'franka::limitRate(const std::array< double, 7 > &max_derivatives, const std::array< double, 7 > &commanded_values, const std::array< double, 7 > &last_commanded_values)'],['../rate__limiting_8h.html#a6953f5b41a9fd77389b92b82cf378056',1,'franka::limitRate(double max_velocity, double max_acceleration, double max_jerk, double commanded_velocity, double last_commanded_velocity, double last_commanded_acceleration)'],['../rate__limiting_8h.html#a795142512ca54c220b2f2d52e239e35d',1,'franka::limitRate(double max_velocity, double max_acceleration, double max_jerk, double commanded_position, double last_commanded_position, double last_commanded_velocity, double last_commanded_acceleration)'],['../rate__limiting_8h.html#a1305865a42ca910eb5a9c912a8ae81a9',1,'franka::limitRate(const std::array< double, 7 > &max_velocity, const std::array< double, 7 > &max_acceleration, const std::array< double, 7 > &max_jerk, const std::array< double, 7 > &commanded_velocities, const std::array< double, 7 > &last_commanded_velocities, const std::array< double, 7 > &last_commanded_accelerations)'],['../rate__limiting_8h.html#aef657e3e3c7fc779c7944e0e5ac67308',1,'franka::limitRate(const std::array< double, 7 > &max_velocity, const std::array< double, 7 > &max_acceleration, const std::array< double, 7 > &max_jerk, const std::array< double, 7 > &commanded_positions, const std::array< double, 7 > &last_commanded_positions, const std::array< double, 7 > &last_commanded_velocities, const std::array< double, 7 > &last_commanded_accelerations)'],['../rate__limiting_8h.html#ad3e0243f9be5335ae3d04f87852dfccb',1,'franka::limitRate(double max_translational_velocity, double max_translational_acceleration, double max_translational_jerk, double max_rotational_velocity, double max_rotational_acceleration, double max_rotational_jerk, const std::array< double, 6 > &O_dP_EE_c, const std::array< double, 6 > &last_O_dP_EE_c, const std::array< double, 6 > &last_O_ddP_EE_c)'],['../rate__limiting_8h.html#a9288f438fcfc1aedf7e0b52aa95b23ba',1,'franka::limitRate(double max_translational_velocity, double max_translational_acceleration, double max_translational_jerk, double max_rotational_velocity, double max_rotational_acceleration, double max_rotational_jerk, const std::array< double, 16 > &O_T_EE_c, const std::array< double, 16 > &last_O_T_EE_c, const std::array< double, 6 > &last_O_dP_EE_c, const std::array< double, 6 > &last_O_ddP_EE_c)']]], - ['loadmodel',['loadModel',['../classfranka_1_1Robot.html#a2da598c539469827409ac7e3bb61d5da',1,'franka::Robot']]], - ['logtocsv',['logToCSV',['../log_8h.html#a01fbdb37b0e6beb04ba108d5f5024fd9',1,'franka']]], - ['lowpassfilter',['lowpassFilter',['../lowpass__filter_8h.html#a94c21b0e87afce0147a9cd6025c239ca',1,'franka']]] -]; diff --git a/search/functions_a.html b/search/functions_a.html deleted file mode 100644 index f10ad638..00000000 --- a/search/functions_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_a.js b/search/functions_a.js deleted file mode 100644 index bd153d00..00000000 --- a/search/functions_a.js +++ /dev/null @@ -1,8 +0,0 @@ -var searchData= -[ - ['mass',['mass',['../classfranka_1_1Model.html#ad5f6156064bc18e42fc0b6d2f36b2006',1,'franka::Model::mass(const franka::RobotState &robot_state) const noexcept'],['../classfranka_1_1Model.html#a61c3a8968e927c8629f1d549d20aaf85',1,'franka::Model::mass(const std::array< double, 7 > &q, const std::array< double, 9 > &I_total, double m_total, const std::array< double, 3 > &F_x_Ctotal) const noexcept']]], - ['model',['Model',['../classfranka_1_1Model.html#a751d939935eb51f06dcfd18c6c756ceb',1,'franka::Model::Model(franka::Network &network)'],['../classfranka_1_1Model.html#a8b58ff37f62512aecdcd0e6aabfd9548',1,'franka::Model::Model(Model &&model) noexcept']]], - ['motionfinished',['MotionFinished',['../control__types_8h.html#a20791f7142d78bbbe3c957cc66a23ade',1,'franka::MotionFinished(Torques command) noexcept'],['../control__types_8h.html#a7f505509951b6568b08b3aec8ffb9098',1,'franka::MotionFinished(JointPositions command) noexcept'],['../control__types_8h.html#ab478c128d691a46c0ab85bbf3b5caac5',1,'franka::MotionFinished(JointVelocities command) noexcept'],['../control__types_8h.html#ab0b308e2a9348fd3eb5fd1d08db12dcf',1,'franka::MotionFinished(CartesianPose command) noexcept'],['../control__types_8h.html#a5898ad5e3bbc2682c24c0415bf7e9a95',1,'franka::MotionFinished(CartesianVelocities command) noexcept']]], - ['motiongenerator',['MotionGenerator',['../classMotionGenerator.html#a23dd564a60401c539fb7f1bf63470894',1,'MotionGenerator']]], - ['move',['move',['../classfranka_1_1Gripper.html#a047bc39267d66d6fb26c4c70669d68c2',1,'franka::Gripper']]] -]; diff --git a/search/functions_b.html b/search/functions_b.html deleted file mode 100644 index 172ea1b3..00000000 --- a/search/functions_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_b.js b/search/functions_b.js deleted file mode 100644 index 66fa3199..00000000 --- a/search/functions_b.js +++ /dev/null @@ -1,26 +0,0 @@ -var searchData= -[ - ['duration_3c_20uint64_5ft_2c_20std_3a_3amilli_20_3e',['duration< uint64_t, std::milli >',['../classfranka_1_1Duration.html#ae58e283f511f9de8ac7e145db5cac1cf',1,'franka::Duration']]], - ['operator_20bool',['operator bool',['../structfranka_1_1Errors.html#a50cb6e50c1ce2b5ec281dcad83f1779e',1,'franka::Errors']]], - ['operator_21_3d',['operator!=',['../classfranka_1_1Duration.html#a61603353e39361af2f405c1df7097e84',1,'franka::Duration']]], - ['operator_25',['operator%',['../classfranka_1_1Duration.html#a5e472345c1bec29b645bee938932fdb1',1,'franka::Duration::operator%(const Duration &rhs) const noexcept'],['../classfranka_1_1Duration.html#af06ff91f24d881c479768c1bcbf31a1e',1,'franka::Duration::operator%(uint64_t rhs) const noexcept']]], - ['operator_25_3d',['operator%=',['../classfranka_1_1Duration.html#a97a6ea669877875ffc54c801ac0b152d',1,'franka::Duration::operator%=(const Duration &rhs) noexcept'],['../classfranka_1_1Duration.html#acd85bab22062a2258af83ac5b3b7a647',1,'franka::Duration::operator%=(uint64_t rhs) noexcept']]], - ['operator_28_29',['operator()',['../classMotionGenerator.html#aefd763e7c31c54b56404f33d2295fda9',1,'MotionGenerator']]], - ['operator_2a',['operator*',['../classfranka_1_1Duration.html#a3eebc39550880fb2d23d45ba34d8acc5',1,'franka::Duration::operator*()'],['../duration_8h.html#ab3a36a47682756845ef855994aadd7b6',1,'franka::operator*()']]], - ['operator_2a_3d',['operator*=',['../classfranka_1_1Duration.html#a73f971b2efb29a8ce663e8675d1ec09a',1,'franka::Duration']]], - ['operator_2b',['operator+',['../classfranka_1_1Duration.html#adb459e7bf5c6b02f9e72c808f5f30237',1,'franka::Duration']]], - ['operator_2b_2b',['operator++',['../model_8h.html#ae39c3a098fdb1bc9a097a262312454d0',1,'franka']]], - ['operator_2b_3d',['operator+=',['../classfranka_1_1Duration.html#ac55eb81937a12e736560bd856a8f23ae',1,'franka::Duration']]], - ['operator_2d',['operator-',['../classfranka_1_1Duration.html#a2a3bc1a8278b91bebe88d7498d410de9',1,'franka::Duration']]], - ['operator_2d_3d',['operator-=',['../classfranka_1_1Duration.html#acb24af377db86646918bcfb3e1e2ebe6',1,'franka::Duration']]], - ['operator_2f',['operator/',['../classfranka_1_1Duration.html#a90c76be31b53e11f5761416a05d990be',1,'franka::Duration::operator/(const Duration &rhs) const noexcept'],['../classfranka_1_1Duration.html#a15b7299198f36734b62ac98da1ef8c9c',1,'franka::Duration::operator/(uint64_t rhs) const noexcept']]], - ['operator_2f_3d',['operator/=',['../classfranka_1_1Duration.html#ac866dd8d0e8f2dbb92089dbd78418571',1,'franka::Duration']]], - ['operator_3c',['operator<',['../classfranka_1_1Duration.html#af1650b31c1226a447406fc243f4a2ac1',1,'franka::Duration']]], - ['operator_3c_3c',['operator<<',['../errors_8h.html#ad1027058086c3c154f4bbc9cade1f197',1,'franka::operator<<(std::ostream &ostream, const Errors &errors)'],['../gripper__state_8h.html#ab66181a74d1d3b7e90ae3b424ee85f4f',1,'franka::operator<<(std::ostream &ostream, const franka::GripperState &gripper_state)'],['../robot__state_8h.html#aee38e87180cc96476d0f11335da29e20',1,'franka::operator<<(std::ostream &ostream, const franka::RobotState &robot_state)'],['../vacuum__gripper__state_8h.html#aa2caece6baf774e998b6dec6e803cf24',1,'franka::operator<<(std::ostream &ostream, const franka::VacuumGripperState &vacuum_gripper_state)']]], - ['operator_3c_3d',['operator<=',['../classfranka_1_1Duration.html#ae4b9c8646fd50a2105d36f3848a5b949',1,'franka::Duration']]], - ['operator_3d',['operator=',['../classfranka_1_1Duration.html#adf2fec0c87fe1668e42f217ab029df19',1,'franka::Duration::operator=()'],['../structfranka_1_1Errors.html#a6fefa4083d79362080b79f3492fd4cb6',1,'franka::Errors::operator=()'],['../classfranka_1_1Gripper.html#a3c99c6973f8951ca489c4177cfacb069',1,'franka::Gripper::operator=()'],['../classfranka_1_1Model.html#a625529a4c9aed7783c9c6e150dbba793',1,'franka::Model::operator=()'],['../classfranka_1_1Robot.html#a35465b8497a7adbd277e70e98b7d97a7',1,'franka::Robot::operator=()'],['../classfranka_1_1VacuumGripper.html#a21d59603ac4deb8d9de5e074a57d080d',1,'franka::VacuumGripper::operator=()']]], - ['operator_3d_3d',['operator==',['../classfranka_1_1Duration.html#add0c7bcdfe51b563016236b223d74eae',1,'franka::Duration']]], - ['operator_3e',['operator>',['../classfranka_1_1Duration.html#a1702ec9121fe6cff1de533d116edcce0',1,'franka::Duration']]], - ['operator_3e_3d',['operator>=',['../classfranka_1_1Duration.html#a5bc498cf96d96f5908d6bd93eea491aa',1,'franka::Duration']]], - ['string',['string',['../structfranka_1_1Errors.html#a63ed1948f69db5be95a9c70107955d68',1,'franka::Errors']]] -]; diff --git a/search/functions_c.html b/search/functions_c.html deleted file mode 100644 index 99492ba8..00000000 --- a/search/functions_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_c.js b/search/functions_c.js deleted file mode 100644 index 6465f60f..00000000 --- a/search/functions_c.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['pose',['pose',['../classfranka_1_1Model.html#a593c39dae76a6801cdd2402c2a783157',1,'franka::Model::pose(Frame frame, const franka::RobotState &robot_state) const'],['../classfranka_1_1Model.html#adf4fdf0404c2acf783493f7e646a6281',1,'franka::Model::pose(Frame frame, const std::array< double, 7 > &q, const std::array< double, 16 > &F_T_EE, const std::array< double, 16 > &EE_T_K) const']]] -]; diff --git a/search/functions_d.html b/search/functions_d.html deleted file mode 100644 index 5be9eccb..00000000 --- a/search/functions_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_d.js b/search/functions_d.js deleted file mode 100644 index ffabae27..00000000 --- a/search/functions_d.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['read',['read',['../classfranka_1_1Robot.html#a82f85eed20426901a7e77b66c041664b',1,'franka::Robot']]], - ['readonce',['readOnce',['../classfranka_1_1Gripper.html#ab0afc8a41c9c5fff808e76851dcf23ce',1,'franka::Gripper::readOnce()'],['../classfranka_1_1Robot.html#a7ea7074a07b63fcf6933e97b078c7168',1,'franka::Robot::readOnce()'],['../classfranka_1_1VacuumGripper.html#aaa61bfd1027cf5dc2eb9e96536a9fabf',1,'franka::VacuumGripper::readOnce()']]], - ['robot',['Robot',['../classfranka_1_1Robot.html#ae63bc19390df3d54f3a270814df35eb6',1,'franka::Robot::Robot(const std::string &franka_address, RealtimeConfig realtime_config=RealtimeConfig::kEnforce, size_t log_size=50)'],['../classfranka_1_1Robot.html#a378d415475336082e81a35b9811dc6c2',1,'franka::Robot::Robot(Robot &&other) noexcept']]] -]; diff --git a/search/functions_e.html b/search/functions_e.html deleted file mode 100644 index e256cb63..00000000 --- a/search/functions_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_e.js b/search/functions_e.js deleted file mode 100644 index e7c78d8e..00000000 --- a/search/functions_e.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['serverversion',['serverVersion',['../classfranka_1_1Gripper.html#a8b0b4246c042465fb00871b31efdbd8b',1,'franka::Gripper::serverVersion()'],['../classfranka_1_1Robot.html#a3b864e16b7accafdf1a755dc21765701',1,'franka::Robot::serverVersion()'],['../classfranka_1_1VacuumGripper.html#a19abac44be2fc6df7f54fa11078a13ca',1,'franka::VacuumGripper::serverVersion()']]], - ['setcartesianimpedance',['setCartesianImpedance',['../classfranka_1_1Robot.html#ac2678c5c31cc8c0627ecda7485f81f6d',1,'franka::Robot']]], - ['setcollisionbehavior',['setCollisionBehavior',['../classfranka_1_1Robot.html#a168e1214ac36d74ac64f894332b84534',1,'franka::Robot::setCollisionBehavior(const std::array< double, 7 > &lower_torque_thresholds_acceleration, const std::array< double, 7 > &upper_torque_thresholds_acceleration, const std::array< double, 7 > &lower_torque_thresholds_nominal, const std::array< double, 7 > &upper_torque_thresholds_nominal, const std::array< double, 6 > &lower_force_thresholds_acceleration, const std::array< double, 6 > &upper_force_thresholds_acceleration, const std::array< double, 6 > &lower_force_thresholds_nominal, const std::array< double, 6 > &upper_force_thresholds_nominal)'],['../classfranka_1_1Robot.html#aa188f58c9025594be4d1700da744a962',1,'franka::Robot::setCollisionBehavior(const std::array< double, 7 > &lower_torque_thresholds, const std::array< double, 7 > &upper_torque_thresholds, const std::array< double, 6 > &lower_force_thresholds, const std::array< double, 6 > &upper_force_thresholds)']]], - ['setcurrentthreadtohighestschedulerpriority',['setCurrentThreadToHighestSchedulerPriority',['../control__tools_8h.html#a5c090196bc50ead82194d3e594e61e65',1,'franka']]], - ['setdefaultbehavior',['setDefaultBehavior',['../examples__common_8h.html#ad0c6e1cb044845ee8a01b5aa1e801a45',1,'examples_common.cpp']]], - ['setee',['setEE',['../classfranka_1_1Robot.html#aec4abdefbc0f9a7400a36bfa0a6068af',1,'franka::Robot']]], - ['setfilters',['setFilters',['../classfranka_1_1Robot.html#aebce1a0dbe3b139bb24001845b2afe07',1,'franka::Robot']]], - ['setguidingmode',['setGuidingMode',['../classfranka_1_1Robot.html#a7992cee203e66f9a61fe2f318ef88a26',1,'franka::Robot']]], - ['setjointimpedance',['setJointImpedance',['../classfranka_1_1Robot.html#aa18a28697cf6e3be16c6cff2dd839560',1,'franka::Robot']]], - ['setk',['setK',['../classfranka_1_1Robot.html#ad1cf59d1b11306d80cd3c7144a989c56',1,'franka::Robot']]], - ['setload',['setLoad',['../classfranka_1_1Robot.html#afcb708df10f24563dbcf7d5b907b4a15',1,'franka::Robot']]], - ['stop',['stop',['../classfranka_1_1Gripper.html#add7397fb6c5631650c139d26a85c8e1d',1,'franka::Gripper::stop()'],['../classfranka_1_1Robot.html#a69cb08e075a81ecf3f26e94d26a06296',1,'franka::Robot::stop()'],['../classfranka_1_1VacuumGripper.html#a3722fe5488c516b4082c878a083cc865',1,'franka::VacuumGripper::stop()']]] -]; diff --git a/search/functions_f.html b/search/functions_f.html deleted file mode 100644 index 424126cd..00000000 --- a/search/functions_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/functions_f.js b/search/functions_f.js deleted file mode 100644 index c594d09a..00000000 --- a/search/functions_f.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['tomsec',['toMSec',['../classfranka_1_1Duration.html#a2a25ae33c8739b8f705f13798aa9e162',1,'franka::Duration']]], - ['torques',['Torques',['../classfranka_1_1Torques.html#a509d63195827289ffc645e4b62a9750d',1,'franka::Torques::Torques(const std::array< double, 7 > &torques) noexcept'],['../classfranka_1_1Torques.html#a744a08e16dcfc40b3a90ab6a85bac0d8',1,'franka::Torques::Torques(std::initializer_list< double > torques)']]], - ['tosec',['toSec',['../classfranka_1_1Duration.html#a497af77a3280159547f231f0374e9ac1',1,'franka::Duration']]] -]; diff --git a/search/mag_sel.png b/search/mag_sel.png deleted file mode 100644 index 81f6040a2092402b4d98f9ffa8855d12a0d4ca17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 00000000..03626f64 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/nomatches.html b/search/nomatches.html index b1ded27e..2b9360b6 100644 --- a/search/nomatches.html +++ b/search/nomatches.html @@ -1,5 +1,6 @@ - - + + + diff --git a/search/pages_0.html b/search/pages_0.html deleted file mode 100644 index 4955b9e4..00000000 --- a/search/pages_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/pages_0.js b/search/pages_0.js deleted file mode 100644 index 038da541..00000000 --- a/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]] -]; diff --git a/search/pages_1.html b/search/pages_1.html deleted file mode 100644 index aedb14ee..00000000 --- a/search/pages_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/pages_1.js b/search/pages_1.js deleted file mode 100644 index 65f2cc39..00000000 --- a/search/pages_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['libfranka_3a_20c_2b_2b_20library_20for_20franka_20emika_20research_20robots',['libfranka: C++ library for Franka Emika research robots',['../index.html',1,'']]] -]; diff --git a/search/search.css b/search/search.css index 3cf9df94..9074198f 100644 --- a/search/search.css +++ b/search/search.css @@ -1,98 +1,82 @@ /*---------------- Search Box */ -#FSearchBox { - float: left; -} - #MSearchBox { white-space : nowrap; - float: none; - margin-top: 8px; - right: 0px; - width: 170px; - height: 24px; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; z-index: 102; } -#MSearchBox .left -{ - display:block; - position:absolute; - left:10px; - width:20px; - height:19px; - background:url('search_l.png') no-repeat; - background-position:right; +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; } #MSearchSelect { - display:block; - position:absolute; - width:20px; - height:19px; -} - -.left #MSearchSelect { - left:4px; -} - -.right #MSearchSelect { - right:5px; + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; } #MSearchField { - display:block; - position:absolute; - height:19px; - background:url('search_m.png') repeat-x; + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; border:none; - width:115px; - margin-left:20px; - padding-left:4px; color: #909090; outline: none; - font: 9pt Arial, Verdana, sans-serif; + font-family: Arial, Verdana, sans-serif; -webkit-border-radius: 0px; + border-radius: 0px; + background: none; } -#FSearchBox #MSearchField { - margin-left:15px; -} #MSearchBox .right { - display:block; - position:absolute; - right:10px; - top:8px; - width:20px; - height:19px; - background:url('search_r.png') no-repeat; - background-position:left; + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; } #MSearchClose { display: none; - position: absolute; - top: 4px; + font-size: inherit; background : none; border: none; - margin: 0px 4px 0px 0px; - padding: 0px 0px; + margin: 0; + padding: 0; outline: none; -} -.left #MSearchClose { - left: 6px; } -.right #MSearchClose { - right: 2px; +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; } .MSearchBoxActive #MSearchField { color: #000000; } +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + /*---------------- Search filter selection */ #MSearchSelectWindow { @@ -220,19 +204,21 @@ a.SRScope:focus, a.SRScope:active { span.SRScope { padding-left: 4px; + font-family: Arial, Verdana, sans-serif; } .SRPage .SRStatus { padding: 2px 5px; font-size: 8pt; font-style: italic; + font-family: Arial, Verdana, sans-serif; } .SRResult { display: none; } -DIV.searchresults { +div.searchresults { margin-left: 10px; margin-right: 10px; } diff --git a/search/search.js b/search/search.js index dedce3bf..fb226f73 100644 --- a/search/search.js +++ b/search/search.js @@ -1,3 +1,27 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ function convertToId(search) { var result = ''; @@ -56,9 +80,10 @@ function getYPos(item) storing this instance. Is needed to be able to set timeouts. resultPath - path to use for external files */ -function SearchBox(name, resultsPath, inFrame, label) +function SearchBox(name, resultsPath, inFrame, label, extension) { if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } // ---------- Instance variables this.name = name; @@ -73,6 +98,7 @@ function SearchBox(name, resultsPath, inFrame, label) this.searchActive = false; this.insideFrame = inFrame; this.searchLabel = label; + this.extension = extension; // ----------- DOM Elements @@ -177,10 +203,9 @@ function SearchBox(name, resultsPath, inFrame, label) } return; } - else if (window.frames.MSearchResults.searchResults) + else { - var elem = window.frames.MSearchResults.searchResults.NavNext(0); - if (elem) elem.focus(); + window.frames.MSearchResults.postMessage("take_focus", "*"); } } else if (e.keyCode==27) // Escape out of the search field @@ -324,13 +349,13 @@ function SearchBox(name, resultsPath, inFrame, label) if (idx!=-1) { var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; resultsPageWithSearch = resultsPage+'?'+escape(searchValue); hasResultsPage = true; } else // nothing available for this search term { - resultsPage = this.resultsPath + '/nomatches.html'; + resultsPage = this.resultsPath + '/nomatches' + this.extension; resultsPageWithSearch = resultsPage; hasResultsPage = false; } @@ -341,7 +366,7 @@ function SearchBox(name, resultsPath, inFrame, label) if (domPopupSearchResultsWindow.style.display!='block') { var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline'; + this.DOMSearchClose().style.display = 'inline-block'; if (this.insideFrame) { var domPopupSearchResults = this.DOMPopupSearchResults(); @@ -416,12 +441,12 @@ function SearchResults(name) while (element && element!=parentElement) { - if (element.nodeName == 'DIV' && element.className == 'SRChildren') + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') { return element; } - if (element.nodeName == 'DIV' && element.hasChildNodes()) + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) { element = element.firstChild; } @@ -788,4 +813,4 @@ function init_search() } searchBox.OnSelectItem(0); } - +/* @license-end */ diff --git a/search/search_l.png b/search/search_l.png index c872f4da4a01d0754f923e6c94fd8159c0621bd1..fd5f7daa41a4c79b4ae9bea5aa7bdfb94e14084b 100644 GIT binary patch delta 490 zcmcb^vYlmuqy!5C1A|rTQ#&BVlJ4m1$iT3%pZiZD>qIj>9tNf)Z+91l|Ly%}_D@ul zsAn(n^mS!_#KX=lBk2D&{5}H%qn4+OV~EE2-brV@oB~DMzW1v2cBy@1;GO-&?&6Y~ zW{oDf18$B2lAZ#+TwkXx5}KGW%Q0X<<5h);bqD4*s<~D5&%3JN__k|%zOPw(Dc}7@ z-4ptmhf6B&&b!_FjBE9pn*uC5&60xesh+<(kE_1GagvF-8H=anvo~dTmJ2zopr03(~h8~^|S delta 547 zcmV+;0^I$#1l$CW865@y005ATEwumu010qNS#tmY3ljhU3ljkVnw%JsF)n`r;z>k7 zRCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6Wg#87A+NFaX z+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxGh+H0ARIRr6-fgr(&`AvRbVopU=ZE3`i-#IY(T(03h1! zHlI$XuT0Z?QLoowSr&9%hm;bRKr9vulZf8dYBk-mEEt9XAp|Z3_dI{ESuU5KManqm zxCT53f<~cGcyz6@BcYV?X(p55QD*n|()axbFP@uoRaLW*RmK>?FuWV`8P(_JTuM0x za9oSH>v7gH5q0+a{n6^xr4Z4#^?DtIVF)6+o={Pgua4vV-0gPwAK-~Z;>U8i{O&jo zeBVD>zu$Ij!bYR#AUxE%gx1-^Km_jxcFjAyeMMJ1h6Nkljt z4md6I&Tj)?DTMgwd7j(v_urRFrN_}zR8Fdh=h=-k9M$rFl_8(j zC{hPbXF zRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%PbEK*!TBw&g( zDMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li7C)9srCzmK z{ZcNM{YIl9j{DePFgOWiS%!ZkNe~2q@H}s`*=&ATmUUaJ)!sCl&0hz|_x+QQl=6Uu zVTk2&N#pTY#&P_?w(aMRQc9$0iYSV(SS&Cc4u$Kw?`yT%O{>+4 zG{)E|2aGW&iUJ~nuIn%i1G!udhGD2u%BS=B{Aa)4f2H7o#TWx)44QwYp-?EGQmLR` zuWJBatk>&D4~C9GRaIe{CMuN*Y}>YiAb55*w8!?7RjXAdgm|nRU-P-8>pCpUg0Abk z1Egu%*;6Ts0@E~^VHnGcRy)T2PIh+{L`2}63nKceT!Tm{5r*N0h`wJn(Qdbc=XpI< zRejI}C8Z?JIZY;$MYn(3eL_S~E?G$kf%STwOsCU#LWpkwpzRN{EIZ`sU-={YlWop9 zR;!g54u_wDAb8zwx6^y+C!%`@5g|=eaLy6Ov2fB#XE uB-n1ZVH8E5Ip=Q~W4DguM8|!<2LNApMvO2l*qs0X002ovPDBK*LSTZi=Kr7o diff --git a/search/searchdata.js b/search/searchdata.js index a65fbdb3..f95870c9 100644 --- a/search/searchdata.js +++ b/search/searchdata.js @@ -1,36 +1,12 @@ var indexSectionsWithContent = { - 0: "abcdefghijklmnopqrstvwz~", - 1: "cdefgijmnprtv", - 2: "cdeglmrv", - 3: "abcdeghijlmoprstvz~", - 4: "acdefijklmnopqrstvw", - 5: "s", - 6: "cfprv", - 7: "dl" }; var indexSectionNames = { - 0: "all", - 1: "classes", - 2: "files", - 3: "functions", - 4: "variables", - 5: "typedefs", - 6: "enums", - 7: "pages" }; var indexSectionLabels = { - 0: "All", - 1: "Classes", - 2: "Files", - 3: "Functions", - 4: "Variables", - 5: "Typedefs", - 6: "Enumerations", - 7: "Pages" }; diff --git a/search/typedefs_0.html b/search/typedefs_0.html deleted file mode 100644 index 05722e1c..00000000 --- a/search/typedefs_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/typedefs_0.js b/search/typedefs_0.js deleted file mode 100644 index 0f498138..00000000 --- a/search/typedefs_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['serverversion',['ServerVersion',['../classfranka_1_1Gripper.html#a613bf52d9433b733685d0fb9ea71602e',1,'franka::Gripper::ServerVersion()'],['../classfranka_1_1Robot.html#ad1dd3dccff6f33691d2c66eaa5ac5a10',1,'franka::Robot::ServerVersion()'],['../classfranka_1_1VacuumGripper.html#a7b1d752680134e2a9df347002c6ace61',1,'franka::VacuumGripper::ServerVersion()']]] -]; diff --git a/search/variables_0.html b/search/variables_0.html deleted file mode 100644 index 74ce8072..00000000 --- a/search/variables_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_0.js b/search/variables_0.js deleted file mode 100644 index 17180623..00000000 --- a/search/variables_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['active',['active',['../structfranka_1_1VirtualWallCuboid.html#a69a20329da226fe49702b7d725670042',1,'franka::VirtualWallCuboid']]], - ['actual_5fpower',['actual_power',['../structfranka_1_1VacuumGripperState.html#a4230c68698cdbf6c1c560e181133bdc3',1,'franka::VacuumGripperState']]] -]; diff --git a/search/variables_1.html b/search/variables_1.html deleted file mode 100644 index 84237b6e..00000000 --- a/search/variables_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_1.js b/search/variables_1.js deleted file mode 100644 index 48fc85f0..00000000 --- a/search/variables_1.js +++ /dev/null @@ -1,28 +0,0 @@ -var searchData= -[ - ['cartesian_5fcollision',['cartesian_collision',['../structfranka_1_1RobotState.html#a52c20478f4c1e162df38582ea9bda044',1,'franka::RobotState']]], - ['cartesian_5fcontact',['cartesian_contact',['../structfranka_1_1RobotState.html#a7fc1f0358d2104d39d301d70544fa6c1',1,'franka::RobotState']]], - ['cartesian_5fmotion_5fgenerator_5facceleration_5fdiscontinuity',['cartesian_motion_generator_acceleration_discontinuity',['../structfranka_1_1Errors.html#a10c6ac36bf48b4a9edf91e74d9bc4837',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5felbow_5flimit_5fviolation',['cartesian_motion_generator_elbow_limit_violation',['../structfranka_1_1Errors.html#ac21ebdc1e0e8fb3099a7dce284550c4c',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5felbow_5fsign_5finconsistent',['cartesian_motion_generator_elbow_sign_inconsistent',['../structfranka_1_1Errors.html#a58b0e1199c9dded5a32bfeb110e63037',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5facceleration_5fdiscontinuity',['cartesian_motion_generator_joint_acceleration_discontinuity',['../structfranka_1_1Errors.html#a2e223ef3c771709a6a3f094adf12f9cb',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5fposition_5flimits_5fviolation',['cartesian_motion_generator_joint_position_limits_violation',['../structfranka_1_1Errors.html#a73aef7473fd6d1d5b207e68fa35948c5',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5fvelocity_5fdiscontinuity',['cartesian_motion_generator_joint_velocity_discontinuity',['../structfranka_1_1Errors.html#a1c8c56766fefc19fda5d5de909ca5b37',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fjoint_5fvelocity_5flimits_5fviolation',['cartesian_motion_generator_joint_velocity_limits_violation',['../structfranka_1_1Errors.html#a435d16d62a123bfbf578bc76e3780605',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fstart_5felbow_5finvalid',['cartesian_motion_generator_start_elbow_invalid',['../structfranka_1_1Errors.html#a6d905b803bbe8a7be8490f2a94ba524a',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fvelocity_5fdiscontinuity',['cartesian_motion_generator_velocity_discontinuity',['../structfranka_1_1Errors.html#a17e4a9b6b7dc4cc12c1328d36cac3eaf',1,'franka::Errors']]], - ['cartesian_5fmotion_5fgenerator_5fvelocity_5flimits_5fviolation',['cartesian_motion_generator_velocity_limits_violation',['../structfranka_1_1Errors.html#a91437c081452ef708563346b102ba894',1,'franka::Errors']]], - ['cartesian_5fpose',['cartesian_pose',['../structfranka_1_1RobotCommand.html#acce2090d696ebb9759fd0f37fd35a298',1,'franka::RobotCommand']]], - ['cartesian_5fposition_5flimits_5fviolation',['cartesian_position_limits_violation',['../structfranka_1_1Errors.html#a41c8b50ecbb015a2dba1a3dbbff694b6',1,'franka::Errors']]], - ['cartesian_5fposition_5fmotion_5fgenerator_5finvalid_5fframe',['cartesian_position_motion_generator_invalid_frame',['../structfranka_1_1Errors.html#aa1952c6da2f81578861a19b947c97b85',1,'franka::Errors']]], - ['cartesian_5fposition_5fmotion_5fgenerator_5fstart_5fpose_5finvalid',['cartesian_position_motion_generator_start_pose_invalid',['../structfranka_1_1Errors.html#aa910fad4992b91be1ea1c321ee9b7a1e',1,'franka::Errors']]], - ['cartesian_5freflex',['cartesian_reflex',['../structfranka_1_1Errors.html#a47bd58b0ab2198e4d038e0a24eafb310',1,'franka::Errors']]], - ['cartesian_5fvelocities',['cartesian_velocities',['../structfranka_1_1RobotCommand.html#a04b4841130fab920936190be1bc5dba3',1,'franka::RobotCommand']]], - ['cartesian_5fvelocity_5fprofile_5fsafety_5fviolation',['cartesian_velocity_profile_safety_violation',['../structfranka_1_1Errors.html#afc093fc5f99e1f6cab6de4fa9bc32692',1,'franka::Errors']]], - ['cartesian_5fvelocity_5fviolation',['cartesian_velocity_violation',['../structfranka_1_1Errors.html#a382fbec6b463ddcc2cbfd90340021ff1',1,'franka::Errors']]], - ['command',['command',['../structfranka_1_1Record.html#a8106f2ba9c2cf5ec7cbcf914c4c99e9c',1,'franka::Record']]], - ['communication_5fconstraints_5fviolation',['communication_constraints_violation',['../structfranka_1_1Errors.html#a4d17af86c1ebb698c218796fa15f9bd7',1,'franka::Errors']]], - ['control_5fcommand_5fsuccess_5frate',['control_command_success_rate',['../structfranka_1_1RobotState.html#af208572613a6afcdc61a24970c71fa28',1,'franka::RobotState']]], - ['controller_5ftorque_5fdiscontinuity',['controller_torque_discontinuity',['../structfranka_1_1Errors.html#af40d93759ace9ee6026208110692a732',1,'franka::Errors']]], - ['current_5ferrors',['current_errors',['../structfranka_1_1RobotState.html#abc5515f7a27f5de82396ea792a5ecb48',1,'franka::RobotState']]] -]; diff --git a/search/variables_10.html b/search/variables_10.html deleted file mode 100644 index 548ac843..00000000 --- a/search/variables_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_10.js b/search/variables_10.js deleted file mode 100644 index 326ddea9..00000000 --- a/search/variables_10.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['tau_5fext_5fhat_5ffiltered',['tau_ext_hat_filtered',['../structfranka_1_1RobotState.html#acdef8005828d193e45b128085a9e363b',1,'franka::RobotState']]], - ['tau_5fj',['tau_J',['../classfranka_1_1Torques.html#ac2a266cc2d3b7e0fb4f8eff045dbaed8',1,'franka::Torques::tau_J()'],['../structfranka_1_1RobotState.html#ad90e2518d661da0d8fa4c864bae210e5',1,'franka::RobotState::tau_J()']]], - ['tau_5fj_5fd',['tau_J_d',['../structfranka_1_1RobotState.html#a7086a89a2705810f93a3a95d43df2d9d',1,'franka::RobotState']]], - ['tau_5fj_5frange_5fviolation',['tau_j_range_violation',['../structfranka_1_1Errors.html#a1491f8428341649befa3d088aebb317e',1,'franka::Errors']]], - ['temperature',['temperature',['../structfranka_1_1GripperState.html#aa6733fa786dbf3b073acbaf3779e34b3',1,'franka::GripperState']]], - ['theta',['theta',['../structfranka_1_1RobotState.html#aa34145d77dd411d7ca578c355f0ba2b4',1,'franka::RobotState']]], - ['time',['time',['../structfranka_1_1GripperState.html#a80bf474b0e4351e2eefab62d1bd10c07',1,'franka::GripperState::time()'],['../structfranka_1_1RobotState.html#aabfdabeaef8c1858c52dd32344bdd039',1,'franka::RobotState::time()'],['../structfranka_1_1VacuumGripperState.html#aaa98eb6e1888094aace2014121a468ab',1,'franka::VacuumGripperState::time()']]], - ['torques',['torques',['../structfranka_1_1RobotCommand.html#a8b23e8b669b1fd594988ecdbf54bfbce',1,'franka::RobotCommand']]] -]; diff --git a/search/variables_11.html b/search/variables_11.html deleted file mode 100644 index d5be9145..00000000 --- a/search/variables_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_11.js b/search/variables_11.js deleted file mode 100644 index e3cac779..00000000 --- a/search/variables_11.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['vacuum',['vacuum',['../structfranka_1_1VacuumGripperState.html#ae94720737193caa696a47563a8efe6a8',1,'franka::VacuumGripperState']]] -]; diff --git a/search/variables_12.html b/search/variables_12.html deleted file mode 100644 index b62e1ee1..00000000 --- a/search/variables_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_12.js b/search/variables_12.js deleted file mode 100644 index 171b2654..00000000 --- a/search/variables_12.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['width',['width',['../structfranka_1_1GripperState.html#adf095f446ec39a9a48e120b209dcd6e9',1,'franka::GripperState']]] -]; diff --git a/search/variables_2.html b/search/variables_2.html deleted file mode 100644 index 5c9de1aa..00000000 --- a/search/variables_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_2.js b/search/variables_2.js deleted file mode 100644 index b6251895..00000000 --- a/search/variables_2.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['ddelbow_5fc',['ddelbow_c',['../structfranka_1_1RobotState.html#a1e5b6caf84249b1129491dbbcb1fc2e6',1,'franka::RobotState']]], - ['ddq_5fd',['ddq_d',['../structfranka_1_1RobotState.html#a6251e748cf72f4b86bcfdcb97d77ace2',1,'franka::RobotState']]], - ['delbow_5fc',['delbow_c',['../structfranka_1_1RobotState.html#a57c2c145e9f79010adf23085b8a9c5ad',1,'franka::RobotState']]], - ['device_5fstatus',['device_status',['../structfranka_1_1VacuumGripperState.html#ab44560b09c4a959c06ddafbd7f21da02',1,'franka::VacuumGripperState']]], - ['dq',['dq',['../classfranka_1_1JointVelocities.html#a14fddb6fe7a7c4034dc82c283de8c2d3',1,'franka::JointVelocities::dq()'],['../structfranka_1_1RobotState.html#af372a0081d72bc7b4fe873f99c7b2d8c',1,'franka::RobotState::dq()']]], - ['dq_5fd',['dq_d',['../structfranka_1_1RobotState.html#aed294a088be27b927be9575a18bec949',1,'franka::RobotState']]], - ['dtau_5fj',['dtau_J',['../structfranka_1_1RobotState.html#ae6b0d4ee0d7b36240a2165e6ded6f4b9',1,'franka::RobotState']]], - ['dtheta',['dtheta',['../structfranka_1_1RobotState.html#a271db0a55dd346715ed8a0daf3f8887c',1,'franka::RobotState']]] -]; diff --git a/search/variables_3.html b/search/variables_3.html deleted file mode 100644 index f95e34c6..00000000 --- a/search/variables_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_3.js b/search/variables_3.js deleted file mode 100644 index 373e69fb..00000000 --- a/search/variables_3.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['ee_5ft_5fk',['EE_T_K',['../structfranka_1_1RobotState.html#aeb78a3b4b76d4f57b9898cbea3a0f7aa',1,'franka::RobotState']]], - ['elbow',['elbow',['../classfranka_1_1CartesianPose.html#abef660743df9cf94d11c556d9c3d25be',1,'franka::CartesianPose::elbow()'],['../classfranka_1_1CartesianVelocities.html#a6419df1399d3dfab79b1654b94ced344',1,'franka::CartesianVelocities::elbow()'],['../structfranka_1_1RobotState.html#a43485841c427d70e7f36a912cc3116d1',1,'franka::RobotState::elbow()']]], - ['elbow_5fc',['elbow_c',['../structfranka_1_1RobotState.html#a16cfc844894e8b5b1ad829be529962f0',1,'franka::RobotState']]], - ['elbow_5fd',['elbow_d',['../structfranka_1_1RobotState.html#a295dada05d8588fc3c19a74fd427dcc0',1,'franka::RobotState']]] -]; diff --git a/search/variables_4.html b/search/variables_4.html deleted file mode 100644 index d7db285e..00000000 --- a/search/variables_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_4.js b/search/variables_4.js deleted file mode 100644 index 0d30d3a1..00000000 --- a/search/variables_4.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['f_5ft_5fee',['F_T_EE',['../structfranka_1_1RobotState.html#a705b85049fef747008b0eba8284c8057',1,'franka::RobotState']]], - ['f_5ft_5fne',['F_T_NE',['../structfranka_1_1RobotState.html#a88142795c453775c360e18d8a6570d15',1,'franka::RobotState']]], - ['f_5fx_5fcee',['F_x_Cee',['../structfranka_1_1RobotState.html#a907c4561d8f1c1a2af7980cf58ceb112',1,'franka::RobotState']]], - ['f_5fx_5fcload',['F_x_Cload',['../structfranka_1_1RobotState.html#a48e921e6215ad32f36e424b4d7b66a89',1,'franka::RobotState']]], - ['f_5fx_5fctotal',['F_x_Ctotal',['../structfranka_1_1RobotState.html#a72ee7362018e3c9e95e3c41e857bfd8d',1,'franka::RobotState']]], - ['force_5fcontrol_5fsafety_5fviolation',['force_control_safety_violation',['../structfranka_1_1Errors.html#ae7b19674da28b11ba970c30c7d800923',1,'franka::Errors']]], - ['force_5fcontroller_5fdesired_5fforce_5ftolerance_5fviolation',['force_controller_desired_force_tolerance_violation',['../structfranka_1_1Errors.html#ae474f20a64b2585dbe6496966dddff0a',1,'franka::Errors']]] -]; diff --git a/search/variables_5.html b/search/variables_5.html deleted file mode 100644 index 7bbceeb0..00000000 --- a/search/variables_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_5.js b/search/variables_5.js deleted file mode 100644 index 498f480a..00000000 --- a/search/variables_5.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['i_5fee',['I_ee',['../structfranka_1_1RobotState.html#a74cee1beb5d400694133deea2846e611',1,'franka::RobotState']]], - ['i_5fload',['I_load',['../structfranka_1_1RobotState.html#a5b194153497eff98049681f852118f82',1,'franka::RobotState']]], - ['i_5ftotal',['I_total',['../structfranka_1_1RobotState.html#ad9120ae7b7613e77df8c1c3eba8fb033',1,'franka::RobotState']]], - ['id',['id',['../structfranka_1_1VirtualWallCuboid.html#a2cee9b57fa420372a9576899875ad71a',1,'franka::VirtualWallCuboid']]], - ['in_5fcontrol_5frange',['in_control_range',['../structfranka_1_1VacuumGripperState.html#a70c1b14b10c2a79511fcada258c7e0ba',1,'franka::VacuumGripperState']]], - ['instability_5fdetected',['instability_detected',['../structfranka_1_1Errors.html#aebb701987262097687d21b3cf1bc8930',1,'franka::Errors']]], - ['is_5fgrasped',['is_grasped',['../structfranka_1_1GripperState.html#aa65b46313e740454ead9c9ea27e7bf8d',1,'franka::GripperState']]] -]; diff --git a/search/variables_6.html b/search/variables_6.html deleted file mode 100644 index 4eb162d6..00000000 --- a/search/variables_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_6.js b/search/variables_6.js deleted file mode 100644 index f4497487..00000000 --- a/search/variables_6.js +++ /dev/null @@ -1,17 +0,0 @@ -var searchData= -[ - ['joint_5fcollision',['joint_collision',['../structfranka_1_1RobotState.html#a38757bafd4dd8e138410de1dca0c36f8',1,'franka::RobotState']]], - ['joint_5fcontact',['joint_contact',['../structfranka_1_1RobotState.html#a7243c652a8efe58c343a0d1252302fa4',1,'franka::RobotState']]], - ['joint_5fmotion_5fgenerator_5facceleration_5fdiscontinuity',['joint_motion_generator_acceleration_discontinuity',['../structfranka_1_1Errors.html#a633195adca91f5ecaf1506da12f3311f',1,'franka::Errors']]], - ['joint_5fmotion_5fgenerator_5fposition_5flimits_5fviolation',['joint_motion_generator_position_limits_violation',['../structfranka_1_1Errors.html#a9536ad072868b90525c56143cbb956ef',1,'franka::Errors']]], - ['joint_5fmotion_5fgenerator_5fvelocity_5fdiscontinuity',['joint_motion_generator_velocity_discontinuity',['../structfranka_1_1Errors.html#abd6da8e6a32d817a7b4848a24efd9379',1,'franka::Errors']]], - ['joint_5fmotion_5fgenerator_5fvelocity_5flimits_5fviolation',['joint_motion_generator_velocity_limits_violation',['../structfranka_1_1Errors.html#ae211638df9b0e23905c8a9d36e249207',1,'franka::Errors']]], - ['joint_5fmove_5fin_5fwrong_5fdirection',['joint_move_in_wrong_direction',['../structfranka_1_1Errors.html#a7d3a6480cbe572fd46e579b43732edc9',1,'franka::Errors']]], - ['joint_5fp2p_5finsufficient_5ftorque_5ffor_5fplanning',['joint_p2p_insufficient_torque_for_planning',['../structfranka_1_1Errors.html#a1c78be870253b510a4516acf14c2d3e3',1,'franka::Errors']]], - ['joint_5fposition_5flimits_5fviolation',['joint_position_limits_violation',['../structfranka_1_1Errors.html#a44ba0d45e52639280d32cf447f967e29',1,'franka::Errors']]], - ['joint_5fposition_5fmotion_5fgenerator_5fstart_5fpose_5finvalid',['joint_position_motion_generator_start_pose_invalid',['../structfranka_1_1Errors.html#a7af91cbf61dc79304bff3ffadc51ea86',1,'franka::Errors']]], - ['joint_5fpositions',['joint_positions',['../structfranka_1_1RobotCommand.html#a086afcec596eae5284b6c39dc1452280',1,'franka::RobotCommand']]], - ['joint_5freflex',['joint_reflex',['../structfranka_1_1Errors.html#afb0928680c586e73d4e2cd4b42c7fe48',1,'franka::Errors']]], - ['joint_5fvelocities',['joint_velocities',['../structfranka_1_1RobotCommand.html#a049657cf2bbbb53d6ffa5581721e7b71',1,'franka::RobotCommand']]], - ['joint_5fvelocity_5fviolation',['joint_velocity_violation',['../structfranka_1_1Errors.html#a803ac4acbc26350602ea2eb02b7b30c4',1,'franka::Errors']]] -]; diff --git a/search/variables_7.html b/search/variables_7.html deleted file mode 100644 index 04088295..00000000 --- a/search/variables_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_7.js b/search/variables_7.js deleted file mode 100644 index 39e4f936..00000000 --- a/search/variables_7.js +++ /dev/null @@ -1,24 +0,0 @@ -var searchData= -[ - ['k_5ff_5fext_5fhat_5fk',['K_F_ext_hat_K',['../structfranka_1_1RobotState.html#a96267d443c05fcc58d7ac32f63912649',1,'franka::RobotState']]], - ['kdefaultcutofffrequency',['kDefaultCutoffFrequency',['../lowpass__filter_8h.html#ad8e3b7da346e03181ab5ac138a4171d4',1,'franka']]], - ['kdeltat',['kDeltaT',['../rate__limiting_8h.html#a1e207a0d5a6e90c1e1a78e6e1057120a',1,'franka']]], - ['kfactorcartesianrotationposeinterface',['kFactorCartesianRotationPoseInterface',['../rate__limiting_8h.html#a19166d1a64c5a84f80b4ed3aa0bfb3a0',1,'franka']]], - ['klimiteps',['kLimitEps',['../rate__limiting_8h.html#aad1f9b575274830b8da9e638559d424b',1,'franka']]], - ['kmaxcutofffrequency',['kMaxCutoffFrequency',['../lowpass__filter_8h.html#adb10b364af8deb9e17d9bcc1ff2695be',1,'franka']]], - ['kmaxelbowacceleration',['kMaxElbowAcceleration',['../rate__limiting_8h.html#af365e574ad7b1580ce15e30dd909b3ba',1,'franka']]], - ['kmaxelbowjerk',['kMaxElbowJerk',['../rate__limiting_8h.html#adc70178204d4da073c78de777a2dff74',1,'franka']]], - ['kmaxelbowvelocity',['kMaxElbowVelocity',['../rate__limiting_8h.html#a2896b2e0c8bd96f9ee242c1203ac3483',1,'franka']]], - ['kmaxjointacceleration',['kMaxJointAcceleration',['../rate__limiting_8h.html#a826ecf0b7d214df69c1ee416d3e66b93',1,'franka']]], - ['kmaxjointjerk',['kMaxJointJerk',['../rate__limiting_8h.html#a600a21a6151ff2eee38294293dd8aeec',1,'franka']]], - ['kmaxjointvelocity',['kMaxJointVelocity',['../rate__limiting_8h.html#a6d451800a90b939422dc9c3fb103ca23',1,'franka']]], - ['kmaxrotationalacceleration',['kMaxRotationalAcceleration',['../rate__limiting_8h.html#a5e3d5c95ba72f9660f17f8ebf1e0aa2e',1,'franka']]], - ['kmaxrotationaljerk',['kMaxRotationalJerk',['../rate__limiting_8h.html#a259520ce1b6b5b85a88d05262286820d',1,'franka']]], - ['kmaxrotationalvelocity',['kMaxRotationalVelocity',['../rate__limiting_8h.html#aafb1f5ef8f8a7abd546edea498c18b45',1,'franka']]], - ['kmaxtorquerate',['kMaxTorqueRate',['../rate__limiting_8h.html#a6c1a0e9a5e1f375d2aad61edac907d4e',1,'franka']]], - ['kmaxtranslationalacceleration',['kMaxTranslationalAcceleration',['../rate__limiting_8h.html#a3803b1a54ba526ccaa4fa0d15446f3db',1,'franka']]], - ['kmaxtranslationaljerk',['kMaxTranslationalJerk',['../rate__limiting_8h.html#a46b8f11959ed3f731a0914f524af8e69',1,'franka']]], - ['kmaxtranslationalvelocity',['kMaxTranslationalVelocity',['../rate__limiting_8h.html#a857e1e5e18d688ec7095264a629bf474',1,'franka']]], - ['knormeps',['kNormEps',['../rate__limiting_8h.html#a420d72830a872ef375d9d6cbb1c439b5',1,'franka']]], - ['ktolnumberpacketslost',['kTolNumberPacketsLost',['../rate__limiting_8h.html#a664b546834ceecd4e3220ffa92f1172c',1,'franka']]] -]; diff --git a/search/variables_8.html b/search/variables_8.html deleted file mode 100644 index d54d0966..00000000 --- a/search/variables_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_8.js b/search/variables_8.js deleted file mode 100644 index 407c2ed8..00000000 --- a/search/variables_8.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['last_5fmotion_5ferrors',['last_motion_errors',['../structfranka_1_1RobotState.html#a06d7019f85339409e932dc086b7a260b',1,'franka::RobotState']]], - ['library_5fversion',['library_version',['../structfranka_1_1IncompatibleVersionException.html#a81e6d7f01965ed7ee34f83dc3883ad01',1,'franka::IncompatibleVersionException']]], - ['log',['log',['../structfranka_1_1ControlException.html#ae57f0ac0a9aa195057af1f1cc712b41e',1,'franka::ControlException']]] -]; diff --git a/search/variables_9.html b/search/variables_9.html deleted file mode 100644 index 234dc60a..00000000 --- a/search/variables_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_9.js b/search/variables_9.js deleted file mode 100644 index a909e1b5..00000000 --- a/search/variables_9.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['m_5fee',['m_ee',['../structfranka_1_1RobotState.html#af982a16246e33c1495ec02972a36bce3',1,'franka::RobotState']]], - ['m_5fload',['m_load',['../structfranka_1_1RobotState.html#a99ea4ab9c5a42a5c17365ed8fd730cd1',1,'franka::RobotState']]], - ['m_5ftotal',['m_total',['../structfranka_1_1RobotState.html#a87880d4693c8f576ebdabf00f4d4f981',1,'franka::RobotState']]], - ['max_5fgoal_5fpose_5fdeviation_5fviolation',['max_goal_pose_deviation_violation',['../structfranka_1_1Errors.html#ac55d3624087e606cb4ffab121869d580',1,'franka::Errors']]], - ['max_5fpath_5fpose_5fdeviation_5fviolation',['max_path_pose_deviation_violation',['../structfranka_1_1Errors.html#ad90cffe703ca1b782007f3ba49da587c',1,'franka::Errors']]], - ['max_5fwidth',['max_width',['../structfranka_1_1GripperState.html#ab71a26356c2898c49609bf991843e166',1,'franka::GripperState']]], - ['motion_5ffinished',['motion_finished',['../structfranka_1_1Finishable.html#a5d48028c0f912d4a089e6220d8715f7f',1,'franka::Finishable']]] -]; diff --git a/search/variables_a.html b/search/variables_a.html deleted file mode 100644 index 08924881..00000000 --- a/search/variables_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_a.js b/search/variables_a.js deleted file mode 100644 index b2f81c4b..00000000 --- a/search/variables_a.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['ne_5ft_5fee',['NE_T_EE',['../structfranka_1_1RobotState.html#ac53f1046fe758cfdda438a8e3ba08fff',1,'franka::RobotState']]] -]; diff --git a/search/variables_b.html b/search/variables_b.html deleted file mode 100644 index ea46965c..00000000 --- a/search/variables_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_b.js b/search/variables_b.js deleted file mode 100644 index 782e3705..00000000 --- a/search/variables_b.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['o_5fddp_5fee_5fc',['O_ddP_EE_c',['../structfranka_1_1RobotState.html#ac8dfcf78ddbb27852484e921d6d66ca1',1,'franka::RobotState']]], - ['o_5fdp_5fee',['O_dP_EE',['../classfranka_1_1CartesianVelocities.html#ab7a42c7c1ee7109025aff5c43a56b398',1,'franka::CartesianVelocities']]], - ['o_5fdp_5fee_5fc',['O_dP_EE_c',['../structfranka_1_1RobotState.html#a4be112bd1a9a7d777a67aea4a18a8dcc',1,'franka::RobotState']]], - ['o_5fdp_5fee_5fd',['O_dP_EE_d',['../structfranka_1_1RobotState.html#a1e0a82b98534929c3061295d5761d607',1,'franka::RobotState']]], - ['o_5ff_5fext_5fhat_5fk',['O_F_ext_hat_K',['../structfranka_1_1RobotState.html#a5a830b4f9d6a3c2dc92e4a9cc6050493',1,'franka::RobotState']]], - ['o_5ft_5fee',['O_T_EE',['../classfranka_1_1CartesianPose.html#a406e53e3d8fe594a11888f516eb4bf7d',1,'franka::CartesianPose::O_T_EE()'],['../structfranka_1_1RobotState.html#a193781d47722b32925e0ea7ac415f442',1,'franka::RobotState::O_T_EE()']]], - ['o_5ft_5fee_5fc',['O_T_EE_c',['../structfranka_1_1RobotState.html#a395c48eff099419ea5d42eaf0870fc18',1,'franka::RobotState']]], - ['o_5ft_5fee_5fd',['O_T_EE_d',['../structfranka_1_1RobotState.html#a3e5b4b7687856e92d826044be7d15733',1,'franka::RobotState']]], - ['object_5fworld_5fsize',['object_world_size',['../structfranka_1_1VirtualWallCuboid.html#a754b771744e0df1facecd31835a78790',1,'franka::VirtualWallCuboid']]] -]; diff --git a/search/variables_c.html b/search/variables_c.html deleted file mode 100644 index 94bf1a67..00000000 --- a/search/variables_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_c.js b/search/variables_c.js deleted file mode 100644 index ff4f9047..00000000 --- a/search/variables_c.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['p_5fframe',['p_frame',['../structfranka_1_1VirtualWallCuboid.html#ab34ba4f99676a36a4e1171fd8b431391',1,'franka::VirtualWallCuboid']]], - ['part_5fdetached',['part_detached',['../structfranka_1_1VacuumGripperState.html#aa27a2b4b9d19bdcb059995a8121ba309',1,'franka::VacuumGripperState']]], - ['part_5fpresent',['part_present',['../structfranka_1_1VacuumGripperState.html#aeb5664ab2a9784c9e31ce5f67c914107',1,'franka::VacuumGripperState']]], - ['power_5flimit_5fviolation',['power_limit_violation',['../structfranka_1_1Errors.html#a6c4d8cb1fb314567ebd07a6195b840f5',1,'franka::Errors']]] -]; diff --git a/search/variables_d.html b/search/variables_d.html deleted file mode 100644 index b9381e99..00000000 --- a/search/variables_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_d.js b/search/variables_d.js deleted file mode 100644 index 4dc0dd8a..00000000 --- a/search/variables_d.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['q',['q',['../classfranka_1_1JointPositions.html#a40e9098abe1c51cd48e17e41fbf78337',1,'franka::JointPositions::q()'],['../structfranka_1_1RobotState.html#ade3335d1ac2f6c44741a916d565f7091',1,'franka::RobotState::q()']]], - ['q_5fd',['q_d',['../structfranka_1_1RobotState.html#a706045af1b176049e9e56df755325bd2',1,'franka::RobotState']]] -]; diff --git a/search/variables_e.html b/search/variables_e.html deleted file mode 100644 index 375ad705..00000000 --- a/search/variables_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_e.js b/search/variables_e.js deleted file mode 100644 index 8f92fd17..00000000 --- a/search/variables_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['robot_5fmode',['robot_mode',['../structfranka_1_1RobotState.html#a4943ae75e0e2ec534e0afac31cbcc987',1,'franka::RobotState']]] -]; diff --git a/search/variables_f.html b/search/variables_f.html deleted file mode 100644 index d3714186..00000000 --- a/search/variables_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
    -
    Loading...
    -
    - -
    Searching...
    -
    No Matches
    - -
    - - diff --git a/search/variables_f.js b/search/variables_f.js deleted file mode 100644 index 884a52f2..00000000 --- a/search/variables_f.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['self_5fcollision_5favoidance_5fviolation',['self_collision_avoidance_violation',['../structfranka_1_1Errors.html#adf68f6333624cb5558864441a991de8c',1,'franka::Errors']]], - ['server_5fversion',['server_version',['../structfranka_1_1IncompatibleVersionException.html#a0928098d8c32f405d17b65a0f004b5ab',1,'franka::IncompatibleVersionException']]], - ['start_5felbow_5fsign_5finconsistent',['start_elbow_sign_inconsistent',['../structfranka_1_1Errors.html#aa6de1956ac056792a1dea6b9ddd52a50',1,'franka::Errors']]], - ['state',['state',['../structfranka_1_1Record.html#a58249658c9549fbc792eea90e7b6a7cc',1,'franka::Record']]] -]; diff --git a/structfranka_1_1CommandException.html b/structfranka_1_1CommandException.html deleted file mode 100644 index 827c080b..00000000 --- a/structfranka_1_1CommandException.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -libfranka: franka::CommandException Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::CommandException Struct Reference
    -
    -
    - -

    CommandException is thrown if an error occurs during command execution. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::CommandException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::CommandException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    -

    Detailed Description

    -

    CommandException is thrown if an error occurs during command execution.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1CommandException__coll__graph.map b/structfranka_1_1CommandException__coll__graph.map deleted file mode 100644 index f9e60b86..00000000 --- a/structfranka_1_1CommandException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1CommandException__coll__graph.md5 b/structfranka_1_1CommandException__coll__graph.md5 deleted file mode 100644 index abad8c6e..00000000 --- a/structfranka_1_1CommandException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -17ded7262c303190a92ea417710d789c \ No newline at end of file diff --git a/structfranka_1_1CommandException__coll__graph.png b/structfranka_1_1CommandException__coll__graph.png deleted file mode 100644 index 88c80b423659e5559de84caf17ed37783aa804da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6781 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 NL|Id*Lcuch{{TR?92Wop diff --git a/structfranka_1_1CommandException__inherit__graph.map b/structfranka_1_1CommandException__inherit__graph.map deleted file mode 100644 index f9e60b86..00000000 --- a/structfranka_1_1CommandException__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1CommandException__inherit__graph.md5 b/structfranka_1_1CommandException__inherit__graph.md5 deleted file mode 100644 index 422491e4..00000000 --- a/structfranka_1_1CommandException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2a4c52ae53879f3a55d87ebda0d40d23 \ No newline at end of file diff --git a/structfranka_1_1CommandException__inherit__graph.png b/structfranka_1_1CommandException__inherit__graph.png deleted file mode 100644 index 88c80b423659e5559de84caf17ed37783aa804da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6781 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 NL|Id*Lcuch{{TR?92Wop diff --git a/structfranka_1_1ControlException-members.html b/structfranka_1_1ControlException-members.html deleted file mode 100644 index 2390ec8c..00000000 --- a/structfranka_1_1ControlException-members.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::ControlException Member List
    -
    -
    - -

    This is the complete list of members for franka::ControlException, including all inherited members.

    - - - -
    ControlException(const std::string &what, std::vector< franka::Record > log={}) noexceptfranka::ControlExceptionexplicit
    logfranka::ControlException
    - - - - diff --git a/structfranka_1_1ControlException.html b/structfranka_1_1ControlException.html deleted file mode 100644 index 24e367fe..00000000 --- a/structfranka_1_1ControlException.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - -libfranka: franka::ControlException Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::ControlException Struct Reference
    -
    -
    - -

    ControlException is thrown if an error occurs during motion generation or torque control. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::ControlException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::ControlException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    - - - - - -

    -Public Member Functions

     ControlException (const std::string &what, std::vector< franka::Record > log={}) noexcept
     Creates the exception with an explanatory string and a Log object. More...
     
    - - - - -

    -Public Attributes

    -const std::vector< franka::Recordlog
     Vector of states and commands logged just before the exception occured.
     
    -

    Detailed Description

    -

    ControlException is thrown if an error occurs during motion generation or torque control.

    -

    The exception holds a vector with the last received robot states. The number of recorded states can be configured in the Robot constructor.

    -
    Examples:
    generate_consecutive_motions.cpp, and motion_with_control.cpp.
    -

    Constructor & Destructor Documentation

    - -

    ◆ ControlException()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    franka::ControlException::ControlException (const std::string & what,
    std::vector< franka::Recordlog = {} 
    )
    -
    -explicitnoexcept
    -
    - -

    Creates the exception with an explanatory string and a Log object.

    -
    Parameters
    - - - -
    [in]whatExplanatory string.
    [in]logVector of last received states and commands.
    -
    -
    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1ControlException__coll__graph.map b/structfranka_1_1ControlException__coll__graph.map deleted file mode 100644 index 19feae6f..00000000 --- a/structfranka_1_1ControlException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1ControlException__coll__graph.md5 b/structfranka_1_1ControlException__coll__graph.md5 deleted file mode 100644 index f7d5120e..00000000 --- a/structfranka_1_1ControlException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2c072023cc099086e89a1deb4782fec1 \ No newline at end of file diff --git a/structfranka_1_1ControlException__coll__graph.png b/structfranka_1_1ControlException__coll__graph.png deleted file mode 100644 index fbecbbe4c2f9a4fddb8e6c458c8926993896a8f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6432 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 E8|Us*r~m)} diff --git a/structfranka_1_1ControlException__inherit__graph.map b/structfranka_1_1ControlException__inherit__graph.map deleted file mode 100644 index 19feae6f..00000000 --- a/structfranka_1_1ControlException__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1ControlException__inherit__graph.md5 b/structfranka_1_1ControlException__inherit__graph.md5 deleted file mode 100644 index 84b81c6d..00000000 --- a/structfranka_1_1ControlException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -8750373f6d48f73c5fe3742fe4f5afcf \ No newline at end of file diff --git a/structfranka_1_1ControlException__inherit__graph.png b/structfranka_1_1ControlException__inherit__graph.png deleted file mode 100644 index fbecbbe4c2f9a4fddb8e6c458c8926993896a8f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6432 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 E8|Us*r~m)} diff --git a/structfranka_1_1Errors-members.html b/structfranka_1_1Errors-members.html deleted file mode 100644 index 241e87b7..00000000 --- a/structfranka_1_1Errors-members.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::Errors Member List
    -
    -
    - -

    This is the complete list of members for franka::Errors, including all inherited members.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    cartesian_motion_generator_acceleration_discontinuityfranka::Errors
    cartesian_motion_generator_elbow_limit_violationfranka::Errors
    cartesian_motion_generator_elbow_sign_inconsistentfranka::Errors
    cartesian_motion_generator_joint_acceleration_discontinuityfranka::Errors
    cartesian_motion_generator_joint_position_limits_violationfranka::Errors
    cartesian_motion_generator_joint_velocity_discontinuityfranka::Errors
    cartesian_motion_generator_joint_velocity_limits_violationfranka::Errors
    cartesian_motion_generator_start_elbow_invalidfranka::Errors
    cartesian_motion_generator_velocity_discontinuityfranka::Errors
    cartesian_motion_generator_velocity_limits_violationfranka::Errors
    cartesian_position_limits_violationfranka::Errors
    cartesian_position_motion_generator_invalid_framefranka::Errors
    cartesian_position_motion_generator_start_pose_invalidfranka::Errors
    cartesian_reflexfranka::Errors
    cartesian_velocity_profile_safety_violationfranka::Errors
    cartesian_velocity_violationfranka::Errors
    communication_constraints_violationfranka::Errors
    controller_torque_discontinuityfranka::Errors
    Errors()franka::Errors
    Errors(const Errors &other)franka::Errors
    Errors(const std::array< bool, 37 > &errors)franka::Errors
    force_control_safety_violationfranka::Errors
    force_controller_desired_force_tolerance_violationfranka::Errors
    instability_detectedfranka::Errors
    joint_motion_generator_acceleration_discontinuityfranka::Errors
    joint_motion_generator_position_limits_violationfranka::Errors
    joint_motion_generator_velocity_discontinuityfranka::Errors
    joint_motion_generator_velocity_limits_violationfranka::Errors
    joint_move_in_wrong_directionfranka::Errors
    joint_p2p_insufficient_torque_for_planningfranka::Errors
    joint_position_limits_violationfranka::Errors
    joint_position_motion_generator_start_pose_invalidfranka::Errors
    joint_reflexfranka::Errors
    joint_velocity_violationfranka::Errors
    max_goal_pose_deviation_violationfranka::Errors
    max_path_pose_deviation_violationfranka::Errors
    operator bool() const noexceptfranka::Errorsexplicit
    operator std::string() constfranka::Errorsexplicit
    operator=(Errors other)franka::Errors
    power_limit_violationfranka::Errors
    self_collision_avoidance_violationfranka::Errors
    start_elbow_sign_inconsistentfranka::Errors
    tau_j_range_violationfranka::Errors
    - - - - diff --git a/structfranka_1_1Errors.html b/structfranka_1_1Errors.html deleted file mode 100644 index 5da84d73..00000000 --- a/structfranka_1_1Errors.html +++ /dev/null @@ -1,444 +0,0 @@ - - - - - - - -libfranka: franka::Errors Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::Errors Struct Reference
    -
    -
    - -

    Enumerates errors that can occur while controlling a franka::Robot. - More...

    - -

    #include <errors.h>

    - - - - - - - - - - - - - - - - - - - - -

    -Public Member Functions

    Errors ()
     Creates an empty Errors instance.
     
     Errors (const Errors &other)
     Copy constructs a new Errors instance. More...
     
    Errorsoperator= (Errors other)
     Assigns this Errors instance from another Errors value. More...
     
     Errors (const std::array< bool, 37 > &errors)
     Creates a new Errors instance from the given array. More...
     
     operator bool () const noexcept
     Check if any error flag is set to true. More...
     
     operator std::string () const
     Creates a string with names of active errors: "[active_error_name2, active_error_name_2, ... active_error_name_n]" If no errors are active, the string contains empty brackets: "[]". More...
     
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -const bool & joint_position_limits_violation
     True if the robot moved past the joint limits.
     
    -const bool & cartesian_position_limits_violation
     True if the robot moved past any of the virtual walls.
     
    -const bool & self_collision_avoidance_violation
     True if the robot would have collided with itself.
     
    -const bool & joint_velocity_violation
     True if the robot exceeded joint velocity limits.
     
    -const bool & cartesian_velocity_violation
     True if the robot exceeded Cartesian velocity limits.
     
    -const bool & force_control_safety_violation
     True if the robot exceeded safety threshold during force control.
     
    -const bool & joint_reflex
     True if a collision was detected, i.e. the robot exceeded a torque threshold in a joint motion.
     
    -const bool & cartesian_reflex
     True if a collision was detected, i.e. the robot exceeded a torque threshold in a Cartesian motion.
     
    -const bool & max_goal_pose_deviation_violation
     True if internal motion generator did not reach the goal pose.
     
    -const bool & max_path_pose_deviation_violation
     True if internal motion generator deviated from the path.
     
    -const bool & cartesian_velocity_profile_safety_violation
     True if Cartesian velocity profile for internal motions was exceeded.
     
    -const bool & joint_position_motion_generator_start_pose_invalid
     True if an external joint position motion generator was started with a pose too far from the current pose.
     
    -const bool & joint_motion_generator_position_limits_violation
     True if an external joint motion generator would move into a joint limit.
     
    -const bool & joint_motion_generator_velocity_limits_violation
     True if an external joint motion generator exceeded velocity limits.
     
    -const bool & joint_motion_generator_velocity_discontinuity
     True if commanded velocity in joint motion generators is discontinuous (target values are too far apart).
     
    -const bool & joint_motion_generator_acceleration_discontinuity
     True if commanded acceleration in joint motion generators is discontinuous (target values are too far apart).
     
    -const bool & cartesian_position_motion_generator_start_pose_invalid
     True if an external Cartesian position motion generator was started with a pose too far from the current pose.
     
    -const bool & cartesian_motion_generator_elbow_limit_violation
     True if an external Cartesian motion generator would move into an elbow limit.
     
    -const bool & cartesian_motion_generator_velocity_limits_violation
     True if an external Cartesian motion generator would move with too high velocity.
     
    -const bool & cartesian_motion_generator_velocity_discontinuity
     True if commanded velocity in Cartesian motion generators is discontinuous (target values are too far apart).
     
    -const bool & cartesian_motion_generator_acceleration_discontinuity
     True if commanded acceleration in Cartesian motion generators is discontinuous (target values are too far apart).
     
    -const bool & cartesian_motion_generator_elbow_sign_inconsistent
     True if commanded elbow values in Cartesian motion generators are inconsistent.
     
    -const bool & cartesian_motion_generator_start_elbow_invalid
     True if the first elbow value in Cartesian motion generators is too far from initial one.
     
    -const bool & cartesian_motion_generator_joint_position_limits_violation
     True if the joint position limits would be exceeded after IK calculation.
     
    -const bool & cartesian_motion_generator_joint_velocity_limits_violation
     True if the joint velocity limits would be exceeded after IK calculation.
     
    -const bool & cartesian_motion_generator_joint_velocity_discontinuity
     True if the joint velocity in Cartesian motion generators is discontinuous after IK calculation.
     
    -const bool & cartesian_motion_generator_joint_acceleration_discontinuity
     True if the joint acceleration in Cartesian motion generators is discontinuous after IK calculation.
     
    -const bool & cartesian_position_motion_generator_invalid_frame
     True if the Cartesian pose is not a valid transformation matrix.
     
    -const bool & force_controller_desired_force_tolerance_violation
     True if desired force exceeds the safety thresholds.
     
    -const bool & controller_torque_discontinuity
     True if the torque set by the external controller is discontinuous.
     
    const bool & start_elbow_sign_inconsistent
     True if the start elbow sign was inconsistent. More...
     
    -const bool & communication_constraints_violation
     True if minimum network communication quality could not be held during a motion.
     
    -const bool & power_limit_violation
     True if commanded values would result in exceeding the power limit.
     
    const bool & joint_p2p_insufficient_torque_for_planning
     True if the robot is overloaded for the required motion. More...
     
    -const bool & tau_j_range_violation
     True if the measured torque signal is out of the safe range.
     
    -const bool & instability_detected
     True if an instability is detected.
     
    -const bool & joint_move_in_wrong_direction
     True if the robot is in joint position limits violation error and the user guides the robot further towards the limit.
     
    -

    Detailed Description

    -

    Enumerates errors that can occur while controlling a franka::Robot.

    -

    Constructor & Destructor Documentation

    - -

    ◆ Errors() [1/2]

    - -
    -
    - - - - - - - - -
    franka::Errors::Errors (const Errorsother)
    -
    - -

    Copy constructs a new Errors instance.

    -
    Parameters
    - - -
    [in]otherOther Errors instance.
    -
    -
    - -
    -
    - -

    ◆ Errors() [2/2]

    - -
    -
    - - - - - - - - -
    franka::Errors::Errors (const std::array< bool, 37 > & errors)
    -
    - -

    Creates a new Errors instance from the given array.

    -
    Parameters
    - - -
    errorsArray of error flags.
    -
    -
    - -
    -
    -

    Member Function Documentation

    - -

    ◆ operator bool()

    - -
    -
    - - - - - -
    - - - - - - - -
    franka::Errors::operator bool () const
    -
    -explicitnoexcept
    -
    - -

    Check if any error flag is set to true.

    -
    Returns
    True if any errors are set.
    - -
    -
    - -

    ◆ operator std::string()

    - -
    -
    - - - - - -
    - - - - - - - -
    franka::Errors::operator std::string () const
    -
    -explicit
    -
    - -

    Creates a string with names of active errors: "[active_error_name2, active_error_name_2, ... active_error_name_n]" If no errors are active, the string contains empty brackets: "[]".

    -
    Returns
    string with names of active errors
    - -
    -
    - -

    ◆ operator=()

    - -
    -
    - - - - - - - - -
    Errors& franka::Errors::operator= (Errors other)
    -
    - -

    Assigns this Errors instance from another Errors value.

    -
    Parameters
    - - -
    [in]otherOther Errors instance.
    -
    -
    -
    Returns
    Errors instance.
    - -
    -
    -

    Member Data Documentation

    - -

    ◆ joint_p2p_insufficient_torque_for_planning

    - -
    -
    - - - - -
    const bool& franka::Errors::joint_p2p_insufficient_torque_for_planning
    -
    - -

    True if the robot is overloaded for the required motion.

    -

    Applies only to motions started from Desk.

    - -
    -
    - -

    ◆ start_elbow_sign_inconsistent

    - -
    -
    - - - - -
    const bool& franka::Errors::start_elbow_sign_inconsistent
    -
    - -

    True if the start elbow sign was inconsistent.

    -

    Applies only to motions started from Desk.

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1Exception.html b/structfranka_1_1Exception.html deleted file mode 100644 index 14b4b6f5..00000000 --- a/structfranka_1_1Exception.html +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - -libfranka: franka::Exception Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::Exception Struct Reference
    -
    -
    - -

    Base class for all exceptions used by libfranka. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::Exception:
    -
    -
    Inheritance graph
    - - - - - - - - - - -
    [legend]
    -
    -Collaboration diagram for franka::Exception:
    -
    -
    Collaboration graph
    -
    [legend]
    -

    Detailed Description

    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1Exception__coll__graph.map b/structfranka_1_1Exception__coll__graph.map deleted file mode 100644 index 03065451..00000000 --- a/structfranka_1_1Exception__coll__graph.map +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/structfranka_1_1Exception__coll__graph.md5 b/structfranka_1_1Exception__coll__graph.md5 deleted file mode 100644 index d9fc898a..00000000 --- a/structfranka_1_1Exception__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -90aeeebfb2c5f26ad853f12ed8eab88b \ No newline at end of file diff --git a/structfranka_1_1Exception__coll__graph.png b/structfranka_1_1Exception__coll__graph.png deleted file mode 100644 index e2cccb70de325b0195074f3b25056426a0cb9f67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3504 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 KZn=(g - - - - - - - - - diff --git a/structfranka_1_1Exception__inherit__graph.md5 b/structfranka_1_1Exception__inherit__graph.md5 deleted file mode 100644 index bf064066..00000000 --- a/structfranka_1_1Exception__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2aef52309647230010c53e1ab4146e66 \ No newline at end of file diff --git a/structfranka_1_1Exception__inherit__graph.png b/structfranka_1_1Exception__inherit__graph.png deleted file mode 100644 index 4e87e9091ad78e4bcf5bf23d921a83cc7481a5b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40443 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 Izw_k(0c7us^Z)<= diff --git a/structfranka_1_1Finishable-members.html b/structfranka_1_1Finishable-members.html deleted file mode 100644 index 107b6927..00000000 --- a/structfranka_1_1Finishable-members.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::Finishable Member List
    -
    -
    - -

    This is the complete list of members for franka::Finishable, including all inherited members.

    - - -
    motion_finishedfranka::Finishable
    - - - - diff --git a/structfranka_1_1Finishable.html b/structfranka_1_1Finishable.html deleted file mode 100644 index bdf0efaf..00000000 --- a/structfranka_1_1Finishable.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - -libfranka: franka::Finishable Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::Finishable Struct Reference
    -
    -
    - -

    Helper type for control and motion generation loops. - More...

    - -

    #include <control_types.h>

    -
    -Inheritance diagram for franka::Finishable:
    -
    -
    Inheritance graph
    - - - - - - - -
    [legend]
    - - - - - -

    -Public Attributes

    -bool motion_finished = false
     Determines whether to finish a currently running motion.
     
    -

    Detailed Description

    -

    Helper type for control and motion generation loops.

    -

    Used to determine whether to terminate a loop after the control callback has returned.

    -
    See also
    Documentation on callbacks
    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1Finishable__inherit__graph.map b/structfranka_1_1Finishable__inherit__graph.map deleted file mode 100644 index ffd13645..00000000 --- a/structfranka_1_1Finishable__inherit__graph.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/structfranka_1_1Finishable__inherit__graph.md5 b/structfranka_1_1Finishable__inherit__graph.md5 deleted file mode 100644 index c35d393e..00000000 --- a/structfranka_1_1Finishable__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -f45d6135822f506b3f61f086c314bc90 \ No newline at end of file diff --git a/structfranka_1_1Finishable__inherit__graph.png b/structfranka_1_1Finishable__inherit__graph.png deleted file mode 100644 index 4218ec6a63683793dcfe6bd17c084a5ced3c5cc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14836 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 - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::GripperState Member List
    -
    - - - - - diff --git a/structfranka_1_1GripperState.html b/structfranka_1_1GripperState.html deleted file mode 100644 index fbc2328d..00000000 --- a/structfranka_1_1GripperState.html +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - -libfranka: franka::GripperState Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::GripperState Struct Reference
    -
    -
    - -

    Describes the gripper state. - More...

    - -

    #include <gripper_state.h>

    -
    -Collaboration diagram for franka::GripperState:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    - - - - - - - - - - - - - - - - - -

    -Public Attributes

    double width {}
     Current gripper opening width. More...
     
    double max_width {}
     Maximum gripper opening width. More...
     
    -bool is_grasped {}
     Indicates whether an object is currently grasped.
     
    uint16_t temperature {}
     Current gripper temperature. More...
     
    -Duration time {}
     Strictly monotonically increasing timestamp since robot start.
     
    -

    Detailed Description

    -

    Describes the gripper state.

    -
    Examples:
    grasp_object.cpp.
    -

    Member Data Documentation

    - -

    ◆ max_width

    - -
    -
    - - - - -
    double franka::GripperState::max_width {}
    -
    - -

    Maximum gripper opening width.

    -

    This parameter is estimated by homing the gripper. After changing the gripper fingers, a homing needs to be done. Unit: \([m]\).

    -
    See also
    Gripper::homing.
    -
    Examples:
    grasp_object.cpp.
    -
    -
    -
    - -

    ◆ temperature

    - -
    -
    - - - - -
    uint16_t franka::GripperState::temperature {}
    -
    - -

    Current gripper temperature.

    -

    Unit: \([°C]\).

    - -
    -
    - -

    ◆ width

    - -
    -
    - - - - -
    double franka::GripperState::width {}
    -
    - -

    Current gripper opening width.

    -

    Unit: \([m]\).

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1GripperState__coll__graph.map b/structfranka_1_1GripperState__coll__graph.map deleted file mode 100644 index 889df829..00000000 --- a/structfranka_1_1GripperState__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1GripperState__coll__graph.md5 b/structfranka_1_1GripperState__coll__graph.md5 deleted file mode 100644 index 3db64931..00000000 --- a/structfranka_1_1GripperState__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -13d43e3c0e92d1f6b4e971a5afdbcb07 \ No newline at end of file diff --git a/structfranka_1_1GripperState__coll__graph.png b/structfranka_1_1GripperState__coll__graph.png deleted file mode 100644 index 870862f3955e4683ed22ee0018086167179994ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4271 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 Q_y+>==%I#EDa<7BU%z5Ps{jB1 diff --git a/structfranka_1_1IncompatibleVersionException-members.html b/structfranka_1_1IncompatibleVersionException-members.html deleted file mode 100644 index ec394004..00000000 --- a/structfranka_1_1IncompatibleVersionException-members.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::IncompatibleVersionException Member List
    -
    -
    - -

    This is the complete list of members for franka::IncompatibleVersionException, including all inherited members.

    - - - - -
    IncompatibleVersionException(uint16_t server_version, uint16_t library_version) noexceptfranka::IncompatibleVersionException
    library_versionfranka::IncompatibleVersionException
    server_versionfranka::IncompatibleVersionException
    - - - - diff --git a/structfranka_1_1IncompatibleVersionException.html b/structfranka_1_1IncompatibleVersionException.html deleted file mode 100644 index b7ebada3..00000000 --- a/structfranka_1_1IncompatibleVersionException.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - -libfranka: franka::IncompatibleVersionException Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::IncompatibleVersionException Struct Reference
    -
    -
    - -

    IncompatibleVersionException is thrown if the robot does not support this version of libfranka. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::IncompatibleVersionException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::IncompatibleVersionException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    - - - - - -

    -Public Member Functions

     IncompatibleVersionException (uint16_t server_version, uint16_t library_version) noexcept
     Creates the exception using the two different protocol versions. More...
     
    - - - - - - - -

    -Public Attributes

    -const uint16_t server_version
     Control's protocol version.
     
    -const uint16_t library_version
     libfranka protocol version.
     
    -

    Detailed Description

    -

    IncompatibleVersionException is thrown if the robot does not support this version of libfranka.

    -

    Constructor & Destructor Documentation

    - -

    ◆ IncompatibleVersionException()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    franka::IncompatibleVersionException::IncompatibleVersionException (uint16_t server_version,
    uint16_t library_version 
    )
    -
    -noexcept
    -
    - -

    Creates the exception using the two different protocol versions.

    -
    Parameters
    - - - -
    [in]server_versionProtocol version on the Control side.
    [in]library_versionProtocol version of libfranka.
    -
    -
    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1IncompatibleVersionException__coll__graph.map b/structfranka_1_1IncompatibleVersionException__coll__graph.map deleted file mode 100644 index d6404285..00000000 --- a/structfranka_1_1IncompatibleVersionException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1IncompatibleVersionException__coll__graph.md5 b/structfranka_1_1IncompatibleVersionException__coll__graph.md5 deleted file mode 100644 index 31515ce2..00000000 --- a/structfranka_1_1IncompatibleVersionException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -5013752abdac08d2712d8c8d02cc61d0 \ No newline at end of file diff --git a/structfranka_1_1IncompatibleVersionException__coll__graph.png b/structfranka_1_1IncompatibleVersionException__coll__graph.png deleted file mode 100644 index 250e6d2520d57631d2e26cdd1784a008e1347a85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6509 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 diff --git a/structfranka_1_1IncompatibleVersionException__inherit__graph.map b/structfranka_1_1IncompatibleVersionException__inherit__graph.map deleted file mode 100644 index d6404285..00000000 --- a/structfranka_1_1IncompatibleVersionException__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1IncompatibleVersionException__inherit__graph.md5 b/structfranka_1_1IncompatibleVersionException__inherit__graph.md5 deleted file mode 100644 index 8af9498c..00000000 --- a/structfranka_1_1IncompatibleVersionException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -4a101765b1994354f82c7261df873e7a \ No newline at end of file diff --git a/structfranka_1_1IncompatibleVersionException__inherit__graph.png b/structfranka_1_1IncompatibleVersionException__inherit__graph.png deleted file mode 100644 index 250e6d2520d57631d2e26cdd1784a008e1347a85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6509 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 diff --git a/structfranka_1_1InvalidOperationException.html b/structfranka_1_1InvalidOperationException.html deleted file mode 100644 index 05fdcf1a..00000000 --- a/structfranka_1_1InvalidOperationException.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -libfranka: franka::InvalidOperationException Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::InvalidOperationException Struct Reference
    -
    -
    - -

    InvalidOperationException is thrown if an operation cannot be performed. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::InvalidOperationException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::InvalidOperationException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    -

    Detailed Description

    -

    InvalidOperationException is thrown if an operation cannot be performed.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1InvalidOperationException__coll__graph.map b/structfranka_1_1InvalidOperationException__coll__graph.map deleted file mode 100644 index 73eb5245..00000000 --- a/structfranka_1_1InvalidOperationException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1InvalidOperationException__coll__graph.md5 b/structfranka_1_1InvalidOperationException__coll__graph.md5 deleted file mode 100644 index 02185353..00000000 --- a/structfranka_1_1InvalidOperationException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c6c5877395fdd44098ce0e6fe9b08498 \ No newline at end of file diff --git a/structfranka_1_1InvalidOperationException__coll__graph.png b/structfranka_1_1InvalidOperationException__coll__graph.png deleted file mode 100644 index 4f464fd2cd69299f0d8bae677c72e0ec176985fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7071 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 C{I^X2 diff --git a/structfranka_1_1InvalidOperationException__inherit__graph.map b/structfranka_1_1InvalidOperationException__inherit__graph.map deleted file mode 100644 index 73eb5245..00000000 --- a/structfranka_1_1InvalidOperationException__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1InvalidOperationException__inherit__graph.md5 b/structfranka_1_1InvalidOperationException__inherit__graph.md5 deleted file mode 100644 index 56b4a528..00000000 --- a/structfranka_1_1InvalidOperationException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -c167bc418393b8250e3d03a053be34dd \ No newline at end of file diff --git a/structfranka_1_1InvalidOperationException__inherit__graph.png b/structfranka_1_1InvalidOperationException__inherit__graph.png deleted file mode 100644 index 4f464fd2cd69299f0d8bae677c72e0ec176985fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7071 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 C{I^X2 diff --git a/structfranka_1_1ModelException.html b/structfranka_1_1ModelException.html deleted file mode 100644 index 26f2b210..00000000 --- a/structfranka_1_1ModelException.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -libfranka: franka::ModelException Struct Reference - - - - - - - - - - - -
    -
    -
    franka::ModelException Struct Reference
    -
    -
    - -

    ModelException is thrown if an error occurs when loading the model library. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::ModelException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::ModelException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    -

    Detailed Description

    -

    ModelException is thrown if an error occurs when loading the model library.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1ModelException__coll__graph.map b/structfranka_1_1ModelException__coll__graph.map deleted file mode 100644 index 67c5aa66..00000000 --- a/structfranka_1_1ModelException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1ModelException__coll__graph.md5 b/structfranka_1_1ModelException__coll__graph.md5 deleted file mode 100644 index de4b2d42..00000000 --- a/structfranka_1_1ModelException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9846e17ef1d54b03a7eb96e10f913976 \ No newline at end of file diff --git a/structfranka_1_1ModelException__coll__graph.png b/structfranka_1_1ModelException__coll__graph.png deleted file mode 100644 index 907651319be0ff691299fd1a69122e69c1c5fc6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6530 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 E0}^QALI3~& diff --git a/structfranka_1_1ModelException__inherit__graph.map b/structfranka_1_1ModelException__inherit__graph.map deleted file mode 100644 index 67c5aa66..00000000 --- a/structfranka_1_1ModelException__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1ModelException__inherit__graph.md5 b/structfranka_1_1ModelException__inherit__graph.md5 deleted file mode 100644 index cc55dc60..00000000 --- a/structfranka_1_1ModelException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -67969b49aabca7c633531166666b50b1 \ No newline at end of file diff --git a/structfranka_1_1ModelException__inherit__graph.png b/structfranka_1_1ModelException__inherit__graph.png deleted file mode 100644 index 907651319be0ff691299fd1a69122e69c1c5fc6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6530 zcmc(kXH=8XmWE@YC{=n1K|nz1NS6|tqV%RzsRBwz=`D1mg8~t00@8a6(tAK@(m}cu zL3)P}U=H`LduPq8S@UxS)*)F5-}z3?*?YgweiNpysz7v`?luGhA$s;yUK2dlf>Do; z3;v2(z;(a_u9=d8Jmm7~_e*2$M+k&gYxQooPj_!aGyFcL%Q5SKP;emEy5Lhy{haSg>bBta!2zU;#{8~)$GtipKhg}1 z?y%K=jYIN+#l5|^OUui*MkVjiYH4W^GCb0bZNd@%Fg`YxnV0u8Z!7G5JQA7J&|p}0 z0bUmITraK(n#EaL-kNRXe0?d%&Yr2j^v}Uw5DWLgP(ZsDPWS)R@dO{-&AjcQCgidA zO8&`{zjcvPh2uffeSJh-(G0^bv<%k8{Yy))PR`EObM6j#$*Oi2{?%Z*oSM79#lyp+ zp`|tbJCgs+W1kITa)CX4s-n_4l&#e21Z7i8BZS2EEXRI-#U~`xIZkK8wGa4(;El&q#>XlPhw+K#K7`iK&ZM$?G9a%pO6mO0Ex5z;=qc>|BQV{f@9 z<3-`A9S0}p9U7YVrtKlEy}g7FlL%{TYg6gQqfvHtP<n7dQHz$_n>Cw>y21!qC z^W=Q3+=}BlM7pHcQKW^X5nMk?N=kk-4FM66MSCd8pK%9Y1omXN_s5TLR#sO2 zY|Za9=DlNMiLCeT?W}`y<%eu^Mo?pgU0q$dSXqOgKYv~x8%xTTpqQjzY+u>`>?2z_ zi$e74jq%ypw3%;CfzP$I%d(Y_56Q{Nk9NBlD}VnsON@(aEh;LS`2Lao)DDZqenKLt zd;0q=Ei5cHKB`HXlCvqBa3mD8mv6qF8bfDPqt=FV1soh4UZ|_Lq)B+RNk~d2)zrAv zFHX{~t*voMN;VF!yFHJ&<>BfoEb#E5*_$_Sig_GhX}!J5xPDh3)uG;b?ZcC9@rS-x zcPcWn%)zmw*zKvB7-J(%%{E9GSi+0-S4D@hmxrZ@2F5V!M%BP^0j+MMymRDt&I>~Qz&8LzNw0e3K~e_$B*qbGqvwRubBh~2iqMD)5?Z6 zbSdjVq0pUD#5qB_FXqAY^z_c40^`Eb=9FDYdU`qu3k%EBY|SRSlbwZ^v!$u2FOfBG z>eS@q2Dk?}!Sy|aULYR-Q#qZh;lUJ|44vtM&sj3n~TE@nxpk4lpqN{6b84V54 z7)H3g8$5LeRqgcpS0WM_>U)l91)J|+lY$XyB;9_F)_NUaTt7r9B_*}9yX&uCjNV=B z;}4Mfkn zqtKn5I0`Ya$8X*|c>C^M`J3S!9?9qx7gs!Saq$xj#_anC*6!|ZX%`ov660oKI2=AQ zI(iFbrxhI?{Ylu4?)vrXcac4DU@NL^#@l*&2*$?7O3z4fM$KiVd@#4(8O%r?43-YW={f^s^a(kg2ibU}M7tY47Oj z8d6xuX=`V9hm!KJfaIBtC_3mA)g+tI(&%+Ozp%h0e=ILg$6HPLw_*eK?jF1ReTqG! zEpSd)y^kw3tV)Tibq%l#h18c!FRdILNc=5RGG!FrGJ8_|dvF()_~x&ZVW6#Z?yiUC zPUTbe$7Exr$3aa^X(dW){D1%ct;4oz>)^xoypFeSHAWa^H5o-AF3)sy^_(2vtxqxr z+ZYTJjMXKZFd-GQ>2%ib%um-EVTU zHI@$5yQ{xuW>O(}gbcGZj7!^M;Io5HkA3ih4V8RPn20!@w_CJByO?;kLZUhUir-(- zC!_ZYyp+8PMBe6C^QZfY3_7DCV3w<=U%$TEQ`p0W_NP0Xt^0gEyL!1dDH$TzOogUt z&(|7v(NbrWV;T?8$}I`xuYQuO-{-i$LcX+|P*qO3#zXPee|d$9g}WGH?b2i6=}DF% z?xuA1_>dpG(b+W@lxDQvUZh<>O0T3v1%wO7_3sE#o_2vS67GFMK})Mvt*bF7$3*?} z{4BWphvt_?-mTU3^@R<+&lUJ#vOHfxVs@u4&BYH7IXXJ9YT`JD8V3w&*B&HroSa0C zzdk$tbLRNAB3RqHVDMr?PmGIOXzJ-P>Be?R?AYW)QP)Cy#KQV|=DH?^@N)_2U{);o z|LY*f!c_z>;2uLQ6B9($)syNRYw07x;bCE|=@$p=t(fs2mxTH?_6*ZAGu7psLp{C8 zB5FH6uUVJ2wzdMAG@or}N5u}Oq`Zd(|8p3{5P10bNK)|{5rSebDkgRd#R#O+`*_AJ z;84vo8b-Y*VAVg5Ib81^7*O!^tSjkR69D2H+1>s0C6ehqc;BGL-gM~eGa6CHFC|JI z+}n-EFwtlmr>pW^q7;~%Odri4o->%3l0t|;AZ94;m4Rz2Djpte&l!(fI7hU!Nb{iu z?GY#KjLt7#qz`Aw@_hX6xHB&!FE8)6C~7-}B9d;$daREX@9gaOg@xTxO%c78q>LNA zcsK6p{QSHhP%^>uoiR{;rfM9zB54IotgXW}vYssb?u;njs;R4^tF#(G7wJ{1KY!ji zK4f%hYHCWuZzi97Jf)?pi?5`l6m@*FCy_faH1LX=8K z9-JMgJu1L38-Z`6557_$RenDpFDdOhL(CH-t?&JCazy+M~AcLxt|{d z1@0Av0tG~Xlan(sKE5MfF&q65sJZ=Y!*_r+t(jR_La6e}O7jN~9uyT6ga-!&@#Sm( z7_k;=#!fjjTfD7J0RU1CSOT?L-*^FZX>wY7@%9ApR0zWCR0Qi09?y)l}@n0hpny z#znA6@^R@ckKsaEK!+hX1XLz~ssR0jFMH zd;s;xX=6sW+W%iAU0l5QA6^%F1HV z)Y4j5Te}5$A0FPeI+(Svyo{5t9WG=uW&+@dF4qXjYaCr{P}7D+;|>lEiXtu~xVX3= z5E&VnZ;lJs35keKD>?f>wE(rBroX@6(ZwaWxR^ULGqX+tS2Ey>fNxH!2$j6nVp7(u zH2vvng2G$bx&T>Kc{R>CLgrsC>toz6kw3G3#{FmchXotMs!Ks|7sF>5`rD_bH+m>N# zY3Lp7Ku6pq^&KbLde>C{%6(GoA9(t|0K^$+HUzpg{Xp8@zWho<08;Fo?7o|BG=TVJ z7{hP%r<^_?XFa5)c*`9Yp%mQY+wRDjz>y*vm$?{@A--Lkm?D)Lj=_Y~z$1mAliPF1 z^=}1D{<0-FZd*$%?78?v#{0Hk0JNT*B-e2kkYvQ#$arH_8g@fgCVyc(Db36-@E+B& zO5Cn(8LWdHAia9SHp)e*wEy`gGu*`hRjh5494^1xOt5$;^+OP z>k%={w|smWUm!=v3mq{BME4V{xphWs)Vp!CjZ0<0O-9CRd{Pzl^teBKfW0X%XbJ_; z(Sv0Cl9^dD<8pAwD(ds-xf11}3dP%NLf!?F7n2{sg03jb#bxF=G~zv5owSlPl4nLv zrB5jeMakLJ+Qq0Anw;GD z|J8l}Up|hPddT_uN|hKj7DVV{B5lS?GEl;D;}-9SerCumY;BcHc7F~F3p0Ivq9Ec- zKA)2-66=)G)W1%;ZnrgE+sD$U5B*Nh%EpGOejf{a^QS+x81-M!q$bEPUz=G_kYaXr zR=3Xijhpi%2SA8>_wM13HODF{D$cL1g@Im9wYb@Olp_U>Fq$vGga`waeypiU29xrB zKQW;TECd$?-{)YxO3Ssn_^n$WmX>TFp@-LRz$hq!*2hcD7tv94YO0_e zP2@Jfy>a7);WtN_+-f0e7>rm)M~6ZC;POS0?lsW3G#t-*c~51?g*xlT<=Efyc>bIc zbnx|AoT=}eojZ~QtOR9!k2dr~A3e$}D^m|mxVGJVDfOb%sCbypGi#jqbfqsj4$u%p z)NKnYh24?kGC&btTwGki!qD(=TwI)g6uk&D6VtWt-@ng`5(A0eIXXgzGWz02FG2)+ zYZ1rwb4-$w3?z(F9rLY$z<|IP5vid%D=sXQb9Ceb%Ivx|eG7borbHA5?u!-ePlv~> zuCBh=zTsD2FHS~Awlm*)BN8S_CnO|vvX+}Zzr79Oie!I1Au;hcm=V}4I1ubnO>-w` z^i0jnu0!tg@H}yM7X`{`VruFSzu1kTI~*Swx%==T8IUy@umk8Q`cP0|T8D-zdIn^i zocOWl=jGs78qT)rA%37?lI1~~15J;8dM~e}1P#ADRWoe#q)bRi09Yq2Ee#Ticzpxy!V*c3p!CsB04fKH#@BWp^G#%$wvIe}JO#@ky$>TE** zctv+W4UPp}*Sb(s88Zt@hGsq~6;;Sgy&DS`7a@cc3MCW}5Rg|;$N~u3+Sn31JDwL*;su_PBx!H*#RF5?@2T?ER=+iSxk%;!~%BWYF)tY z!6zUHtgRK}F>Z=9Mx0Xuo=+`U-k7Y!CniP%!g5;arM3N4bqff`)g-rX-_}>w`MmzR z!LMKPxK#G1)_Y%HUw2^Jo%pY~am3B{iOh8Xb&HLU|5|Pf(ve2eQxJ2!9Wz;Jl~q+m z(b?IF-2=2zWYkDEoU7Ia(8J(h#^@64?1-qfNb}rN&|?2c;LOX*YXO(=dmY(EEx)aW z);P?e>s;1N?CpvFDQ$OIS#iK*_qn*__4Vn-N{vatrc6vsn4In{V~-v`etfcwG~NM0 z*alpN8@PlmU{Vcrb-$F96yYub9vyuIq;!DhboKOh?SR<;p}TIVqk{*MFschEYWpP@vgewh zM1G$n@J0cO6pxJ#rc95IQ-kxm@)rS8e;Le`XCBPUD6G~sFtFjOM4_Glm`Sb{936B| zN>0A9dQyvc9uU&7R+>c3YcwCh+tdPrm(S_9Jg`5Q!A`*e1tT$rP2OS%+_S+^0jX#DB=Xmwl>ES+y<^S6%|z;C>wTm+=@y{r|c#C$`BI^ z3!LahQbtA+Ev;dlf>JRwjjY^NJ&y(+#6nvz!Oq^^@8jGTg&Kg8LkkP51&f<^FXA6) zLB5R6<*2v_8p#g-Vo!5%aWRQ(?e50MU@+g@wqalw>ZfA>+@kEJuDsnM<7QZPc6RF4 z<;m`%Zq;jzg z1C$BKHc|JTyYLy1!j5ikU7#b1OHPg`DB$qEJU{*hYEQ0>nAZ`P{ajPj-@n!!9UWit z^6uOXqTIqEF?0Yg0qPB2K&YezbW1#$iouWIc-V8e)Z_V%= zcRE3Z?Wf<%g%X=?{;Hm+aWJkqnxjoeT!=Mc{&HT`e_)qy*33PTmi9yM0et1suX+!! z-vg`ny^;%HKm~vKa<{>K_c}2#@zrM4=bA14{!M!2d86J8v+3&VGXvMk*yoTE)Y19h zzXL!YY7Qjz{rmTR{{Gic_A}vNMR)Jt#|JeZRNR(==Y@}6M#RLBfXW51G9x1c>yQt~ zcb*q=%dOJj=q34s`~PkHlBoZ^wwB-b2!D;L_~q-d-{fi- z0jIAbHk$(-)%apeW^(WTZILm1o+jm@n~4gDyx78kdg2mnx8Fk5%PMWK9D8 E0}^QALI3~& diff --git a/structfranka_1_1NetworkException.html b/structfranka_1_1NetworkException.html deleted file mode 100644 index b4b917bc..00000000 --- a/structfranka_1_1NetworkException.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -libfranka: franka::NetworkException Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::NetworkException Struct Reference
    -
    -
    - -

    NetworkException is thrown if a connection to the robot cannot be established, or when a timeout occurs. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::NetworkException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::NetworkException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    -

    Detailed Description

    -

    NetworkException is thrown if a connection to the robot cannot be established, or when a timeout occurs.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1NetworkException__coll__graph.map b/structfranka_1_1NetworkException__coll__graph.map deleted file mode 100644 index 437dadae..00000000 --- a/structfranka_1_1NetworkException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1NetworkException__coll__graph.md5 b/structfranka_1_1NetworkException__coll__graph.md5 deleted file mode 100644 index 8cec3ee4..00000000 --- a/structfranka_1_1NetworkException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -9af45655aa289c33149c8bb1761bd111 \ No newline at end of file diff --git a/structfranka_1_1NetworkException__coll__graph.png b/structfranka_1_1NetworkException__coll__graph.png deleted file mode 100644 index ea001ed3e613ceb9c799160b063a2c8aced79619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6641 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 dS`@B`6|LW{d9av7g70u3B{_B3PY9EMe* - - diff --git a/structfranka_1_1NetworkException__inherit__graph.md5 b/structfranka_1_1NetworkException__inherit__graph.md5 deleted file mode 100644 index e3cdfb06..00000000 --- a/structfranka_1_1NetworkException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -d6298b969f9a6979a647826d253496de \ No newline at end of file diff --git a/structfranka_1_1NetworkException__inherit__graph.png b/structfranka_1_1NetworkException__inherit__graph.png deleted file mode 100644 index ea001ed3e613ceb9c799160b063a2c8aced79619..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6641 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 dS`@B`6|LW{d9av7g70u3B{_B3PY9EMe* - - - - - - -libfranka: franka::ProtocolException Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::ProtocolException Struct Reference
    -
    -
    - -

    ProtocolException is thrown if the robot returns an incorrect message. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::ProtocolException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::ProtocolException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    -

    Detailed Description

    -

    ProtocolException is thrown if the robot returns an incorrect message.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1ProtocolException__coll__graph.map b/structfranka_1_1ProtocolException__coll__graph.map deleted file mode 100644 index f1d13ffb..00000000 --- a/structfranka_1_1ProtocolException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1ProtocolException__coll__graph.md5 b/structfranka_1_1ProtocolException__coll__graph.md5 deleted file mode 100644 index aece1e9c..00000000 --- a/structfranka_1_1ProtocolException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -48f8a6ca028cec231add5789ec1a350b \ No newline at end of file diff --git a/structfranka_1_1ProtocolException__coll__graph.png b/structfranka_1_1ProtocolException__coll__graph.png deleted file mode 100644 index bdfc75a472087382ce8313e65aa83ce1b67eab91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6364 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 diff --git a/structfranka_1_1ProtocolException__inherit__graph.map b/structfranka_1_1ProtocolException__inherit__graph.map deleted file mode 100644 index f1d13ffb..00000000 --- a/structfranka_1_1ProtocolException__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1ProtocolException__inherit__graph.md5 b/structfranka_1_1ProtocolException__inherit__graph.md5 deleted file mode 100644 index b9a25e43..00000000 --- a/structfranka_1_1ProtocolException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -65bad3c49e2ae188c180f48af2384e74 \ No newline at end of file diff --git a/structfranka_1_1ProtocolException__inherit__graph.png b/structfranka_1_1ProtocolException__inherit__graph.png deleted file mode 100644 index bdfc75a472087382ce8313e65aa83ce1b67eab91..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6364 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 diff --git a/structfranka_1_1RealtimeException.html b/structfranka_1_1RealtimeException.html deleted file mode 100644 index d4fc42e7..00000000 --- a/structfranka_1_1RealtimeException.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - -libfranka: franka::RealtimeException Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::RealtimeException Struct Reference
    -
    -
    - -

    RealtimeException is thrown if realtime priority cannot be set. - More...

    - -

    #include <exception.h>

    -
    -Inheritance diagram for franka::RealtimeException:
    -
    -
    Inheritance graph
    - - - -
    [legend]
    -
    -Collaboration diagram for franka::RealtimeException:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    -

    Detailed Description

    -

    RealtimeException is thrown if realtime priority cannot be set.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1RealtimeException__coll__graph.map b/structfranka_1_1RealtimeException__coll__graph.map deleted file mode 100644 index 075a06cc..00000000 --- a/structfranka_1_1RealtimeException__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1RealtimeException__coll__graph.md5 b/structfranka_1_1RealtimeException__coll__graph.md5 deleted file mode 100644 index cdee64f9..00000000 --- a/structfranka_1_1RealtimeException__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -2f1c0e8d97c12c6fc77a8392f373535c \ No newline at end of file diff --git a/structfranka_1_1RealtimeException__coll__graph.png b/structfranka_1_1RealtimeException__coll__graph.png deleted file mode 100644 index f2236c5e8c674edb904e75536e1d53988f4293e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6615 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 KVzInM$bSI=jj{;< diff --git a/structfranka_1_1RealtimeException__inherit__graph.map b/structfranka_1_1RealtimeException__inherit__graph.map deleted file mode 100644 index 075a06cc..00000000 --- a/structfranka_1_1RealtimeException__inherit__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1RealtimeException__inherit__graph.md5 b/structfranka_1_1RealtimeException__inherit__graph.md5 deleted file mode 100644 index e9f31ee4..00000000 --- a/structfranka_1_1RealtimeException__inherit__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -73c423500faaf583888e58ac14fe72ef \ No newline at end of file diff --git a/structfranka_1_1RealtimeException__inherit__graph.png b/structfranka_1_1RealtimeException__inherit__graph.png deleted file mode 100644 index f2236c5e8c674edb904e75536e1d53988f4293e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6615 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 KVzInM$bSI=jj{;< diff --git a/structfranka_1_1Record-members.html b/structfranka_1_1Record-members.html deleted file mode 100644 index 2196c79b..00000000 --- a/structfranka_1_1Record-members.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::Record Member List
    -
    -
    - -

    This is the complete list of members for franka::Record, including all inherited members.

    - - - -
    commandfranka::Record
    statefranka::Record
    - - - - diff --git a/structfranka_1_1Record.html b/structfranka_1_1Record.html deleted file mode 100644 index fe0e852c..00000000 --- a/structfranka_1_1Record.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - -libfranka: franka::Record Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::Record Struct Reference
    -
    -
    - -

    One row of the log contains a robot command of timestamp n and a corresponding robot state of timestamp n+1. - More...

    - -

    #include <log.h>

    -
    -Collaboration diagram for franka::Record:
    -
    -
    Collaboration graph
    - - - - - - - - - - - - -
    [legend]
    - - - - - - - - -

    -Public Attributes

    -RobotState state
     Robot state of timestamp n+1.
     
    -RobotCommand command
     Robot command of timestamp n, after rate limiting (if activated).
     
    -

    Detailed Description

    -

    One row of the log contains a robot command of timestamp n and a corresponding robot state of timestamp n+1.

    -

    Provided by the ControlException.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1Record__coll__graph.map b/structfranka_1_1Record__coll__graph.map deleted file mode 100644 index be41a45f..00000000 --- a/structfranka_1_1Record__coll__graph.map +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/structfranka_1_1Record__coll__graph.md5 b/structfranka_1_1Record__coll__graph.md5 deleted file mode 100644 index bacda23b..00000000 --- a/structfranka_1_1Record__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -6af349cead0a6513b2b85bf4525d9680 \ No newline at end of file diff --git a/structfranka_1_1Record__coll__graph.png b/structfranka_1_1Record__coll__graph.png deleted file mode 100644 index 08991a3281a591a72166f20b12c4a5747464a842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47306 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�> 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%0Amf1xVOYh4O~KN_yIR`Rl-=+(*E9uL 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 JUCsR5e*xn&Fg*YO diff --git a/structfranka_1_1RobotCommand-members.html b/structfranka_1_1RobotCommand-members.html deleted file mode 100644 index 8309ed26..00000000 --- a/structfranka_1_1RobotCommand-members.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::RobotCommand Member List
    -
    - - - - - diff --git a/structfranka_1_1RobotCommand.html b/structfranka_1_1RobotCommand.html deleted file mode 100644 index 6cbe3a66..00000000 --- a/structfranka_1_1RobotCommand.html +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - -libfranka: franka::RobotCommand Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::RobotCommand Struct Reference
    -
    -
    - -

    Command sent to the robot. - More...

    - -

    #include <log.h>

    -
    -Collaboration diagram for franka::RobotCommand:
    -
    -
    Collaboration graph
    - - - - - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -JointPositions joint_positions {0, 0, 0, 0, 0, 0, 0}
     \(q_d\) sent to the robot.
     
    -JointVelocities joint_velocities {0, 0, 0, 0, 0, 0, 0}
     \(\dot{q}_d\) sent to the robot.
     
    -CartesianPose cartesian_pose {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1}
     \(^O{\mathbf{T}_{EE}}_{d}\) sent to the robot.
     
    -CartesianVelocities cartesian_velocities {0, 0, 0, 0, 0, 0}
     \(^O\dot{P}_{EE}\) sent to the robot.
     
    -Torques torques {0, 0, 0, 0, 0, 0, 0}
     \({\tau_J}_d\) sent to the robot.
     
    -

    Detailed Description

    -

    Command sent to the robot.

    -

    Structure used only for logging purposes.

    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1RobotCommand__coll__graph.map b/structfranka_1_1RobotCommand__coll__graph.map deleted file mode 100644 index 1c1e4f15..00000000 --- a/structfranka_1_1RobotCommand__coll__graph.map +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/structfranka_1_1RobotCommand__coll__graph.md5 b/structfranka_1_1RobotCommand__coll__graph.md5 deleted file mode 100644 index 6da74404..00000000 --- a/structfranka_1_1RobotCommand__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -28b09cca259b96c4054c79ab48fa1ecd \ No newline at end of file diff --git a/structfranka_1_1RobotCommand__coll__graph.png b/structfranka_1_1RobotCommand__coll__graph.png deleted file mode 100644 index d236cced2f383c5c15038f00cfcf13e3610f1523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27007 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 - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::RobotState Member List
    -
    - - - - - diff --git a/structfranka_1_1RobotState.html b/structfranka_1_1RobotState.html deleted file mode 100644 index 47d92ce8..00000000 --- a/structfranka_1_1RobotState.html +++ /dev/null @@ -1,892 +0,0 @@ - - - - - - - -libfranka: franka::RobotState Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::RobotState Struct Reference
    -
    -
    - -

    Describes the robot state. - More...

    - -

    #include <robot_state.h>

    -
    -Collaboration diagram for franka::RobotState:
    -
    -
    Collaboration graph
    - - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    std::array< double, 16 > O_T_EE {}
     \(^{O}T_{EE}\) Measured end effector pose in base frame. More...
     
    std::array< double, 16 > O_T_EE_d {}
     \({^OT_{EE}}_{d}\) Last desired end effector pose of motion generation in base frame. More...
     
    std::array< double, 16 > F_T_EE {}
     \(^{F}T_{EE}\) End effector frame pose in flange frame. More...
     
    std::array< double, 16 > F_T_NE {}
     \(^{F}T_{NE}\) Nominal end effector frame pose in flange frame. More...
     
    std::array< double, 16 > NE_T_EE {}
     \(^{NE}T_{EE}\) End effector frame pose in nominal end effector frame. More...
     
    std::array< double, 16 > EE_T_K {}
     \(^{EE}T_{K}\) Stiffness frame pose in end effector frame. More...
     
    -double m_ee {}
     \(m_{EE}\) Configured mass of the end effector.
     
    -std::array< double, 9 > I_ee {}
     \(I_{EE}\) Configured rotational inertia matrix of the end effector load with respect to center of mass.
     
    -std::array< double, 3 > F_x_Cee {}
     \(^{F}x_{C_{EE}}\) Configured center of mass of the end effector load with respect to flange frame.
     
    -double m_load {}
     \(m_{load}\) Configured mass of the external load.
     
    -std::array< double, 9 > I_load {}
     \(I_{load}\) Configured rotational inertia matrix of the external load with respect to center of mass.
     
    -std::array< double, 3 > F_x_Cload {}
     \(^{F}x_{C_{load}}\) Configured center of mass of the external load with respect to flange frame.
     
    -double m_total {}
     \(m_{total}\) Sum of the mass of the end effector and the external load.
     
    -std::array< double, 9 > I_total {}
     \(I_{total}\) Combined rotational inertia matrix of the end effector load and the external load with respect to the center of mass.
     
    -std::array< double, 3 > F_x_Ctotal {}
     \(^{F}x_{C_{total}}\) Combined center of mass of the end effector load and the external load with respect to flange frame.
     
    std::array< double, 2 > elbow {}
     Elbow configuration. More...
     
    std::array< double, 2 > elbow_d {}
     Desired elbow configuration. More...
     
    std::array< double, 2 > elbow_c {}
     Commanded elbow configuration. More...
     
    std::array< double, 2 > delbow_c {}
     Commanded elbow velocity. More...
     
    std::array< double, 2 > ddelbow_c {}
     Commanded elbow acceleration. More...
     
    std::array< double, 7 > tau_J {}
     \(\tau_{J}\) Measured link-side joint torque sensor signals. More...
     
    std::array< double, 7 > tau_J_d {}
     \({\tau_J}_d\) Desired link-side joint torque sensor signals without gravity. More...
     
    std::array< double, 7 > dtau_J {}
     \(\dot{\tau_{J}}\) Derivative of measured link-side joint torque sensor signals. More...
     
    std::array< double, 7 > q {}
     \(q\) Measured joint position. More...
     
    std::array< double, 7 > q_d {}
     \(q_d\) Desired joint position. More...
     
    std::array< double, 7 > dq {}
     \(\dot{q}\) Measured joint velocity. More...
     
    std::array< double, 7 > dq_d {}
     \(\dot{q}_d\) Desired joint velocity. More...
     
    std::array< double, 7 > ddq_d {}
     \(\dot{q}_d\) Desired joint acceleration. More...
     
    std::array< double, 7 > joint_contact {}
     Indicates which contact level is activated in which joint. More...
     
    std::array< double, 6 > cartesian_contact {}
     Indicates which contact level is activated in which Cartesian dimension \((x,y,z,R,P,Y)\). More...
     
    std::array< double, 7 > joint_collision {}
     Indicates which contact level is activated in which joint. More...
     
    std::array< double, 6 > cartesian_collision {}
     Indicates which contact level is activated in which Cartesian dimension \((x,y,z,R,P,Y)\). More...
     
    std::array< double, 7 > tau_ext_hat_filtered {}
     \(\hat{\tau}_{\text{ext}}\) External torque, filtered. More...
     
    std::array< double, 6 > O_F_ext_hat_K {}
     \(^OF_{K,\text{ext}}\) Estimated external wrench (force, torque) acting on stiffness frame, expressed relative to the base frame. More...
     
    std::array< double, 6 > K_F_ext_hat_K {}
     \(^{K}F_{K,\text{ext}}\) Estimated external wrench (force, torque) acting on stiffness frame, expressed relative to the stiffness frame. More...
     
    std::array< double, 6 > O_dP_EE_d {}
     \({^OdP_{EE}}_{d}\) Desired end effector twist in base frame. More...
     
    std::array< double, 16 > O_T_EE_c {}
     \({^OT_{EE}}_{c}\) Last commanded end effector pose of motion generation in base frame. More...
     
    std::array< double, 6 > O_dP_EE_c {}
     \({^OdP_{EE}}_{c}\) Last commanded end effector twist in base frame. More...
     
    std::array< double, 6 > O_ddP_EE_c {}
     \({^OddP_{EE}}_{c}\) Last commanded end effector acceleration in base frame. More...
     
    std::array< double, 7 > theta {}
     \(\theta\) Motor position. More...
     
    std::array< double, 7 > dtheta {}
     \(\dot{\theta}\) Motor velocity. More...
     
    -Errors current_errors {}
     Current error state.
     
    -Errors last_motion_errors {}
     Contains the errors that aborted the previous motion.
     
    double control_command_success_rate {}
     Percentage of the last 100 control commands that were successfully received by the robot. More...
     
    -RobotMode robot_mode = RobotMode::kUserStopped
     Current robot mode.
     
    Duration time {}
     Strictly monotonically increasing timestamp since robot start. More...
     
    -

    Detailed Description

    -

    Member Data Documentation

    - -

    ◆ cartesian_collision

    - -
    -
    - - - - -
    std::array<double, 6> franka::RobotState::cartesian_collision {}
    -
    - -

    Indicates which contact level is activated in which Cartesian dimension \((x,y,z,R,P,Y)\).

    -

    After contact disappears, the value stays the same until a reset command is sent.

    -
    See also
    Robot::setCollisionBehavior for setting sensitivity values.
    -
    -Robot::automaticErrorRecovery for performing a reset after a collision.
    - -
    -
    - -

    ◆ cartesian_contact

    - -
    -
    - - - - -
    std::array<double, 6> franka::RobotState::cartesian_contact {}
    -
    - -

    Indicates which contact level is activated in which Cartesian dimension \((x,y,z,R,P,Y)\).

    -

    After contact disappears, the value turns to zero.

    -
    See also
    Robot::setCollisionBehavior for setting sensitivity values.
    - -
    -
    - -

    ◆ control_command_success_rate

    - -
    -
    - - - - -
    double franka::RobotState::control_command_success_rate {}
    -
    - -

    Percentage of the last 100 control commands that were successfully received by the robot.

    -

    Shows a value of zero if no control or motion generator loop is currently running.

    -

    Range: \([0, 1]\).

    -
    Examples:
    communication_test.cpp.
    -
    -
    -
    - -

    ◆ ddelbow_c

    - -
    -
    - - - - -
    std::array<double, 2> franka::RobotState::ddelbow_c {}
    -
    - -

    Commanded elbow acceleration.

    -

    The values of the array are:

      -
    • [0] Acceleration of the 3rd joint in [rad/s^2].
    • -
    • [1] Sign of the 4th joint. Can be +1 or -1.
    • -
    - -
    -
    - -

    ◆ ddq_d

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::ddq_d {}
    -
    - -

    \(\dot{q}_d\) Desired joint acceleration.

    -

    Unit: \([\frac{rad}{s^2}]\)

    - -
    -
    - -

    ◆ delbow_c

    - -
    -
    - - - - -
    std::array<double, 2> franka::RobotState::delbow_c {}
    -
    - -

    Commanded elbow velocity.

    -

    The values of the array are:

      -
    • [0] Velocity of the 3rd joint in [rad/s].
    • -
    • [1] Sign of the 4th joint. Can be +1 or -1.
    • -
    - -
    -
    - -

    ◆ dq

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::dq {}
    -
    - -

    \(\dot{q}\) Measured joint velocity.

    -

    Unit: \([\frac{rad}{s}]\)

    -
    Examples:
    cartesian_impedance_control.cpp, and motion_with_control.cpp.
    -
    -
    -
    - -

    ◆ dq_d

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::dq_d {}
    -
    - -

    \(\dot{q}_d\) Desired joint velocity.

    -

    Unit: \([\frac{rad}{s}]\)

    - -
    -
    - -

    ◆ dtau_J

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::dtau_J {}
    -
    - -

    \(\dot{\tau_{J}}\) Derivative of measured link-side joint torque sensor signals.

    -

    Unit: \([\frac{Nm}{s}]\)

    - -
    -
    - -

    ◆ dtheta

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::dtheta {}
    -
    - -

    \(\dot{\theta}\) Motor velocity.

    -

    Unit: \([rad]\)

    - -
    -
    - -

    ◆ EE_T_K

    - -
    -
    - - - - -
    std::array<double, 16> franka::RobotState::EE_T_K {}
    -
    - -

    \(^{EE}T_{K}\) Stiffness frame pose in end effector frame.

    -

    Pose is represented as a 4x4 matrix in column-major format.

    -

    See also K frame.

    - -
    -
    - -

    ◆ elbow

    - -
    -
    - - - - -
    std::array<double, 2> franka::RobotState::elbow {}
    -
    - -

    Elbow configuration.

    -

    The values of the array are:

      -
    • [0] Position of the 3rd joint in [rad].
    • -
    • [1] Sign of the 4th joint. Can be +1 or -1.
    • -
    - -
    -
    - -

    ◆ elbow_c

    - -
    -
    - - - - -
    std::array<double, 2> franka::RobotState::elbow_c {}
    -
    - -

    Commanded elbow configuration.

    -

    The values of the array are:

      -
    • [0] Position of the 3rd joint in [rad].
    • -
    • [1] Sign of the 4th joint. Can be +1 or -1.
    • -
    -
    Examples:
    generate_elbow_motion.cpp.
    -
    -
    -
    - -

    ◆ elbow_d

    - -
    -
    - - - - -
    std::array<double, 2> franka::RobotState::elbow_d {}
    -
    - -

    Desired elbow configuration.

    -

    The values of the array are:

      -
    • [0] Position of the 3rd joint in [rad].
    • -
    • [1] Sign of the 4th joint. Can be +1 or -1.
    • -
    - -
    -
    - -

    ◆ F_T_EE

    - -
    -
    - - - - -
    std::array<double, 16> franka::RobotState::F_T_EE {}
    -
    - -

    \(^{F}T_{EE}\) End effector frame pose in flange frame.

    -

    Pose is represented as a 4x4 matrix in column-major format.

    -
    See also
    F_T_NE
    -
    -NE_T_EE
    -
    -Robot for an explanation of the NE and EE frames.
    - -
    -
    - -

    ◆ F_T_NE

    - -
    -
    - - - - -
    std::array<double, 16> franka::RobotState::F_T_NE {}
    -
    - -

    \(^{F}T_{NE}\) Nominal end effector frame pose in flange frame.

    -

    Pose is represented as a 4x4 matrix in column-major format.

    -
    See also
    F_T_EE
    -
    -NE_T_EE
    -
    -Robot for an explanation of the NE and EE frames.
    - -
    -
    - -

    ◆ joint_collision

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::joint_collision {}
    -
    - -

    Indicates which contact level is activated in which joint.

    -

    After contact disappears, the value stays the same until a reset command is sent.

    -
    See also
    Robot::setCollisionBehavior for setting sensitivity values.
    -
    -Robot::automaticErrorRecovery for performing a reset after a collision.
    - -
    -
    - -

    ◆ joint_contact

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::joint_contact {}
    -
    - -

    Indicates which contact level is activated in which joint.

    -

    After contact disappears, value turns to zero.

    -
    See also
    Robot::setCollisionBehavior for setting sensitivity values.
    - -
    -
    - -

    ◆ K_F_ext_hat_K

    - -
    -
    - - - - -
    std::array<double, 6> franka::RobotState::K_F_ext_hat_K {}
    -
    - -

    \(^{K}F_{K,\text{ext}}\) Estimated external wrench (force, torque) acting on stiffness frame, expressed relative to the stiffness frame.

    -

    See also K frame. Unit: \([N,N,N,Nm,Nm,Nm]\).

    - -
    -
    - -

    ◆ NE_T_EE

    - -
    -
    - - - - -
    std::array<double, 16> franka::RobotState::NE_T_EE {}
    -
    - -

    \(^{NE}T_{EE}\) End effector frame pose in nominal end effector frame.

    -

    Pose is represented as a 4x4 matrix in column-major format.

    -
    See also
    Robot::setEE to change this frame.
    -
    -F_T_EE
    -
    -F_T_NE
    -
    -Robot for an explanation of the NE and EE frames.
    - -
    -
    - -

    ◆ O_ddP_EE_c

    - -
    -
    - - - - -
    std::array<double, 6> franka::RobotState::O_ddP_EE_c {}
    -
    - -

    \({^OddP_{EE}}_{c}\) Last commanded end effector acceleration in base frame.

    -

    Unit: \([\frac{m}{s^2},\frac{m}{s^2},\frac{m}{s^2},\frac{rad}{s^2},\frac{rad}{s^2},\frac{rad}{s^2}]\).

    - -
    -
    - -

    ◆ O_dP_EE_c

    - -
    -
    - - - - -
    std::array<double, 6> franka::RobotState::O_dP_EE_c {}
    -
    - -

    \({^OdP_{EE}}_{c}\) Last commanded end effector twist in base frame.

    -

    Unit: \([\frac{m}{s},\frac{m}{s},\frac{m}{s},\frac{rad}{s},\frac{rad}{s},\frac{rad}{s}]\).

    - -
    -
    - -

    ◆ O_dP_EE_d

    - -
    -
    - - - - -
    std::array<double, 6> franka::RobotState::O_dP_EE_d {}
    -
    - -

    \({^OdP_{EE}}_{d}\) Desired end effector twist in base frame.

    -

    Unit: \([\frac{m}{s},\frac{m}{s},\frac{m}{s},\frac{rad}{s},\frac{rad}{s},\frac{rad}{s}]\).

    - -
    -
    - -

    ◆ O_F_ext_hat_K

    - -
    -
    - - - - -
    std::array<double, 6> franka::RobotState::O_F_ext_hat_K {}
    -
    - -

    \(^OF_{K,\text{ext}}\) Estimated external wrench (force, torque) acting on stiffness frame, expressed relative to the base frame.

    -

    See also K frame. Unit: \([N,N,N,Nm,Nm,Nm]\).

    - -
    -
    - -

    ◆ O_T_EE

    - -
    -
    - - - - -
    std::array<double, 16> franka::RobotState::O_T_EE {}
    -
    - -

    \(^{O}T_{EE}\) Measured end effector pose in base frame.

    -

    Pose is represented as a 4x4 matrix in column-major format.

    -
    Examples:
    cartesian_impedance_control.cpp.
    -
    -
    -
    - -

    ◆ O_T_EE_c

    - -
    -
    - - - - -
    std::array<double, 16> franka::RobotState::O_T_EE_c {}
    -
    - -

    \({^OT_{EE}}_{c}\) Last commanded end effector pose of motion generation in base frame.

    -

    Pose is represented as a 4x4 matrix in column-major format.

    -
    Examples:
    generate_cartesian_pose_motion.cpp, and generate_elbow_motion.cpp.
    -
    -
    -
    - -

    ◆ O_T_EE_d

    - -
    -
    - - - - -
    std::array<double, 16> franka::RobotState::O_T_EE_d {}
    -
    - -

    \({^OT_{EE}}_{d}\) Last desired end effector pose of motion generation in base frame.

    -

    Pose is represented as a 4x4 matrix in column-major format.

    - -
    -
    - -

    ◆ q

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::q {}
    -
    - -

    \(q\) Measured joint position.

    -

    Unit: \([rad]\)

    -
    Examples:
    cartesian_impedance_control.cpp, and motion_with_control.cpp.
    -
    -
    -
    - -

    ◆ q_d

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::q_d {}
    -
    - -

    \(q_d\) Desired joint position.

    -

    Unit: \([rad]\)

    -
    Examples:
    generate_joint_position_motion.cpp, and motion_with_control.cpp.
    -
    -
    -
    - -

    ◆ tau_ext_hat_filtered

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::tau_ext_hat_filtered {}
    -
    - -

    \(\hat{\tau}_{\text{ext}}\) External torque, filtered.

    -

    Unit: \([Nm]\).

    - -
    -
    - -

    ◆ tau_J

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::tau_J {}
    -
    - -

    \(\tau_{J}\) Measured link-side joint torque sensor signals.

    -

    Unit: \([Nm]\)

    -
    Examples:
    force_control.cpp.
    -
    -
    -
    - -

    ◆ tau_J_d

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::tau_J_d {}
    -
    - -

    \({\tau_J}_d\) Desired link-side joint torque sensor signals without gravity.

    -

    Unit: \([Nm]\)

    - -
    -
    - -

    ◆ theta

    - -
    -
    - - - - -
    std::array<double, 7> franka::RobotState::theta {}
    -
    - -

    \(\theta\) Motor position.

    -

    Unit: \([rad]\)

    - -
    -
    - -

    ◆ time

    - -
    -
    - - - - -
    Duration franka::RobotState::time {}
    -
    - -

    Strictly monotonically increasing timestamp since robot start.

    -

    Inside of control loops time_step parameter of Robot::control can be used instead.

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1RobotState__coll__graph.map b/structfranka_1_1RobotState__coll__graph.map deleted file mode 100644 index a3ff3efb..00000000 --- a/structfranka_1_1RobotState__coll__graph.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/structfranka_1_1RobotState__coll__graph.md5 b/structfranka_1_1RobotState__coll__graph.md5 deleted file mode 100644 index 0fe3863a..00000000 --- a/structfranka_1_1RobotState__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -853492aa03adbb8046a81d2b152849fb \ No newline at end of file diff --git a/structfranka_1_1RobotState__coll__graph.png b/structfranka_1_1RobotState__coll__graph.png deleted file mode 100644 index 4ce577e108629c4ad0b73efe0d9c74ff1fda94bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6983 zcmZ{p1yodBw17uYM5K|BloF)7kw%b`7;*p^>F$z{E+wTw1O$X3q?A@^knW+8X6WvD z=YRdyd+)Lqu-2V>=iGDl+56kyje4d20uP502LgfMDJ#iqK_GWT!T%qyF~D!RiVPR< z2Mez9LLP$t=jU^CQ4$0~d95rjqvM^mGv}jEqSpx7=QkrE#>l%1hmgn<3V;3l4$4~7 zd{5qpgH)5-vF4O4%$5j2YD7v}8+-}9()Y2gRZx&e=xSD$nH&T^^h;*IsUnfSW6=K1 zBK@lCSYJH07=CyNBP%jGU)$VZ?G69V~q&y^Hn`wn*R9pw|f zJD;)qkx|>*+wJZ0RkC+NYieq4^%B$4(z3JX(7q6}xdsmt6O)zB{kUaY504XMwN($! zz5NS62M08`C@YJ)Oy}OfCrKk?V>Qo5Xo+&-n!`qX0q3>8^r4|w4&!T^n-3bb*m-an z#qWkL`jSFQ{_A_yT%oLwxQrXd#>U(aS9)&ZevOZx6y*eL1xiX|eq(UuxKosWfug@HlVC^<=~%d24Q1C?+$ezaf4imja;A|WAR zLT>Zt#)dU@mywYXKOf(e{rA+=$%~`)9{iU@o9E>peNkmUx?>~#{0GKAfBx*$a7bLUu&}U5BL^P`rHSD_>a2XtwvXYXsv-8Gx+x=iHQuHmR43?XS>Eh(u8z$gYZfw z;s?CwF1o-{1j5bB3w^#EXTh$iKUi+u*!h8K^5{f-uZi*O%{8jxCqpQ$RKWXXk%+dQ zzCNZk5{FkAnVI7R^ZorhQGZpROaO|U}A=pmX^lG#)61UOQY}*dMe8*CmiRU>QeG7FijB#BmN=mQ3%Oib1Zq|py#KaKE8WyF`Ik~}oa~9|x7)DhU zpIG*%oSX_Vh^Sa1V%n$0*2;>-KRYEw$YELlDpK zUIU3mTT-@8Gvk*IZ;AP0?V^ba)4ko@7I;T=1OeS?i-LQ&rz>>&^&yB|Gcz-z@AkzA zM3NGdva&Km!q>?-7A7XubiUP{9}A9-j=LI?u3B1J_V)JFG&DrAU|b`6+W!9jrXfYc zkDOS+R!C3+3!$Kz^6?`f{}pA)?ohuml3$`;d0brfRNHNRpxO6itNHEO_4RdAb2Er& zL43=2oBBDe7cU~@8F=~m`2_^}dU}*!zSLURzP!AA_Uu^_i^l262{W;>f@Jf2JRwe) zf`US2WhIMxmWcQMlgb>Jv2h%Y_{7MFmVrUNSzCAu)}Uqe(b3V{fS&E0o#y6dMn*=| z)>a7uk)M}`fq?;bs+e8bvb&jHiAFz7LV9|=&1hj_B6033RC!?pi@Y;SD=sen`7_YL!NJqh)7hEl zU}AT!k&22+lv@4OtN5yE9S#8@At6S_wyCMKIsy)MLBZtTuT`_f#{2s}v@KhJ6xqay7Adj_gkglorOT0 zPHIWFwZ6qJ-l1vkYDHD2g35+&e0kEH*p~kFBM);uoQG+3*!=De%;JR6Ne=XC$43;2 z^A_mA9~G zxyQ?ZIK;VRx$G1^0Yq?8Yu+cIC#kgtE0ht*$kq?3KAI@|9Z_sYvC1afJuvgWaABG2 zer#{KU=g?9bzUT2o6p9_qMriUM#pspc`6JkKW|g9U1C{arM6xBy-+HRr}N8Kp@fN% z2YMcJQrw(ujq?)cnwk``0ShpfqdzzRYk!@nKPbST9=?r zuR8nZ?O#ZQ+}onEkzzPs3Ej+b=8=4_m_%njqs7$KdJuyKw{Y^D^{LdxYw;u-^!JN?&g5)PhPv~~@}&_^(}}XO zWUy>WZTb{=^r7fb2Q=B#XZU$`@dCvTaH?4b`~tp=r#3z7hhWWRLoEHCadUtu@(=xrHHLB8LA;b zt~C)EG?w(>hrYaf(t1C_*7T}-+BNY3vJ%(7?SNW8eWI5uG#;s6=YhOGjy_9VHhVc5 zBDe7_*54Lpy%GRhHvp zmeKL~dVvNLyh@H<&dsOm%mh6kX^3#aJ6h|{6ttTFMFfl^j#|`pbA*|?3)Bir%cq*3 z8yYC-$7W~WFV_LIsI5K87Wa~8&>ZYpTwHwj?p;+?)x^Za;Pb2P+DQ|Vm=1Yfaq-4R zuRWZ*!2lV_Vwe+@oTF9EP{rZ)Wkx^2@W@@_d>z8z%5E2f` zC!i$oC^R%QNFj=GCpZ+t{&S~CMF@A+tj&@-Cu_FR=C(fZWoFVD&Grgr@W zo2%gS=O%`#o{6lw+S+oe(H-!oN$EK`8jogvIMMOuh_oME_`yEFpvFa2N-tGZh-6n+ zSKC)|0&k-TOTZpu*VWZkEEGgzErF!Rw)(ORo2$j%q=Ps zc7)O0296I5s4toO_=w6zwk^G;2scan^lAQ2DmObDTcno(2iZaE)D#8%*zj=fK$Xs9 zF-PLomMs7gu2dCOF%c0${?%x}(%MDpWu`yp=jQx7qDcwpp6l4%B)@|(M-&xVxw`Tp zHF2@HQrSV#$4uaO^X83>*!bk+pO!GQ!#AnK+?}yBD*3~dR8$smLV#PKmF|>fsZMoU zV#x|{J3DsbsFISB$R5BAaLYlB{%r9x5MyV%a{xS!PEQ@3Ca-_eJkh%!HQN@Fm6a74 ziGA4mSOPGDjEoGsZmIY6xeGw%;rthY7pvr<@dyM81ScR!HgD^CP!K8r#SC0r zT;9ID0!>XwNJwLY&fL+PY9t6*h6JS;4~EeHk8fa=eSLjunL^1QKVpZ;R_f0V57Q@D z-~LdJN4)-Zb3Ce{U8w4_p6vy$2TcK(HX>ONNsjjRE6yTdfJf_tdetQ)Eb6LhJoHbV zyz79M8B|*$t1J{1OFFS4KYZx#?&c8^(siM$tMDKO^zj(CbF5fHKaC@*6eY@*y)+-`zHEPEHUib+XFCzGab zBGgZlE|wzbh|ic@sGaQWVxps~s;dDeX7XF9D=6HvL1A`7x}bRD#}?;%qeU7jPD*Pl zE5{tpx7Qb7)}-E^_Kl7n0eIzNW9uCp4BTJ*U7(UWGCCT?2U;bN9GZQOETPcx&<7;J zAt6_8vIVkM2<%%vjr%g?ws}hli@huwwNs^1;A%i@zh8$&MEvwUVSDzhr?nM+eSQG? zx~B(_?7{UMslex=qUl}BfENKceoRSu?t83cbf>#_+Q5VHd(%3dfR-T`@I+gc#h>n2 z1i=$MK{L^)@;S?!l$5{^DiZK^Y!VU@v23nvCdZVLfSS(=|CBBC^x@_DcO1HrS7)b! zseg8Sbd}2rTjLRwTXxmACUmr43x6-;;3-jU5Coy$=j{$g^MP}hjRt6g+KiL4%YA9V zep=4s2V643KXh8#wp88vm@@8*qmC+__HYv-4`=+ zb`&On!V^}m1EoZNoLB09HFGnd8HP<9G*A9KN<`_9C;5*FSPf8z5{8?>xV)}TcjS$H zsJjTLMSiWis;R14_Gct#X2!7lnis@p43>YA3Zx|?v$V14fmgP+wV5_~=QBs@82q$(Wi8DbXXxSTVv1al}Te#I49ilPwv)F zoAz7Kh(`HolGnP`);93lSwSoCjx9*uJt2-dJUpbPrUng)Gqv7CwS4w17dT*CXTL-4 z140McLs(GoX1|R9j6f3xvv+XtU+a6EmsW+(7H0U21h z1G1{1yj-0jfr*(}*~x`{+hAnyg{~HxSRJcT=+<*y+mWzck$8kOiF_&%2!1)aHjq@l zd|`sORDEK;@iS*G$P0<7QuvBwQ55|5yZ&BvJ=;c-kdbwo^G%i+vFxzsms%;K=?s*g zp%(MtL|eyEo1~j_E{jq$wH0OGXWZY@BQ=lnPz4nE^m175k5wK!!^W!sPTK5Ajob`h zI_-UJBIA_O#T>GTM;La#rV{I?DqGG!A;CK~jrm4FX7tv-fR8hre{l>|*$iMx2mbt7a$LB$iT5;3}jxM6@lqONW z#q4NZwy%4%{BvU#^`yukh}y4aX3+b@A|S6YSJ)t9ka`@5pmaHgG+sO+dyhCVC=S&E)W>75ZT!E$hUEiF@yPb(MxX$RFOV>f|5cGX5! z^uwf%Wc0}>?t=UDx|ONrD556Q-0%9&q<^H7p(6yt8ebGZMPOaZ5wC2$PO_O;xU#;< z2qHR;V46y0I@hSajSjM&SkRikSR@n}q6>barz|ai+OsCcmyZ*@olDKndY>C~JA~Q4L1_gf3Jk-*@?cbl8_~*E~s({rW0_2-63k3E_ufil*{qW+tuC5Mn zQoY-{|zbVdgt2IXO^)Zvl-A z3=9As{90B978y}cz%1K6H#1H1ARj%OC0s3rp6sLQTC?uz0Xm< za1?y9+<2zJgB^G>6_ptPG+;R*kL9oh1qB_ZYkGQmo{5QNDCQGA)Y6T!ZFeDU;{l2_ zlrZ4}oPt-1(9@fB#nJ$0C*Ko8&h0q!y?=Q40C-C(A$uidWne}0^aK8+aDu!2{{8#* z_7N;<51sz^gtj)}Rs=0J1+KY#UdS6o*|2aTw!e1nTL z8gCRe{s~li7PSod6^bCm{10?e0e}^}c4rd?a34HK=P?UTNEmM1YncJF{#6rN8gP&j1hYxDT#&c~E1X6&oH1icJ z^-BTk&o;l+Ynb&pTB~np00jgHB?Ci4OACu)F77ZheIR%?hV#Lfi&_n2jU)6HTKtVV zPBrTUzfe+AIxe&{2i*7yWjes&hrnD=eH20;LDc@9z&d5ePC}Jv}c^ zPlnJ)5|!Zk3)8kKs>hG%LmL`yDQCBPli7jr-fKSlWS`Bpr5Rpl;$UL~1e;jE_4)h9 z{97p0$?bYHU542v7sRz+cDNq!p#1ZfRuhqVF7`!T-G)e$k zQ=_7y%FD}LJH`xR8XCkxUnwa?ZueOYenQU7oHg`Ht2x7NVvg<0>g#;~9st(b+}!+m zb82L6{zac-_hgyQ|2Uz!*f9n$Gu^+Q3YJR}tai;Q);*k@gm= zoE#jzy}gmH%@r~EnwPvVlg0` zRKfLz`aoHrbgS|q(tpAY8<`>DY;`98@s8;~#pQXRc3 - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::VacuumGripperState Member List
    -
    - - - - - diff --git a/structfranka_1_1VacuumGripperState.html b/structfranka_1_1VacuumGripperState.html deleted file mode 100644 index 9f9e2748..00000000 --- a/structfranka_1_1VacuumGripperState.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -libfranka: franka::VacuumGripperState Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::VacuumGripperState Struct Reference
    -
    -
    - -

    Describes the vacuum gripper state. - More...

    - -

    #include <vacuum_gripper_state.h>

    -
    -Collaboration diagram for franka::VacuumGripperState:
    -
    -
    Collaboration graph
    - - - -
    [legend]
    - - - - - - - - - - - - - - - - - - - - - - - -

    -Public Attributes

    -bool in_control_range {}
     Vacuum value within in setpoint area.
     
    -bool part_detached {}
     The part has been detached after a suction cycle.
     
    bool part_present {}
     Vacuum is over H2 and not yet under H2-h2. More...
     
    -VacuumGripperDeviceStatus device_status {}
     Current vacuum gripper device status.
     
    uint16_t actual_power {}
     Current vacuum gripper actual power. More...
     
    uint16_t vacuum {}
     Current system vacuum. More...
     
    -Duration time {}
     Strictly monotonically increasing timestamp since robot start.
     
    -

    Detailed Description

    -

    Describes the vacuum gripper state.

    -

    For more information check the cobot-pump manual.

    -
    Examples:
    vacuum_object.cpp.
    -

    Member Data Documentation

    - -

    ◆ actual_power

    - -
    -
    - - - - -
    uint16_t franka::VacuumGripperState::actual_power {}
    -
    - -

    Current vacuum gripper actual power.

    -

    Unit: \([%]\).

    - -
    -
    - -

    ◆ part_present

    - -
    -
    - - - - -
    bool franka::VacuumGripperState::part_present {}
    -
    - -

    Vacuum is over H2 and not yet under H2-h2.

    -

    For more information check the cobot-pump manual.

    - -
    -
    - -

    ◆ vacuum

    - -
    -
    - - - - -
    uint16_t franka::VacuumGripperState::vacuum {}
    -
    - -

    Current system vacuum.

    -

    Unit: \([mbar]\).

    - -
    -
    -
    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/structfranka_1_1VacuumGripperState__coll__graph.map b/structfranka_1_1VacuumGripperState__coll__graph.map deleted file mode 100644 index 3a43aed5..00000000 --- a/structfranka_1_1VacuumGripperState__coll__graph.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/structfranka_1_1VacuumGripperState__coll__graph.md5 b/structfranka_1_1VacuumGripperState__coll__graph.md5 deleted file mode 100644 index 41aaed0d..00000000 --- a/structfranka_1_1VacuumGripperState__coll__graph.md5 +++ /dev/null @@ -1 +0,0 @@ -058e639119d6a7b63b2572759fddd1da \ No newline at end of file diff --git a/structfranka_1_1VacuumGripperState__coll__graph.png b/structfranka_1_1VacuumGripperState__coll__graph.png deleted file mode 100644 index 1842555271b513438b22e2d92d4cd22d2eb0e369..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4984 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 - - - - - - -libfranka: Member List - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    franka::VirtualWallCuboid Member List
    -
    - - - - - diff --git a/structfranka_1_1VirtualWallCuboid.html b/structfranka_1_1VirtualWallCuboid.html deleted file mode 100644 index 397e8bbd..00000000 --- a/structfranka_1_1VirtualWallCuboid.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - -libfranka: franka::VirtualWallCuboid Struct Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    franka::VirtualWallCuboid Struct Reference
    -
    -
    - -

    Parameters of a cuboid used as virtual wall. - More...

    - -

    #include <command_types.h>

    - - - - - - - - - - - - - - -

    -Public Attributes

    -int32_t id
     ID of the virtual wall.
     
    -std::array< double, 3 > object_world_size
     Corner point of the cuboid in world frame in \([m]\).
     
    -std::array< double, 16 > p_frame
     4x4 transformation matrix, column-major.
     
    -bool active
     True if this Cartesian limit is active, false otherwise.
     
    -

    Detailed Description

    -

    Parameters of a cuboid used as virtual wall.

    -
    See also
    Robot::getVirtualWall
    -

    The documentation for this struct was generated from the following file: -
    - - - - diff --git a/tabs.css b/tabs.css index bbde11ed..7d45d36c 100644 --- a/tabs.css +++ b/tabs.css @@ -1 +1 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:transparent}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/vacuum__gripper_8h.html b/vacuum__gripper_8h.html deleted file mode 100644 index e90a5edf..00000000 --- a/vacuum__gripper_8h.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - - -libfranka: include/franka/vacuum_gripper.h File Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    vacuum_gripper.h File Reference
    -
    -
    - -

    Contains the franka::VacuumGripper type. -More...

    -
    #include <chrono>
    -#include <cstdint>
    -#include <memory>
    -#include <string>
    -#include <franka/vacuum_gripper_state.h>
    -
    -Include dependency graph for vacuum_gripper.h:
    -
    -
    - - - - -
    -
    -

    Go to the source code of this file.

    - - - - - -

    -Classes

    class  franka::VacuumGripper
     Maintains a network connection to the vacuum gripper, provides the current vacuum gripper state, and allows the execution of commands. More...
     
    -

    Detailed Description

    -

    Contains the franka::VacuumGripper type.

    -
    - - - - diff --git a/vacuum__gripper_8h__incl.map b/vacuum__gripper_8h__incl.map deleted file mode 100644 index 8dbd8492..00000000 --- a/vacuum__gripper_8h__incl.map +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/vacuum__gripper_8h__incl.md5 b/vacuum__gripper_8h__incl.md5 deleted file mode 100644 index 459dcc95..00000000 --- a/vacuum__gripper_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -584894e0bf593df5dabd143b81a8eb68 \ No newline at end of file diff --git a/vacuum__gripper_8h__incl.png b/vacuum__gripper_8h__incl.png deleted file mode 100644 index bb16e36692d80a22ffdcd2ae6b0e33469c5e095c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31286 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 - - - - - - -libfranka: include/franka/vacuum_gripper.h Source File - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    vacuum_gripper.h
    -
    -
    -Go to the documentation of this file.
    1 // Copyright (c) 2019 Franka Emika GmbH
    2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    3 #pragma once
    4 
    5 #include <chrono>
    6 #include <cstdint>
    7 #include <memory>
    8 #include <string>
    9 
    11 
    17 namespace franka {
    18 
    19 class Network;
    20 
    29  public:
    33  using ServerVersion = uint16_t;
    34 
    38  enum class ProductionSetupProfile { kP0, kP1, kP2, kP3 };
    39 
    48  explicit VacuumGripper(const std::string& franka_address);
    49 
    55  VacuumGripper(VacuumGripper&& vacuum_gripper) noexcept;
    56 
    64  VacuumGripper& operator=(VacuumGripper&& vacuum_gripper) noexcept;
    65 
    69  ~VacuumGripper() noexcept;
    70 
    83  bool vacuum(uint8_t vacuum,
    84  std::chrono::milliseconds timeout,
    85  ProductionSetupProfile profile = ProductionSetupProfile::kP0) const;
    86 
    97  bool dropOff(std::chrono::milliseconds timeout) const;
    98 
    107  bool stop() const;
    108 
    118 
    124  ServerVersion serverVersion() const noexcept;
    125 
    127  VacuumGripper(const VacuumGripper&) = delete;
    128  VacuumGripper& operator=(const VacuumGripper&) = delete;
    130 
    131  private:
    132  std::unique_ptr<Network> network_;
    133 
    134  uint16_t ri_version_;
    135 };
    136 
    137 } // namespace franka
    ServerVersion serverVersion() const noexcept
    Returns the software version reported by the connected server.
    -
    VacuumGripper & operator=(VacuumGripper &&vacuum_gripper) noexcept
    Move-assigns this VacuumGripper from another VacuumGripper instance.
    -
    Maintains a network connection to the vacuum gripper, provides the current vacuum gripper state...
    Definition: vacuum_gripper.h:28
    -
    bool vacuum(uint8_t vacuum, std::chrono::milliseconds timeout, ProductionSetupProfile profile=ProductionSetupProfile::kP0) const
    Vacuums an object.
    -
    VacuumGripper(const std::string &franka_address)
    Establishes a connection with a vacuum gripper connected to a robot.
    -
    uint16_t ServerVersion
    Version of the vacuum gripper server.
    Definition: vacuum_gripper.h:33
    -
    Definition: command_types.h:13
    -
    Describes the vacuum gripper state.
    Definition: vacuum_gripper_state.h:31
    -
    VacuumGripperState readOnce() const
    Waits for a vacuum gripper state update and returns it.
    -
    bool dropOff(std::chrono::milliseconds timeout) const
    Drops the grasped object off.
    -
    ProductionSetupProfile
    Vacuum production setup profile.
    Definition: vacuum_gripper.h:38
    -
    bool stop() const
    Stops a currently running vacuum gripper vacuum or drop off operation.
    -
    ~VacuumGripper() noexcept
    Closes the connection.
    -
    Contains the franka::VacuumGripperState type.
    -
    - - - - diff --git a/vacuum__gripper__state_8h.html b/vacuum__gripper__state_8h.html deleted file mode 100644 index eb8d884b..00000000 --- a/vacuum__gripper__state_8h.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - -libfranka: include/franka/vacuum_gripper_state.h File Reference - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    - -
    -
    vacuum_gripper_state.h File Reference
    -
    -
    - -

    Contains the franka::VacuumGripperState type. -More...

    -
    #include <cstdint>
    -#include <ostream>
    -#include <string>
    -#include <franka/duration.h>
    -
    -Include dependency graph for vacuum_gripper_state.h:
    -
    -
    - - - -
    -
    -This graph shows which files directly or indirectly include this file:
    -
    -
    - - - -
    -
    -

    Go to the source code of this file.

    - - - - - -

    -Classes

    struct  franka::VacuumGripperState
     Describes the vacuum gripper state. More...
     
    - - - - -

    -Enumerations

    enum  franka::VacuumGripperDeviceStatus : uint8_t { franka::VacuumGripperDeviceStatus::kGreen, -franka::VacuumGripperDeviceStatus::kYellow, -franka::VacuumGripperDeviceStatus::kOrange, -franka::VacuumGripperDeviceStatus::kRed - }
     Vacuum gripper device status.
     
    - - - - -

    -Functions

    std::ostream & franka::operator<< (std::ostream &ostream, const franka::VacuumGripperState &vacuum_gripper_state)
     Streams the vacuum gripper state as JSON object: {"field_name_1": value, "field_name_2": value, ...}. More...
     
    -

    Detailed Description

    -

    Contains the franka::VacuumGripperState type.

    -

    Function Documentation

    - -

    ◆ operator<<()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    std::ostream& franka::operator<< (std::ostream & ostream,
    const franka::VacuumGripperStatevacuum_gripper_state 
    )
    -
    - -

    Streams the vacuum gripper state as JSON object: {"field_name_1": value, "field_name_2": value, ...}.

    -
    Parameters
    - - - -
    [in]ostreamOstream instance
    [in]vacuum_gripper_stateVacuumGripperState struct instance to stream
    -
    -
    -
    Returns
    Ostream instance
    - -
    -
    -
    - - - - diff --git a/vacuum__gripper__state_8h__dep__incl.map b/vacuum__gripper__state_8h__dep__incl.map deleted file mode 100644 index 79ea064b..00000000 --- a/vacuum__gripper__state_8h__dep__incl.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/vacuum__gripper__state_8h__dep__incl.md5 b/vacuum__gripper__state_8h__dep__incl.md5 deleted file mode 100644 index d6987f6a..00000000 --- a/vacuum__gripper__state_8h__dep__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -c6a7d4012cc505c96113309cc656a927 \ No newline at end of file diff --git a/vacuum__gripper__state_8h__dep__incl.png b/vacuum__gripper__state_8h__dep__incl.png deleted file mode 100644 index 14cee064a493154799592bd568b0c2916309c3cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5300 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 diff --git a/vacuum__gripper__state_8h__incl.map b/vacuum__gripper__state_8h__incl.map deleted file mode 100644 index 5d42b11f..00000000 --- a/vacuum__gripper__state_8h__incl.map +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/vacuum__gripper__state_8h__incl.md5 b/vacuum__gripper__state_8h__incl.md5 deleted file mode 100644 index 26e49a77..00000000 --- a/vacuum__gripper__state_8h__incl.md5 +++ /dev/null @@ -1 +0,0 @@ -6e165e04726e950f00ff9e2fb107c69b \ No newline at end of file diff --git a/vacuum__gripper__state_8h__incl.png b/vacuum__gripper__state_8h__incl.png deleted file mode 100644 index d6d7d8e1cfd5999193aab792c93c4c339bf05042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15069 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 diff --git a/vacuum__gripper__state_8h_source.html b/vacuum__gripper__state_8h_source.html deleted file mode 100644 index e5f6d48d..00000000 --- a/vacuum__gripper__state_8h_source.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - -libfranka: include/franka/vacuum_gripper_state.h Source File - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - - -
    -
    - - -
    - -
    - - -
    -
    -
    -
    vacuum_gripper_state.h
    -
    -
    -Go to the documentation of this file.
    1 // Copyright (c) 2019 Franka Emika GmbH
    2 // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    3 #pragma once
    4 
    5 #include <cstdint>
    6 #include <ostream>
    7 #include <string>
    8 
    9 #include <franka/duration.h>
    10 
    16 namespace franka {
    17 
    21 enum class VacuumGripperDeviceStatus : uint8_t {
    22  kGreen,
    23  kYellow,
    24  kOrange,
    25  kRed
    26 };
    27 
    35  bool in_control_range{};
    36 
    40  bool part_detached{};
    41 
    45  bool part_present{};
    46 
    50  VacuumGripperDeviceStatus device_status{};
    51 
    55  uint16_t actual_power{};
    56 
    60  uint16_t vacuum{};
    61 
    65  Duration time{};
    66 };
    67 
    77 std::ostream& operator<<(std::ostream& ostream,
    78  const franka::VacuumGripperState& vacuum_gripper_state);
    79 
    80 } // namespace franka
    VacuumGripperDeviceStatus
    Vacuum gripper device status.
    Definition: vacuum_gripper_state.h:21
    -
    std::ostream & operator<<(std::ostream &ostream, const Errors &errors)
    Streams the errors as JSON array.
    -
    Represents a duration with millisecond resolution.
    Definition: duration.h:19
    -
    Definition: command_types.h:13
    -
    Contains the franka::Duration type.
    -
    Describes the vacuum gripper state.
    Definition: vacuum_gripper_state.h:31
    -
    - - - - diff --git a/vacuum_object_8cpp-example.html b/vacuum_object_8cpp-example.html deleted file mode 100644 index 82c2ed70..00000000 --- a/vacuum_object_8cpp-example.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - -libfranka: vacuum_object.cpp - - - - - - - - - - -
    -
    - - - - - - - -
    -
    libfranka -  0.8.0 -
    -
    FCI C++ API
    -
    -
    - - - - - - - -
    - -
    -
    - - -
    - -
    - -
    -
    -
    vacuum_object.cpp
    -
    -
    -

    An example showing how to control FRANKA's vacuum gripper.

    -
    // Copyright (c) 2019 Franka Emika GmbH
    // Use of this source code is governed by the Apache-2.0 license, see LICENSE
    #include <iostream>
    #include <thread>
    int main(int argc, char** argv) {
    if (argc != 2) {
    std::cerr << "Usage: ./vacuum_object <vacuum-gripper-hostname>" << std::endl;
    return -1;
    }
    franka::VacuumGripper vacuum_gripper(argv[1]);
    try {
    // Print a vacuum gripper state.
    franka::VacuumGripperState vacuum_gripper_state = vacuum_gripper.readOnce();
    std::cout << "Initial vacuum gripper state: " << vacuum_gripper_state << std::endl;
    // Vacuum the object.
    if (!vacuum_gripper.vacuum(100, std::chrono::milliseconds(1000))) {
    std::cout << "Failed to vacuum the object." << std::endl;
    return -1;
    }
    vacuum_gripper_state = vacuum_gripper.readOnce();
    std::cout << "Vacuum gripper state after applying vacuum: " << vacuum_gripper_state
    << std::endl;
    // Wait 3s and check afterwards, if the object is still grasped.
    std::this_thread::sleep_for(std::chrono::duration<double, std::milli>(3000));
    vacuum_gripper_state = vacuum_gripper.readOnce();
    if (!vacuum_gripper_state.in_control_range) {
    std::cout << "Object lost." << std::endl;
    return -1;
    }
    std::cout << "Vacuumed object, will release it now." << std::endl;
    vacuum_gripper.dropOff(std::chrono::milliseconds(1000));
    } catch (franka::Exception const& e) {
    vacuum_gripper.stop();
    std::cout << e.what() << std::endl;
    return -1;
    }
    return 0;
    }
    - - - -