trivkins.c

来自「CNC 的开放码,EMC2 V2.2.8版」· C语言 代码 · 共 97 行

C
97
字号
/********************************************************************* Description: trivkins.c*   Trivial kinematics for 3 axis Cartesian machine**   Derived from a work by Fred Proctor & Will Shackleford** Author:* License: GPL Version 2* System: Linux*    * Copyright (c) 2004 All rights reserved.** Last change:* $Revision: 1.14 $* $Author: cradek $* $Date: 2007/07/14 21:43:23 $********************************************************************/#include "kinematics.h"		/* these decls */int kinematicsForward(const double *joints,		      EmcPose * pos,		      const KINEMATICS_FORWARD_FLAGS * fflags,		      KINEMATICS_INVERSE_FLAGS * iflags){    pos->tran.x = joints[0];    pos->tran.y = joints[1];    pos->tran.z = joints[2];    pos->a = joints[3];    pos->b = joints[4];    pos->c = joints[5];    pos->u = joints[6];    pos->v = joints[7];    pos->w = joints[8];    return 0;}int kinematicsInverse(const EmcPose * pos,		      double *joints,		      const KINEMATICS_INVERSE_FLAGS * iflags,		      KINEMATICS_FORWARD_FLAGS * fflags){    joints[0] = pos->tran.x;    joints[1] = pos->tran.y;    joints[2] = pos->tran.z;    joints[3] = pos->a;    joints[4] = pos->b;    joints[5] = pos->c;    joints[6] = pos->u;    joints[7] = pos->v;    joints[8] = pos->w;    return 0;}/* implemented for these kinematics as giving joints preference */int kinematicsHome(EmcPose * world,		   double *joint,		   KINEMATICS_FORWARD_FLAGS * fflags,		   KINEMATICS_INVERSE_FLAGS * iflags){    *fflags = 0;    *iflags = 0;    return kinematicsForward(joint, world, fflags, iflags);}KINEMATICS_TYPE kinematicsType(){    return KINEMATICS_IDENTITY;}#ifdef RTAPI#include "rtapi.h"		/* RTAPI realtime OS API */#include "rtapi_app.h"		/* RTAPI realtime module decls */#include "hal.h"EXPORT_SYMBOL(kinematicsType);EXPORT_SYMBOL(kinematicsForward);EXPORT_SYMBOL(kinematicsInverse);MODULE_LICENSE("GPL");int comp_id;int rtapi_app_main(void) {    comp_id = hal_init("trivkins");    if(comp_id > 0) {	hal_ready(comp_id);	return 0;    }    return comp_id;}void rtapi_app_exit(void) { hal_exit(comp_id); }#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?