Skip to content
On this page

olive® Servo

Overview

The olive® Servo the easiest way to get your own robotic system moving! This high-performance robotics component is designed for use in a wide range of applications. It is re-programmable and easy to integrate, making it simple for users to build their own custom robots and automated systems. The actuator has a plug and play design, making it quick and easy to install and set up, and it is compatible with multiple robotic operating systems, giving users flexibility in terms of the software tools they can use.

Olive-Servo!

Key Features

  • ROS and ROS2 out of the box. No setup required.

  • High-torque motor: The olive® Servo module features a high-torque motor that provides the power and torque needed to move heavy loads or to perform high-precision tasks.

  • Easy integration: The olive® Servo is designed to be easy to integrate into a variety of different robotic systems. It just works through plug and play.

  • Daisy-chainable: Extend your system's funcionality by plugging additional hardware into the olive® Servo's input port: be it any other olive® hardware component or another USB-C peripheral.

  • Various control modes: olive® Servo offers four different modes of control: raw control (pwm), position control, velocity control, and torque control.

  • Software-defined: The olive® Servo is software-defined, allowing users to customize its communication layer, behaviour, and functionality through software rather than hardware.

  • Auto-voltage: the olive® Servo can run in different voltage modes: 5 / 9 / 12V. The specific voltage is automatically adjusted to the power intake to ensure maximum performance in all conditions.

olive® Servo Models

The olive series of servos includes four different models that are distinguished by their rotations per minute (RPM). Each servo comes with with an on-board 9D high-performance IMU. These are the available options:

NameTypeSensorsMax Data RateRPMInformation
OLV-SRV01-S16Servo + IMURotary Position Sensor & IMU Sensor (9D)40000Hz / 100 Hz16High Torque Servo Motor & IMU
OLV-SRV01-S32Servo + IMURotary Position Sensor & IMU Sensor (9D)40000Hz / 100 Hz32Mid Torque Servo Motor & IMU
OLV-SRV01-S48Servo + IMURotary Position Sensor & IMU Sensor (9D)40000Hz / 100 Hz48Mid RPM Servo Motor & IMU
OLV-SRV01-S64Servo + IMURotary Position Sensor & IMU Sensor (9D)40000Hz / 100 Hz64High RPM Servo Motor & IMU

Olive® Operational Modes

To change the servo mode you can open the debug gui and select the servo's mode:

servo1!

1. PWM Control

Description: Pulse Width Modulation (PWM) control is a technique used to regulate the power supplied to electrical devices, such as actuators. It adjusts the duty cycle of the input signal, controlling the amount of power provided to the actuator.

  • Input: Duty cycle (-1 to 1)
  • Output: Power supplied to the actuator
  • Subscriber topic: /olive/actuator/name_space/pwm

pwm-control!

2. Position Control

Description: Position control is used to maintain or adjust the position of an actuator. The controller computes the difference between the desired and actual positions and adjusts the actuator accordingly.

  • Input: Desired position
  • Output: Actual position of the actuator
  • Subscriber topic: /olive/actuator/name_space/goal/position
  • PID: A PID controller is used to minimize the position error, adjusting the control signal to change the actuator's position.

position-control!

3. Velocity Control

Description: Velocity control is used to maintain or adjust the velocity of an actuator. The controller computes the difference between the desired and actual velocities and adjusts the actuator accordingly.

  • Input: Desired velocity
  • Output: Actual velocity of the actuator
  • Subscriber topic: /olive/actuator/name_space/goal/velocity
  • PID: A PID controller is used to minimize the velocity error, adjusting the control signal to change the actuator's velocity.

velocity-control!

Technical Specifications

Part NumberOLV-SRV01-S*
Connection InterfaceUSB Type-C
CommunicationUSB Type C - Ethernet Over USB
Communication ProtocolROS 1&2 (Virtual Ethernet / IPV4)
Rotations per Minute16 / 32 / 48 / 64
Motor Control Pulse Duration1000kHz
Rotaray Position Resolution16384
IMU Sample rate100 Hz
Gyroscope range+/- 2000 deg/sec
Accelerometer range+/- 16 g
Magnetometer range+/- 4 gauss
Gyroscope accuracy+/- 0.05 deg/sec
Accelerometer accuracy+/- 0.1 g
Magnetometer accuracy+/- 0.2 gauss
Performance MetricsCovariance Matrix
Operating Voltage5.0V / 9.0V / 12.0V (auto adjusted)
Voltage Read Resolution65536
Weight180 grams
Dimensions WxHxD60x60x46 mm
Native ROS Messagessensor_msgs/JointState, sensor_msgs/Imu*, sensor_msgs/Temperature
Operating Temperature0 ~ 55 °C

