Inhoudsopgave:
Video: Roomblock: een platform om ROS-navigatie te leren met Roomba, Raspberry Pi en RPLIDAR - Ajarnpa
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Wat is dit?
"Roomblock" is een robotplatform dat bestaat uit een Roomba, een Raspberry Pi 2, een lasersensor (RPLIDAR) en een mobiele batterij. Het montageframe kan worden gemaakt door 3D-printers. ROS-navigatiesysteem maakt het mogelijk om een kaart van kamers te maken en deze te gebruiken om autonoom het doel te bereiken.
Wie heeft dit nodig?
Iedereen die de allernieuwste technologieën van robotnavigatie, kaarten en autonoom rijden wil leren. Deze robot kan eenvoudig en tegen lagere kosten worden gebouwd dan andere commerciële platforms. ROS is nu de facto standaard softwaresysteem voor robotonderzoek. Dit filmpje laat zien wat er allemaal mogelijk is met het ROS navigatiesysteem.
Stap 1: Wat je nodig hebt
USB-seriële kabel
Als je geen USB-seriële kabel voor Roomba hebt, kun je deze eenvoudig bouwen met dit product.
- FTDI: TTL-232R-5V
- Akiduki Denshi: TTL-232R-5V
Merk op dat de interface van Roomba TTL (5V) is.
Connector
U hebt een mini-DIN 8-pins connector nodig voor de seriële interface van Roomba. Eigenlijk is Roomba's connector een mini-DIN 7-pins, maar het is veel gemakkelijker om een 8-pins dan een 7-pins connector te kopen.
- Digikey: mini-DIN 8-pins connector
- Kyoritsu: mini-DIN 8-pins connector
Solderen
Soldeer de seriële kabel aan de 8-pins connector. Controleer de verbinding aan de hand van de bijgevoegde afbeelding en het document van de Roomba open interface-specificatie.
Roomba Open Interface Specificatie
Houd er rekening mee dat het veilig is om Vcc (rood) en RTS (groen) aan te sluiten om het hardwarestroomprobleem te voorkomen.
Stap 4: Stel de Raspberry Pi-cameramodule in (optioneel)
Als je een Raspberry Pi-cameramodule hebt, kun je deze op de Raspberry Pi aansluiten. Dit is optioneel om navigatie te leren, maar het is leuk om een beeld te krijgen vanuit het gezichtsvermogen van de robot.
Het camerabevestigingsgedeelte is ook opgenomen in framegegevens op Thingiverse. De cameramodule kan worden vastgezet met vier M2-schroeven.
Stap 5: Lokale pc instellen
Ubuntu installeren
Installeer Ubuntu 16.04-desktop volgens de officiële pagina
Ubuntu officiële pagina
ROS installeren
Plase raadpleeg de officiële pagina van ROS. Installeer volledige Kinetic desktop-pakketten.
ROS Kinetic installatie-instructies
Roomblock ROS-pakket installeren
Het pakket voor roomblock is al vrijgegeven in Kinetic. U kunt ze installeren met het apt-commando.
$ sudo apt install ros-kinetic-roomblock
Dat is het.
Als u het pakket wilt wijzigen en bouwen vanuit de broncode, kunt u deze van GitHub krijgen.
GitHub - kamerblok
Volg de instructies in README.md.
Als je een probleem of vraag hebt met betrekking tot de software, maak dan een probleem aan op GitHub Issues zodat we de problemen efficiënt kunnen volgen. Vermijd om ze op Instructables te plaatsen.
Stap 6: Stel Raspberry Pi in
Ubuntu installeren
Installeer Ubuntu 16.04 op de Raspberry Pi volgens de installatiehandleiding:
Ubuntu Wiki: RaspberryPi
ROS installeren
Installeer ROS Kinetic volgens de installatiegids:
Ubuntu-installatie van ROS Kinetic
Roomblock ROS-pakket installeren
U moet het roomblock-pakket installeren vanaf de broncode. De broncode van het pakket staat op GitHub.
GitHub - kamerblok
Volg de instructies in README.md.
Als je een probleem of vraag hebt met betrekking tot de software, maak dan een probleem aan op GitHub Issues, zodat we de problemen efficiënt kunnen volgen. Vermijd om ze op Instructables te plaatsen.
Raspberry Pi-cameramodule (optioneel)
Als je een Rasberry Pi-cameramodule hebt, moet je libraspberrypi-dev installeren. Raadpleeg README.md in Github.
Stap 7: Tele-bediening
Open het basissysteem op Raspberry Pi
Allereerst moet u het systeem naar voren brengen. Start op de Raspberry Pi-terminal het basissysteem als:
$ export ROS_IP=IP_ADDRESS_OF_RASPBERRY_PI
$ roslaunch roomblock_bringup roomblock.launch
RPLIDAR begint te draaien en nu kun je vanaf je lokale pc verbinding maken met de robot ROS-master.
Telebediening vanaf lokale pc
Je kunt een joypad gebruiken om de robot te bedienen. Als je een joypad van XBox hebt, kun je dit opstartbestand gebruiken. Anders moet u mogelijk het startbestand aanpassen aan uw joypad. Raadpleeg de ROS wiki-pagina's voor details.
ROS wiki - teleop_twist_joy
$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ roslaunch roomblock_bringup teleop.launch
Nu kunt u de Roomba bedienen met een joystick.
In plaats daarvan kunt u een toetsenbord gebruiken.
$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Raadpleeg de ROS wiki-pagina's voor details.
ROS-wiki - teleop_twist_keyboard
Stap 8: Start de kaartsoftware
Open de kaartsoftware op de lokale pc
Open de kaartsoftware om de kaart rond de robot te maken.
$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ export ROS_IP=IP_ADDRESS_OF_LOCAL_PC $ roslaunch roomblock_mapping gmapping.launch
Nu kunt u Rviz (visualisatiesoftware) zien. Bedien de robot door de kamer om een plattegrond van de kamer te maken.
U kunt de ROS wiki-pagina raadplegen voor het kaartsysteem.
- ROS wiki - gmapping
- ROS wiki - map_server
Stap 9: Start de autonome navigatie
Autonome navigatiesoftware openen
Nu kunt u het autonoom navigatiesysteem op de lokale pc starten als:
$ export ROS_MASTER_URI=https://IP_ADDRESS_OF_RASPBERRY_PI:11311$ export ROS_IP=IP_ADDRESS_OF_LOCAL_PC $ roslaunch rolomblock_navigation amcl.launch
U kunt Rviz gebruiken om het doel te specificeren. De robot moet autonoom naar het doel gaan.
Raadpleeg de ROS wiki-pagina voor het autonome systeem.
- ROS wiki - navigatie
- ROS wiki - amcl
Veel plezier
Als je algemene vragen of problemen hebt over ROS, raadpleeg dan de ROS wiki. Algemene vragen over ROS kunnen we niet beantwoorden.
ROS-wiki - Ondersteuning
Als je een probleem of vraag hebt met betrekking tot de Roomblock-software, maak dan een probleem aan op GitHub Issues zodat we de problemen efficiënt kunnen volgen. Vermijd om ze op Instructables te plaatsen.