基于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文档。在
- 项目
标签: