即将推出(2020年)wpilib pidcontroller的后台。

wpilib-controller的Python项目详细描述


wpilib控制器

即将推出(2020年)wpilib pidcontroller的后台。

这是wpilibsuite/allwpilib#1300的后台端口,计划是 为2020赛季合并,为RobotPy

@calcmogul在这上面有一些in-progress docs

注意,如果您从旧的wpilib pidcontroller移动,那么您的pid 常数需要更改,因为它没有考虑离散化周期:

  • 将Ki增益除以0.05,然后
  • 将kd增益乘以0.05,
  • 其中0.05是原始默认期间(使用您另外使用的期间)。

安装

对于具有Internet连接的计算机:

pip install wpilib-controller

要安装到脱机机器人上:

pip download wpilib-controller -d pip_cache  # with an internet connection
robotpy-installer install-pip wpilib-controller  # connected to your robot

示例

fromwpilib_controllerimportPIDController# assume gyro is a gyro object created priorcontroller=PIDController(1,0,0,measurement_source=gyro.getAngle)controller.setInputRange(0,360)controller.setContinuous()# setSetpoint is now called setReferencecontroller.setReference(180)# elsewhere...output=controller.update()# do something with the output, for example:motor.set(output)

主要差异

  • PID增益不再依赖于时间。
  • 这并不区分位移和速率“pid源类型”。相反,这个pidcontroller以一个函数作为它的测量源。
  • 前馈由传递给PID控制器的函数计算。
  • 这提供了一种在robot代码中同步运行pid控制器的简单方法(而不是让它在线程中运行)。只需调用update()方法,它将为您提供控制器输出。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
线程“main”java中的socket异常。网SocketException:在java上重置连接。木卫一。缓冲读取器。读线(未知源)   java原子参考   如何使用Java以编程方式确定两个XML文件(如XPATH)之间的差异?   java使用ApachePOI从存在于不同行中的两列中提取公共值   java在JavaFX中使用WebView会破坏Linux上的UI   Java中for循环中的If语句   Java中Hilberts空间填充曲线算法   由于出现错误,使用Reformation2下载的java文件停止工作   java是否可以通过编程方式控制setjaxbvalidationeventhandler?   没有Eclipse GUI的java Eclipse RCP应用程序   多线程在Java中使用线程安全集合时,处理并发问题的最佳方法是什么?   swing Java LWJGL和JOptionPane   java JPA:设置@JoinColumn(updateable=false)以避免OptimisticLockException   java GL VertexBuffer无效操作   java在Swing中实现后退/前进按钮   java在同一个JTable上创建两个表   类文件中的java不兼容魔术值1008813135   在Java中使用“@”的c#文字字符串?