Loading...  三点定义一个圆,起始点,辅助点,终点 > #INTERPOLATE(内插):严格到达给定的辅助点(x_Aux, y_Aux, z_Aux, a_Aux, b_Aux, c_Aux)位姿 > > #IGNORE:会计算转的角度小的方式精确到达p_Aux,但是可能不会考虑给定的姿势 > > #CONSIDER:会把p_Aux的位姿纳入参考,尽力满足位姿要求,但是可能不会精确。会计算起点到终点要走多少度,平均分配每步的角度,分到那点是多少就是多少 ```java public class CircDemo extends RoboticsAPIApplication { @Inject private LBRMed lBR_Med_14_R820_1; @Inject private IApplicationData appData; private ObjectFrame p_Aux; private ObjectFrame p_Des; @Override public void initialize() { p_Aux = appData.getFrame("/Pos1"); p_Des = appData.getFrame("/Pos2"); } @Override public void run() { // 通过静态方法创建CIRC,设置辅助点姿态为内插 CIRC motion1 = circ(p_Aux, p_Des); // 静态方法创建CIRC motion1.setAuxPointBehavior(CircAuxPointBehavior.Interpolate); // 设置辅助点姿态为内插 CIRC motion2 = new CIRC(p_Aux, p_Des); motion2.setCircAngle(Math.toRadians(300)); // 可以设置圆弧角的,但是有可能会与终点冲突。如果圆弧角过大,那么走到TP终点可能圆弧角还没到,那么以圆弧角为准,会继续走下去。如果圆弧角过小,那么以圆弧角为准 // Math.toRadians(xx)里面的数值可以为正(Positive)也可以为负(Negative) // Positive:方向为“Start Point → Auxiliary Point → End Point” // Negative:方向为“Start Point → End Point → Auxiliary Point” motion2.setEndPointBehavior(CircEndPointBehavior.Extrapolate); // 这里的Extrapolate参考上图后两个#INTERPOLATE和#EXTRAPOLATE。 // #INTERPOLATE:把原本TP终点的姿态赋予TP_CA圆弧角终点姿态,而TP终点的姿态会进行计算 // #EXTRAPOLATE:TP终点的姿态会被保留,而TP_CA的姿态会根据圆弧角进行计算 lBR_Med_14_R820_1.move(motion1); lBR_Med_14_R820_1.move(motion2); } } ``` 最后修改:2023 年 09 月 13 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