![]() |
mecanum_bot repositorymecanum_bot mecanum_bot_bringup mecanum_bot_controller mecanum_bot_description |
Repository Summary
Description | |
Checkout URI | https://github.com/yadunund/mecanum_bot.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-02-26 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
mecanum_bot | 0.0.0 |
mecanum_bot_bringup | 1.0.0 |
mecanum_bot_controller | 0.0.0 |
mecanum_bot_description | 0.0.0 |
README
RAMU (Really Awesome Mobile Unit)
RAMU is a low-cost, wheel encoder-less, holonomic mobile base that is capable of autonomous navigation. RAMU is powered by ROS 2 and Navigation 2 systems. This repository contains some information on RAMU along with ROS 2 packages and launch files to get RAMU up and running.
Click the image below to watch RAMU autonomously navigate in an indoor environment.
Hardware Design
RAMU’s chassis is constructed from 20x20 aluminium extrusion members which are connected together with 3D printed joints. The motor, battery, electronics and sensors mounts are also 3D printed. The CAD is open sourced via Onshape and can be accessed here.
Documentation of the build process is found here
BOM
- Raspberry Pi 3B
- Arduino Uno
- DC geared motors 178RPM x4
- Motor drivers x2
- Mecanum wheels 96mm diameter x4
- 2D lidar
Electrical and Wiring
RAMU’s four wheels/motors follow the below numbering convention
^
|
w1---w2
| |
| |
w3---w4
Each motor is controlled by a motor driver which receives PWM signals from the Arduino which in-turn receives motor velocities from the RPi.
The RPi thus has the Arduino and 2D lidar plugged into its USB ports. These devices must be available on /dev/ttyUSB1
and /dev/ttyUSB0
respectively. A 12V to 5V DC-DC converter steps down the 12V battery voltage and powers the RPi.
TODO Add wiring diagram
Software Setup
Arduino
RAMU’s Arduino receives motor velocities in range [0,255] via serial from the RPi which is used to write PWM signals to the connected motors drivers. Expected format for incoming data:
"[w1, w2, w3, w4]"
where w1, w2, w3, w4 are the velocities of the wheels as seen in the arrangement above.
The code to be uploaded to the arduino is located at arduino/MotorDriver
.
RPi
RAMU’s RPi is running Ubuntu 20.04 Server. The following binaries are installed on the RPi
Other dependencies:
python3 -m pip install pyserial
Setup a ROS 2 workspace as follows
mkdir ~/ws_mecanum_bot/src -p
cd ~/ws_mecanum_bot/src
git clone https://github.com/Yadunund/mecanum_bot.git
git clone https://github.com/Yadunund/ydlidar_ros.git -b X2l-foxy-devel
Install all ROS 2 dependencies
cd ~/ws_mecanum_bot
rosdep install --from-paths src --ignore-src --rosdistro foxy -yr
Next build the workspace
cd ~/ws_mecanum_bot
source /opt/ros/foxy/setup.bash
colcon build --parallel-workers 1
Simulation
The mecanum_bot
can be fully simulated with the latest Gazebo.
To launch a simple simulation world with the robot model loaded,
File truncated at 100 lines see the full file