重置 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)
我想要一个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)