Автономный автомобиль в Webots | |
Разработчик (и) | Cyberbotics Ltd. |
---|---|
Стабильная версия | Webots R2020b, редакция 1/2 сентября 2020 г. |
Репозиторий | GitHub |
Операционная система | Windows 10, 64-разрядная версия Linux, Mac OS X 10.14, 10.13 |
Тип | Симулятор робототехники |
Лицензия | Apache 2 |
Веб-сайт | Веб-страница Cyberbotics |
Webots - это бесплатный 3D симулятор робота с открытым исходным кодом, используемый в промышленности, образовании и исследованиях.
Проект Webots стартовал в 1996 году и первоначально был разработан доктором Оливье Мишелем из Швейцарского федерального технологического института (EPFL ) в Лозанне, Швейцария, а с 1998 года - Cyberbotics Ltd. в качестве проприетарного лицензионного программного обеспечения. С декабря 2018 года он выпускается под бесплатной лицензией Apache 2 с открытым исходным кодом..
Webots включает большую коллекцию свободно изменяемых моделей роботов, датчиков, исполнительных механизмов и объектов. Кроме того, также можно создавать новые модели с нуля или импортировать их из программного обеспечения 3D CAD. При разработке модели робота пользователь указывает как графические, так и физические свойства объектов. Графические свойства включают форму, размеры, положение и ориентацию, цвета и текстуру объекта. К физическим свойствам относятся масса, коэффициент трения, а также постоянные пружины и демпфирования. В программе присутствует простая гидродинамика.
Webots использует ответвление ODE (Open Dynamics Engine ) для обнаружения столкновений и моделирования динамики твердого тела. Библиотека ODE позволяет точно моделировать физические свойства объектов, такие как скорость, инерция и трение.
Webots включает в себя набор датчиков и исполнительных механизмов, часто используемых в роботизированных экспериментах, например лидары, радары, датчики приближения, датчики света, сенсорные датчики, GPS, акселерометры, камеры, излучатели и приемники, серводвигатели (вращательные и линейные), положение и датчик силы, светодиоды, захваты, гироскопы, компас, IMU и т. д.
Программы контроллера робота могут быть написаны вне Webots на C, C ++, Python, ROS, Java и MATLAB с использованием простого API.
Webots предлагает возможность делать снимки экрана и записывать имитационные фильмы. Миры Webots хранятся в кросс-платформенных файлах.wbt, формат которых основан на языке VRML. Также можно импортировать и экспортировать миры или объекты Webots в формате VRML. Пользователи могут взаимодействовать с запущенной симуляцией в любое время, то есть можно перемещать роботов и другой объект с помощью мыши во время симуляции. Webot может транслировать моделирование в веб-браузеры с помощью WebGL.
Simulation of a Robotis-Op3in Webots Simulation of Pioneer 3-AT (Adept Mobile Robots), установленного с SICK LMS 291 в Webots Simulation Pioneer 3-AT (Adept Mobile Robots) в Webots Имитационная модель робота PR2 в Webots. Имитационная модель робота Khepera III с захватом в Webots. Имитационная модель робота Робот саламандра в Webots с деформируемой кожей. Имитационная модель робота Boston Dynamics Atlas в Webots.С 18 августа 2017 г., веб-сайт robotbenchmark.net предлагает бесплатный доступ к серии тестов робототехники, основанных на моделировании Webots, через веб-интерфейс Webots. Экземпляры Webot работают в облаке, а 3D-виды отображаются в браузере пользователя. С помощью этого веб-интерфейса пользователи могут программировать роботов на Python и изучать управление роботами с помощью пошаговой процедуры.
Это простой пример программирования контроллера C / C ++ с помощью Webots: тривиальное поведение предотвращения столкновений. Сначала робот движется вперед, затем при обнаружении препятствия он некоторое время вращается вокруг себя, а затем возобновляет движение вперед.
#include#include #include #define TIME_STEP 64 int main () {// инициализировать Webots wb_robot_init (); // получить дескриптор и включить датчик расстояния WbDeviceTag ds = wb_robot_get_device ("ds"); wb_distance_sensor_enable (ds, TIME_STEP); // цикл управления while (1) {// считываем датчики double v = wb_distance_sensor_get_value (ds); // если обнаружено препятствие if (v>512) {// развернуться wb_differential_wheels_set_speed (-600, 600); } else {// идем прямо wb_differential_wheels_set_speed (600, 600); } // запускаем шаг моделирования wb_robot_step (TIME_STEP); } return 0; }
Полный и актуальный список приведен в руководстве пользователя Webots.
Викискладе есть медиафайлы, связанные с Webots. |