基于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如何使用Ibatis在插入时返回ID(使用返回关键字)   java(org.hibernate.TransactionException)org。冬眠TransactionException:事务未成功启动   java小程序jwindow始终位于JNLP顶部   在Java中重新解析JSON对象?   java单击后将ListView数据移动到新屏幕   Mule ESB中的java WSA寻址特性   Java,对象编程:获取返回0值的方法   hibernate的Java通用问题,如何处理T get(K id)   java在使用超级CSV读取CSV时忽略引用   ssh使用Java远程运行命令   java如何向具体用户发送websocket消息?   在JAVA中,我可以在不指定的情况下使用条件运算符吗?