Hi everyone, I’m HOONLE, Project member of Stemkeens Rosblockly.
After six months of work I’m releasing this project as open-source—feedback and contributions are very welcome!
Challenge — Why did we build it?
Like many newcomers to ROS 2 including myself I found the workflow of writing a URDF, creating a package, and actually running it unnecessarily complicated. Online tutorials are a mixture of ROS 1 and ROS 2 material, so version conflicts pop up all the time, and even a tiny change forces you to rerun ros2 launch … just to see the updated model. I wondered: “Couldn’t we design URDFs with drag-and-drop blocks in a browser and preview them with a single click?”—that question sparked the project.
Tiny hobby robots introduce another pain-point. The popular Arduino UNO is barely supported by micro-ROS, while the ROS 1-only rosserial package doesn’t bridge cleanly to Humble. These hurdles convinced me to build a web-based, ROS 2–first platform that lets anyone design, simulate, and even drive an Arduino-powered servo
1. Overview
A browser-based platform where Blockly blocks generate URDF, Send to Simulation previews in Gazebo, and even an Arduino UNO servo demo works out-of-the-box.
2. Links
3. Feature Highlights
-
Link & Geometry blocks (Box, Cylinder)
-
Joint & Control chain: Joint → Axis/Limit → Transmission → ROS 2 Control suite
-
Gazebo plugins: Camera and LiDAR
-
Export/Preview: Export to ROS, Code viewer, Send to Simulation
4. Arduino servo demo & Why pyserial?
RViz GUI (Joint State Publisher)
│ /servo_angle(Int32)
▼
servo_control_node.py ── USB(9600) ─▶ Arduino UNO ─▶ SG90 Servo
| Reason | Detail |
|---|---|
| Standard CDC-ACM serial | works with Arduino’s default USB serial |
| Minimal deps | just pip install pyserial, lighter than rosserial |
| Cross-platform | same API on Linux, macOS, Windows |
| Adequate timing | SG90 needs 20 ms PWM; 9600 baud is plenty |
5. Feedback welcome!
Open issues or PRs on GitHub, and let’s build a better ROS 2 learning experience together! ![]()
(My English is weak, so I used LLM to write this sentence.)
