基于Python的感知控制理论

pct的Python项目详细描述


知觉控制理论

A python library for creating perceptual control hierarchies.

通过这个库,您可以创建和运行简单或复杂的感知控制系统层次结构,也可以利用Python平台及其丰富的包集的强大功能。在

在这个库的上下文中,由感知、参考、比较器和输出函数组成的单个控制系统称为节点。其中的功能可以由用户配置。在

层次结构由一组节点定义。在

安装

pip install pct

进口

导入库功能的示例。在

import pct as p

from pct.hierarchy import Hierarchy

from pct import *

如何使用

从PCT库导入模块。在

from pct.nodes import PCTNode
^{pr2}$

在本例中,定义一个世界模型。如果使用真实世界,或者使用OpenAI Gym这样的模拟,则不需要这样做。在

def velocity_model(velocity,  force , mass):
    velocity = velocity + force / mass
    return velocity

# World value
mass = 50

创建一个PCTNode,一个包含参考、感知、比较器和输出功能的控制系统单元。引用的默认值为1。设置了历史标志后,每次迭代的数据都会被记录下来,以便以后绘制。在

pctnode = PCTNode(history=True)

反复调用节点以控制速度感知。设置了详细标志后,将打印控制值。在这种情况下,打印的值是迭代次数、速度参考、感知、误差和(力)输出。在

for i in range(40):
    print(i, end=" ")
    force = pctnode(verbose=True)
    velocity = velocity_model(pctnode.get_perception_value(), force, mass)
    pctnode.set_perception_value(velocity)

使用绘图库打印数据。图中显示了控制感知以匹配参考值。在

importplotly.graph_objectsasgofig=go.Figure(layout_title_text="Velocity Goal")fig.add_trace(go.Scatter(y=pctnode.history.data['refcoll']['constant'],name="ref"))fig.add_trace(go.Scatter(y=pctnode.history.data['percoll']['variable'],name="perc"))

以下代码仅用于显示由上述代码生成的图形的图像。在

from IPython.display import Image
Image(url='http://www.perceptualrobots.com/wp-content/uploads/2020/08/pct_node_plot.png') 

这是一个使用PCT库的非常基本的示例。有关更高级的功能,请参阅位于https://perceptualrobots.github.io/pct/的API文档。在

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

推荐PyPI第三方库


热门话题
java有没有工具可以将zephyr转换为velocity模板?   java在安卓 studio中从JSON响应中获取值   jvm如何在Java中设计一个好的permgen空间字符串?   java如何防止Rest webservice使用被盗令牌进行身份验证   java无法遍历列表JSTL   找不到用于ResourceServerTokenServices的java Bean SpringSecurityOauth2   java子字符串替换问题   爪哇玻璃鱼3。十、 以编程方式处理任意HTTPSession的终止   java如何检查输入是否为整数,并在最后添加一个命令来重新启动while循环?   引发java ical4j 1.0.6不可解析日期异常   Java等价于Delphi的DBCtrlGrid?   如果发生错误,java将查找下一个预期标记ANTLR 3   java自打开应用程序(创建锁屏)   java为什么netty有自己的ConcurrentHashMap?   Gradle任务中的java拉取和运行依赖项   继承与Java继承的混淆   java使用shell脚本中的版本执行jar   java我无法让Sqlite数据库与带有Maven的JavaFX应用程序IDE Eclipse包正确通信   java控制台日志未通过org打印。阿帕奇。hadoop。mapreduce。作业的waitForCompletion(true)方法   JAVAlang.NoSuchMethodError:apachestorm螺栓中的spring getrequest