Webboty

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 .

Symulacja Robotis-Op3in Webbots
Symulacja Pioneera 3-AT (Adept Mobile Robots) zamontowanego z SICK LMS 291 w Webotach
Symulacja Pioneera 3-DX (Adept Mobile Robots) w Webotach
Model symulacyjny robota PR2 w Webots.
Model symulacyjny robota Khepera III z chwytakiem w Webots.
Model symulacyjny robota-salamandry w Webots, który ma odkształcalną skórę.
Model symulacyjny robota Boston Dynamics Atlas w Webots.

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

Dołączone modele robotów

Kompletna i aktualna lista znajduje się w podręczniku użytkownika Webbots.

Obsługa kompilacji krzyżowej i zdalnego sterowania

Zobacz też

Linki zewnętrzne