This walkthrough is intended for advanced users experienced in single robot programming. If you are new to Robotmaster, please see our getting started guide here: https://robotmaster.atlassian.net/wiki/spaces/RMDOC/pages/10694066219/Robotmaster+Getting+Started+Guide?atl_f=content-tree
The purpose of this walkthrough is to give exposure to most of the new features and functionalities being released with Robotmaster 2025 (10.0). This walkthrough is meant as a supplemental document to the reference and procedural
All files used in this walkthrough are included by default with a fresh installation of Robotmaster 2025.
Part 1 - Create a multi-robot cell
Loading multiple robots
Reference document: https://robotmaster.atlassian.net/wiki/spaces/RMDOC/pages/10377625626/Multi-Robots+-+Cell+Editor+-+Load+Robot?atl_f=content-tree
Create a new Robot cell session.
Load a Robotmaster brand robot (Robotmaster_2.0).
Load a second Robotmaster_2.0 robot.
Note that the second robot’s name and child frames are automatically updated to not conflict.
Also note that both robots are located in the same place.
Arrange both robots so that they are next to each other.
Add any cell components you wish, and place them in the cell (optional).
Add a frame for path mounting (optional).
Home positions for multi-robot cells
Reference document: https://robotmaster.atlassian.net/wiki/spaces/RMDOC/pages/10444800003/Multi-Robots+-+Cell+Editor+-+Home+Position?atl_f=content-tree
Create a new home position in the Home position repository.
Edit the new home position.
Note that the single home position includes all robots in the cell, so a single home position dictates both robot home positions whether used in a single or multi-robot configuration.
Edit the values as desired.
Create 2 more home positions with different values, which will be referenced later in the walkthrough.
Creating a multi-robot configuration
Reference documents:
Create a new configuration.
Edit the configuration.
Add the first robot tooling mounting data, including default tooling if desired.
Click the new button labelled “Add tooling mounting”.
Note that this does 3 things:
Adds a second tooling mounting named Tooling mounting 2, identifying this configuration as simultaneous multi-robot configuration.
Renames Tooling mounting to Tooling mounting 1.
Greys out the “Add tooling mounting” button. This occurs if there are as many tooling mountings as there are robots in the cell.
Add the second robot tooling mounting data, including default tooling if desired.
Add a path mounting frame.
Add a default home position (optional).
Click Ok to confirm the creation of the multi-robot configuration.
Creating safety envelopes
Reference documents:
Add a safety envelope to J3 of the first robot:
Expand the first robot in the tree.
Right click on J3 and select “Create safety envelope for J3
Specify 100mm for Shape extension.
Specify Wrap for Shape type.
Note how a safety envelope object is created in the robot tree.
Note how the safety envelope is visible in the viewport.
Repeat the above steps for J4 of the first robot, as well as J3 and J4 for the second robot.
Creating multi-robot collision and interference group pairs
Collision group pairs
The main workflow of creating collision groups has not changed in 2025. The feature has been expanded to accommodate multi-robot configurations and the new concept of interference.
Create a new collision group pair.
Edit that collision group pair.
Name it Left Robot to Part.
Set up the collision pairs.
Note that in the cell dropdown we now see both robots.
Note that there are now tooling and tool placeholders for each robot.
Note how the safety envelopes created earlier are visible in the robot’s collision list.
Do not include those safety envelopes in these collision pairs.
To save time do not include Joint 1, its components, or the base. It is unlikely those would collide with a part.
Repeat Steps 1-4 for the right robot.
Create new collision group pairs for each robot to the cell (table or other objects).
As above, do not include safety envelopes in these pairs.
To save time do not include Joint 1, its components, or the base. It is unlikely those would collide with the table or other cell objects.
Create new collision group pairs for each robot to itself.
Include all robot joints except Joint 6.
Note how the safety envelopes created earlier are visible in the robot’s collision list.
Do not include those safety envelopes in these collision pairs.
Create a collision group pair of the 2 robots to each other.
Again, make sure to not include the safety envelopes in this group.
Interference group pairs
Create a new collision group pair.
Edit that collision group pair.
Name it Left Robot to Right Robot Interference.
Change the Type from Collision to Interference.
Change the color to yellow.
A = 255
R = 255
G = 255
B = 0
Set up the collision pairs.
Put all of the left robot’s safety envelopes in the left list.
Put all of the right robot’s safety envelopes in the right list.
Repeat steps 1-6 above, checking both robots' safety envelopes against the table and part.
All collision groups have now been created.
Finalizing the cell
Verify the cell is constructed properly.
Save the rmcelltemplate for potential future adjustments or improvements.
Export the cell.
Summary of major cell editor changes:
Multiple robots in a single configuration
Safety envelopes
Interference groups
Part 2 - Task side part programming
The majority of task side part programming remains unchanged from 2024.3.
Preparing a new session
Create a new part programming session.
Create a new task.
Navigate to the new task.
Programming a part
Reference documents:
Load Large_Dome.stp from the sample CAD folder (Robotmaster 2025\Samples\CAD)
Deleted the table that imports with the dome.
Create a new contouring operation.
Using auto path (with swarf path type), or swarf path, create paths for all of the holes on the dome.
Ensure the tool is set to Tool 1, which is a default milling tool that comes as part of the tool library with a fresh install.
Ensure the Create multiple operations box is checked.
Press OK to create the operations (there should be 20 operations in total).
Note the new scheduler interface that replaced the simulation bar used in 2024.3 and older versions.
Note that on the task side, all operations appear on the scheduler sequentially. Simultaneous controls will be handled on the device side.
For more information on the task side scheduler, see https://robotmaster.atlassian.net/wiki/spaces/RMDOC/pages/10852728837/Task+-+Scheduler?atl_f=content-tree.
Part 3 - Simultaneous multi-robot device programming
Loading the cell
Reference documents:
Navigate to the device side.
Load the cell created in Part 1.
Note that in the display settings, there is a new slider for safety envelope visibility.
Note the new operations panel hierarchy and structure.
Each program within a setup has a sub program (called robot program) for each robot in the configuration.
Each setup has tooling selection options for each robot.
Initial operation assignment
Reference documents:
Assign all 20 operations to the left robot.
Note that even though all 20 operations are assigned to the left robot, both robots show a mounted tooling.
Note that the scheduler is in program view, and shows the single program.
Assign the operations on the right side of the dome to the right robot.
In the selection settings, check the Operation box.
Operations can now be selected (single click and box selection) in the viewport.
Select the operations on the right side of the dome.
Right click on any of the selected operations in the operations panel and assign them to the right robot.
Note that the scheduler still just shows the single program in program view.
Calculate.
Ignoring the kinematic errors and collisions, simulate through the program using the scheduler.
IMAGE HERE OF SCHEDULER
Note that one robot finishes ahead of the other.
Load balancing the program
Reference documents:
To view the 2 robot programs side by side, select the crosshair button next to Program 1. This will change the focus mode to focus Program 1.
Note that the scheduler is now in operation mode, and both robot programs can be viewed at the same time.
IMAGE HERE OF SCHEDULER
Balance out the total time (roughly), but switching operations from one robot to the other. To minimize robot overlap, choose operations near the centerline of the dome.
Moving these 2 operations to the left robot evens the total time out fairly well.
Once balanced, Calculate again.
Simulate the program again.
Note that there may be parts of the program where the robots collide or interfere.
IMAGE HERE OF TIMELINE WITH COLLISIONS/INTERFERENCE
Minimizing collisions and interference
Reference documents:
Automatic operation ordering is a good way to minimize the majority of collisions and interference.
Select the furthest left front operation and move it to the top of the left robot program.
Right click on the robot name, select Order paths → Optimized ordering.
This will organize the operations of the left robot program for the least amount of total robot movement.
Note that this is the same algorithm and functionality as path ordering on the task side.
Repeat steps 2-4 with one of the central operations that is currently assigned to the right robot.
Calculate and simulate.
There should now be fewer collisions and interference.
Another way to avoid collisions and interference is to add wait times.
Your specific session may look different, but here is an example of using wait times.
IMAGE HERE OF TIMELINE, OPERATIONS AND VIEWPORT OF COLLISION
There is a collision between the 2 robots at Contouring 16 and Contouring 8.
Click the 3 dots on Contouring 16 in the scheduler.
Input 5 into the Wait for X seconds box.
Select Wait for 5 seconds.
Note that this creates a wait time placeholder in the scheduler and shifts Contouring 16 to the right in the scheduler.
Recalculate.
Note that the 2 robots no longer collide.
Note that the left robot waits at the end of the previous operation for 5 seconds before continuing onto the next operation.
Another way to solve this same collision is using handshakes.
Remove the wait time added in the previous step by hovering over the wait time and clicking the trash can button.
Click the 3 dots on Contouring 16 in the scheduler.
Select Add new handshake, named HS1.
Click the 3 dots on Contouring 11 in the scheduler.
Select Add existing handshake → HS1.
Note that Contouring 16 shifts right along the scheduler to synchronize with the start of Contouring 11.
Recalculate.
Note that the 2 robots no longer collide.
Note that the left robot waits at the end of the previous operation until the right robot gets to Contouring 11 before continuing onto the next operation.
Wrapping up
Resolve any other collisions or interference caused by scheduling using the 4 methods from above.
Load balancing the 2 robots.
Reordering of operations.
Adding wait times.
Adding handshakes.
Resolve any additional kinematic errors your program may have.
BLURB ABOUT MULTI ROBOT PROCESSOR SUPPORT HERE