Roomblock:a Platform for Learning ROS Navigation with Roomba, Raspberry Pi and RPLIDAR

Source: Internet
Author: User
Tags in degrees

What's this?

"Roomblock" is a robot platform consists of a Roomba, a Raspberry Pi 2, a laser sensor (RPLIDAR) and a mobile battery. The mounting frame can be made by 3D printers. ROS navigation system enable to make a maps of rooms and use it to reach to the goal autonomously.

Who need this?

Anyone want to learn the cutting-edge technologies of robotic navigation, mapping, and autonomous driving. This robot can is built easily and lower cost than other commercial platforms. ROS is now de facto standard software system for robotic field. This movie shows what's possible with the ROS navigation system.

Step 1:what You Needroomba

Roomba, and the series is available to the build this system. You can buy one from local retailers or IRobot online store. It is worth to buy a Roomba to clean your, of course!

    • IRobot Home Page

Caution:roomba series is not available for the this system, because they has no serial port.

Raspberry Pi

You can use the Raspberry Pi 2 Model B. Raspberry PI 3 May is available for the this system, and not supported in the this document.

USB WiFi Dongle

Raspberry Pi 2 has no WiFi interface. You need a USB Wi-Fi dongle for wireless connection. Our choice are this product, and this may be available in the Japanese market.

    • Gw-usnano2

We found this product are a bit problematic with newer Linux kernel. If you have trouble on using this device, please consult GitHub page.

This official product would is more convenient choice, however, we haven ' t tried with it.

    • RASPBERRY PI USB WIFI DONGLE
RPLIDAR A2

This is a low-cost LIDAR (Laser Imaging and Ranging) sensor. It measures the distance to the object in degrees around. It is a key device for robotic mapping and navigation.

    • RPLIDAR A2
USB Serial Cable

If you already has a USB cable for Roomba interface, you can use it. If not, we recommend to modify this usb-serial cable for creating one.

    • ttl-232r-5v
Mobile Battery

Raspberry Pi and RPLIDAR is driven by a mobile battery. We Choose this product, however, the can choose anything with similar size and capacity.

    • PowerCore 10000 Portable Charger

Local PC

You need a PC installed Ubuntu and Ros for processing Ros client and user interface. The PC needs to is on the same LAN with Raspberry Pi on the robot. You can log in the Raspberry Pi via SSH.

Joy pad (Optional)

If you had a joy pad for PC, you can use it to control the robot smoothly. But don ' t worry, if you don't have any joy pads, you can still use the keyboard to control the robot.

Raspberry Pi Camera Module (Optional)

If you had Raspberry Pi camera module, you can attach it to the system. You can use it to tele-operate the robot with first person view.

    • Raspberry Pi Camera Module v2
Step 2:build a Base frame3d printing

The base frame is a shelf-like structure designed to being mounted on the Roomba. You can download 3D printable data (STL) from Thingiverse.

    • Roomblock:robot for learning navigation on ROS

We used up! Plus2 and ABS filament, "normal" setting with 0.2mm pitch.

Assembling
    • Using adhesive to the bottom of pillars makes it easy to assemble.
    • A Wide Rubber Band is attached for fixing the mobile battery.
    • M2.5 screws is used to fix the Raspberry Pi.
    • M3 screws is used to fix RPLIDAR to the plate.
    • Use pieces of Velcro tape-to-fix it on Roomba top.
Step 3:build a usb-serial Cable (Optional) usb-serial Cable

If you don't have the usb-serial cable for Roomba, you can build it easily with the this product.

    • ftdi:ttl-232r-5v
    • Akiduki denshi:ttl-232r-5v

Notice that the Roomba's inerface is TTL (5V).

Connector

You need a mini-DIN 8 pin connector for the Roomba ' s serial interface. Actually Roomba ' s connector is mini-DIN 7 pin, however, it's much easier to buy a 8 pin than 7 pin connector.

    • Digikey:mini-din 8pin Connector
    • Kyoritsu:mini-din 8pin Connector
Soldering

Solder the serial cable to the 8 pin connector. Check the connection by the attached, and the document of Roomba Open Interface specification.

    • Roomba Open Interface Specification

