std::vector<std::vector<double>> calibration_joint(3, std::vector<double>(ROBOT_DOF)); memcpy(calibration_joint[0].data(), calibration_joint1.data(), ROBOT_DOF * sizeof(double)); memcpy(calibration_joint[1].data(), calibration_joint2.data(), ROBOT_DOF * sizeof(double)); memcpy(calibration_joint[2].data(), calibration_joint3.data(), ROBOT_DOF * sizeof(double)); std::vector<double> sensor_data(WORKSPACE_DIM, 0.); std::vector<RLWrench> calib_measure(3); std::vector<RLPose> calib_pose(3); FtSensorCalibResult calibresult; RLWrench sensor_offset{ 0 }; RLPose pose_init{ 0 }; RLPose pose_start{ 0 }; RLPose pose_end{ 0 }; double offline_traj_size; double offline_traj_vel_size; std::vector<RLJntArray> offline_traj; std::vector<RLJntArray> offline_traj_vel; std::vector<RLJntArray> offline_traj_acc; RLJntArray q_cmd{ 0 }; RLJntArray q_start{ 0 }; std::vector<double> q_ref(ROBOT_DOF); std::vector<double> q_init(ROBOT_DOF); std::vector<double> q_temp(ROBOT_DOF); RLJntArray qd_ref{ 0 }; RLJntArray qd_cmd{ 0 }; RLJntArray qdd_ref{ 0 }; RLPose X_cur{ 0 }; RLPose X_cur_flange{ 0 }; RLPose X_ref{ 0 }; RLPose X_cmd{ 0 }; RLTwist Xd_cur{ 0 }; RLTwist Xd_ref{ 0 }; RLTwist Xd_cmd{ 0 }; RLWrench F{ 0 }; RLWrench tcp_wrench{ 0 }; RLWrench in_wrench{ 0 }; RLWrench sensor_wrench{ 0 }; RLJntArray in_torq{ 0 }; RLWrench integral_err_wrench{ 0 }; RLWrench diff_err_wrench{ 0 }; RLWrench last_err_wrench{ 0 }; RLWrench err_wrench{ 0 };
时间: 2024-04-10 20:31:37 浏览: 133
robot_calibration:机器人的通用校准
这段代码定义了一系列变量,包括向量、数组和结构体。让我来为您解释一下:
- `std::vector<std::vector<double>> calibration_joint(3, std::vector<double>(ROBOT_DOF));` 定义了一个名为 `calibration_joint` 的二维向量,其中包含3个子向量,每个子向量包含 `ROBOT_DOF` 个 `double` 类型的元素。
- `memcpy(calibration_joint[0].data(), calibration_joint1.data(), ROBOT_DOF * sizeof(double));` 通过 `memcpy` 函数将 `calibration_joint1` 的数据复制到 `calibration_joint` 的第一个子向量中。
- `memcpy(calibration_joint[1].data(), calibration_joint2.data(), ROBOT_DOF * sizeof(double));` 通过 `memcpy` 函数将 `calibration_joint2` 的数据复制到 `calibration_joint` 的第二个子向量中。
- `memcpy(calibration_joint[2].data(), calibration_joint3.data(), ROBOT_DOF * sizeof(double));` 通过 `memcpy` 函数将 `calibration_joint3` 的数据复制到 `calibration_joint` 的第三个子向量中。
- `std::vector<double> sensor_data(WORKSPACE_DIM, 0.);` 定义了一个名为 `sensor_data` 的向量,其中包含 `WORKSPACE_DIM` 个元素,每个元素的初始值为0.0。
- `std::vector<RLWrench> calib_measure(3);` 定义了一个名为 `calib_measure` 的向量,其中包含3个 `RLWrench` 类型的元素。
- `std::vector<RLPose> calib_pose(3);` 定义了一个名为 `calib_pose` 的向量,其中包含3个 `RLPose` 类型的元素。
- `FtSensorCalibResult calibresult;` 定义了一个名为 `calibresult` 的结构体变量,类型为 `FtSensorCalibResult`。
- `RLWrench sensor_offset{ 0 };` 定义了一个名为 `sensor_offset` 的 `RLWrench` 类型的变量,并将其初始化为零。
接下来的部分是一系列的变量定义,包括 `pose_init`, `pose_start`, `pose_end`, `offline_traj_size`, `offline_traj_vel_size`, `offline_traj`, `offline_traj_vel`, `offline_traj_acc` 等等,它们的类型和初始化方式与前面的变量类似。
希望这能帮到您!如果您还有其他问题,请随时提问。
阅读全文