Configuring micro-ROS in PlatformIO Projects: A Step-by-Step Guide
Ibrahim Bin Mansur
Embedded and IoT Engineer @ KytherTek | Embedded Systems | Robotics | ROS2
Introduction
In this tutorial, we will walk you through the process of configuring micro-ROS in PlatformIO projects. micro-ROS brings ROS 2 to microcontrollers, allowing you to integrate small, resource-constrained devices into your ROS 2 ecosystem. This guide will help you set up your environment, integrate micro-ROS into a PlatformIO project, and run a micro-ROS agent.
Prerequisites
Before we begin, ensure you have the following installed on your system:
You can install them using the following command:
sudo apt install -y git cmake python3-pip
Step 1: Set Up the PlatformIO Project
First, create a new PlatformIO project or navigate to your existing project directory. Ensure your platformio.ini file includes the micro-ROS library dependencies and configurations:
[env:your_env]
platform = espressif32
board = esp32dev
framework = arduino
lib_deps =
https://github.com/micro-ROS/micro_ros_platformio
board_microros_distro = humble
board_microros_transport = serial
Place your PlatformIO project in the ros2_ws/src directory to maintain organization and ease of access.
Step 2: Create a micro-ROS Workspace
Next, create a dedicated workspace for micro-ROS and download the necessary tools:
mkdir -p ~/microros_ws/src
cd ~/microros_ws
git clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup
Step 3: Update Dependencies
Update your system and install the required dependencies using rosdep:
sudo apt update && rosdep update
rosdep install --from-paths src --ignore-src -y
领英推荐
Step 4: Install Pip
Ensure you have pip installed for Python 3:
sudo apt-get install python3-pip
Step 5: Build and Source micro-ROS Tools
Build the micro-ROS tools and source the setup script:
colcon build
source install/local_setup.bash
Step 6: Create and Build the micro-ROS Agent Workspace
Create and build the micro-ROS agent workspace:
ros2 run micro_ros_setup create_agent_ws.sh
ros2 run micro_ros_setup build_agent.sh
source install/local_setup.bash
Step 7: Run the micro-ROS Agent
Finally, run the micro-ROS agent to enable communication between your microcontroller and the ROS 2 ecosystem:
ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyUSB0
Conclusion
Congratulations! You have successfully configured micro-ROS in your PlatformIO project. This setup allows you to integrate your ESP32 or other microcontrollers into a ROS 2 network, enabling advanced robotics applications even on resource-constrained devices.
Feel free to explore further and adapt this setup to suit your specific needs. Happy coding!
By following these steps, you can seamlessly incorporate micro-ROS into your robotics projects, leveraging the power of ROS 2 on microcontrollers. For more detailed information and advanced configurations, refer to the official micro-ROS documentation and PlatformIO resources.
Thank you for sharing this