Python pygazebo:如何获取当前关节角度

Python pygazebo:如何获取当前关节角度,python,Python,我想使用pygazebo获得关节的当前关节角度。我可以使用以下方法设置关节上的力: 现在我想做一个PID控制器 我这样做: import pygazebo import pygazebo.msg.joint_cmd_pb2 from pygazebo.msg.gz_string_pb2 import GzString import trollius from trollius import From @trollius.coroutine def callback(data):

我想使用pygazebo获得关节的当前关节角度。我可以使用以下方法设置关节上的力: 现在我想做一个PID控制器

我这样做:

import pygazebo
import pygazebo.msg.joint_cmd_pb2
from pygazebo.msg.gz_string_pb2 import GzString

import trollius
from trollius import From

@trollius.coroutine


def callback(data):
    message = pygazebo.msg.gz_string_pb2.GzString.FromString(data)
    print('Received message:', message.data)


manager = pygazebo.Manager(('localhost', 11345))
manager.subscribe('/gazebo/default/my_robot/joint',
                  'gazebo.msgs.GzString',
                  callback)
但它给了我一个AssertionError:assertself.\u local\u ready.is\u set()。我不理解我应该在manager.subscribe字段中输入什么。我想这就是我的错误所在


Thx.

我只是浏览了pygazebo.py中的代码,并向后跟踪调用。管理器创建两个连接对象,一个主对象和一个服务器。我猜它使用主连接连接到gazebo服务器,服务器连接绑定到它自己的端口以接收传入的请求

据我所知,你需要打电话

manager.start()
在调用subscribe方法之前。这将使manager连接到gazebo服务器并绑定到本地端口以接收输入数据

我希望有帮助