====== UKU ====== UKU on Tallinna Tehnikaülikooli tudengite poolt valmistatud väikesõiduki suurune mobiilne robotiplatvorm. UKU robotiga eksperimenteerimiseks on loodud //Gazebo// simulaatori mudel. See võimaldab igaühel sõltumata asukohast robotit programmeerida ja kui programm simulaatoris korrektselt töötab on võimalik see lihtsalt päris roboti peal tööle panna. {{:et:ros:simulations:ukuirl.jpg?400|}} {{:et:ros:simulations:h3oqjuc.png?400||}} ===== LIDAR ===== UKU peamiseks anduriks on lidar. Lidarid on väga head andurid ümbruskonna tajumiseks, kuid on ka suhteliselt kallid. Võimekate lidarite kasutamine nende hinna tõttu seab piirangud nende kasutamiseks isiklikel robotitel. UKU kasutab 3D lidarit //Velodyne VLP-16//. Lidaril on 16 kanalit ja selle nägemisnurk on 360°. See tähendab seda, et lidar kiirgab igas suunas vertikaalselt 16 kiirt. Seda lidarid kasutab ka enamus isejuhtivaid autosid ja teisi keerukaid isejuhitivaid robootikasüsteeme. {{:et:ros:simulations:vlp.jpg?300|}} {{:et:ros:simulations:lidarspec.png?900|}} Lidar võimaldab laserkiirte abil saada ümbruskonnast punktipilve, mis on väga kasulik autonoomseks navigeerimiseks. Mida rohkem on lidaril kanaleid ja mida suurem selle resolutsioon, seda täpsema punktipilve saame. {{:et:ros:simulations:lidardrive.gif|}} UKU roboti peal olev //Velodyne VLP-16// lidar on kallis ja lihtsamates rakendustes saab kasutada ka lihtsamaid ja odavamaid lidareid. Üks populaarsemaid odavamaid lidareid on [[https://www.slamtec.com/en/Lidar/A3|RPlidar]]. //RPlidar A1// maksab umbes 100€ ja //RPlidar A3// 600€. Lidarid erinevad peamiselt resulutsiooni ja mõõtesageduse poolest. {{:et:ros:simulations:rplidar1.jpg?400|}} {{:et:ros:simulations:rplidar3.jpg?450|}} //RPlidari// nägemisnurk on 360°, aga sellel on ainult üks kanal. Selletõttu on lidari väljund kahe dimensiooniline. Sellised lidarid on hea valik siseruumis navigeerimiseks, kus takistusteks on seinad ja muud vertikaalsed objektid. {{:et:ros:simulations:2dlidar.gif|}} //Gazebo// simulaatoris on võimalik ka lidareid simuleerida. Paljud lidari tootjad on internetis avaldanud lidarite mudelid (URDF), mis teeb lidari lisamise oma roboti mudelile oluliselt lihtsamaks. Ametliku //Velodyne VLP-16// URDF mudelit kasutatakse ka UKU roboti simulatsiooni puhul. ===== UKU simuleerimine ===== Robotiga eksperimenteerimiseks on loodud vajalikud mudelid ja teegid, et robotit saaks //Gazebos// simuleerida. Mugavamaks kasutamiseks on terve ROSi tööruum laetud üles giti repositooriumisse. Simulatsiooni kasutamiseks tuleb lihtsalt töökeskkond alla laadida ja vajalikud teegid paigaldada. Alustame repositooriumi kloonimisega: $ sudo apt install git $ git clone http://gitlab.robolabor.ee/ingmar05/uku_simulation_ws Paigalda vajalikud teegid ja kompileeri: $ cd uku_simulation_ws $ rosdep install --from-paths src --ignore-src -r -y $ catkin_make $ source devel/setup.bash Selleks, et me ei peaks uue terminali akna avamisel iga kord töökeskkonna hankima võime lisada järgmise rea //.bashrc// faili: $ echo "source ~/uku_simulation_ws/devel/setup.bash" >> ~/.bashrc Selleks, et ei peaks iga kord käsitsi õigete parameetritega mitut sõlme käivitama on loodud käivitusfailid (//.launch//). Neid kasutades on ühe käsuga võimalik käivitada //roscore// ja mitu erinevat sõlme õigete parameetritega. Selleks, et käivitada kõik vajalikud sõlmed roboti simuleerimiseks on loodud käivitusfail nimega //uku_vehicle.launch//. Käivita simulatsioon: $ roslaunch uku_vehicle_gazebo uku_vehicle.launch Nüüd peaks avanema //Gazebo// simulaator ja //Rviz//. //Gazebo// virtuaalses maailmas peaks nähtaval olema UKU robot. //Gazebo// kasutajaliidest kasutades saame virtuaalsesse maailma lisada objekte. {{:et:ros:simulations:giphy.gif|}} Tööruumiga tuleb kaasa ka roboti kaugjuhtimise sõlm. Käivita teises aknas kaugjuhtiminse sõlm: $ rosrun ackermann_drive_teleop keyop.py Nüüd peaksime saama robotit klaviatuuriga juhtida. {{:et:ros:simulations:rviz480.gif|}} Käivitusfail käivitas ka //Rviz// visualiseerimise tööriista. //Rviz// akna avades näeme 3D lidari pilti ja roboti mudelit. {{:et:ros:simulations:gazebo480.gif|}}