Stap 2: Werken met Robot simulatie met behulp van R.O.S en Gazebo
Na het ontwerpen van het 3D-model van de robot, is de volgende stap om te simuleren van de robot. Ik heb volledige simulatie van deze robot vanaf nul in het boek beschrijven. De simulatie wordt gedaan met behulp van R.O.S en Gazebo.
Hier is de snelle start de robot simulatie doen.
Vereisten voor simulatie:
Het eerste cijfer toont de Chefbot simulatie in de Gazebo.
We moeten na R.O.S pakketten voor het uitvoeren van deze simulatie.
Volgende commando zal de nodige afhankelijkheden installeren.
$ sudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon
R.O.S katje werkruimte instellen
- Setup een katje-werkruimte met behulp van instructies te volgen.
- Kloon van het archief van de Chefbot met de volgende opdracht
$ git clone https://github.com/qboticslabs/Chefbot_ROS_pkg.git
Kopieer de map chefbot naar katje werkruimte src map van de gekloonde bestanden, en bouwen de werkruimte met de opdracht catkin_make .
Lopende Chefbot simulatie
Start de simulatie met het volgende commando
$ roslaunch chefbot_gazebo chefbot_hotel_world.launch
Dit opent Gazebo simulator met een hotel als omgeving die wordt weergegeven in het tweede beeld.
We proberen nu om autonome navigatie in simulatie. Eerst moeten moeten we SLAM uitvoeren voor het bouwen van de kaart van de omgeving en na het bouwen van de kaart, we uitvoeren AMCL knooppunten voor het lokaliseren van de robot op de kaart.
Na lokalisatie, we robot te gaan op de positie van een bepaalde tabel voor het leveren van het voedsel kunt opdracht en zal terug naar de home positie na het leveren van voedsel.
Uitvoeren van SLAM met behulp van Chefbot
We kunnen zien hoe SLAM en AMCL gebruik van de gesimuleerde omgeving uit te voeren.
Het algoritme van de SLAM met de volgende opdracht start
$ roslaunch chefbot_gazebo gmapping_demo.launch
Beginnen met het visualiseren van de kaart in Rviz met de volgende opdracht
$ roslaunch chefbot_bringup view_navigation.launch
Het gehele hotel door het bewegen van de robot rond het milieu in kaart brengen, kunnen we beginnen.
We kunnen gaan robot handmatig met behulp van teleoperation, het volgende commando kan worden gebruikt voor teleoperation voor Chefbot
$ roslaunch chefbot_bringup keyboard_teleop.launch
De kaart van de omgeving kunnen we genereren zoals hieronder getoond. Als de toewijzing voltooid is kunt we de kaart opslaan naar een bestand met behulp van volgende commando
$ rosrun map_server map_saver -f ~/hotel_world
Deze opgeslagen kaart wordt gebruikt voor de volgende stap voor het doen van AMCL
Uitvoeren van AMCL op Chefbot
Na het opslaan van de kaart, sluit alle terminal en start de Gazebo en zijn knooppunten met behulp van volgende commando
$ roslaunch chefbot_gazebo chefbot_hotel_world.launch
Start het knooppunt van de AMCL met de volgende opdracht
$ roslaunch chefbot_gazebo amcl_demo.launch map_file:=/home/hotel_world.yaml
Start Rviz met de nodige instellingen voor visualisatie
$ roslaunch chefbot_bringup view_navigation.launch
Nu we dat de robot is gelokaliseerd op de kaart die heeft dezelfde positie van Gazebo zien kunnen.
Wij kunnen de robot om te gaan naar een bepaalde positie binnen de kaart met Rviz 2D Nav doel knop bevelen.
Met behulp van 2D Nav doel knop kunnen we een doel pose aan de robot en dan zie je de robot zal plan een pad naar die positie en dat pad naar door het vermijden van hindernissen autonoom.
We hebben de simulatie van de totale robot, uitgevoerd, nu is het de tijd voor het ontwerpen van het prototype van de hardware van de gesimuleerde robot.