结论:已完成浏览器侧真实加载验证,M428/M429/M430 的配置入口进一步从 LinuxCNC INI/HALFILE/REMAP 来源生成,native 与 source-link 验证通过。
215 lines
8.0 KiB
C
215 lines
8.0 KiB
C
#pragma once
|
|
|
|
#include "cnc_sim_api.h"
|
|
|
|
struct RtcpVector {
|
|
double x;
|
|
double y;
|
|
double z;
|
|
};
|
|
|
|
struct LinuxCncFiveAxisJoints {
|
|
double x;
|
|
double y;
|
|
double z;
|
|
double a;
|
|
double b;
|
|
double c;
|
|
double w;
|
|
};
|
|
|
|
struct LinuxCncAxisJoints {
|
|
double x;
|
|
double y;
|
|
double z;
|
|
double a;
|
|
double b;
|
|
double c;
|
|
double u;
|
|
double v;
|
|
double w;
|
|
};
|
|
|
|
struct LinuxCncXyzbcTrtParameters {
|
|
double x_rot_point;
|
|
double y_rot_point;
|
|
double z_rot_point;
|
|
double x_offset;
|
|
double y_offset;
|
|
double z_offset;
|
|
double tool_offset;
|
|
bool conventional_directions;
|
|
};
|
|
|
|
struct LinuxCncScaraParameters {
|
|
double d1;
|
|
double d2;
|
|
double d3;
|
|
double d4;
|
|
double d5;
|
|
double d6;
|
|
};
|
|
|
|
struct LinuxCncXyzabTdrParameters {
|
|
double tool_offset_z;
|
|
double x_offset;
|
|
double z_offset;
|
|
double x_rot_point;
|
|
double y_rot_point;
|
|
double z_rot_point;
|
|
};
|
|
|
|
struct LinuxCncPumaParameters {
|
|
double a2;
|
|
double a3;
|
|
double d3;
|
|
double d4;
|
|
double d6;
|
|
};
|
|
|
|
struct LinuxCncGenserParameters {
|
|
double a[6];
|
|
double alpha[6];
|
|
double d[6];
|
|
int unrotate[6];
|
|
};
|
|
|
|
struct LinuxCncScaraJoints {
|
|
double j0;
|
|
double j1;
|
|
double j2;
|
|
double j3;
|
|
double j4;
|
|
double j5;
|
|
};
|
|
|
|
struct LinuxCncGenhexJoints {
|
|
double strut[6];
|
|
};
|
|
|
|
struct LinuxCncPentakinsJoints {
|
|
double strut[5];
|
|
};
|
|
|
|
struct LinuxCncTripodJoints {
|
|
double strut[3];
|
|
};
|
|
|
|
struct LinuxCncScorbotJoints {
|
|
double j0;
|
|
double j1;
|
|
double j2;
|
|
double j3;
|
|
double j4;
|
|
};
|
|
|
|
struct LinuxCncLinearDeltaParameters {
|
|
double r;
|
|
double l;
|
|
};
|
|
|
|
struct LinuxCncRotaryDeltaParameters {
|
|
double platformradius;
|
|
double thighlength;
|
|
double shinlength;
|
|
double footradius;
|
|
};
|
|
|
|
struct LinuxCncMaxkinsParameters {
|
|
double pivot_length;
|
|
bool conventional_directions;
|
|
};
|
|
|
|
LinuxCncAxisJoints linuxcnc_identity_default_joints();
|
|
CncSimPose linuxcnc_identity_forward(const LinuxCncAxisJoints &joints);
|
|
LinuxCncAxisJoints linuxcnc_identity_inverse(const CncSimPose &pose);
|
|
|
|
CncSimPose linuxcnc_corexykins_forward(const LinuxCncAxisJoints &joints);
|
|
LinuxCncAxisJoints linuxcnc_corexykins_inverse(const CncSimPose &pose);
|
|
|
|
CncSimPose linuxcnc_rotatekins_forward(const LinuxCncAxisJoints &joints);
|
|
LinuxCncAxisJoints linuxcnc_rotatekins_inverse(const CncSimPose &pose);
|
|
LinuxCncGenhexJoints linuxcnc_genhex_inverse(const CncSimPose &pose);
|
|
CncSimPose linuxcnc_genhex_forward(const LinuxCncGenhexJoints &joints, const CncSimPose &initial_pose);
|
|
LinuxCncPentakinsJoints linuxcnc_pentakins_inverse(const CncSimPose &pose);
|
|
CncSimPose linuxcnc_pentakins_forward(const LinuxCncPentakinsJoints &joints,
|
|
const CncSimPose &initial_pose);
|
|
LinuxCncTripodJoints linuxcnc_tripodkins_inverse(const CncSimPose &pose);
|
|
CncSimPose linuxcnc_tripodkins_forward(const LinuxCncTripodJoints &joints);
|
|
LinuxCncScorbotJoints linuxcnc_scorbot_kins_inverse(const CncSimPose &pose);
|
|
CncSimPose linuxcnc_scorbot_kins_forward(const LinuxCncScorbotJoints &joints);
|
|
LinuxCncLinearDeltaParameters linuxcnc_lineardelta_default_parameters();
|
|
CncSimPose linuxcnc_lineardelta_forward(const LinuxCncAxisJoints &joints,
|
|
const LinuxCncLinearDeltaParameters ¶meters);
|
|
LinuxCncAxisJoints linuxcnc_lineardelta_inverse(const CncSimPose &pose,
|
|
const LinuxCncLinearDeltaParameters ¶meters);
|
|
LinuxCncRotaryDeltaParameters linuxcnc_rotarydelta_default_parameters();
|
|
CncSimPose linuxcnc_rotarydelta_forward(const LinuxCncAxisJoints &joints,
|
|
const LinuxCncRotaryDeltaParameters ¶meters);
|
|
LinuxCncAxisJoints linuxcnc_rotarydelta_inverse(const CncSimPose &pose,
|
|
const LinuxCncRotaryDeltaParameters ¶meters);
|
|
LinuxCncMaxkinsParameters linuxcnc_maxkins_default_parameters();
|
|
CncSimPose linuxcnc_maxkins_forward(const LinuxCncAxisJoints &joints,
|
|
const LinuxCncMaxkinsParameters ¶meters);
|
|
LinuxCncAxisJoints linuxcnc_maxkins_inverse(const CncSimPose &pose,
|
|
const LinuxCncMaxkinsParameters ¶meters);
|
|
CncSimPose linuxcnc_rosekins_forward(const LinuxCncAxisJoints &joints);
|
|
LinuxCncAxisJoints linuxcnc_rosekins_inverse(const CncSimPose &pose);
|
|
|
|
CncSimPose linuxcnc_5axis_forward(const LinuxCncFiveAxisJoints &joints, double pivot_length);
|
|
LinuxCncFiveAxisJoints linuxcnc_5axis_inverse(const CncSimPose &pose, double pivot_length);
|
|
|
|
LinuxCncXyzbcTrtParameters linuxcnc_xyzbc_trt_default_parameters(double tool_offset);
|
|
CncSimPose linuxcnc_xyzbc_trt_forward(const LinuxCncFiveAxisJoints &joints,
|
|
const LinuxCncXyzbcTrtParameters ¶meters);
|
|
LinuxCncFiveAxisJoints linuxcnc_xyzbc_trt_inverse(const CncSimPose &pose,
|
|
const LinuxCncXyzbcTrtParameters ¶meters);
|
|
CncSimPose linuxcnc_xyzac_trt_forward(const LinuxCncFiveAxisJoints &joints,
|
|
const LinuxCncXyzbcTrtParameters ¶meters);
|
|
LinuxCncFiveAxisJoints linuxcnc_xyzac_trt_inverse(const CncSimPose &pose,
|
|
const LinuxCncXyzbcTrtParameters ¶meters);
|
|
CncSimPose linuxcnc_xyzbc_userk_forward(const LinuxCncFiveAxisJoints &joints);
|
|
LinuxCncFiveAxisJoints linuxcnc_xyzbc_userk_inverse(const CncSimPose &pose);
|
|
|
|
LinuxCncScaraParameters linuxcnc_scara_default_parameters();
|
|
CncSimPose linuxcnc_scara_forward(const LinuxCncScaraJoints &joints,
|
|
const LinuxCncScaraParameters ¶meters,
|
|
int *iflags);
|
|
LinuxCncScaraJoints linuxcnc_scara_inverse(const CncSimPose &pose,
|
|
const LinuxCncScaraParameters ¶meters,
|
|
int iflags);
|
|
|
|
LinuxCncXyzabTdrParameters linuxcnc_xyzab_tdr_default_parameters(double tool_offset_z);
|
|
CncSimPose linuxcnc_xyzab_tdr_identity_forward(const LinuxCncAxisJoints &joints);
|
|
LinuxCncAxisJoints linuxcnc_xyzab_tdr_identity_inverse(const CncSimPose &pose);
|
|
CncSimPose linuxcnc_xyzab_tdr_tcp_forward(const LinuxCncAxisJoints &joints,
|
|
const LinuxCncXyzabTdrParameters ¶meters);
|
|
LinuxCncAxisJoints linuxcnc_xyzab_tdr_tcp_inverse(const CncSimPose &pose,
|
|
const LinuxCncXyzabTdrParameters ¶meters);
|
|
|
|
LinuxCncPumaParameters linuxcnc_puma_default_parameters();
|
|
CncSimPose linuxcnc_puma_forward(const LinuxCncAxisJoints &joints,
|
|
const LinuxCncPumaParameters ¶meters,
|
|
int *iflags);
|
|
LinuxCncAxisJoints linuxcnc_puma_inverse(const CncSimPose &pose,
|
|
const LinuxCncAxisJoints ¤t_joints,
|
|
const LinuxCncPumaParameters ¶meters,
|
|
int iflags,
|
|
int *fflags);
|
|
|
|
LinuxCncGenserParameters linuxcnc_genser_puma560_parameters();
|
|
LinuxCncGenserParameters linuxcnc_genser_default_parameters(int *max_iterations = nullptr);
|
|
CncSimPose linuxcnc_genser_forward(const LinuxCncAxisJoints &joints,
|
|
const LinuxCncGenserParameters ¶meters);
|
|
LinuxCncAxisJoints linuxcnc_genser_inverse(const CncSimPose &pose,
|
|
const LinuxCncAxisJoints &joint_estimate,
|
|
const LinuxCncGenserParameters ¶meters,
|
|
int *iterations,
|
|
int max_iterations = 100);
|
|
bool linuxcnc_genser_inverse_checked(const CncSimPose &pose,
|
|
const LinuxCncAxisJoints &joint_estimate,
|
|
const LinuxCncGenserParameters ¶meters,
|
|
LinuxCncAxisJoints *joints,
|
|
int *iterations,
|
|
int max_iterations = 100);
|