Quick Setup

  1. Follow the Quick Start Guide for Olive Robotics robot modules to connect the device and start using it.

  2. When the servo is correctly connected to your system, you can check that the expected ros topics are present. On your host PC run:

    ros2 topic list
    ros2 topic list

    The following ROS topics showed be shown:

    /olive/servo/x1681709875/pwm
    /olive/servo/x1681709875/magnet/angle
    /olive/servo/x1681709875/magnet/moving_average
    /olive/servo/x1681709875/magnet/auto_gain
    /olive/servo/x1681709875/magnet/magnitude
    /olive/servo/x1681709875/magnet/diagnostic
    /olive/servo/x1681709875/joint
    /olive/servo/x1681709875/joint/voltage
    /parameter_events
    /rosout
    /olive/servo/x1681709875/pwm
    /olive/servo/x1681709875/magnet/angle
    /olive/servo/x1681709875/magnet/moving_average
    /olive/servo/x1681709875/magnet/auto_gain
    /olive/servo/x1681709875/magnet/magnitude
    /olive/servo/x1681709875/magnet/diagnostic
    /olive/servo/x1681709875/joint
    /olive/servo/x1681709875/joint/voltage
    /parameter_events
    /rosout

INFO

The number 1681709875 is your device's serial number and will be displayed in accordance with your device.

  1. Control the servo and visualize the data using one of the available options.

  2. Change the parameters like IP, ROS topic name, etc. using the embedded web interface. You just need to open your browser on your host computer and enter the IP address of the device. If you didn't change the default IP address, then it must be 10.42.0.7.

ROS Topics and Services

PWM Control Mode (Base topics)

Topic NameMessage TypeTypeDescription
.../pwmstd_msgs/Float32SubscriberControl the raw pwm control value. -1.0 to 1.0
.../magnet/anglestd_msgs/Float64PublisherCurrent angular position of the servo. [radian]
.../magnet/moving_averagestd_msgs/Float64PublisherMoving average of .../magnet/angle [radian]
.../magnet/auto_gainstd_msgs/BytePublisherThe rotary sensor's auto gain register.
.../magnet/magnitudestd_msgs/Float64PublisherThe rotary sensor's magnitude register.
.../magnet/diagnosticstd_msgs/StringPublisherThe rotary sensor's diagnostic status.
.../jointsensor_msgs/JointStatePublisherThe servo current joint state.
.../joint/voltagestd_msgs/Float64MultiArrayPublisherThe servo current joint state.

Position Control Mode (Additional topics)

Topic NameMessage TypeTypeDescription
.../goal/positionstd_msgs/Float32SubscriberDesired position

Velocity Control Mode (Additional topics)

Topic NameMessage TypeTypeDescription
.../goal/velocitystd_msgs/Float32SubscriberDesired velocity
Service NameTypeDescription
.../setZerostd_srvs/TriggerRedefine the servo's current position to be zero.
.../setTorqueEnablestd_srvs/TriggerEnables the servo torque.
.../setTorqueDisablestd_srvs/TriggerDisables the servo torque.

Advanced Settings

The device allows certain parameters to be changed at runtime. To get an overview of all changeable parameters use ros2 param list. To change a parameter use ros2 param set /dcm_actuator <parameter> <new_value>

Servo

PWM Control Mode (Base params)

ParameterTypeRange MinRange MaxDefaultDescription
frequencyint01000100Actuator status publish rate
lpf_velocity_gaindouble0.01.00.9Low pass filter gain for velocity

Position Control Mode (Additional params)

ParameterTypeRange MinRange MaxDefaultDescription
Kddouble0.01000.0xPID's derivative parameter
Kidouble0.01000.0xPID's integral parameter
Kpdouble0.01000.0xPID's proportional parameter
control_frequencydouble0.010000.0xPID's control loop rate
error_thresholddouble0.010.0xPID's error threshold
limit_maxdouble-pipipi/2Higher limit of joint workspace
limit_mindouble-pipi-pi/2Lower limit of joint workspace
pwm_maxdouble011Maximum internal PWM power threshold

Velocity Control Mode (Additional params)

ParameterTypeRange MinRange MaxDefaultDescription
Kddouble0.01000.0xPID's derivative parameter
Kidouble0.01000.0xPID's integral parameter
Kpdouble0.01000.0xPID's proportional parameter
control_frequencydouble0.010000.0xPID's control loop rate
error_thresholddouble0.010.0xPID's error threshold
limit_maxdouble01010Higher limit of joint velocity
limit_mindouble0100Lower limit of joint velocity
pwm_maxdouble011Maximum internal PWM power threshold

System

ParameterTypeRange MinRange MaxDefaultDescription
frequencyint01010System status publish rate

Mechanical Details

Olive-Servo_Body!

Olive-Servo_Horn!

Olive-Servo_Asm!