- 博客(121)
- 资源 (5)
- 收藏
- 关注
原创 坐标系之间得相互转换
摘要:本文讨论了坐标系转换的基本概念和矩阵表示方法。当坐标系A为当前坐标系时,坐标系B的参数矩阵Rab表示从A到B的变换。对于坐标点,该矩阵可实现B到A的坐标转换。文章介绍了使用齐次矩阵进行坐标系转换的方法,并给出了坐标系类的接口设计示例,包括点坐标和坐标系之间的转换函数。通过将坐标系视为当前坐标系下的新坐标系,可以更好地理解这些转换函数的作用机制。
2025-12-05 15:35:11
206
原创 机械臂与相机的手眼标定
摘要:本文介绍了基于AX=XB手眼标定方程的相机与机械臂末端标定方法。针对库卡机械臂固定轴ZYX系统,提出通过相对运动变换求解位姿关系,即A=A₂⁻¹×A₁表示机械臂末端相对变换,B=B₂×B₁⁻¹表示相机观测相对变换。关键实现要点包括:1)数据组织需采用相邻位姿的相对变换;2)运动过程需包含足够的角度变化;3)OpenCV函数需输入绝对位姿。实验表明直接标定精度约1-2mm,采用空间位置补偿可将精度提升至0.2mm。(149字)
2025-10-31 11:35:34
365
原创 mfc工程中进度条样式
MFC开发中进度条样式不一致的解决方法:在stdafx.h文件中,默认的Common Controls版本6.0加载代码被_UNICODE宏条件编译限制。若使用多字节字符集(MBCS),只需注释掉#ifdef_UNICODE和#endif两行代码,使manifest依赖项在非Unicode项目中也生效,即可解决运行时控件样式与资源编辑器显示不一致的问题。这是最简单直接的修改方式,无需改动其他代码。
2025-10-17 09:43:09
209
原创 库卡机械臂的转角系统以及固定轴和欧拉角的计算方式
同一个旋转矩阵计算不同的转角系统的旋转角时,计算得到的欧拉角Rx Ry Rz 在数值上与固定轴的Rz Ry Rx对应的数值相同。当前坐标系为基坐标系时,abc为沿着基坐标系固定轴旋转的角度,分别对应为Rz Ry Rx。固定轴XYZ = 欧拉角ZYX R=Rz⋅Ry⋅Rx。欧拉角XYZ = 固定轴ZYX R=Rx⋅Ry⋅Rz。库卡机械臂的转角为abc。
2025-10-10 15:14:36
194
原创 CTreeCtrl 设置图标
但是注意有个坑,虽然图像位数没有限制,创建图像列表时,也有ILC_COLOR32类型可供选择,但是软件实际只能显示出24位效果。(也可能有其他原因导致,但是目前没找到原因)使用CTreeCtrl 进行设置导航视图时,有时候需要设置图标,一般使用如下代码。如果图标资源是PNG格式,也可以使用。如果使用了32位图像,效果看运气。所以最好添加时,直接使用24位。mfc界面修改真难受。
2025-02-05 16:29:28
262
原创 std::vector 删除指定位置元素
如果根据条件找到数组中一个数值,需要进行删除,无法直接对it进行删除,需要改为下面这个操作。使用的函数还是erase,但是需要有位置的索引,所以换成这种方式进行遍历,才可以。经常使用std::vector的都知道,我一般循环遍历时,都这样使用。
2024-10-11 17:06:39
1000
1
原创 C++11 字符串类std::string 使用
用法演示涵盖各种字符串常编程应用包括检查文件扩展名称、截取,查找字符串、拼接字符串、把这种其它类型数据转换为字符串std::tostring这个方法是万能的。
2024-02-02 14:35:11
845
原创 CString Fromat 按照指定位数格式化整型数据
示例,将整型变量以9位数字进行格式化,比如 1 -> 000000001strItem1.Format("%09i",nNum);
2022-01-06 17:33:40
386
原创 十进制转十六进制
输入一个十进制整数,将其转换成十六进制数输出,并提取每一字节所表示的十六进制数值逐一输出。测试数据如下:分析:从控制台输入一个十进制整数,将其转换成十六进制数输出,接着提取其4个字节。用到按位与运算符“&”、右移位运算符“>>”。ps:“0x”是十六进制数的前缀。位(bit):度量数据的最小单位,表示一位二进制信息;字节(byte):由八位二进制数字组成(1 byte = 8 bit)。1个字节表示2位十六进制数。新建一个Visual C 控制台程序#inclu.
2021-12-14 18:16:22
2698
原创 蓝牙 传输 socket
1、有一个蓝牙设备,是一个蓝牙模块,非手机或者其他主机。使用SPP协议。2、使用主机连接这个蓝牙设备,主机是win10系统。在系统中的蓝牙设置中,对这个设备的蓝牙连接,会出现两个虚拟端口。如下图,设备DX2003,会有COM3,COM4两个端口。如果进行数据传输,只能使用COM4端口。3、开始的时候,使用串口控制来实现对蓝牙设备的数据传输,这种方式比较简单。就是先遍历串口设备,然后选择一个COM口,打开,就可以进行数据传输了。但是有一些缺点,无法通过程序端获取到是哪个端口可用,也无法获取到类似于
2021-11-30 09:40:35
3207
原创 MFC 从一个工程中拷贝对话框到另一个工程中
从工程A中将对话框资源拷贝到工程B中。1、打开工程B,选择 项目 ->添加现有项,然后选择工程A的rc文件。2、导入rc文件后,会在工程B的资源视图中看到自己的资源和工程A的资源。此时可以将需要拷贝的对话框复制,粘贴。3、选中工程A的资源,然后选择 项目 -> 从项目中排除,即可。...
2021-11-18 11:47:56
2094
原创 双目立体像对中的核线影像
双目立体像对,就是两个相机通过在不同位置和姿态拍摄同一物体表面,获取被测物体的三维坐标。完成测量之前,需要标定相机内外参数。标定后,当需要对立体像对进行匹配时,需要先将现有拍摄图像转为核线图像,这样,左图像中的一个点所对应在右图像中的同名点,一定在右图像中的同一行内。这样就可以将匹配计算,从二维搜索转化为一维搜索。核线影像的制作需要进行以下步骤:1、立体像对的坐标系要在其中一个相机的像空间坐标系上。假设为左图像。这样左图像的像点坐标转化为立体像对坐标系下时,平移和旋转量都是0。右图像的.
2021-05-20 17:39:55
1639
原创 坐标系变换中的矩阵表示
标准坐标系变换的公式为:x,y,z为初始坐标,XYZ为变换后坐标。a1,a2,a3,b1,b2,b3,c1,c2,c3为旋转矩阵RT1,T2,T3为平移量T将旋转矩阵和平移量放在一起,组成4*4矩阵为这样将坐标系的变换就可以转换为矩阵的计算。比如,变换关系为: R1*R2 = R3即经过R2 变换后,再经过R1变换,得到的结果和直接经过R3变换的值是相同的。这样就有了这样的转换关系。如果已知其中两种变换关系,就可以计算第三个变换关系。如:注意4*4的矩阵并不是正交
2021-04-29 15:19:34
6282
原创 相机移动情况下的装配关系确定
装配关系假定为抓手A到被抓取物B的关系,也就是A坐标系与B坐标系重合。相机cam固定在A上,随着A的移动而移动。此时需要一个固定的基准Control。B的位置在装配过程中不动。这样就得到两组固定关系,cam与A,control与B。最终装配上时,A与B的坐标系重合。此时就会得到cam与control的一组关系,此时相机坐标系为camBase。此关系位装配的基准关系。得到这一组关系,就明确了最终装配的目标。一般情况下,获取的装配调整量,最终要传递给调姿机构。所以计算出的装配调整量必须是在调
2021-04-14 11:08:26
280
转载 g_signal_connect 与 g_signal_connect_swapped
在 2.0 版,信号系统已从 GTK 移到 GLib,因此在函数和类型的说明中有前缀 "g_" 而不是 "gtk_"。我们不打算介绍 GLib 2.0 信号系统相对 GTK 1.2 信号系统扩展的细节。在我们详细分析helloworld程序之前,我们会讨论信号和回调函数。GTK 是一个事件驱动的工具包,意味着它会等在 gtk_main() 那里,直到下一个事件发生,才把控制权传给适当的函数...
2019-05-07 16:02:00
1337
3
转载 模块已加载,但对dllregisterServer的调用失败
在注册dll或者ocx的时候,经常会遇到这么一个问题:模块 已加载,但对dllregisterServer的调用失败,错误代码为0x8004*****网上有网友回复说需要在管理员的模式下进行注册:本人测试过,会出现如下问题:模块 加载失败。请确保该二进制存储在指定的路径中,或者调试它以检查该二进制或相关的 .dll文件是否有问题。 找不到指定的模块还是没有...
2019-04-30 22:11:42
24956
6
转载 十分钟看懂什么是VoLTE
你是不是遇到过下面这个情景:正在用手机玩游戏……玩得正嗨,胜利在望……突然,来电话了……我勒个去!…#^%$^@完蛋……断网……这个时候的你,是不是很抓狂,是不是很想死?其实,不止是游戏,有时候你看球、追剧、下载、导航,都会遇到这样的麻烦。那么,问题来了—— 1、为什么手机来电话时,手机的数据业务会中断? 2、是所有的手机都会来电话时断网吗? 3、我们怎样才能解决...
2018-11-22 14:55:26
3578
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