Az AR tag olvasóhoz töltsétek le ezt az aruco_ros packaget:
https://github.com/pal-robotics/aruco_ros Majd a saját repo-n lĂ©vĹ‘ Aruco mappábĂłl másoljátok át a launch Ă©s src fájlokat felĂĽlĂrva az aruco_ros/aruco_ros/src Ă©s launch alatt találhatĂł fájlokat.
Használata: ElsĹ‘kĂ©nt a turtlebot kameráját vĂzszintesbe kell tenni. Ezt a robot .xacro fájljának mĂłdosĂtásával lehet megtenni. Valahol a camera leĂrásánál van egy rpy = kettĹ‘ nulla meg egy 45 fok radban nagyságrendű szám, azt is nullára kell Ărni.
A navigációs csomagokhoz töltsétek le a tárgyhoz tartozó git repot:
https://github.com/MOGI-ROS/Week-7-8-Navigation.git
Szintént be kell másolni a saját repo-ból a launch és az src fileokat a most leklónozott repó megfelelő helyire.
ezeket felrakni: sudo apt install ros-$(rosversion -d)-hector-slam
sudo apt install ros-$(rosversion -d)-map-server
sudo apt install ros-$(rosversion -d)-amcl
sudo apt install ros-$(rosversion -d)-interactive-marker-twist-server
- roslaunch bme_ros_navigation spawn_robot.launch
- roslaunch bme_ros_navigation navigation.launch
- roslaunch aruco_ros marker_publisher.launch indĂtása
- teleop-pal a kicsit megmozgatni a robotot, hogy megtalálja magát a térképen
- helyezzĂĽnk egy kockát a robot látĂłterĂ©be Megj.: -MegjelenĂtĂ©s: Rviz-ben katt arra, hogy add Ă©s utána topic alapján hozzá tudod adni az imaget aruco_marker_publisher/result/image/raw -Ha nem akarja felismerni, vagy nĂ©ha igen-nĂ©ha nem, akkor egy fĂ©nyt kell berakni gazeboba, hogy kontrasztosabb legyen az ar tag 6.roslaunch bme_ros_navigation manual_waypoints.launch
A node ĂşjraindĂtásával Ăşjra ás Ăşjra navigálhatjuk a robotot egy másik tag-re.
NavigáciĂł működĂ©se: A marker_publisher.launch file-ban megadjuk a kocka mĂ©retĂ©t (0.1 [m]) Fontos, hogy ezt a mĂ©retet fogja használni Ă©s Ăşgy fogja arányosĂtani a távolságot a látott mĂ©rethez kĂ©pest.
Az src mappában lĂ©vĹ‘ adat.cpp filet rosrun bme_ros_navigation hajra-val tudjuk elindĂtani, ez felsubscribolodik a marker poziciĂł Ă©s a robot "közĂ©ppontjának" a pozĂciĂłjára, Ăgy ezekkel az Ă©rtĂ©keket emg tudjuk jelenĂtni.
Illetve a nav_goals.cpp-ben is jutunk hozzá az adatokhoz.
A marker pozĂciĂłját a globális koordináta rendszerhez kĂ©pes mondjuk meg, Ăgy ezz egy az egyben odaadjuk a nav_goals.cpp-nek. Illetve a szöget Ăşgy számoljuk ki, hogy a markerbe Ă©s a robotba mutatĂł helyvektorokat kivonjuk egymásbĂłl. És ennek a vektornak a szögĂ©t használjuk a markerre törtĂ©nĹ‘ ráállásra. Vagyis a robotbĂłl a markerre mutatĂł vektor irányával (globális szempontbĂłl)
Ahhoz, hogy ne ĂĽtközzĂĽnk össze a kockával, valahogy meg kellen mondanunk, hogy az adott irányban mennyivel csökkentsĂĽk vagy Ă©ppen növeljuk az x,y koordinátákat. Ehelyett a maker_publsiher.launch-ban megadott Ă©rtĂ©ket kisebbre vesszĂĽk. ĂŤgy mindig kicsit nagyobbnak, vagyis közelebbinek fogja látni a taget a kamera. És Ăgy továbbra is használhatjuk az x,y koordinátákat egyyszerűen.
AR tag generátor: