Robomaster M6020过零处理
从大到小旋转: 假设Targe值是100,测量值是7900,8000为零点。按照公式,M6020旋转的值是由T-M计算出来的,按照假设的值计算Error=T-M = 7800,云台会从7900的位置逆时针旋转到100的位置,但实际上我们不希望云台这样做,这样做在跟随模式下会让底盘造成不必要的旋转,甚至疯了。所以,这里需要用到一个过零处理。在没有进行过零处理之前,云台应该会向逆时针旋转7800才可以达到目标值,但进行过零处理之后,只需要顺时针旋转200就可以达到目标值了。所以,我们需要在计算的时候再加上一个周期,使得云台反转,从而达到设定的目标值。因此就有了T-(M-8000)。 从小到大旋转:
不难看出,云台pid计算的时候,M6020会顺时针旋转7800,但我们实际想要的是M6020逆时针旋转200到达目标的机械角度。所以我们在Error=T-M=7800上再减去一个8000,即Error = T-(M+8000); 那么在实际情况中怎么判断周期的加减呢。首先当Error>4095的时候(从小打到大旋转),即T-M大于4095的时候再减去一个周期。当Error
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?