A collection of ROS 2 packages for an Arduino-based robotic system with voice control integration through Amazon Alexa.
This repository contains ROS 2 packages for a robotic system built around Arduino hardware with advanced features including motion planning, voice control, and remote operation capabilities. The system is designed to be controlled through voice commands via Amazon Alexa integration.
Work in Progress: This project is currently under active development. The Arduino board integration is not yet complete. Currently, the system supports simulation-based operation with plans for full hardware integration.
├── alexabot_bringup/ # Main launch package for Alexa integration
├── arduinobot_controller/ # Robot control and driver nodes
├── arduinobot_cpp/ # C++ implementation and utilities
├── arduinobot_description/ # Robot URDF, meshes, and configuration
├── arduinobot_moveit/ # MoveIt! motion planning configuration
├── arduinobot_msgs/ # Custom message definitions
├── arduinobot_python_examples/ # Python examples and demos
├── arduinobot_remote/ # Remote control functionality
└── arduinobot_utils/ # Utility functions and helpers
The primary launch package that brings up the entire robot system with Alexa voice control integration. This package orchestrates all other components and provides the main entry point for the system.
Contains the low-level controller nodes that interface with Arduino hardware. Handles motor control, sensor reading, and hardware communication protocols.
C++ implementations for performance-critical components including real-time control loops, hardware interfaces, and computational algorithms.
Robot description files including:
- URDF models
- 3D meshes and visual representations
- Joint configurations
- Physical parameters and constraints
MoveIt! motion planning configuration providing:
- Path planning capabilities
- Collision detection
- Inverse kinematics solving
- Motion execution
Custom ROS message definitions for inter-node communication including specialized messages for voice commands, robot states, and sensor data.
Python-based examples and demonstration scripts showcasing various robot capabilities and usage patterns.
Remote control functionality enabling:
- Web-based control interfaces
- Mobile app integration
- Network communication protocols
Utility functions and helper modules used across multiple packages including common algorithms, data processing, and system utilities.
- ROS 2 (Humble/Iron/Rolling)
- Arduino IDE or Platform IO
- Python 3.8+
- MoveIt! 2
- Amazon Alexa Skills Kit (for voice control)
-
Create a ROS 2 workspace:
mkdir -p ~/arduinobot_ws/src cd ~/arduinobot_ws/src
-
Clone this repository:
git clone <repository-url> .
-
Install dependencies:
cd ~/arduinobot_ws rosdep install --from-paths src --ignore-src -r -y
-
Build the packages:
colcon build
-
Source the workspace:
source install/setup.bash
-
Launch the simulated robot:
ros2 launch alexabot_bringup simulated_robot.launch.py
-
Launch with specific options:
# Without voice control ros2 launch alexabot_bringup simulated_robot.launch.py use_alexa:=false # With custom world ros2 launch alexabot_bringup simulated_robot.launch.py world:=my_world.world
-
Test voice commands (if Alexa is enabled):
- Say "Alexa, tell Arduino bot to move forward"
- Say "Alexa, ask Arduino bot to stop"
-
Monitor system status:
ros2 topic echo /robot_status
This video demonstrates:
- Robot simulation in Gazebo
- Voice control integration
- Motion planning capabilities
- RViz visualization
Hardware integration with Arduino boards is planned for future releases. This will include:
- Real-time motor control
- Sensor data acquisition
- Physical robot operation
The system responds to natural language commands through Alexa:
- "Move to the kitchen"
- "Pick up the object"
- "Return to charging station"
Access the web interface at http://localhost:8080
for manual control and monitoring.
Key configuration files:
config/robot_params.yaml
- Robot parametersconfig/alexa_skills.json
- Voice command mappingsconfig/controllers.yaml
- Controller configurations
- ✅ Simulation environment with Gazebo
- ✅ Robot visualization with RViz
- ✅ Motion planning with MoveIt!
- ✅ Voice control integration framework
- ✅ Remote control interfaces
- ✅ Message definitions and utilities
- 🔄 Arduino board integration
- 🔄 Real-time hardware control
- 🔄 Physical sensor integration
- 🔄 Production-ready voice commands
- 🔄 Mobile app integration
- 🔄 Advanced manipulation capabilities
- Update Alexa skill configuration
- Add command handlers in
alexabot_bringup
- Test with voice recognition
- Create new nodes in appropriate packages
- Update launch files
- Add relevant message definitions if needed
Robot not responding to voice commands:
- Check Alexa skill is enabled
- Verify network connectivity
- Ensure ROS nodes are running
Hardware communication errors:
- Note: Hardware integration is not yet implemented
- Arduino connection features are planned for future releases
- Current focus is on simulation-based development
Motion planning failures:
- Check joint limits
- Verify collision models
- Review MoveIt! configuration
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request