pygazebo:如何获得当前的关节角度

时间:2015-10-30 17:48:22

标签: python

我想使用pygazebo获得关节的当前关节角度。我可以使用以下方法在关节上设置力:Controlling a joint 而现在我想做一个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:assert self._local_ready.is_set()。我不知道我应该在manager.subscribe字段中放置什么。我认为这是我的错误所在。

THX。

1 个答案:

答案 0 :(得分:0)

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

据我所见,你需要打电话。

manager.start()

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

我希望它有所帮助。