Webboty
Deweloperzy | Cyberbotics spółka z ograniczoną odpowiedzialnością |
---|---|
Wersja stabilna | Webboty R2023a / 29 listopada 2022 r |
Magazyn | GitHub |
System operacyjny | Windowsa , Linuksa , macOS |
Typ | Symulator robotyki |
Licencja | Apache 2 |
Strona internetowa | Strona internetowa poświęcona cyberbotyce |
Webots to darmowy symulator robota 3D o otwartym kodzie źródłowym , wykorzystywany w przemyśle, edukacji i badaniach.
Projekt Webots rozpoczął się w 1996 roku, początkowo rozwijany przez dr. Oliviera Michela w Szwajcarskim Federalnym Instytucie Technologii ( EPFL ) w Lozannie w Szwajcarii , a następnie od 1998 roku przez firmę Cyberbotics Ltd. jako zastrzeżone oprogramowanie licencjonowane. Od grudnia 2018 roku jest udostępniany na wolnej i otwartej licencji Apache 2 .
Webots zawiera dużą kolekcję dowolnie modyfikowalnych modeli robotów, czujników, siłowników i obiektów. Ponadto możliwe jest również budowanie nowych modeli od podstaw lub importowanie ich z oprogramowania 3D CAD. Podczas projektowania modelu robota użytkownik określa zarówno graficzne, jak i fizyczne właściwości obiektów. Właściwości graficzne obejmują kształt, wymiary, położenie i orientację, kolory i teksturę obiektu. Właściwości fizyczne obejmują masę, współczynnik tarcia, a także stałe sprężystości i tłumienia . W oprogramowaniu występuje prosta dynamika płynów.
Webots wykorzystuje rozwidlenie ODE ( Open Dynamics Engine ) do wykrywania kolizji i symulacji dynamiki brył sztywnych. Biblioteka ODE umożliwia dokładne symulowanie właściwości fizycznych obiektów, takich jak prędkość, bezwładność i tarcie.
Webots zawiera zestaw czujników i siłowników często używanych w eksperymentach robotów, np. lidary, radary, czujniki zbliżeniowe , czujniki światła, czujniki dotyku, GPS , akcelerometry , kamery, nadajniki i odbiorniki, serwomotory (obrotowe i liniowe), czujnik położenia i siły , diody LED, chwytaki, żyroskopy, kompas, IMU itp.
Programy kontrolerów robotów można pisać poza Webotami w językach C , C++ , Python , ROS , Java i MATLAB przy użyciu prostego interfejsu API.
Webots oferuje możliwość robienia zrzutów ekranu i nagrywania symulacji. Światy Webbotów są przechowywane w wieloplatformowych plikach *.wbt, których format jest oparty na VRML . Można również importować i eksportować światy i obiekty Webota w formacie VRML. Użytkownicy mogą wchodzić w interakcje z działającą symulacją, przesuwając roboty i inne obiekty za pomocą myszy. Webboty mogą również przesyłać strumieniowo symulację do przeglądarek internetowych za pomocą WebGL .
interfejs sieciowy
Od 18 sierpnia 2017 r. witryna robotbenchmark.net oferuje bezpłatny dostęp do serii testów porównawczych robotyki opartych na symulacjach Webots za pośrednictwem interfejsu internetowego Webots. Instancje Webbotów działają w chmurze, a widoki 3D są wyświetlane w przeglądarce użytkownika. Za pomocą tego interfejsu internetowego użytkownicy mogą programować roboty w języku Python i uczyć się sterowania robotem krok po kroku.
Przykład programowania sterownika
To jest prosty przykład programowania kontrolera C/C++ z Webotami: trywialne zachowanie unikania kolizji. Początkowo robot jedzie do przodu, następnie po wykryciu przeszkody obraca się przez chwilę wokół siebie, po czym wznawia ruch do przodu.
#include <webots/robot.h> #include <webots/motor.h> #include <webots/distance_sensor.h> #define TIME_STEP 64 int main () { // inicjalizacja Webots wb_robot_init (); // pobierz uchwyt i włącz czujnik odległości WbDeviceTag ds = wb_robot_get_device ( "ds" ); wb_distance_sensor_enable ( ds , TIME_STEP ); // pobierz uchwyt i zainicjuj silniki
WbDeviceTag lewy_silnik = wb_robot_get_device ( "lewy_silnik" ); WbDeviceTag prawy_silnik = wb_robot_get_device ( "prawy_silnik" ); wb_motor_set_position ( lewy_silnik , NIESKOŃCZONOŚĆ ); wb_motor_set_position ( prawy_silnik , NIESKOŃCZONOŚĆ ); wb_motor_set_velocity ( lewy_silnik , 0.0 ); wb_motor_set_velocity (
prawy_silnik , 0.0 ); // pętla sterowania while ( 1 ) { // odczyt czujników double v = wb_distance_sensor_get_value ( ds ); // jeśli wykryto przeszkodę if ( v > 512 ) { // zawróć wb_motor_set_velocity ( left_motor , -600 ); wb_motor_set_velocity ( prawy_silnik , 600 );
0
} else { // idź prosto wb_motor_set_velocity ( left_motor , 600 ); wb_motor_set_velocity ( prawy_silnik , 600 ); } // uruchom krok symulacji wb_robot_step ( TIME_STEP ); } wb_robot_cleanup (); powrót ; }
Główne obszary zastosowania
- Szybkie prototypowanie robotów kołowych i nożnych
- Badania nad lokomocją robotów
- Inteligencja roju (symulacje wielu robotów)
- Sztuczne życie i robotyka ewolucyjna
- Symulacja zachowania adaptacyjnego
- Samorekonfigurująca się robotyka modułowa
- Eksperymentalne środowisko widzenia komputerowego
- Konkursy nauczania i programowania robotów
Dołączone modele robotów
Kompletna i aktualna lista znajduje się w podręczniku użytkownika Webbots.
- AIBO ERS7 i ERS210, Sony Corporation
- BIOLOID (pies), Robotis
- Boe-Bot
- DARwIn-OP, Robotis
- E-krążek
- Hemisson
- HOAP-2, Fujitsu Limited
- iCub , konsorcjum RobotCub
- iRobot Utwórz , iRobot
- Katana IPR, Neuronics AG
- Robot mobilny Khepera I, II, III, K-Team Corporation
- KHR-2HV, KHR-3HV, Kondo
- Koala, K-Team Corporation
- Lego Mindstorms (model RCX Rover)
- Magellana
- Nao V2, V3, Aldebaran Robotics
- MobileRobots Inc Pioneer 2, Pioneer 3-DX, Pioneer 3-AT
- Puma 560, Unimate
- Zwiadowca 2
- Krewetki III, BlueBotics SA
- Geodeta SRV-1, Surveyor Corporation
- youBot, KUKA