3D printed omni-directional robot with mechanum wheel powered by ROS
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
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.
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
Once it's printed and assembled according and connected, there are few configuration to be made in both Raspberry Pi side and Arduino UNO.
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
- Clone the repo
git clone https://github.com/AntoBrandi/DextroBot.git
- Build the ROS workspace
cd ~/DextroBot/ROS/dextrobot_ws
catkin_make
- Source the project
sudo nano ~/.bashrc
And add the following at the end of the document
source ~/DextroBot/ROS/dextrobot_ws/devel/setup.bash
- 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.
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
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.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Antonio Brandi - LinkedIn - antonio.brandi@outlook.it
My Projects: https://github.com/AntoBrandi