Roboruka
Knihovna pro obsluhu RoboRuky.
|
Funkce | |
bool | rkArmMoveTo (double x, double y) |
Pohnutí rukou na souřadnice X Y. ... | |
bool | rkArmPosition (double &outX, double &outY) |
Na kterých souřadnicích je teď konec ruky? ... | |
bool | rkArmIsGrabbing () |
Jsou prsty ruky rozevřené? ... | |
void | rkArmSetGrabbing (bool grab) |
Otevřít/zavřít prsty ruky. ... | |
void | rkArmSetServo (uint8_t id, float degrees) |
Pohnout servo na úhel. ... | |
float | rkArmGetServo (uint8_t id) |
Na jaké pozici je servo? ... | |
std::unique_ptr< rbjson::Object > | rkArmGetInfo () |
Informace o mechanice ruky. ... | |
Metody pro obsluhu samotné ruky.
std::unique_ptr< rbjson::Object > rkArmGetInfo | ( | ) |
Informace o mechanice ruky.
Tato funkce vrací JSON objekt který obsahuje informace o rozměrech ruky, limitech jejích kloubů a další. Je určena pro předání informací do webového rozhraní v aplikaci RBControl.
float rkArmGetServo | ( | uint8_t | id | ) |
Na jaké pozici je servo?
id | ID serva, 0 až 2 včetně. |
isnan
na kontrolu tohoto stavu. bool rkArmIsGrabbing | ( | ) |
Jsou prsty ruky rozevřené?
true
, pokud jsou prsty ruky momentálně plně rozevřeny. bool rkArmMoveTo | ( | double | x, |
double | y | ||
) |
Pohnutí rukou na souřadnice X Y.
Zadávají se cílové souřadnice pro konec ruky s čelistmi.
Souřadnice jsou počítany v milimetrech. Souřadnicový systém má počátek v ose prostředního serva (id 0), doprava od ní se počítá +X, nahoru -Y a dolů +Y. Při pohledu na robota z pravého boku:
Y- | /\ <---- Ruka | / \ | / \ | / \ | / C <-- Cílová pozice, "prsty rukou" |/ Osa prostředního ---> 0--------------------- X+ serva na robotovi. | | | | | Y+
Souřadnice nemusíte měřit ručně, jsou vidět v aplikaci RBController nahoře vlevo nad rukou. Vždy je to X a Y nad sebou, zleva první dvojice je pozice kurzoru (červené čárkované kolečko) a druhá je opravdová pozice, na kterou se ruka dostala.
Varování: ruka se nedokáže ze všech pozic dostat na všechny ostatní pozice, typicky musí "objet" tělo, aby nenarazila. Pokud pohyb nefunguje, zkuste zadat nějakou pozici, na kterou by se ruka měla dostat odkudkoliv (např. 145;-45) a až pak kýženou cílovou pozici.
x | Cílová souřadnice X |
y | Cílová souřadnice Y |
true
. Pokud ne, vrátí false
. bool rkArmPosition | ( | double & | outX, |
double & | outY | ||
) |
Na kterých souřadnicích je teď konec ruky?
Tato funkce má dvě výstupní hodnoty, proto jsou outX a outY výstupní proměnné, i když jsou předávány jako parametry.
outX | Do této proměnné bude zapsána souřadnice X. |
outY | Do této proměnné bude zapsána souřadnice Y. |
false
pokud se pozici nepodaří zjistit, jinak true
. void rkArmSetGrabbing | ( | bool | grab | ) |
Otevřít/zavřít prsty ruky.
grab | Pokud true , prsty ruky se sevřou, pokud false tak se uvolní. |
void rkArmSetServo | ( | uint8_t | id, |
float | degrees | ||
) |
Pohnout servo na úhel.
id | ID serva, 0 až 2 včetně. |
degrees | Úhel ve stupních, na který se má servo pohnout. |