首页 > 编程语言 >关于珞石机器人二次开发SDK的posture函数的算法RX RY RZ纠正 C#

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

时间:2024-07-24 21:57:08浏览次数:12  
标签:aa C# 珞石 robot ec getDO 二次开发 posture out

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

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

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

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

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

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));
}

标签:aa,C#,珞石,robot,ec,getDO,二次开发,posture,out
From: https://blog.csdn.net/m0_66701835/article/details/140674199

相关文章

  • cannot reclaim 52428800 bytes disk space from 4070572032 limit
    RMAN>backupdatabase;Startingbackupat24-JUL-24usingchannelORA_DISK_1channelORA_DISK_1:startingfulldatafilebackupsetchannelORA_DISK_1:specifyingdatafile(s)inbackupsetinputdatafilefilenumber=00001name=/u01/app/oracle/oradata/orcl/s......
  • 1330、基于51单片机蓝牙远程消防灭火小车 寻火源避障灭火小车(程序+原理图+PCB源文件+
    毕设帮助、开题指导、技术解答(有偿)见文未  目录方案选择单片机的选择显示器选择方案一、设计功能二、实物图单片机模块设计三、原理图四、程序源码五、PCB图资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方......
  • 基于 LangChain+LangGraph 来实现一个翻译项目
    相信大家在看文档的时候,有时会比较苦恼,比如AI相关的文档都是外文,中文文档比较少,看起来会比较吃力,有的时候会看不懂,翻译软件又翻得很乱,完全看不了,今天就基于LangChain和LangGranph将吴恩达博士的一个项目给搬过来。一方面就是为了自己看文档方便点,另一方面也是练练手,用用......
  • Vue全家桶 - pinia 的理解和学习1(Pinia 核心概念的 Store、State、Getter、Action)
    Pinia(Vue的专属状态管理库)Pinia和Vuex的区别设计理念和架构Vuex采用集中式架构,所有状态存储在一个全局状态树中,通过mutations和actions来修改和处理状态。Pinia采用去中心化的架构,每个模块有自己的状态,这使得Pinia在代码分割和模块化方面更加灵活。TypeSc......
  • Activiti删除外键
    Activiti相关数据库表定义了很多外键,在自定义驳回、收回操作时,很容易出现外键引起的操作失败,亲测有两种方法解决:1、临时关闭外键约束1.1操作开始前执行SETFOREIGN_KEY_CHECKS=0;关闭外键约束1.2操作完成后执行SETFOREIGN_KEY_CHECKS=1;开启外键约束2、删除Activiti相关表......
  • Spring Security认证授权流程
    1.认证授权过程1.使用用户名和密码进行登录操作。2.后端接受请求进入层层Filter过滤器,对登录操作放行,放行后开始认证流程。3.SpringSecurity拿到用户名和密码,将其封装成一个实现了Authentication接口的UsernamePasswordAuthenticationToken。4.使用认证管理器把上一步产......
  • 「模拟赛」暑期集训CSP提高模拟4(7.21)
    很祭的一次比赛,啥也不会。题目列表:A.WhiteandBlackB.WhiteandWhiteC.BlackandBlackD.BlackandWhiteA.WhiteandBlack\(0pts\)题意:给你一颗树,树根为1,初始所有点都是白色,每次询问给出一个点集,若把点集中的点全部染成黑色,问至少需要翻转多少个节点才能使整......
  • c++11(3): 类型推导与智能指针
    41.两个右尖括号>在模板中不再被判定为右移,需要右移需要加圆括号()42.auto类型推导,编译时推导inta=1;autob=a;//b的类型为int1):auto不能作函数形参类型2):auto不能对结构体中的肥静态成员进行推导3):auto不能声明数组4):auto不能在实例化模板时作为......
  • centos7 升级curl命令,php不变问题
    centos7升级curl命令开篇:默认的curl版本太旧,需要升级,才可以支持http2协议1、安装repo代码语言:javascript复制[root@~]#rpm-Uvhhttp://www.city-fan.org/ftp/contrib/yum-repo/rhel6/x86_64/city-fan.org-release-2-1.rhel6.noarch.rpm2、查看当前r......
  • 掌握IPython宏:%%macro命令的高效使用指南
    掌握IPython宏:%%macro命令的高效使用指南在编程中,宏是一种允许你定义可重用代码片段的强大工具。IPython,这个增强版的Python交互式环境,提供了一个名为%%macro的魔术命令,允许用户创建宏,从而提高代码的可重用性和效率。本文将详细介绍如何在IPython中使用%%macro命令创建宏,并......