From a sample robot to a ROS 2 package on your machine.
Each step says what to press or type and what you should see. Steps 1–7 need only a browser; steps 8–9 need ROS 2.
Check the prerequisites
| For | You need |
|---|---|
| Steps 3–7 | A desktop or laptop with a current Chrome or Edge. The first visit downloads about 15 MB (the engine runs in your browser). |
| Steps 8–9 (recommended) | Ubuntu 24.04 with ROS 2 Jazzy and Gazebo Harmonic, installed as below. A GPU is not required, but simulation is slow without one. |
| Steps 8–9 on Windows | ROS 2 Jazzy for Windows plus an overlay workspace with xacro and joint_state_publisher (the Windows binaries do not include them). Building and RoboCanvas's kinematic simulator work; Gazebo does not run on Windows. |
On Ubuntu 24.04, after adding the ROS 2 apt repository, install everything the generated packages use:
sudo apt update
sudo apt install -y ros-jazzy-desktop ros-dev-tools \
ros-jazzy-xacro ros-jazzy-joint-state-publisher-gui \
ros-jazzy-ros2-control ros-jazzy-ros2-controllers \
ros-jazzy-gz-ros2-control ros-jazzy-ros-gz
source /opt/ros/jazzy/setup.bash && gz sim --version prints a Gazebo Sim 8.x version.Know the limits before you start
- RoboCanvas generates a ROS 2 package. It does not build or run it for you unless you use the optional companion, and the app always says which of these happened.
- The preview in the browser is kinematic: no physics, no contact, no grasping.
- In Gazebo, range, bumper and force/torque sensors give no data; vacuum grippers do not suck; grasping is untested; tracks are approximated by wheels; a parallel gripper can overshoot when it re-opens. There is no pick-and-place or task sequencing.
- You will need basic ROS 2 skills: a terminal,
colcon,source,ros2 launch.
The full list, with measurements, is on the capabilities and limits page.
Open the app
Go to Open RoboCanvas. The page shows Starting… while the engine loads in your tab.
Load a sample robot
Under Sample projects, press Open a copy on R1 Scout, a differential-drive rover with a LiDAR, an IMU and a range finder.
Other samples are listed with what was verified for each. You can also press New project and pick a template.
Make a simple change
- In the link tree, click
chassis. - In the inspector, change Mass (kg), for example to
12, and press Enter. - Drag in the 3D view to orbit; move a wheel joint slider to see the joint turn.
- Press Save (or Ctrl+S).
Validate
Validation runs after every change. Open the Problems panel at the bottom.
cmd_vel yet (you will publish it
from a terminal in step 9). Warnings do not block generation; errors do. Click a problem to select the item
it is about and read its fix.Try breaking it on purpose: select left_wheel_joint, set its Type to fixed,
and watch two errors appear and the status bar change to generate: blocked. Then press Undo.
Generate and download the ROS 2 package
- Press Generate.
- Read the dialog: Generated in this browser: done, and colcon build, ros2 launch and Gazebo: not run. It lists the launch files, the files in the package (expand Files in the package) and the archive's SHA-256.
- Press Download ZIP.
r1_scout_description.zip: a folder
r1_scout_description/ with package.xml, CMakeLists.txt, urdf/,
launch/, config/, worlds/ and nodes/, plus a short
ROBOCANVAS_EXPORT.txt saying what was and was not done.Build it locally
Ubuntu 24.04 + ROS 2 Jazzy (verified)
mkdir -p ~/rc_ws/src
cd ~/rc_ws/src
unzip ~/Downloads/r1_scout_description.zip -d .
cd ~/rc_ws
source /opt/ros/jazzy/setup.bash
rosdep install --from-paths src --ignore-src -y # optional: installs anything still missing
colcon build --packages-select r1_scout_description
source install/setup.bash
Summary: 1 package finished with no errors. (If rosdep says it is not
initialised, run sudo rosdep init && rosdep update once, or skip that line: the apt install in step 1
already covers the sample.)Windows + ROS 2 Jazzy (verified for building; no Gazebo)
In a terminal where ROS 2 Jazzy for Windows and your xacro overlay are set up, from a workspace
folder whose src\ contains the unzipped package:
colcon build --packages-select r1_scout_description --cmake-args -G Ninja
call install\local_setup.bat
Summary: 1 package finished.Run it
See the robot in RViz (any platform)
ros2 launch r1_scout_description display.launch.py
Simulate it in Gazebo (Ubuntu)
ros2 launch r1_scout_description simulation.launch.py
Configured and activated). Without a GPU this can take longer; add
gui:=false to run the simulation without its window.In a second terminal (after source ~/rc_ws/install/setup.bash), drive it forward for three seconds and look at the LiDAR:
ros2 topic pub -r 10 -t 30 /cmd_vel geometry_msgs/msg/Twist "{linear: {x: 0.3}}"
ros2 topic echo --once /lidar/scan --field ranges | head
/lidar/scan; other
projects use their own topic names, which ros2 topic list shows.) To drive by keyboard instead:
ros2 run teleop_twist_keyboard teleop_twist_keyboard.No Gazebo? Use RoboCanvas's kinematic simulator (Windows or Linux)
In the app, select Settings & targets in the tree, set Simulation target to
Kinematic (native), generate and download again, rebuild, and run the same
simulation.launch.py. It moves the robot ideally (no physics) and simulates LiDAR, range and IMU
readings against the world.
Report what happened
Whether it worked or not, tell us on the report page: what you built, which step failed, what you expected and what you saw. It prepares an email for you to send yourself.
Build and launch from the browser
The Run on ROS 2 tab can sync your project to a folder on your computer, run
colcon build and ros2 launch, and show the logs, through a small local program called
the companion. You do not need it to use RoboCanvas.
The companion is verified on Windows 11 with ROS 2 Jazzy. It has not yet been tested on Linux; on Linux, the manual build above is the verified path.
- Download
robocanvas-companion-beta1-cp312.zip(1.0 MB) and check it:
It must printsha256sum robocanvas-companion-beta1-cp312.zip # Linux certutil -hashfile robocanvas-companion-beta1-cp312.zip SHA256 # Windows4bce74704f7a0902216ec13c55ebe36f26946850e746d3ba56a0bd831ad4b602. - Unzip it. It needs Python 3.12, which is the Python ROS 2 Jazzy uses on both
Ubuntu 24.04 and Windows. Open a terminal where ROS 2 is set up (Linux:
source /opt/ros/jazzy/setup.bash; Windows: the ROS 2 Jazzy environment), go into the unzipped folder and start it. The exact command for this page, with its address, is also shown in the app's Run on ROS 2 tab:
(On Windows usecd robocanvas-companion python3 -m robocanvas.companion --workspace ~/robocanvas-workspace --web-origin https://robocanvas-beta.robocanvas.workers.devpythonand a Windows path for--workspace.) - The companion prints a pairing code such as
K7QM-2XRB. In the app: Run on ROS 2 → Check → type the code → Pair. If your browser asks whether this site may connect to apps on your device, allow it: that is the companion. - Sync project… → Send, then Build… → Build, then Launch…, and Stop when done.
The companion is RoboCanvas's engine compiled to Python bytecode, plus the runtime nodes as source. It listens only on your computer (127.0.0.1), answers only this site, and needs the pairing code.
Troubleshooting
| You see | Do this |
|---|---|
| "RoboCanvas could not start" | Use current Chrome or Edge on a desktop; reload. The message names the file that failed; include it in your report. |
| A project disappeared | Projects live in this browser's storage for this site. Another browser, a private window or clearing site data shows a different (empty) list. Use Export to keep copies; Settings can request persistent storage. |
| "This file cannot be opened" on import | The file is not a RoboCanvas project or is damaged; nothing was stored. |
| Generate says "The package cannot be generated yet" | There is at least one error (red) in the Problems panel; the dialog lists them. Click one to select what it is about and apply its fix, or press Undo. |
colcon: package not found / xacro not found | Source ROS first (source /opt/ros/jazzy/setup.bash) and install the packages from step 1. On Windows, set up the xacro overlay. |
| Gazebo starts but the robot does not move | Wait until the terminal says the controllers are active; check ros2 control list_controllers. Publish to the topic your project's drive listens on (ros2 topic list). |
| Gazebo is very slow | Expected without a GPU, especially with cameras. Use gui:=false, or remove camera sensors while testing motion. |
| No data from a range, bumper or force/torque sensor | Expected: these are frames only in Gazebo (the Problems panel says so). |
| Companion: "not found" | Start the companion; check it printed Listening on http://127.0.0.1:8766; allow the browser's request to connect to apps on your device. |
| Companion: "ORIGIN_NOT_ALLOWED" | Restart it with --web-origin set to exactly the address of this site, as shown in the Run on ROS 2 tab. |
| Companion: "needs Python 3.12" | Start it with the Python of your ROS 2 Jazzy installation. |
Build fails with tool_missing | The companion cannot find colcon: start it from a terminal where ros2 and colcon work. |
Still stuck? Report it; include the step number and the exact message.