机械臂控制

本文介绍了机械臂的D-H参数表示,机械臂的正解和逆解原理,以及使用强化学习控制机械臂的方法。同时,讲解了配置Linux、VSCode和OpenCV环境的过程,以及在遇到虚拟机和摄像头问题时的解决办法。此外,还涉及摄像头标定、双目摄像头的空间转换、物体轮廓检测以及力控和示教型机械臂的区别。在项目过程中,作者反思了团队协作和项目管理的重要性。
摘要由CSDN通过智能技术生成

参考文章:grbl控制3轴机械臂 原理 实现 (二) 之3D机械臂模拟及实现_ourkix的博客-CSDN博客

一、机械臂的D-H表示

        参考博客

        机械臂——D-H参数标定_追梦者-CSDN博客_d-h参数

描述两个关节轴线之间的位置关系用他们之间的距离和角度就可以了:

1.转角α的定义是关节轴i-1绕着公垂线ai-1转动到和关节轴i平行是所转过的角度αi-1

2.杆长ai-1就是两条空间直线的公垂线。如果杆是直的,杆长就等于连杆长度;如果不是直的,杆长等于公垂线长度。

通过连杆偏距和关节角就可以将两个相邻连杆之间的相对位置描述清楚:

1.关节角θi反映了两个连杆在关节轴处的夹角

2.连杆i-1的长度ai-1移动到和连杆i的长度ai的距离叫做连杆偏距di。如果正常连接di=0,如果两个关节之间有偏移,则根据上面说的求di。

二、机械臂正解

三、机械臂的逆解

        1.机械臂逆解顾名思义就是通过机械臂末端与机械臂原点的相对坐标,来求解机械臂两个臂的转动角度。

原理就是通过末端坐标(X,Y)得到斜边长度,再根据余弦公式 

 A^2 = B^2 + C^2 - 2BC\cos(\alpha )

算出角1和角2 

\theta1 = \arccos( \frac{L1^2 + Z^2 + X^2 + Y^2 - L2^2}{2L1 \sqrt{Z^2 + X^2 + Y^2}}) + \theta T

 \theta2 = \arccos(\frac{Z^2 + X^2 + Y^2 - L1^2 - L2^2}{2L1L2})

               2.既然二维机械臂逆解已经解决,那么转到三维环境,不过就是底座的转动角度而已。可以通过一个简单的反正切求解。

\theta 3 = \arctan(\frac{Z}{X})

3.由于本次使用的机械臂为并联机械臂,应该根据平行机构连杆进一步为正解与反解添加约束

四、强化学习控制机械臂

        这部分的内容主要是跟着莫烦大神学的

从头开始做一个机器手臂4 加入强化学习算法 - 机器学习实战 | 莫烦Python

1.超参数的设置,给随机生成的点设计限制

       (1) 在强化学习训练模型时,为了得到较快的收敛效果和更好的泛化性能,超参数设置的好尤为重要。

        在用DDPG算法对机械臂进行训练的时候,遇到的第一个问题是,机械臂一直无法抓取到物体,甚至在500轮的训练结束后还是没有收敛。经过排查后,发现是因为有些随机生成的点是机械臂末端无法达到的范围,这导致模型一直学不到东西。

        遇到的第二个问题是,机械臂的学习效率很慢,要600个回合才能收敛。这有两个方面的原因,一是学习效率的设置,学习效率设置的过小,模型会一直学不到东西;但是学习效率设置的太大,会导致收敛后出现震荡,不稳定(也就是会一下子抓得到东西,一下子抓不到)。二是记忆池大小的设置,记忆池设置的太大,会导致收敛速度慢。

2.  因为我平常会比较关注国际形式,不禁想到如果强化学习等类似优化方法能用于分析国际形式,做出有利于全体国民利益的决策吗?好像需要的输入量会非常多诶

五、配置Linux、vscode和opencv的环境

        关于opencv的安装,可以参考这篇博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值