Simulatsioonitarkvara
From Intelligent Materials and Systems Lab
Revision as of 16:48, 24 April 2011 by Siimsundla (talk | contribs)
NAOSim
Tarkvara versioon: 1.10.3
Hea:
- Küllaltki täpne tasakaalu simulatsioon.
- Kaamera
Halb:
- Ei arvestata liigeste jäikust ning mootorite mehaanilist võimekust.
- Ei simuleeri sonareid
Webbots
Tarkvara versioon: PRO 6.3.4 Paigaldusjuhend: http://www.cyberbotics.com/nao/
Hea:
- Kaamera
- Sonarid
- Arvestatakse mootorite võimekusega
- Puutesensorid
Halb:
- Tasakaalumoodul NaoQi versioon 1.10.10 sisuliselt ei tööta. Tegevused, mis NAOSim ja reaalse NAO puhul töötavad viivad siin kukkumiseni (Tai-chi demoplokk Choregraphes). Pärast kukkumist püstitõusmise käivitamine teeb kõhuli asendist liigutusi, mida peaks tegema selili asendist ja vastupidi (üleval ja all on vahetuses).
Viimase probleemi tõttu out-of-the-box kasutuskõlbmatu.
Mõõdetud akseleromeetrite väljund NAO seisvas püstises asendis kinnitab, et Webots simuleerib kiirendust vastassuunaliselt:
Webots (tagastab väärtused m/s2) AccX 0.753286540508 AccY -0.0355014316738 AccZ 9.86777114868 NAOSim: AccX -4.06194591522 AccY 0.113250367343 AccZ -55.8523826599
Fix:
naoproxy.cpp failis ridadel:
// Webots returns values in m/s^2 const double *acc = wb_accelerometer_get_values(accelerometer); accelerometerValues.clear(); accelerometerValues.push_back((float)acc[0]); accelerometerValues.push_back((float)acc[1]); accelerometerValues.push_back((float)acc[2]); if (! naoqiSimulated->updateAccelerometers(accelerometerValues)) cerr << "ALNaoSimulationInterface::updateAccelerometers() failed.\n"; //__________ // Inertial values (computed from accelerometer values) // inertialValues.clear(); inertialValues.push_back((float)(-PI_2 + acos(acc[1]/GRAVITY))); inertialValues.push_back((float)(PI_2 - acos(acc[0]/GRAVITY))); if (! naoqiSimulated->updateInertialValues(inertialValues)) cerr << "ALNaoSimulationInterface::updateInertialValues() failed.\n";
acc[?] muuta negatiivseks (-acc[?]). Käivitada Build. Ühtlasi tuli katsetest välja, et püstitõusmise moodul kasutab inertialValues, mitte otse akseleromeetri andmeid.