Skip to content

Omnidirectional wheeled robot powered by Arduino Mega, Raspberry PI with ROS

Notifications You must be signed in to change notification settings

AntoBrandi/Dextro-Bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkedIn


Logo

DextroBot

3D printed omni-directional robot with mechanum wheel powered by ROS
Explore the docs »

View Demo · Report Bug · Request Feature

Product Name Screen Shot Real

Table of Contents

About The Project

Product Name Screen Shot

This project aim is to build an omni-directional robot for the indoor navigation and mapping using inexpensive sensors such as ultrasonic sensors. Furthermore, it implements some basics human tracking and following functionalities using the raspberry pi camera mounted on its top. In order to activate or deactivate this tracking functionalities, a speech recognition module has been implemented. This module can run on any computer with a microphone that is connected to the same Wi-Fi network of the robot.

Built With

This robot is powered by:

  • Raspberry Pi 4
  • Arduino UNO
  • CNC Shield
  • Nema 17 Stepper Motor
  • drv8825 Stepper Motor Driver
  • 11.1V 3s LiPo Battery
  • LM2596 DC-DC converter
  • Raspberry Pi Camera
  • HC-SR04 Ultrasonic Sensors
  • MPU6050 IMU

And is controlled by:

  • ROS Kinetic

Product Name Screen Shot Exploded

Getting Started

Once it's printed and assembled according and connected, there are few configuration to be made in both Raspberry Pi side and Arduino UNO.

Prerequisites

Make sure you install correctly the following required tools before continuing

  • Install Ubuntu 16.04 on Raspberry Pi 4 Use the Ubiquity Robotics Raspberry Pi images that cames along with a lot of pre-installed functionalities such as ROS kinetic, ssh server, GPIO and camera drivers
  • Install missing ROS libraries. Some libraries that are used in this project are not in the standard ROS package. Install them with:
sudo apt-get install ros-kinetic-rosserial
sudo apt-get install ros-kinetic-rosserial-arduino
sudo apt-get install ros-kinetic-rviz-imu-plugin
  • Install VS Code and Platform IO extension on your PC in order to build and load the Arduino code on the device

Installation

  1. Clone the repo
git clone https://github.com/AntoBrandi/DextroBot.git
  1. Build the ROS workspace
cd ~/DextroBot/ROS/dextrobot_ws
catkin_make
  1. Source the project
sudo nano ~/.bashrc

And add the following at the end of the document

source ~/DextroBot/ROS/dextrobot_ws/devel/setup.bash
  1. Connect the Arduino UNO on your PC with VS Code and Platform IO. Open the folder containing the code for the Arduino wheel control and load the main.cpp to the Arduino.

Usage

To launch the ROS enviroment on the Raspberry Pi use

roslaunch dextrobot_bringup dextrobot_complete.launch view_imv:=true

With optional parameters

  • view_imv: to display the motion vectors detected by the raspberry pi camera
  • launch_rviz: to display the readings coming from the sonar sensors and the imu

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Antonio Brandi - LinkedIn - antonio.brandi@outlook.it

My Projects: https://github.com/AntoBrandi

Acknowledgements