Сбросить Датчик положения Webots - PullRequest
1 голос
/ 11 апреля 2020

Я хочу, чтобы робот-веб-робот двигался вперед, а затем поворачивался на 90 градусов по часовой стрелке точно таким же образом 4 раза до go вокруг квадрата. Робот отлично справится с первым этапом, но я не могу понять, как сбросить датчик положения на 0 в конце l oop. Любые идеи?

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)

Прямо здесь я смогу установить датчик левого и правого колеса на ноль, но, похоже, в любом случае это сделать не удастся. Я пытался отключить и снова включить датчик, но это не сработало. Вот информация о веб-ботах о классе ...

Класс PositionSensor (Устройство): ROTATIONAL, LINEAR

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

1 Ответ

1 голос
/ 14 апреля 2020

К сожалению, из API Webots невозможно сбросить значение датчика положения.

Однако вы можете легко вычислить смещение в ваших контроллерах, например:

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)
...