Extras din proiect
Introducere
Unul din cele mai importante aspecte în evoluţia fiinţei umane este folosirea uneltelor care să simplifice munca fizică. În aceasta categorie se înscriu şi roboţii, ei ocupând totuşi o poziţie privilegiată datorită complexităţii lor.
Noţiunea de robot datează de peste 4 mii de ani. Omul şi-a imaginat dispozitive mecanizate inteligente care să preia o parte însemnata din efortul fizic depus. Astfel a construit jucării automate si mecanisme inteligente sau şi-a imaginat roboţii in desene, carti, filme "SF" etc.
Robotul mobil este un sistem complex care poate efectua diferite activităţi într-o varietate de situaţii specifice lumii reale. El este o combinaţie de dispozitive echipate cu servomotoare şi senzori (aflate sub controlul unui sistem ierarhic de calcul) ce operează într-un spaţiu real, marcat de o serie de proprietăţi fizice (de exemplu gravitaţia care influenţează mişcarea tuturor roboţilor care funcţionează pe pământ) şi care trebuie să planifice mişcările astfel încât robotul să poată realiza o sarcină în funcţie de starea iniţială a sistemului şi în funcţie de informaţia apriori existentă, legată de mediul de lucru.
Problemele specifice ce apar la roboţii mobili ar fi următoarele: evitarea impactului cu obiectele staţionare sau în mişcare, determinarea poziţiei şi orientării robotului pe teren, planificarea unei traiectorii optime de mişcare.
Roboţii mobili se clasifică astfel
• În funcţie de dimensiuni: macro, micro şi nano-roboţi.
• În funcţie de mediul în care acţionează: roboţi tereştri – se deplasează pe sol, roboţi subacvatici – în apă, roboţi zburători – în aer, roboţi extratereştri – pe solul altor planete sau în spaţiul cosmic;
• În funcţie de sistemul care le permite deplasarea în mediul în care acţionează există de exemplu pentru deplasarea pe sol
1. roboţi pe roţi sau şenile
2. roboţi păşitori: bipezi, patrupezi, hexapozi, miriapozi;
3. roboţi târâtori: care imită mişcarea unui şarpe, care imită mişcarea unei
râme etc.;
4. roboţi săritori, care imită deplasarea broaştelor, cangurilor etc.;
5. roboţi de formă sferică (se deplasează prin rostogolire) etc.
Strucura unui robot mobil
Structura roboţilor mobili corespunde arhitecturii generale a roboţilor, având două părţi:
- Structura mecanică, respectiv manipulatorul, care determină performanţele tehnice;
- Structura electronică, respectiv de comandă-control, care condiţionează calitatea performanţelor.
Pozitia Curenta
Calculul pozitiei curente in functie de pozitia anterioara in comparatie cu ceea ce citeste robotul prin comanda robot.getX().
Ecuatiile unui robot in cinematic:
#include "Aria.h"
int main(int argc, char **argv)
{
Aria::init();
ArRobot robot;
ArArgumentParser parser(&argc, argv);
parser.loadDefaultArguments();
float xant=0,xact=0;
float T=0.05;
ArLog::log(ArLog::Terse, "ATENTIE: acest program nu foloseste senzorii pentru detectarea obstacolelor, ROBOTUL se va lovi de orice obstacol care va aparea in raza lui de actiune! Pentru a lucra in conditii optime trebuie sa existe un spatiu liber de cel putin 3 metri de jur imprejur-ul robotului.");
ArRobotConnector robotConnector(&parser, &robot);
if(!robotConnector.connectRobot())
{
ArLog::log(ArLog::Terse, "Nu se poate conecta la robot.");
if(parser.checkHelpAndWarnUnparsed())
{
Aria::logOptions();
Aria::exit(1);
}
}
if (!Aria::parseArgs())
{
Aria::logOptions();
Aria::shutdown();
return 1;
}
ArLog::log(ArLog::Normal, "Conectat.");
robot.runAsync(true);
robot.lock();
ArLog::log(ArLog::Normal, "Pozitia initiala = (%.2f,%.2f,%.2f), Viteza liniara = %.2f, Viteza unghiulara = %.2f, Tens. baterie = %.2fV",
robot.getX(), robot.getY(), robot.getTh(), robot.getVel(), robot.getRotVel(), robot.getBatteryVoltage());
robot.unlock();
ArLog::log(ArLog::Normal, "Robotul va porni dupa 3 secunde...");
ArUtil::sleep(3000);
robot.enableMotors();
robot.lock();
robot.setVel(200);
robot.unlock();
for (int i=0;i<110;i++)
{
xact=T*robot.getVel()*cos(robot.getTh())+xant;
ArLog::log(ArLog::Normal,"pozitie actuala pe x=%.2f t %.2f",xact, robot.getX());
xant=xact;
ArUtil::sleep(50);
}
robot.lock();
ArLog::log(ArLog::Normal, "Pozitia finala = (%.2f,%.2f,%.2f), Viteza iniara = %.2f, Viteza unghiulara = %.2f, Tens. baterie = %.2fV",
robot.getX(), robot.getY(), robot.getTh(), robot.getVel(), robot.getRotVel(), robot.getBatteryVoltage());
robot.unlock();
ArLog::log(ArLog::Normal, "Sfarsit executie robot...");
robot.stopRunning();
robot.waitForRunExit();
// exit
ArLog::log(ArLog::Normal, "Iesire.");
return 0;
}
Preview document
Conținut arhivă zip
- Modelarea si Identificarea Robotilor Mobili si a Vehiculelor Autonome.ppt
- Modelarea si Identificarea Robotilor Mobili si a Vehiculelor Autonome.doc