this->UpdateData(TRUE);//将控件的值赋给成员变量
/**
* 计算中间变量γ1,γ2
*/
double r1_angle = ((this->m_b_hz - this->m_a_hz)/PI) * 180;
double r2_angle = ((this->m_c_hz - this->m_b_hz)/PI) * 180;
double r1_rad = (double)(this->m_b_hz - this->m_a_hz);
this->m_r1.Format("%lf",r1_rad);
double r2_rad = (double)(this->m_c_hz - this->m_b_hz);
this->m_r2.Format("%lf",r2_rad);
/**
* 计算中间变量AB,BC,AC
* 其中Math.pow((a.e - b.e), 2)表示(a的e坐标-b的e坐标)的2次方
* Math.sqrt(x)表示对x开方
*/
double AB = sqrt(pow((this->m_a_e - this->m_b_e), 2) + pow((this->m_a_n - this->m_b_n), 2));
double BC = sqrt(pow((this->m_c_e - this->m_b_e), 2) + pow((this->m_c_n - this->m_b_n), 2));
double AC = sqrt(pow((this->m_a_e - this->m_c_e), 2) + pow((this->m_a_n - this->m_c_n), 2));
this->m_ab.Format("%lf",AB);
this->m_bc.Format("%lf",BC);
this->m_ac.Format("%lf",AC);
/**
* 计算终中间变量∠ABC
* 先要计算cos∠ABC
*/
double cosABC = (pow(BC, 2) + pow(AB, 2) - pow(AC, 2))/(2 * BC * AB);
double abc = ( acos(cosABC) * 180 )/ PI;//利用arcos求出∠ABC
this->m_cosjabc.Format("%lf",cosABC);
this->m_jabc.Format("%lf",abc);
/**
* 计算中间变量φ,ω
*/
double fi = (AB * sin(r2_rad))/(BC * sin(r1_rad));
double wmd_angle = 360 - (r1_angle + r2_angle + abc);
double wmd_rad = ( wmd_angle * PI )/180;
this->m_wmd.Format("%lf",wmd_rad);
this->m_fi.Format("%lf",fi);
/**
* 求出中间变量cotα1,cotβ1
*/
//Double ctanβ2 = (Math.tan(φ) * Math.cos(ω) + 1)/(Math.tan(φ) * Math.sin(ω));
double ctanalpha1 = (tan(fi) + cos(wmd_rad))/sin(wmd_rad);
double alpha1_rad = atan(1/ctanalpha1);
double alpha1_angle = (alpha1_rad * 180 )/PI;
double beta1 = (360 - r1_angle - alpha1_angle) * PI / 180;
double cotalpha1 = ctanalpha1;
double cotbeta1 = 1/tan(beta1);
this->m_alpha.Format("%lf",cotalpha1);
this->m_beta.Format("%lf",cotbeta1);
/**
* 求出仪器的新坐标中的E,N
*/
this->m_e.Format("%lf",(this->m_a_e * cotbeta1 + this->m_b_e * cotalpha1 + (this->m_b_n - this->m_a_n)) / (cotalpha1 + cotbeta1));
this->m_n.Format("%lf",(this->m_a_n * cotbeta1 + this->m_b_n * cotalpha1 - (this->m_b_e - this->m_a_e)) / (cotalpha1 + cotbeta1));
/**
* 处理换站后的高程,其中
* a.h代表基准点a首次测的坐标H,
* a.newH,代表换站后,基准点a的新坐标H
*/
double z0 = this->m_a_h - this->m_a_nh;
double z1 = this->m_b_h - this->m_b_nh;
double z2 = this->m_c_h - this->m_c_nh;
this->m_h.Format("%lf",(z0+z1+z2)/3);//求平均值
this->UpdateData(FALSE);//将成员变量的值赋给控件
核心公式:
运行结果:
- 大小: 1 KB
- 大小: 70.1 KB
分享到:
相关推荐
基于线结构光视觉的机器人智能三维测量方法研究 近年来三维视觉测量技术广泛应用于现代工业制造及产品质量检测领域中, 随着测量精度及效率的提高,...法对基于线结构光视觉的机器人三维测量系统具有十分重要的意义
FANUC机器人_三点法设置工具坐标系的具体方法步骤
利用机器人实现工件的三维测量仿真对提高测量效率、降低测量成本、满足企业自动化生产的需求等具有重要意义. 以某轿车车门为例,应用DELMIA软件实现了轿车车门的机器人三维测量的动态仿真. 首先运用软件的“零件设计...
一、川崎机器人的坐标系的种类 JOINT(关节(各轴)坐标系) BASE(基坐标系坐标系) TOOL (工具坐标系) 机器人现场编程-川崎机器人坐标系的种类全文共7页,当前为第2页。 二、川崎机器人的坐标系-JOINT 机器人的...
对于以前数学学习不好的人来说,在机器人的坐标变换里,总是各种蒙。 这个图片来给你解答 机器人坐标系变换 坐标变换-旋转部分 二维坐标旋转的向量和几何表示
该程序为旋量法求6R工业机器人物体雅可比矩阵,物体坐标系的姿态与世界坐标系的一致,物体坐标系的原点位于关节4、5、6轴线的交点
工业机器人已知三点坐标求圆心坐标
双目视觉,立体匹配,三维重建,有关的移动机器人双目视觉的三维重构论文
FANUC机器人系统,介绍了用户坐标系的原理和使用方法,使用三点法设定机器人坐标系,详细介绍了设定的具体步骤和内容。
激光测量标定机器人坐标系位姿变换的正交化解算.pdf
机器人工具箱三维空间描述举例
ABB机器人通过直接输入法设置工具坐标系的具体方法和步骤
已知不同坐标系的多个坐标点的坐标,求两个坐标系的转换矩阵,是matlab写的程序,三维坐标的。 做机器人视觉导航时用到的这个转换。
如果要做一个机器人的操作系统,机器人运动学是必不可少的,而机器人运动学最重要的东西就是坐标变换
机器人坐标转换
UR5e机器人三维模型
ABB机器人通过6点示教法设置工具坐标系的具体方法和步骤
测量机器人变形监测自动化系统pdf,TCA型测量机器人是在全站仪的基础上集成激光、 精密机械、 微型计算机、CCD 传感器以及人工智能技术 发展起来的 ,在滑坡、 水工建筑物的变形监测中 ,能快速、 准确地获取资料。...
应用于焊接机器人的莫尔投影三维焊缝轮廓实时测量系统pdf,应用于焊接机器人的莫尔投影三维焊缝轮廓实时测量系统