ament_python vs ament_cmake: Which ROS 2 Build Type Should You Use?
Read the post →
Robotics · October 2026
Ready-to-build ROS 2 packages in seconds, for Python and C++.

About
Starting a new ROS 2 package means writing the same boilerplate every time: a package.xml, either a setup.py and setup.cfg or a CMakeLists.txt, a node skeleton, a launch file, and the entry points that let ros2 run find your node. The ROS 2 Package Generator writes all of it in the browser and hands you a zip.
ament_python) with one module and one console script per node.ament_cmake) with one executable per node and the install rules.package.xml in format 3 with your dependencies, licence and maintainer.We run the generator's code headlessly, build both package types with colcon build on ROS 2 Jazzy, and start the generated launch files to check that every node comes up. Special characters in the description or maintainer name are escaped, so the files stay valid XML and Python.
Students meeting ROS 2 for the first time, who can see a complete, correct package before writing their own, and experienced developers who want a clean skeleton in ten seconds without opening a terminal.
Open the ROS 2 Package Generator. The guides below explain every file it writes and the build errors you are most likely to meet.
Gallery
Team
The team that builds, runs and answers for this project on XPARO.
Updates
Read the post →
Read the post →
Read the post →
Read the post →
Read the post →
FAQ
The generated packages use the standard ament_python and ament_cmake layouts, which work on current ROS 2 releases such as Humble, Jazzy and Rolling.
Yes. The output is boilerplate for your own package, under whichever licence you choose in the form.
ros2 pkg create needs a ROS installation. The generator runs in the browser, lets you preview every file first, and adds a launch file and node stubs for several nodes at once.
Contact
Questions, ideas, or want to work with the team? Your message goes straight to the ROS 2 Package Generator team on XPARO. Add your email if you'd like a reply.