Difference between revisions of "Implementácia ramena do Robotického laboratória"
From RoboWiki
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: | |
− | + | # hore a dole | |
− | + | # 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. | |
− | + | * 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: | |
− | + | * 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 == | == 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.
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:
- hore a dole
- 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
- 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.
- Robotnacka s otvorenym ramenom sputenym uplne dole.
- Robotnacka s otvorenym ramenom vytiahnutym uplne hore
- Robotnacka so zatvorenym ramenom spustenym uplne dole