Please note that it is safe-to-connect VCC (Red) and RTS (Green) for avoiding the hardware flow issue.

Step 4:setup Raspberry Pi Camera Module (Optional)

If you have the Raspberry Pi camera module, you can attach it to Raspberry Pi. This was optional for learning navigation, however, it's fun-to-get a view from the robot eyesight.

The camera mount part was also included in frame data on Thingiverse. The camera module can be fixed with a four M2 screws.

Step 5:setup Local Pcinstall Ubuntu

Install Ubuntu 16.04 Desktop following the official page

    • Ubuntu official page.
Install ROS

Plase Consult ROS official page. Install Kinetic Desktop Full packages.

    • ROS Kinetic Installation Instructions
Install Roomblock ROS Package

You need to the install Roomblock package from source code. The source code of the package was on GitHub.

    • Github-roomblock

Follow the instruction in readme.md.

If you had any problem or question concerning the software, please make a issue on GitHub issues so then we can track th e problems efficiently. Avoid to post them on Instructables.

Step 6:setup Raspberry Piinstall Ubuntu

Install Ubuntu 16.04 to the Raspberry Pi following the install Guide:

    • Ubuntu Wiki:raspberrypi
Install ROS

Install ROS Kinetic Following the install Guide:

    • Ubuntu Install of ROS Kinetic
Install Roomblock ROS Package

You need to the install Roomblock package from source code. The source code of the package was on GitHub.

    • Github-roomblock

Follow the instruction in readme.md.

If you had any problem or question concerning the software, please make a issue on GitHub issues, so we can track T He problems efficiently. Avoid to post them on Instructables.

Raspberry Pi Camera Module (Optional)

If you had a Rasberry Pi camera module, you need to install Libraspberrypi-dev. Consult readme.md in Github.

Step 7:tele-operationbring up the base system on Raspberry Pi

First of all, you need to bring up the sysem. On the Raspberry Pi terminal, launch the basic system as:

RPLIDAR start to spin, and now your can connect to the robot ROS master from your local PC.

Tele-operation from local PC

You can use a joy pad to operate the robot. If you had a joy pad of XBox, you can use the this launch file. Otherwise, need to modify the launch file to fit your joy pad. Plase consult the ROS wiki pages for detail.

    • ROS Wiki-teleop_twist_joy
$ export ros_master_uri=http://ip_address_of_raspberry_pi:11311<br>$ roslaunch Roomblock_bringup Teleop.launch

Now you can control the Roomba with joystick.

Instead, you can use a keyboard.

$ export ros_master_uri=http://ip_address_of_raspberry_pi:11311<br>$ rosrun Teleop_twist_keyboard teleop_ twist_keyboard.py

Consult the ROS wiki pages for detail.

    • ROS Wiki-teleop_twist_keyboard
Step 8:launch The Mapping softwarebring up the Mapping software on local PC

Bring up the mapping software to create the map around the robot.

$ export ros_master_uri=http://ip_address_of_raspberry_pi:11311<br>$ roslaunch roomblock_mapping Gmapping.launch

Now you can see Rviz (visualization software). Operate the robot around the class to create a map of the The class.

You can consult the ROS wiki page for mapping system.

    • ROS wiki-gmapping
    • ROS Wiki-map_server
Step 9:launch the autonomous navigationbring up autonomous navigation software

Now your can start autonomous navigation system on the local PC as:

$ export ros_master_uri=http://ip_address_of_raspberry_pi:11311<br>$ roslaunch rolomblock_navigation Amcl.launch

You can use Rviz to specify the goal. The robot should go to the goal autonomously.

Consult the ROS wiki page for the autonomous system.

    • ROS wiki-navigation
    • ROS WIKI-AMCL
Have fun!

If you have a general questions or problems on Ros, please consult the Ros wiki. We cannot answer to general questions on ROS.

    • ROS Wiki-support

If you had any problem or question concerning the Roomblock software, please make a issue on GitHub issues so that we CA n track the problems efficiently. Avoid to post them on Instructables.

Roomblock:a Platform for Learning ROS Navigation with Roomba, Raspberry Pi and RPLIDAR (RPM)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.