Difference between revisions of "Implementácia ramena do Robotického laboratória"

From RoboWiki
Jump to: navigation, search
m (Implementácia)
m (Implementácia)
 
(7 intermediate revisions by the same user not shown)
Line 10: Line 10:
  
 
== Špecifikácia ==
 
== Špecifikácia ==
# Cieľom je implementovať funkcionalitu ramien do Robotického laboratória,konkrétne pohyb ramena smerom hore a dole, a roztváranie a zatváranie ramena. Rameno bude mať 2 druhy pohybov:
+
* Cieľom je implementovať funkcionalitu ramien do Robotického laboratória,konkrétne pohyb ramena smerom hore a dole, a roztváranie a zatváranie ramena. Rameno bude mať 2 druhy pohybov:
* hore a dole
+
# hore a dole
* otvoriť a zatvoriť
+
# otvoriť a zatvoriť
 
každý z týchto pohybov sa bude môcť vykonávať o 1 jednotku, resp. na maximálnu úroveň otvorenia, resp. spustenia.
 
každý z týchto pohybov sa bude môcť vykonávať o 1 jednotku, resp. na maximálnu úroveň otvorenia, resp. spustenia.
# Zabezpečiť prenos informacií o stave ramena pre zobrazovacie moduly, konkrétne doplniť správy pre moduly o informácie o stave ramena.
+
* Zabezpečiť prenos informacií o stave ramena pre zobrazovacie moduly, konkrétne doplniť správy pre moduly o informácie o stave ramena.
# Zobrazovať rameno podľa aktuálneho stavu, upraviť a doplniť zobrazovacie moduly aby boli schopné príjmať upravené správy, získať z nich potrebné informácie pre zobrazenie ramena a nakoniec ho vykresliť.
+
* Zobrazovať rameno podľa aktuálneho stavu, upraviť a doplniť zobrazovacie moduly aby boli schopné príjmať upravené správy, získať z nich potrebné informácie pre zobrazenie ramena a nakoniec ho vykresliť.
  
 
== Implementácia ==
 
== Implementácia ==
* Pre implementáciu ramena bolo potrebné upraviť Nasledovné moduly:
+
Pre implementáciu ramena bolo potrebné upraviť Nasledovné moduly:
# Modul Robot.h, doplnené boli premenné hovoriace o výske a roztvorenosti ramena, o stave ramena, v ktorom sa prave nachadza
+
* Modul Robot.h, kde boli doplnené premenné hovoriace o výške a roztvorenosti ramena, o stave ramena, v ktorom sa práve nachádza, a enumerovany typ so všetkými možnými stavmi ramena.
<math>int(){dasas;}</math>
+
int g_actualWidth;
+
int g_actualHeight;
# Takisto enumerovany typ pre popis aktualneho stavu ramena.
+
int g_pointOfGrip;
# robot.cpp pridana funkcia obsluhujaca rameno na zaklade prijateho packetu - packet s pismenom w,a,s,d, znamena....
+
int g_carryID;
# pri kazdej zmene stavu ramena je volana funkcia na odoslanie spravy pre zobrazujuce moduly  
+
int g_state; // movement type (GRIPPER_MOVE_* from the enum gripper movement)
# V module Robot.cpp bola doplnena funkcia odosielajuca paket s informaciami o aktualnom stave Robotnacky (napr pre zobrazovaci modul) a  
+
int g_destination;
# Do zobrazovacieho modulu boli doplnene funkcie pre vykreslovanie
+
enum virtual_robot_gripper_movment {
 +
          GRIPPER_MOVE_NONE,  // not moving (gripper is idle)
 +
          GRIPPER_MOVE_UP,  // executing a positional command
 +
          GRIPPER_MOVE_DOWN,
 +
          GRIPPER_MOVE_OPENING,
 +
          GRIPPER_MOVE_CLOSING
 +
  };
 +
* Robot.cpp, kde bola pridaná funkcia, obsluhujúca rameno. Na základe prijatého paketu rozhodne o ďalšom stave ramena, prípadne o počte jednotiek o koľko bude rameno roztvorené/pritvorené, alebo zodvihnuté/položené. Funkcia pri každej zmene stavu volá metódu na odoslanie správy pre zobratujúce moduly. Táto bol tiež doplnená o informacie o stave ramena
 +
* Viewer.java, je zobrazovací modul, ktorý príjma správy o pohybe Robotnačky. Bol upravený aby príjmal spravy, v ktorých sa už nachádza informácia o výške a roztvorení ramena. Samotné rameno je zobrazené pomocou dvoch elíps, roztvorenie ramena určuje ich vzájomnú vzdialenosť. Červená zložka RGB farby ramena je určena výškou ramena, zelena jeho roztvorením a modrá oboma premennými.
  
 
== Demo ==
 
