重置 Webots 位置传感器

Reset Webots Position Sensor

我想要一个webots机器人向前移动,然后以完全相同的方式顺时针旋转90度4次,绕一个正方形。机器人会完美地完成第一条腿,但我不知道如何在循环结束时将位置传感器重置为 0。有任何想法吗?

for i in range (0, 4):
    leftWheelSensor.getValue()
    rightWheelSensor.getValue()
    robot.step(800)
    leftWheel.setPosition(21.4)
    rightWheel.setPosition(21.4)
    leftWheel.setPosition(21.4 + 2.6)
    rightWheel.setPosition(21.4 - 2.6)

在这里,我应该可以将左右车轮传感器设置回零,但似乎无论如何也做不到。我尝试禁用并重新启用传感器,但没有用。这是关于 class...

的网络机器人信息

class 位置传感器(设备): 旋转、线性

def enable(self, samplingPeriod):
def disable(self):
def getSamplingPeriod(self):
def getValue(self):
def getType(self):
# ...

很遗憾,无法从 Webots API 重置位置传感器值。

但是,您可以轻松计算控制器中的偏移量,例如:

for i in range (0, 4):
    leftWheel.setPosition(21.4)
    rightWheel.setPosition(21.4)
    robot.step(800)
    leftOffset = leftWheelSensor.getValue()
    rightOffset = rightWheelSensor.getValue()
    leftWheel.setPosition(leftOffset + 2.6)
    rightWheel.setPosition(rightOffset - 2.6)
    robot.step(800)