# 🤖 Arduinobot – A ROS2 Jazzy Based Educational Robot Platform
Arduinobot is a lightweight, modular, and fully ROS2-compatible robot platform designed for learning
robotics, motion planning, kinematics, and ROS2 fundamentals.
This repository contains the complete stack — URDF, MoveIt2 configuration, Python/CPP nodes, custom
services, controllers, and utilities.
---
---
# 🦾 Features
✅ ROS2 Jazzy native
✅ URDF + SRDF robot model
✅ MoveIt2 motion planning support (OMPL planners)
✅ Custom ROS2 interfaces
✅ C++ example nodes (pub/sub/services)
✅ Python utility nodes
✅ Controller support (ros2_control)
✅ Fully modular and extendable
---
# 🚀 Getting Started
## ✅ 1. Clone the repository
```bash
git clone https://github.com/RRG2003/arduino_bot
cd arduino_botsudo apt update
sudo apt install ros-jazzy-desktop ros-jazzy-moveit ros-jazzy-ros2-control ros-jazzy-ros2-controllers
sudo apt install ros-jazzy-moveit-planners-omplcolcon build
source install/setup.bashThe robot model is defined in:
arduinobot_description/urdf/arduinobot.urdf.xacro
It includes:
- Base
- Virtual arm with 4 joints
- Gripper
- STL meshes
The semantic description (SRDF) defines:
- Groups:
virtsual_arm,gripper - Predefined poses
- Collision settings
Located in:
arduinobot_moveit/config/arduinobot.srdf
Package: arduinobot_msgs
EulerToQuaternion.srvQuaternionToEuler.srv
Used by utility nodes for angle conversions.
Includes:
angle_conversions.pyConverts Euler ⇆ Quaternion using custom services.
Run with:
ros2 run arduinobot_utils angle_conversionsIncludes:
✅ Publishers ✅ Subscribers ✅ Service clients/servers ✅ Action clients
Great for learning ROS2 fundamentals in C++.
This package provides:
- MoveIt SRDF
- Kinematics config
- Joint limits
- Controllers
- OMPL planner configs
- RViz2 MotionPlanning setup
Launch with:
ros2 launch arduinobot_moveit demo.launch.pyThis opens RViz with:
✅ Robot model ✅ MotionPlanning plugin ✅ OMPL planners (RRTConnect, PRM, etc.)
The controllers are defined in:
arduinobot_controller/config/*.yaml
Launch your controller with:
ros2 launch arduinobot_controller controller.launch.pyExample:
ros2 service call /euler_to_quaternion arduinobot_msgs/srv/Eulertoquaternion "{roll: 0.0, pitch: 0.0, yaw: 1.57}"ros2 launch arduinobot_moveit demo.launch.py
ros2 launch arduinobot_controller controller.launch.py
ros2 run arduinobot_utils angle_conversions
- Add forward/inverse kinematics implementation
- Add real hardware communication layer
- Add Gazebo / Isaac Sim simulation
- Add MoveIt Task Constructor
PRs and issues are welcome. If you want more examples or want to extend the robot, feel free to open a pull request!
MIT License. Use freely for learning and development.
If you find this useful, please ⭐ star the repository!