机器人正解逆解-附记

距机器人正解逆解的3篇文章已经有一年多时间 不知不觉浏览已有一万 在评论里看到一些问题 在此尝试解答

建议还是先看看相关的书中的计算方法 不知道计算方法而通过程序去理解如何计算 是比较难的

代码里面的注释很少 唉 好吧 本人代码品格较差 (其实是忘了)

机器人的正解根据各关节角度计算位置 其实就是坐标变换 从一个坐标系变换到另一个坐标系 得到最终的位置坐标 这个用三角函数也可以计算 可以不用矩阵 程序不是非常复杂 但是有些角度的计算需要特别处理

选择的坐标系直接影响所计算的位置 坐标系各坐标轴的方向会影响到角度的+/- 和坐标值的+/- 这些都体现在参数表中 参数表的结构就是param_t结构体的后3项 参数表文件的内容只是多了最后一行 参数表文件中的最后一行 是在Z方向上的整体偏移值

关节角度 以上数据我是随便举例子的 有可能不符合要求 逆解所用的文件 格式是一样的 逆解读入的6个值 X, Y, Z, Y, P, R

正解 可以看到最后的输出是3*4矩阵的最后一列 最终的位置坐标

关于结果不一样的问题 当时做的时候是取机器人的数据做的验证 以机器人的坐标系设定来指定的DH参数 使用同样的DH参数 计算结果如果有很大差别应该是对DH参数的处理不同 如果生成的结果总是差一个固定值应该是缺少对相应偏移量的处理

评论里有人提到修正的参数表 这里没有使用修正的参数表 直接使用的关节参数

文件路径问题 程序是在ubuntu下编译运行 如果在win下 需要改文件开始处的文件路径的宏定义 代码中用到了前2个文件

良心声明 代码没有经过严格的测试 仅供参考

经验分享 程序员 微信小程序 职场和发展