Skip to content

1) Developers

7
  • 1) Welcome to Olive Robotics
  • 2) Quick Start
  • 3) FAQ​
  • 4) Linux
  • 5) Windows
  • 6) MacOS
  • 7) Supported Hardware

2) Hardware

6
  • 1) olixSense™ IMU
  • 2) olixVision™ Camera
  • 3) olixMotion™ Servo​
  • 4) olixCore™ EdgeIO
  • 5) olixGNX™ GNSS/INS
  • 6) olixEcho™ Sonar​

3) Software

12
  • 01) Patch Update​
  • 02) Firmware Releases​
  • 03) Web-based GUI​
  • 04) Examples / Apps
  • 05) SSH​
  • 06) Environment Variables​
  • 07) Network Configuration​
  • 09) Time Synchronization​
  • 10) Internet Sharing​
  • 11) Reset Factory​
  • 12) olixOS
  • 13) Configs

4) olixKits

2
  • 1) OWL Educational Kit​
  • 2) ANT Educational Kit​

5) ROS and Interoperability

9
  • 1) ROS 1
  • 2) ROS 2
  • 3) RQT
  • 4) RIG Reconfigure​
  • 5) Plot Juggler​
  • 6) RViz 2​
  • 7) Recording and playing​
  • 8) ROS 2 Bridge​
  • 9) Data Distribution Service (DDS) ​

6) Knowledge Base

6
  • 1) Accelerometers
  • 2) Gyroscopes
  • 3) Magnetometers
  • 4) Attitude & Heading Reference System (AHRS)
  • 5) Inertial Navigation System (INS)
  • 6) Sensor Fusion
  • Docs2
  • 2) Hardware
  • 3) olixMotion™ Servo​
View Categories

3) olixMotion™ Servo​

7 min read

(software patch > 1215)

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 five different modes of control: raw control (pwm), position control, velocity control, trajectory control and wheel mode 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.

Demo​ #

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:

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/servo/name_space/pwm

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/servo/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.

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/servo/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.

4. Trajectory Control​ #

Description: This mode controls the position of the actuator, like position control does. But it does something extra: it uses a jitter buffer to give the PID controller a steady stream of data at regular intervals. This is especially useful when you’re sending position targets over a network where timing isn’t guaranteed. It’s also great for situations where following the trajectory smoothly matters more than how fast it’s executed.

  • Input: Desired position
  • Output: Actual position of the actuator
  • Subscriber topic: /olive/servo/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.

5. Wheel Control​ #

Description: It operates similarly to velocity control but incorporates a watchdog mechanism designed to swiftly halt the motor if velocity commands fail to arrive within an assured interval. This feature is particularly valuable in wheel mode control scenarios, where preventing the robot from unintended movement due to high-level logic crashes or network issues is essential.

  • Input: Desired velocity
  • Output: Actual velocity of the actuator
  • Subscriber topic: /olive/servo/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.

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 listThe following ROS topics showed be shown:
    • /olive/servo/id001/pwm
    • /olive/servo/id001/magnet/angle
    • /olive/servo/id001/magnet/moving_average
    • /olive/servo/id001/magnet/auto_gain
    • /olive/servo/id001/magnet/magnitude
    • /olive/servo/id001/magnet/diagnostic
    • /olive/servo/id001/joint
    • /olive/servo/id001/joint/voltage
    • /parameter_events
    • /rosout

The number id001 is your device’s default namespace.

  1. Change the parameters like IP, ROS topic name, etc. using the embedded web interface.

Voltage Splitter for PD motors​ #

If your motor is PD-enabled, it offers compatibility with both 12V batteries and external power sources. Activating the PD mode requires using the splitter and connecting the data and power cables as illustrated in the accompanying image:

Daisy Chain with Voltage Splitter​ #

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

Services​ #

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

​Downloads​ #

TypeFormatVersionLink
3D Models
OBJ1.0Download
DAE1.0Download

Mechanical Details​ #

Was this information useful?
Still not working! How can we help?

How can we help?

Updated on April 29, 2025
Table of Contents
  • Overview​
  • Key Features​
  • Demo​
  • olive® Servo Models​
  • Olive® Operational Modes​
    • 1. PWM Control​
    • 2. Position Control​
    • 3. Velocity Control​
    • 4. Trajectory Control​
    • 5. Wheel Control​
  • Technical Specifications​
  • Quick Setup​
    • Voltage Splitter for PD motors​
    • Daisy Chain with Voltage Splitter​
  • ROS Topics and Services​
    • PWM Control Mode (Base topics)​
    • Position Control Mode (Additional topics)​
    • Velocity Control Mode (Additional topics)​
    • Services​
  • Advanced Settings​
    • Servo​
      • PWM Control Mode (Base params)​
      • Position Control Mode (Additional params)​
      • Velocity Control Mode (Additional params)​
    • System​
    • ​Downloads​
  • Mechanical Details​
Olive Robotics

Interoperable Embedded Robotics

All rights reserved