当在app里运行动作序列时,Hiwonder里面是看不到电机角度变化的,说明不是用的当前的hiwonder,是另外一个独立的hiwonder,没有打开controller的threading
并且在shutdown当前的puppy.py时依旧可以运行
hiwonderM.py可以运行d6ac动作文件,说明应该是multiprocess的问题
现在的猜想时threading在同一时刻只会执行一个,所以run_action_group里的threading并不会和puppy.py中的产生冲突。但是process就会
现在的思路是在runaction Group之前先关掉puppy.py中的process
process 这个东西在Hiwonder里面,外面的函数每call Hiwonder一次就多一个process,Hiwonder里面有一个,puppy里有一个,runActionGroup里也有一个,但只有puppy里面的process是在控制电机
现在把Hiwonder Initialize时候的process取消掉了, 只有puppy.py 里的一个process。 demo可以走,但还是没法执行动作组
#——————————————————12.5 21:00——————————————————
d6ac搞定了
方法是:
- 把runActionGroup 函数写到puppy.py里面变成runAction(),以确保不调用runActionGroup.py (这样的话会多出来一个controller threading以及一个process)
- 在执行runAction() 之前先deactivate调机器狗,这样的话controller threading就不会一直往电机传数据
- 执行runAction()
- 执行完之后重新启动puppy (puppy.start + puppy.move_stop), 保证puppy回到REST状态等待下一个指令