关于珞石机器人二次开发SDK的posture函数的算法RX RY RZ纠正 C#

在珞石SDK二次开发的函数钟,获取当前机器人位姿的函数posture函数在输出时会发现数据不正确,与示教器数据不一致。

其中第一个数据正确 第二三各数据为相反 第四五六各数据为弧度制

转换方法为(弧度/PI)*180度

然后发现第四个数据还要加上180度

第五六各数据要取反,,所以设计了以下代码

cs 复制代码
void(){
ErrorCode ec;
Lamp1.IsHighlight =  robot.getDO(1, 1, out ec);
Lamp2.IsHighlight = robot.getDO(1, 11, out ec);
Lamp3.IsHighlight = robot.getDO(1, 12, out ec);
Lamp4.IsHighlight = robot.getDO(1, 13, out ec);
Lamp5.IsHighlight = robot.getDO(1, 14, out ec);
Lamp6.IsHighlight = robot.getDO(1, 15, out ec);
Lamp7.IsHighlight = robot.getDO(1, 16, out ec);
//创建新数组保存数据
double[] aa=new double[6];
aa[0] = robot.posture(CoordinateType.endInRef, out ec)[0]*1000;//TX
aa[1] = -robot.posture(CoordinateType.endInRef, out ec)[1] * 1000;//TY
aa[2] = -robot.posture(CoordinateType.endInRef, out ec)[2] * 1000;//TZ
aa[3] = robot.posture(CoordinateType.endInRef, out ec)[3];//RX
aa[4] = robot.posture(CoordinateType.endInRef, out ec)[4];//RY
aa[5] = robot.posture(CoordinateType.endInRef, out ec)[5];//RZ

double pi = 3.14159265354;
double rad = 180;
//二次转换
aa[3]= 180+(aa[3]*rad)/pi;
aa[4]= -(aa[4]*rad)/pi;
aa[5]= -(aa[5]*rad)/pi;
label1.Text = "当前位置:"+aa[0].ToString("0.000")+','+aa[1].ToString("0.000") + ',' + aa[2].ToString("0.000") + ',' + aa[3].ToString("0.000") + ',' + aa[4].ToString("0.000") + ',' + aa[5].ToString("0.000");
label2.Text = "坐标系:" + String.Join(",",robot.baseFrame(out ec));
label3.Text = "关节位置:" + String.Join(",",robot.jointPos(out ec));
}
相关推荐
硅谷秋水2 小时前
MAPLE:编码从自我为中心的视频中学习的灵巧机器人操作先验
人工智能·机器学习·计算机视觉·机器人·音视频
灏瀚星空4 小时前
AI 模型高效化:推理加速与训练优化的技术原理与理论解析
开发语言·人工智能·深度学习·程序人生·机器人·智慧城市·量子计算
向阳逐梦5 小时前
具身智能机器人学习路线全解析
学习·机器人
xwz小王子6 小时前
Chemical Review IF=51.4 综述 | 柔性机器人的当下与未来:材料、技术与应用的深度融合
机器人·柔性机器人
无处在14 小时前
STM32 四足机器人常见问题汇总
stm32·嵌入式硬件·机器人
不老刘16 小时前
拖动滑块 代替验证码,识别机器人的方式,实验原理
机器人
北极象16 小时前
RPA机器人技术原理初探
机器人·rpa
武汉唯众智创18 小时前
人工智能(机器人)通识实验室解决方案
人工智能·机器人·人工智能实验室·人工智能通识实验室·人工智能通识·机器人通识实验室·机器人实验室
OpenVINO生态社区19 小时前
【机器人创新创业成功的三个关键元素及作用?】
大数据·人工智能·机器人
硅谷秋水1 天前
人形机器人动作策略 ∼ 人类动作策略
人工智能·机器学习·计算机视觉·语言模型·机器人