Difference between revisions of "Implementácia ramena do Robotického laboratória"
From RoboWiki
m (→Implementácia) |
m (→Implementácia) |
||
Line 20: | Line 20: | ||
Pre implementáciu ramena bolo potrebné upraviť Nasledovné moduly: | 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. | * 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 { | enum virtual_robot_gripper_movment { | ||
GRIPPER_MOVE_NONE, // not moving (gripper is idle) | GRIPPER_MOVE_NONE, // not moving (gripper is idle) |
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