== Demo ==
Line 33: Line 41:
 
#Robotnacka s otvorenym ramenom vytiahnutym uplne hore[[Image: OpenUP.jpg Robotnacka s otvorenym ramenom uplne hore ]]
 
#Robotnacka s otvorenym ramenom vytiahnutym uplne hore[[Image: OpenUP.jpg Robotnacka s otvorenym ramenom uplne hore ]]
 
#Robotnacka so zatvorenym ramenom spustenym uplne dole[[Image: CloseDown.jpg Robotnacka so zavretym ramenom uplne hore ]]
 
#Robotnacka so zatvorenym ramenom spustenym uplne dole[[Image: CloseDown.jpg Robotnacka so zavretym ramenom uplne hore ]]
 +
 +
== Súvisiace odkazy ==
 +
[[Gripper_Functionality_for_Remotely-Operated_Robotics_Laboratory|see English version]]
 
__notoc__
 
__notoc__

Latest revision as of 20:02, 22 June 2009

Cieľ

Našim cieľom bolo implementovať rameno pre Robotické Laboratórium, tak aby bola Robotnačka schopná uchopiť, preniesť a položiť rôzne objekty.

Robotnacka.jpg

Tím

Michal Vince

Špecifikácia

  • Cieľom je implementovať funkcionalitu ramien do Robotického laboratória,konkrétne pohyb ramena smerom hore a dole, a roztváranie a zatváranie ramena. Rameno bude mať 2 druhy pohybov:
  1. hore a dole
  2. otvoriť a zatvoriť

každý z týchto pohybov sa bude môcť vykonávať o 1 jednotku, resp. na maximálnu úroveň otvorenia, resp. spustenia.

  • Zabezpečiť prenos informacií o stave ramena pre zobrazovacie moduly, konkrétne doplniť správy pre moduly o informácie o stave ramena.
  • Zobrazovať rameno podľa aktuálneho stavu, upraviť a doplniť zobrazovacie moduly aby boli schopné príjmať upravené správy, získať z nich potrebné informácie pre zobrazenie ramena a nakoniec ho vykresliť.

Implementácia

Pre implementáciu ramena bolo potrebné upraviť Nasledovné moduly:

  • Modul Robot.h, kde boli doplnené premenné hovoriace o výške a roztvorenosti ramena, o stave ramena, v ktorom sa práve nachádza, a enumerovany typ so všetkými možnými stavmi ramena.
int g_actualWidth;
int g_actualHeight;
int g_pointOfGrip;
int g_carryID;
int g_state; // movement type (GRIPPER_MOVE_* from the enum gripper movement)
int g_destination;
enum virtual_robot_gripper_movment {
         GRIPPER_MOVE_NONE,  // not moving (gripper is idle)
         GRIPPER_MOVE_UP,   // executing a positional command
         GRIPPER_MOVE_DOWN, 
         GRIPPER_MOVE_OPENING, 
         GRIPPER_MOVE_CLOSING
 }; 	
  • Robot.cpp, kde bola pridaná funkcia, obsluhujúca rameno. Na základe prijatého paketu rozhodne o ďalšom stave ramena, prípadne o počte jednotiek o koľko bude rameno roztvorené/pritvorené, alebo zodvihnuté/položené. Funkcia pri každej zmene stavu volá metódu na odoslanie správy pre zobratujúce moduly. Táto bol tiež doplnená o informacie o stave ramena
  • Viewer.java, je zobrazovací modul, ktorý príjma správy o pohybe Robotnačky. Bol upravený aby príjmal spravy, v ktorých sa už nachádza informácia o výške a roztvorení ramena. Samotné rameno je zobrazené pomocou dvoch elíps, roztvorenie ramena určuje ich vzájomnú vzdialenosť. Červená zložka RGB farby ramena je určena výškou ramena, zelena jeho roztvorením a modrá oboma premennými.

Demo

  1. Ovladaci panel,tlacitko Connect sluzi na nadviazanie spojenia s Robotnackou. Vyznacene tlacitka sluzia na obsluhu ramena. Pri zapnutom prepinaci A bit sa rameno pohybuje o 1 jednotku.ControlPanel.jpg Kontrolny panel aplikacie
  2. Robotnacka s otvorenym ramenom sputenym uplne dole.OpenDown.jpg Robotnacka s otvorenym ramenom uplne dole
  3. Robotnacka s otvorenym ramenom vytiahnutym uplne horeOpenUP.jpg Robotnacka s otvorenym ramenom uplne hore
  4. Robotnacka so zatvorenym ramenom spustenym uplne doleCloseDown.jpg Robotnacka so zavretym ramenom uplne hore

Súvisiace odkazy

see English version