Google+

piątek, 22 marca 2013

1000111 (Symulatory- Gazebo)

    Symulator Gazebo został stworzony w 2002 roku, jednak jego szybki rozwój rozpoczął się dopiero 7 lat później, kiedy to wykorzystano go do stworzenia modelu robota PR2 firmy Willow Garage oraz zintegrowano program z bibliotekami Robot Operating System (ROS). Dzięki temu szybko stał się on głównym narzędziem używanym do tworzenia symulacji przez społeczność ROS. W kwietniu 2012 roku wraz z zapowiedzą Robotics Challenge, DARPA ogłosiła, że Gazebo będzie narzędziem służącym do wykonywania symulacji robotów konkursowych, a jego rozwojem zajmie się nowo powstała Open Source Robotics Foundation. I już macie powód, dla którego o tym programie piszę w pierwszej kolejności :)


    Gazebo jest bezpłatną platformą działającą w systemie operacyjnym Linux, służącą do symulowania robotów w trójwymiarowym świecie. Jej możliwości pozwalają na modelowanie równocześnie kilku robotów, wraz z czujnikami, których odczyty zmieniają się w czasie rzeczywistym, oraz środowiskiem, w którym się znajdują. Dokładne odwzorowanie dynamiki ciała stałego jest zapewnione przez silnik fizyczny ODE (Open Dynamics Engine), dzięki któremu w Gazebo możliwa jest między innymi detekcja kolizji, natomiast za realistyczny wygląd modelowanych przedmiotów w środowisku trójwymiarowym odpowiada silnik graficzny OGRE (Object-Oriented Graphics Rendering Engine).

Każdą symulację tworzoną w środowisku Gazebo można podzielić na dwie części:
  • World - plik Simulation Description Format (SDF) napisany w języku XML definiujący środowisko i zawierający informację o obiektach, które się w nim znajdują.
  • Plugin - klasa w języku C++ pozwalający uzyskać kontrolę nad wykonywaniem symulacji w Gazebo. Istnieje pięć typów wtyczek: World, Model, Sensor, Visual oraz System. Każda nowo tworzona wtyczka musi dziedziczyć po jednym z głównych typów, w zależności od tego, którą częścią programu ma sterować.
Przykładowe okno programu

    Do zabawy z Gazebo możemy wykorzystać jeden z istniejących modeli robotów. Są to między innymi PR2 (Willow Garage), ARM Robot (DARPA), youBot (KUKA) i ATLAS (DARPA). Dla osób, które chcą stworzyć kontrukcję od podstaw są dwie opcje: korzystanie z bardzo prostego kreatora (jeśli prostopadłościany i walce brzmią satysfakcjonująco) albo importowanie kształtów stworzonych w Blenderze lub Sketchup'ie.


Krótkie podsumowanie:

+udostępniany na licencji Apache 2.0 (może być wykorzystywany bezpłatnie zarówno na potrzeby wolnego oprogramowania jak i rozwiązań komercyjnych)
+symulacja w 3D
+możliwość równoczesnego symulowania wielu robotów
+łatwa integracja z ROS
+możliwość korzystania z Player (dostarcza on prosty interfejs umożliwiający dostęp do czujników i silników urządzenia za pomocą sieci IP)
+oficjalna platforma DARPA Robotic Challenge (czyli dużo pieniążków na rozwój)
+możliwość importowania kształtów z Sketchupa i Blendera
+duża ilość czujników (m. in. czujniki laserowe, siły, momentu, Kinect i kamera)
+liczna i aktywna społeczność użytkowników

-działa tylko w systemie operacyjnym Ubuntu Linux (a on nie działa z moją kartą graficzną :( )
-program lubił się od czasu do czasu posypać (to mogło się już zmienić, pracowałam na nim w styczniu)
-mała liczba (brak?) książek ułatwiających zagłębienie się w temat


Brak komentarzy:

Prześlij komentarz