Getting Started With Emio
Emio is a parallel deformable robot. Together with the desktop application Emio Labs, this hands-on platform provides a practical introduction to the concepts of compliant and deformable robotics.
Discovering Emio
The robot features a structure composed of four servo motor-actuated deformable legs connected together. It comes equipped with a depth camera and a set of accessories, including multiple deformable legs and connectors, all stored in a dedicated drawer.
Emio features two distinct configurations, as shown in the images below:
- Extended Configuration: In this setup, the legs point downward, enabling it to perform tasks such as pick-and-place.
- Compact Configuration: Here, the legs are oriented upward, facilitating easier interaction with the robot.



Attaching Legs to Motors
Each motor is equipped with a drum and a cap for connecting a leg.
To attach a leg to a motor:
- Find the zero position of the motor is indicated by the orange marker pointing upward,
- Simply rotate the cap until you can set the leg into the desired orientation,
- Once the leg is in place, rotate the cap again to lock it.




When using Emio Labs, throughout the lab sessions, you will be instructed to configure Emio into specific setups. Simply follow the provided instructions by clicking on Set up Emio. We use colors to refer to the legs and connectors, and numbers to identify the motors.
Connecting Emio to Your Computer
- Linux
- Windows
On Linux, serial ports require specific permissions to be accessed. By default, only the root user can access /dev/ttyUSB*. Here are two solutions to grant access to serial ports and pilot the real robot:
- Temporary
- Permanent
Run the following command to grant read/write permissions:
sudo chmod 777 /dev/ttyUSB0
Note: Replace ttyUSB0 with the actual port name. You can find it by running ls /dev/ttyUSB* or by using SOFA Robotics. This change will revert after reboot or disconnect.
Add your user to the dialout group to access serial devices without root privileges:
sudo usermod -aG dialout $USER
Then log out and log back in (or reboot) for the group changes to take effect. This is the recommended approach.
Depending on your version of Windows, you may need to install the FTDI drivers to pilot the robot. This is typically necessary if, upon connecting the robot to your computer, you encounter the following error message:
[ERROR] No serial port found with manufacturer = FTDI.
Installing the drivers should resolve this issue.
You will find a USB cable in the drawer to connect the robot to your computer. The robot also has a power supply and a switch. To connect Emio to your computer:
- Plug the USB cable into the USB port of Emio,
- Connect the other end of the USB cable to your computer,
- Plug the power supply into the power port of Emio,
- Turn on the switch to power the robot.

To pilot Emio, you have two options:
- You can use Emio Labs, which provides an intuitive interface to launch SOFA Robotics and run simulations to solve Emio's inverse kinematics and control the robot's end-effector.
- Or you can use the Emio API, which allows you to pilot the motors of Emio programmatically using Python.
You can find more information about these two options in the following sections.
Calibrating the Camera
The calibration allows to calculate the transform from the camera image, to 3D points into the simulation reference frame. The Emio API (included with Emio Labs) comes with a default calibration, but it can vary based on if the camera has been moved. If you notice a large difference between the simulation and reality markers, you might need to re-calibrate the camera.
Set up Emio for the Calibration
You will need (see the image to the right):
- The Aruco marker
- Two green markers
- The blue elevators to raise the platform
To set up Emio for calibration, follow these steps:
- Raise the platform with the blue elevators.
- Place the Aruco marker on the platform, arrow facing the camera.
- Insert two green markers into the Aruco marker slots.
- Connect Emio to the computer and power supply.
- Turn on Emio.

The calibration marker normally comes with Emio but you can 3D print it using either:
- the whole marker file (requires a multicolor 3D printer)
- the support file and the Aruco marker file
The Aruco marker should be printed in black and the support in white for better performance.
Start the Calibration
Calibration can be done using several methods: with Emio Labs or with the Emio API.
- Emio Labs
- Emio API
The easiest way to start the calibration is to use the SOFA Robotics interface from Emio Labs:
- Open Emio Labs
- Go to the
Sandboxpage - Select the
Camera Calibrationsection - Run the simulation by pressing the SOFA button in the section
- Press the Play button to start the simulation
- Toggle the robot connection button to connect to the robot
Alternatively, you can start the calibration using Emio API. From a terminal with a Python executable that has emioapi installed, run:
python -m emioapi calibrate
For more information, go to the Emio API documentation and follow the instructions to start the calibration process.
Calibration Process
Regardless of the method you use to start the calibration, the process will start by opening several windows, including a Calibration window and a RGB Frame window.

The Calibration window displays the corners and other points detected by the camera.

The RGB Frame window displays the 3D position of the two markers in the frame of the camera (first line) and in the simulation frame (second line).
The calibration ends when the Calibration window closes and the RGB Frame window displays the position of the the two markers.
To make sure the calibration is successful, you can check the simulation coordinates of the markers in the RGB Frame window:
- The top marker should be at around
(32, -230, 32) - The bottom marker should be at
(-32, -230, -32)
In the simulation, if used, the green markers (i.e. what the camera is tracking) should be at the same positions as the red markers (i.e. theoretical positions). The actual error for each marker can be seen in the Information collapsible menu in the My Robot window. You can expect an error of around 2-4 mm for each marker.
Once the calibration is done, you can close the SOFA window or Ctrl+C if you used Emio API. The saved calibration will be used for all the following use of the Emio API.