Электронная шайба Webots поворачивается на 90 градусов

Как я могу заставить робота с электронной шайбой поворачиваться на 90 градусов в определенном направлении в Webots? Я попытался использовать wb_robot_step(TIME_STEP), чтобы заставить робота вращаться в течение определенного времени, но не совсем понял.

Я также читал где-то в Интернете, что, возможно, я мог бы использовать модуль InertialUnit, чтобы получить положение робота по оси y и повернуть его до тех пор, пока угол не будет правильным, но я также не нашел никаких примеров по этому поводу.

Кто-нибудь может помочь?


person ROBlackSnail    schedule 23.12.2019    source источник


Ответы (2)


Это может помочь вам:

bool turn90ccw();   // Turn robot 90 degrees ccw in place

Просто вызовите эту функцию где угодно.

person Jawad Adil    schedule 23.12.2019
comment
Я получил сообщение об ошибке: undefined reference to "turn90ccw" Является ли эта функция частью библиотеки, которую мне нужно импортировать? - person ROBlackSnail; 23.12.2019
comment
Привет, @ROBlackSnail! Извините за опоздание. Какие библиотеки вы используете в настоящее время? - person Jawad Adil; 24.12.2019
comment
Здесь вы можете увидеть рабочий пример: Веб-боты Github - person Jawad Adil; 24.12.2019
comment
Я не совсем понял. Я смирился с тем, что какое-то время поворачиваю робота. В любом случае спасибо за уделенное время! - person ROBlackSnail; 26.12.2019

Одно из простых решений - получить текущее положение каждого колеса с помощью API датчиков положения (https://cyberbotics.com/doc/reference/positionsensor), а затем, зная радиус колес и расстояние между колесами, вы можете вычислить необходимое вращение каждого колеса (которое вы можете измерить, снова используя датчики положения).

Использование инерционного блока действительно является решением, используя API инерционного блока (https://cyberbotics.com/doc/reference/inertialunit) вы можете узнать текущую ориентацию робота, затем вы можете вращать его, пока ориентация не изменится на 90 градусов.

person David Mansolino    schedule 03.01.2020