salmon_shall 发表于 2017-5-5 09:22:10

在平衡的基础上以一个速度前进受阻后发现的前倾问题

问题是这样的,我自己模仿平衡之家的程序架构,在DSP的平台上编写了一套按照定速走直线的程序。
结果发现,在前进受阻之后,小车会不断地向受阻面低头倾斜,直到一个比较大的倾角后又猛地加速一个抬头,然后重复此过程
但是在运行平衡之家实例程序的时候,小车受阻就会一直停在原地,姿态也不会有变化,手拿开后,小车又继续正常前行

我起初怀疑是速度环有积分的原因,可是平衡之家的程序中速度环也有积分,请问下平衡之家团队这个问题的原因是什么呢?

salmon_shall 发表于 2017-5-5 09:42:11

另外我在CCD程序中很不理解在平衡角度环的计算里,为什么定量ZHONGZHI设置成5而不是-5,因为加上了CCD支架之后应该要抬起CCD,这时候观察angle_balance是负值,而bias=angle_balance-ZHONGZHI,不应该是-5的时候两者相减才为0;

salmon_shall 发表于 2017-5-5 09:45:44

mao824324638 发表于 2017-5-5 09:41
程序有么钱钱钱钱钱钱钱钱钱钱钱钱

啥啊,买平衡之家的车不就附带程序么

admin 发表于 2017-5-5 10:49:20

如果程序设定了前进的目标值,那我们的小车遇到阻碍,也会是和您一样的效果的。

salmon_shall 发表于 2017-5-5 14:09:17

admin 发表于 2017-5-5 10:49
如果程序设定了前进的目标值,那我们的小车遇到阻碍,也会是和您一样的效果的。

对,我是在速度环中给movement手动赋值了来着。
可是直接烧写上你们提供的小车的CCD巡线代码的时候,在空地上释放的时候,用手阻挡它运动发现车也是安静的停在原地,阻挡的手拿开后小车也能柔顺的前行;这个时候小车不是也有一个前进的目标值嘛,可是观察发现就不会低头强行运动之类的,感觉很厉害哎,就是不明白怎么做到的,所以来请教!

salmon_shall 发表于 2017-5-5 14:21:09

mao824324638 发表于 2017-5-5 14:07
我说的是不用app控制小车,而是让他直线行走的程序呀

。。。直线行走就是相对于你用APP控制时把蓝牙接收信号后设标志位改变movement值,改成直接在速度环里给movement赋值啊,然后小车就会一直往前了,虽然也不严格是直线

salmon_shall 发表于 2017-5-5 15:26:40

admin 发表于 2017-5-5 10:49
如果程序设定了前进的目标值,那我们的小车遇到阻碍,也会是和您一样的效果的。

我又用出厂代码试验了下,发现手动设定movement的话,受阻是会有一点点低头的感觉,然后松开会冲刺一段,和我自己写的代码现象类似,我这里分析是不是因为速度环中积分限幅的原因,因为看CCD代码和出厂代码的限幅有一些些差别,而这个限幅的值应该也是决定了受阻后冲刺的那一段距离的长短,不知道理解的对不对

admin 发表于 2017-5-6 10:33:14

salmon_shall 发表于 2017-5-5 15:26
我又用出厂代码试验了下,发现手动设定movement的话,受阻是会有一点点低头的感觉,然后松开会冲刺一段, ...

限幅决定了小车的最大速度,movement可以看作是速度的步进值,因为平衡小车的速度不能直接给定,需要一个加速过程,以免干扰直立控制。

salmon_shall 发表于 2017-5-8 10:09:50

admin 发表于 2017-5-6 10:33
限幅决定了小车的最大速度,movement可以看作是速度的步进值,因为平衡小车的速度不能直接给定,需要一个 ...

谢谢,大致明白了,最后我把平衡环中的角度中值改成-20,加上CCD支架后能做到平缓行驶了,原来最重要的还是直立控制。
之前怀疑限幅是因为觉得开始车轮受阻不动的话编码器值不能抵消积分的不断累加,很快就达到了限幅值,然后这个pwm控制量在解除阻挡之前就已经挺大,这个控制量不是就反映在立刻冲出那一下吗?

salmon_shall 发表于 2017-5-8 10:11:20

mao824324638 发表于 2017-5-8 10:09
movement 在哪里可以调啊       app还是程序

在程序里,我开始有啥不会的都是请教客服的
页: [1]
查看完整版本: 在平衡的基础上以一个速度前进受阻后发现的前倾问题