Roboruka
Knihovna pro obsluhu RoboRuky.
Funkce
Ruka

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. ...
 

Detailní popis

Metody pro obsluhu samotné ruky.

Dokumentace funkcí

◆ rkArmGetInfo()

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.

Návratová hodnota
JSON objekt obsahující informace o ruce.

◆ rkArmGetServo()

float rkArmGetServo ( uint8_t  id)

Na jaké pozici je servo?

Parametry
idID serva, 0 až 2 včetně.
Návratová hodnota
Vrací úhel ve stupních, nebo NaN pokud se úhel nepodaří zjistit. Použijte funkci isnan na kontrolu tohoto stavu.

◆ rkArmIsGrabbing()

bool rkArmIsGrabbing ( )

Jsou prsty ruky rozevřené?

Návratová hodnota
Vrátí true, pokud jsou prsty ruky momentálně plně rozevřeny.

◆ rkArmMoveTo()

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.

Parametry
xCílová souřadnice X
yCílová souřadnice Y
Návratová hodnota
Pokud se podařilo najít řešení a ruka se pohnula, vrátí funkce true. Pokud ne, vrátí false.

◆ rkArmPosition()

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.

Parametry
outXDo této proměnné bude zapsána souřadnice X.
outYDo této proměnné bude zapsána souřadnice Y.
Návratová hodnota
Vrátí false pokud se pozici nepodaří zjistit, jinak true.

◆ rkArmSetGrabbing()

void rkArmSetGrabbing ( bool  grab)

Otevřít/zavřít prsty ruky.

Parametry
grabPokud true, prsty ruky se sevřou, pokud false tak se uvolní.

◆ rkArmSetServo()

void rkArmSetServo ( uint8_t  id,
float  degrees 
)

Pohnout servo na úhel.

Parametry
idID serva, 0 až 2 včetně.
degreesÚhel ve stupních, na který se má servo pohnout.