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

From RoboWiki
Jump to: navigation, search
m (Goal)
m (Implementácia)
 
(15 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
[[Image:robotnacka.jpg]]
 
[[Image:robotnacka.jpg]]
  
== Team ==
+
== Tím ==
 
Michal Vince
 
Michal Vince
  
== Specification ==
+
== Špecifikácia ==
# cielom je implementovat funkcionalitu ramien do robotickeho laboratoria,konkretne pohyb ramena hore a dole, a roztvaranie a zatvaranie ramena.
+
* 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:
(aky pohyb rameno prave vykonava - pohyb uplne hore, pohyb uplne dole, uplne roztvorit, uplne zatvorit, posun hore o 1 jednotku, posun dole o 1 jednotku, otvorenie ramena o jednu jednotku, privretie ramena o 1 jednotku)
+
# hore a dole
# zabezpecit prenos informacii o stave ramena pre zobrazovacie moduly, konkretne doplnit spravy pre moduly o informacie o stave ramena.
+
# otvoriť a zatvoriť
# zobrazovat rameno podla aktualneho stavu, upravit a doplnit zobrazovacie moduly aby boli schopne prijmat upravene spravy, ziskat z nich potrebne informacie pre zobrazenie ramena a nakoniec ho vykreslit
+
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 ==
== Implementation ==
+
Pre implementáciu ramena bolo potrebné upraviť Nasledovné moduly:
# xc
+
* 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.
# Do modulu Robot.h boli pridane potrebne premenne pre ulozenie stavu ramena, t.j. informacie o jeho vyske a jeho roztvoreni. Pridana bola premenna pre uchovavanie ci a ktoru prekazku rameno zviera.
+
int g_actualWidth;
# Takisto enumerovany typ pre popis aktualneho stavu ramena.
+
int g_actualHeight;
# robot.cpp pridana funkcia obsluhujaca rameno na zaklade prijateho packetu - packet s pismenom w,a,s,d, znamena....
+
int g_pointOfGrip;
# pri kazdej zmene stavu ramena je volana funkcia na odoslanie spravy pre zobrazujuce moduly  
+
int g_carryID;
# V module Robot.cpp bola doplnena funkcia odosielajuca paket s informaciami o aktualnom stave Robotnacky (napr pre zobrazovaci modul) a  
+
int g_state; // movement type (GRIPPER_MOVE_* from the enum gripper movement)
# Do zobrazovacieho modulu boli doplnene funkcie pre vykreslovanie
+
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 ==
 
== Demo ==
Line 30: 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