制造FRC机器人的实用程序
marsutils的Python项目详细描述
mars utlities
构建更好的机器人代码的实用程序
在Read the Docs在线查看文档
控制管理器
ControlManager
提供了一个包装器,使替代控制模式(替代驱动程序、不同控制程序)变得异常简单。它最初是为magicrobot组件设计的,但是,它应该可以与任何类型的组件一起工作。
请参见example/
以获取机器人示例。
使用量
首先,所有控件都必须实现为子类marsutils.ControlInterface
的类。在teleopPeriodic
方法中定义的主控制代码。
然后,必须定义将显示在仪表板自动选择程序上的_DISPLAY_NAME
字段。
您可以设置_SORT
来为某些接口设置优先级,这个数字越高,选择器列表上的值就越高。
因为它是一个神奇的机器人组件,所以您可以访问注入的组件。
但必须使空的execute
函数成为有效的magicbot函数。
拥有控件组件后,有两种方法可以创建管理器。
魔术魔术
如果您使用的是magicrobot框架,那么可以使用@with_ctrl_manager
装饰器自动设置所有内容。只要用@with_ctrl_manager
注释robot类,就完成了。它将神奇地检测任何ControlInterfaces
,构造ControlManager
,并自动调用周期函数。
使用decorator还意味着您不需要定义execute
函数。
手动
否则,必须在调用createObjects
之后,通过初始化所有组件来设置管理器。这是not technically possible with the MagicBot framework还。
self.control_manager=marsutils.ControlManager(self.xbox_ctrl,self.joystick_ctrl)
创建控件管理器后,必须调用其周期函数。这意味着为您使用的每个函数添加self.control_manager.teleopPeriodic()
到teleopPeriodic
函数中,以此类推。