Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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 documents describing the new features in detail.

Info

All files used in this walkthrough are included by default with a fresh installation of Robotmaster 2025.

Table of Contents
stylenone

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

  1. Create a new Robot cell session.

  2. Load a Robotmaster brand robot (Robotmaster_2.0).

  3. Load a second Robotmaster_2.0 robot.

  4. Note that the second robot’s name and child frames are automatically updated to not conflict.

    image-20241001-165748.pngimage-20241001-165826.png
  5. Also note that both robots are located in the same place.

  6. Arrange both robots so that they are next to each other.

  7. Add any cell components you wish, and place them in the cell (optional).

  8. Add a frame for path mounting (optional).

image-20241001-170929.png

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

  1. Create a new home position in the Home position repository.

  2. Edit the new home position.

  3. 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.

  4. Edit the values as desired.

  5. Create 2 more home positions with different values, which will be referenced later in the walkthrough.

image-20241001-172900.png

Creating a multi-robot configuration

Reference documents:

  1. Create a new configuration.

  2. Edit the configuration.

  3. Add the first robot tooling mounting data, including default tooling if desired.

    image-20241001-171134.png
  4. Click the new button labelled “Add tooling mounting”.

    image-20241001-171302.png
  5. Note that this does 3 things:

    1. Adds a second tooling mounting named Tooling mounting 2, identifying this configuration as simultaneous multi-robot configuration.

    2. Renames Tooling mounting to Tooling mounting 1.

    3. Greys out the “Add tooling mounting” button. This occurs if there are as many tooling mountings as there are robots in the cell.

      image-20241001-171635.png
  6. Add the second robot tooling mounting data, including default tooling if desired.

    image-20241001-171803.png
  7. Add a path mounting frame.

  8. Add a default home position (optional).

  9. Click Ok to confirm the creation of the multi-robot configuration.

Creating safety envelopes

Reference documents:

  1. Add a safety envelope to J3 of the first robot:

    1. Expand the first robot in the tree.

    2. Right click on J3 and select “Create safety envelope for J3.

    3. Specify 100mm for Shape extension.

    4. Specify Wrap for Shape type.

  2. Note how a safety envelope object is created in the robot tree.

    image-20241001-183423.png
  3. Note how the safety envelope is visible in the viewport.

    image-20241001-183456.png
  4. Repeat the above steps for J4 of the first robot, as well as J3 and J4 for the second robot.

image-20241001-183529.png

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.

  1. Create a new collision group pair.

  2. Edit that collision group pair.

  3. Name it Left Robot to Part.

  4. Set up the collision pairs.

    1. Note that in the cell dropdown we now see both robots.

      image-20241011-180036.png
    2. Note that there are now tooling and tool placeholders for each robot.

      image-20241011-180134.png
    3. Note how the safety envelopes created earlier are visible in the robot’s collision list.

    4. Do not include those safety envelopes in these collision pairs.

      image-20241011-182102.png
    5. To save time do not include Joint 1, its components, or the base. It is unlikely those would collide with a part.

image-20241011-182334.png
  1. Repeat Steps 1-4 for the right robot.

image-20241011-182459.png
  1. Create new collision group pairs for each robot to the cell (table or other objects).

    1. As above, do not include safety envelopes in these pairs.

    2. 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.

image-20241011-182927.png
image-20241011-182842.png
  1. Create new collision group pairs for each robot to itself.

    1. Include all robot joints except Joint 6.

    2. Note how the safety envelopes created earlier are visible in the robot’s collision list.

    3. Do not include those safety envelopes in these collision pairs.

image-20241011-181235.png
image-20241011-181507.png
  1. Create a collision group pair of the 2 robots to each other.

    1. Again, make sure to not include the safety envelopes in this group.

image-20241011-181839.png

Interference group pairs

  1. Create a new collision group pair.

  2. Edit that collision group pair.

  3. Name it Left Robot to Right Robot Interference.

  4. Change the Type from Collision to Interference.

  5. Change the color to yellow.

    1. A = 255

    2. R = 255

    3. G = 255

    4. B = 0

  6. Set up the collision pairs.

    1. Put all of the left robot’s safety envelopes in the left list.

    2. Put all of the right robot’s safety envelopes in the right list.

image-20241011-183711.png
  1. Repeat steps 1-6 above, checking both robots' safety envelopes against the table and part.

image-20241011-183952.png

All collision groups have now been created.

image-20241011-184123.png

Finalizing the cell

  1. Verify the cell is constructed properly.

  2. Save the rmcelltemplate for potential future adjustments or improvements.

  3. 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

  1. Create a new part programming session.

  2. Create a new task.

  3. Navigate to the new task.

Programming a part

Reference documents:

  1. Load Large_Dome.stp from the sample CAD folder (Robotmaster 2025\Samples\CAD)

  2. Deleted Delete the table that imports with the dome.

    image-20241014-152744.png
  3. Create a new contouring operation.

  4. Using auto path (with swarf path type), or swarf path, create paths for all of the holes on the dome.

    image-20241014-153528.png
  5. 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.

    image-20241014-153659.png
  6. Ensure the Create multiple operations box is checked.

  7. Press OK to create the operations (there should be 20 operations in total).

    image-20241014-153842.png
  8. Note the new scheduler interface that replaced the simulation bar used in 2024.3 and older versions.

    image-20241014-154003.png
  9. Note that on the task side, all operations appear on the scheduler sequentially. Simultaneous controls will be handled on the device side.

  10. For more information on the task side scheduler, see https://robotmaster.atlassian.net/wiki/spaces/RM2025V100DOC/pages/10852728837/Task+-+Time+Based+Scheduler?atl_f=content-tree.

Part 3 - Simultaneous multi-robot device programming

Loading the cell

Reference documents:

  1. Navigate to the device side.

  2. Load the cell created in Part 1.

  3. Note that in the display settings, there is a new slider for safety envelope visibility.

    image-20241016-175815.png
  4. Note the new operations panel hierarchy and structure.

    1. Each program within a setup has a sub program (called robot program) for each robot in the configuration.

    2. Each setup has tooling selection options for each robot.

image-20241016-175742.png

Initial operation assignment

Reference documents:

  1. Assign all 20 operations to the left robot.

  2. Note that even though all 20 operations are assigned to the left robot, both robots show a mounted tooling.

    image-20241016-180014.png
  3. Note that the scheduler is in program view, and shows the single program.

    image-20241016-180055.png
  4. Assign the operations on the right side of the dome to the right robot.

    1. In the selection settings, check the Operation box.

      image-20241016-180129.png
    2. Operations can now be selected (single click and box selection) in the viewport.

    3. Select the operations on the right side of the dome.

      image-20241016-180234.png
    4. Right click on any of the selected operations in the operations panel and assign them to the right robot.

  5. Note that the scheduler still just shows the single program in program view.

  6. Calculate.

  7. Ignoring the kinematic errors and collisions, simulate through the program using the scheduler.

IMAGE HERE OF SCHEDULER
  1. image-20250113-191219.pngImage Added
  1. Note that one robot finishes ahead of the other.

Load balancing the program

Reference documents:

  1. To view the 2 two robot programs side by side, select the crosshair button next to Program 1. This will change the focus mode to focus Program 1.

  2. Note that the scheduler is now in operation mode, and both robot programs can be viewed at the same time.

IMAGE HERE OF SCHEDULER
  1. image-20250113-191308.pngImage Added
  1. 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.

  2. Moving these 2 operations to the left robot evens the total time out fairly well.

    image-20241016-180822.pngimage-20241016-180925.png
  3. Once balanced, Calculate again.

  4. Simulate the program again.

  5. Note that there may be parts of the program where the robots collide or interfere.

IMAGE HERE OF TIMELINE WITH COLLISIONS/INTERFERENCE
  1. image-20250113-191344.pngImage Added

Minimizing collisions and interference

Reference documents:

  1. Automatic operation ordering is a good way to minimize the majority of collisions and interference.

  2. Select the furthest left front operation and move it to the top of the left robot program.

    image-20241016-181137.png
  3. Right click on the robot name, select Order paths → Optimized ordering.

    image-20241016-181209.png
  4. This will organize the operations of the left robot program for the least amount of total robot movement.

  5. Note that this is the same algorithm and functionality as path ordering on the task side.

  6. Repeat steps 2-4 with one of the central operations that is currently assigned to the right robot.

    image-20241016-182228.png
  7. Calculate and simulate.

  8. There should now be fewer collisions and interference.

  9. 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 timeshandshakes.

IMAGE HERE OF TIMELINE, OPERATIONS AND VIEWPORT OF COLLISION
  1. image-20250113-191526.pngImage Added
  1. There is a collision between the 2 two robots at Contouring 16 and Contouring 8.

    1. Click the 3 dots on Contouring 16 in the scheduler.

    2. Input 5 into the Wait for X seconds box.

    3. Select Wait for 5 seconds.

      image-20241016-182653.png
    4. Note that this creates a wait time placeholder in the scheduler and shifts Contouring 16 to the right in the scheduler.

    5. Recalculate.

    6. Note that the 2 two robots no longer collide.

      image-20241016-182833.png
    7. Note that the left robot waits at the end of the previous operation for 5 seconds before continuing onto the next operation.

  2. Another way to solve this same collision is using handshakes.

    1. Remove the wait time added in the previous step by hovering over the wait time and clicking the trash can button.

    2. Click the 3 dots on Contouring 16 in the scheduler.

    3. Select Add new handshake, named HS1.

      image-20241016-183007.png
    4. Click the 3 dots on Contouring 11 in the scheduler.

    5. Select Add existing handshake → HS1.

      image-20241016-183049.png
    6. Note that Contouring 16 shifts right along the scheduler to synchronize with the start of Contouring 11.

      image-20241016-183129.png
    7. Recalculate.

    8. Note that the 2 robots no longer collide.

    9. 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

  1. Resolve any other collisions or interference caused by scheduling using the 4 four methods from above.

    1. Load balancing the 2 two robots.

    2. Reordering of operations.

    3. Adding wait times.

    4. Adding handshakes.

  2. Resolve any additional kinematic errors your program may have.

Generating Multi-robot Robot Code

  1. Load a processor package for the brand of robots being used.

  2. Generate robot code using the cell-level “Generate Robot Code” button

    image-20241025-142509.png
  3. For multi-robot simultaneous programs, a file will be generated for each robot program:

    image-20241025-145527.png
  4. If the processor loaded has default multi-robot simultaneous support, there will be additional output relating to the scheduler

    1. An additional scheduler program will be generated to call robot programs in the order they appear in the scheduler:

      image-20241025-152533.png
    2. Handshake and Wait Time scheduler items will be output as events in robot program files:

      image-20241025-152704.png
Note

To check if a brand template supports multi-robot simultaneous output, and for more details on each brand’s support, see the Processor Definition Editor (PDE) documentation