机械臂中,两同轴舵机臂该如何调试为同步呢?

为了便于调试特意写了一个通過键盘控制机械臂舵机臂的代码,来调试舵机臂代码是基于teleop_twist_keyboard修改的。在arduino_node.py中已经声明了舵机臂读和写的ROS Service:

配合上一篇微博中arduino端的舵机臂驱動我们只需要实现这两个ROS Service的client就可以控制舵机臂了,具体原理请看代码中的注释代码如下:

#右臂舵机臂的控制数组1表示增加0.09弧度,0表示減少0.09弧度 #左臂舵机臂的控制数组1表示增加0.09弧度,0表示减少0.09弧度 #手臂臂舵机臂的控制命令数组 #舵机臂位置写根据舵机臂标号设置舵机臂嘚位置0~π,注意这里的value对应的是弧度 #初始化右臂舵机臂角度,要根据实际情况调整舵机臂角度 #初始化左臂舵机臂角度要根据实际情况调整舵机臂角度

下面给大家分享一点自己DIY机械手臂手指的经验 机械手臂支架部分网上都大同小异
为了配合我们要实现的功能,所以我们选择自己用AutoCad建模后在激光切割机上切割成型了机械手臂的手指部分


模块角度与舵机臂角度之间的转化方程

原理:由于重力加速度传感器在静止时受到重力作用因此会有1g的重力加速度,加速度传感器可以感受到重力x、y、z轴三个方向上的分量读数为分量与g的比值,从而计算出其在垂直平面上的倾斜角度


1.建立三维直角坐標系,x、y、z轴模拟为加速度传感器x、y、z轴轴方向符合右手定则,其中y轴方向为手指延伸方向初始状态下,取z轴负方向为重力方向即豎直方向。此时x=0y=0,z=-1

2.人的手指或手臂带动传感器变动相当于传感器的x、y、z轴相对重力方向变动,为使读图、计算方便固定xyz轴位置,使g軸变动

3.设x、y、z轴与g夹角分别为α、β、γ,传感器输出的为重力加速度分量值与其比值,即为x=cosα、y=cosβ、z=cosγ。由几何关系可知,欲求角(即x、y、z轴与地面的夹角)分别为90°-α、90°-β、90°-γ。又因为x=sin(90°-α)、y=sin(90°-β)、z=sin(90°-γ),所以所求角度

4.每次测得的数据为θi(αi,βi,γi)(i∈N*i≤n),舵机臂起始位置为水平面,输给舵机臂的角度值分别为θ1θ2-θ1,θ3-θ2θ4-θ3??θn-θn-1。这样舵机臂接受离散数据。

先写到这回头补充详细...囿问题可以留言哈~

我要回帖

更多关于 舵机臂 的文章

 

随机推荐