Skip to main content
Version: v24.12

GUI User Manual

Learn how to use the graphical user interface (GUI) for SOFA Robotics, designed to facilitate the programming and control of your robot simulations.

about

SOFA is an open-source framework designed for interactive mechanical simulations, with a strong focus on bio-mechanics and robotics. It provides advanced constitutive models and algorithms for efficiently computing both soft and rigid body dynamics. SOFA supports linear and non-linear elastic models, offers both explicit and implicit integration schemes, and includes traditional linear solvers. This powerful engine integrates numerous algorithms and models, making it highly suitable for complex simulation needs in bio-mechanics and robotics.

At Compliance Robotics, we have developed a dedicated graphical user interface (GUI) for SOFA, tailored specifically for robotics applications. This open-source software enables you to control and program your robot with ease.

GUI Overview

GUI in light mode
Play/Pause/Step buttons and driving tab selection

Simulation & Windows

The software consists of two main components: a 3D view of the simulation and a set of windows. In the 3D view, you can observe the simulated robot. The windows offer various functionalities, enabling you to program or directly control your robot.

Overview of the Windows

  • Program: Create a program for your robot
  • Move: Directly control your robot using sliders for the tool center point’s (TCP) target or motor adjustments.
  • My Robot: View information about the robot and adjust settings.
  • Plotting: Display simulation data in graphical form.
  • Display Options: Customize the visual presentation of the simulation.

Overview of the Viewport

  • 3D view of the simulated robot.
  • Play/Pause/Step the simulation using the buttons at the top center of the 3D view.
  • The TCP target is visualized as a frame (blue, red, and green).
  • The Simulation State pane shows data like TCP position.
  • Use the Driving Tab to choose which tab (window) controls the TCP target:
    • Move (via sliders)
    • Input/Output (beta: via an external software)
    • Program (via way-points)

Controlling the Real Robot

The Simulation/Robot switch button toggles the connection between the simulation and the real robot. In Simulation mode, the robot remains stationary. It's advisable to use this mode to test your programs before operating the actual robot.

Simulation/Robot switch button Simulation/Robot switch button
Simulation/Robot switch button

Light / Dark Mode

Switch the GUI between dark and light mode using the sun/moon button at the top right of the GUI.

GUI in dark mode
Dark mode
GUI in light mode
Dark mode

Windows

Program Window

Program Window
Program Window

This window is used to program the robot. You can add action and modifier blocks to a track to compose your program:

  • Action blocks:
    • Move: Define a waypoint for the TCP target
    • Pick: When equipped with a gripper, program the closing of the gripper
    • Place: Program the opening of the gripper
    • Wait: Add a pause to your program
  • Modifier block:
    • Repeat: Repeat a section of your program

If you use the Move Window to place the effector at a desired position and then add a Move Action Block to the track, it serves two purposes. First, it's an excellent way to test if the desired position is within the robot's working space. Second, this position will be used to initialize the Move Action Block.

You can always adjust the waypoint position directly on the block. Additionally, you can modify the duration of the motion or its speed.

The Program Window also has the following buttons (from left to right):

  • Import: Import a program (.crprog file) to the software
  • Export: Export a program
  • Restart: Restart the program
  • Draw the trajectory
  • Repeat: Repeat the entire program from start to end
  • Reverse: Loop the entire program, going forward and backward

When the Draw trajectory button is toggled, you can highlight the section of the trajectory corresponding to a specific Move Action Block by hovering over the block with your mouse.

Move Window

The Move Window allows you to directly control your robot in real-time using sliders. There are typically two control modes available:

  • Effector Control: Control the position and orientation of the robot's end-effector (TCP) using six sliders for X, Y, Z positions and Roll, Pitch, Yaw rotations.
  • Motor Control: Directly control individual motor angles of the robot using dedicated sliders for each angle.

This window is particularly useful for:

  • Exploring the workspace of the robot
  • Testing specific positions that can be saved as waypoints in your program
Move Window
Move Window

My Robot Window

The My Robot Window displays essential information about your robot and allows you to adjust various settings. Key features include:

  • Robot Information: View technical specifications
  • Settings Configuration: Adjust operational parameters such as maximum speed and acceleration
My Robot Window
My Robot Window

Plotting Window

The Plotting Window provides powerful data visualization capabilities for analyzing simulation data in real-time. Key features include:

  • Real-time Plotting: View live data from the simulation as it runs
  • Multiple Data Types: Plot various parameters including:
    • Joint angles and velocities
    • Forces and torques
  • Customization Options: Adjust plot settings such as:
    • Time window
    • Axis ranges
    • Data sampling rate
  • Data Export: Save plot data for further analysis in external software

This tool is particularly useful for:

  • Analyzing robot movement patterns
  • Verifying program execution
  • Debugging unexpected behavior
Plotting Window
Plotting Window