[漂移驴车项目]DonkeyCar threaded配置解析

8222浏览
查看: 8222|回复: 2

[漂移驴车项目] DonkeyCar threaded配置解析

[复制链接]
本帖最后由 昊男Henry 于 2022-4-3 21:45 编辑

DonkeyCar源码中,manage.py通过vehicle.py实现对不同功能组件的实例化。

本文以actuator.py为例,分析threaded=True对程序运行逻辑的影响。

【现象】
  • threaded = true时,独立开辟的线程在update()中一直刷新,在每次大循环中调用一次run_threaded()
  • threaded = false时,和其他线程组成队列,在每次大循环中调用一次run()

DonkeyCar threaded配置解析图3

DonkeyCar threaded配置解析图1

DonkeyCar threaded配置解析图2

【结论】
  • run_threaded()和update()为一组,功能上与run()等效
  • update()为独立线程,实时性比run()要好,适合需要常驻的服务,例如串口接收。【实测update()每秒刷新200次以上,run()每秒只恒定刷新20次】

极凹甫  初级技师

发表于 2022-4-6 20:46:46

run_threaded()和update()为一组,功能上与run()等效
update()为独立线程,实时性比run()要好,适合需要常驻的服务,例如串口接收。【实测update()每秒刷新200次以上,run()每秒只恒定刷新20次】


这一句非常有迷惑性哦

能否解释一下 什么样的part使用threaded,什么样不使用呢?
回复

使用道具 举报

昊男Henry  初级技师
 楼主|

发表于 2022-4-8 21:59:53

极凹甫 发表于 2022-4-6 20:46
这一句非常有迷惑性哦

能否解释一下 什么样的part使用threaded,什么样不使用呢?

没有绝对界定,区别在于是否为独立线程。需要高速响应的part建议配置threaded=True,例如Web显示实时画面。舵机PWM信号刷新只有50~60Hz,不必要配置threaded,减少系统资源占用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail