This documentation provides comprehensive information about Olive Robotics' advanced modular robotics platform. Our mission is to empower professionals, researchers, educators, and developers with high-performance, interoperable hardware and software tools to accelerate the development and deployment of robotic systems.
Olive Robotics offers a versatile portfolio of modular components—including sensors, actuators, communication interfaces, processing modules, power supplies, and system-on-modules (SoMs)—all designed with native ROS 2 integration. These modules are engineered to enable scalable, flexible, and high-performance robotics solutions across various applications.
In addition to hardware, we provide a suite of ROS 2-based software packages, including applications and example projects, to support the configuration, programming, and real-time control of robotic systems.
Within this documentation, you will find detailed technical specifications, setup instructions, usage guidelines, and development resources. Use the navigation panel on the left to explore different sections, or leverage the search bar to quickly locate specific topics.
For further assistance or technical support, please contact us at support@olive-robotics.com. Our team is committed to ensuring your success with our technologies.
Thank you for choosing Olive Robotics. We look forward to supporting your innovation in robotics.
At Olive Robotics, our mission is to make robotics accessible and affordable for everyone. We believe that robotics has the potential to transform our world and improve our lives in countless ways, and we want to help make that happen.

In addition to our hardware products, we also provide ROS2-based apps and examples packages to help you program and control your robotic systems. Our web-based GUI provides a wide range of capabilities for configuring, controlling, and testing out components, and our examples packages in C++ and Python provide a starting point for using our hardware in action.
Overall, our products and services make it possible to create complex and intelligent robotic systems in days or weeks, instead of months or years. Whether you are a student, researcher, developer, or hobbyist, Olive Robotics can help you to unlock the potential of robotics and make your vision a reality.
Start with one of the following options to get started with your Olive components:
After becoming familiar with the basic functions of Olive components, there are multiple ways to communicate and configure their behavior.
Our robot components are the foundation of our modular robotic building blocks, and they provide the physical sensors, actuators, and other components that you need to build and program your own robotic systems. The menu on the left gives you access to dedicated instructions for each of our hardware products, including technical specifications, user instructions, and examples.
The Olive Embedded web GUI is a user-friendly interface for configuring, controlling, and testing our modular robotic building blocks. It provides a wide range of capabilities for setting up and controlling our hardware components, including setting parameters, sending commands, and visualizing sensor data.
This web GUI is a web service that runs directly on the Olive hardware module, and it connects to your host PC over a standard Ethernet connection (via the USB-C connector). This means that you can access and control our hardware components from any web browser, on any device, without having to install any additional software.
To access the web GUI, just connect the Olive component to your computer using a standard USB-C cable and wait for it to appear in your network devices. Then just type the standard IP address 192.168.7.1 (old versions: 10.42.0.7) into your web browser of choice and you're ready to go.
ROS and ROS2 are a core part of the Olive range of products and every Olive hardware component runs ROS out of the box - no setup required.
The Olive ROS2 software packages and examples are a key part of our product offering, and they provide everything you need to start programming and controlling your robotic systems with our hardware. Our ROS2 packages provide examples of using our hardware in action. They are designed to be easy to use and available in both C++ and Python, so you can choose whichever language you are most comfortable with.
In addition to the examples, we also provide a range of tools and utilities to help you work with our ROS2 packages. These include scripts for building and running the examples, as well as utilities for monitoring and debugging your code.
For more information please visit our github page:
Olive One is a brand of Smart Interoperable Components developed by Olive Robotics GmbH for use in any robotic system.

The modules also can be daisy chain and connect to each other:
Modules are connected to host computers via standard USB Type C and standard commercially available HUB equipment with PD support. In the host computer network, every client needs to obtain an IP address in order to communicate with the main PC or with other connected modules. If there is only one module connected to the main PC, the module will get an IP address automatically from the host PC. If more than one module is connected to the computer and user wants to establish a network along all the modules, the bridge connection must be established in the main PC.
Olive Components are designed for broad compatibility and seamless integration with a wide range of hardware platforms. They work with nearly any system that offers a USB or Ethernet interface, including commercial laptops, desktop PCs, mini PCs, and industrial PCs. We have also successfully tested Olive Components on popular IoT devices such as the Raspberry Pi 4 and 5, Siemens IOT 2050, and numerous others, ensuring stable and reliable performance across diverse use cases and environments.
| Hardware | Note |
| AMD/Intel Laptops and PCs (x64) | Ok |
| Apple Mac and Apple Silicon (Intel, arm) | Ok |
| Raspberry Pi (3,4,5) | Ok |
| Nvidia Jestson (Nano, Tx1, Tx2, Xavier) | Ok |
| Intel N100 Industrial IOT Computers | Ok |
| Intel NUC Mini Computers | Ok |
| Intel Compute Stick | Ok |
| Simens IOT (2050) | Ok |
| Adlink Computers | Test in progress |
| Bosch Rexroth Computers | Test in progress |
| Nvidia Orin Series | Test in progress |
Find the most relevant information below and the quick setup guide in the following section.
| Item | Value |
|---|---|
| Default Device IP address | 192.168.7.100 |
| Default Host IP address | 192.168.7.200 |
| Web GUI address | http://192.168.7.100 |
| User name | olive |
| Password | one |
| ROS1 Version (via bridge) | Noetic |
| ROS2 Version (native) | Humble / Jazzy |
| Default ROS topic names | /olive/<device type>/<device id>/<parameter> |
| Base OS | Debian 11 Bullseye |
This quick start guide shows you how to get any Olive Robotics component up and running:
192.168.7.100. It can be changed later via the web interface. Make sure you set a static ip address 192.168.7.200 for your host computer.You can check if the connection is established in two ways:
ping 192.168.7.100
If the module is connected successfully, you should see something like this:
PING 192.168.7.100 (192.168.7.100) 56(84) bytes of data.
64 bytes from 192.168.7.100: icmp_seq=1 ttl=64 time=0.402 ms
64 bytes from 192.168.7.100: icmp_seq=2 ttl=64 time=0.371 ms
64 bytes from 192.168.7.100: icmp_seq=3 ttl=64 time=0.397 ms
64 bytes from 192.168.7.100: icmp_seq=4 ttl=64 time=0.398 ms
ifconfig
If the device is recognized successfully, you should see something like this:
enxa8de9b838d35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.200 netmask 255.255.255.0 broadcast 10.42.0.255
inet6 fe80::ef0a:e686:27aa:6307 prefixlen 64 scopeid 0x20<link>
ether a8:de:9b:83:8d:35 txqueuelen 1000 (Ethernet)
RX packets 1846 bytes 272143 (272.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 195 bytes 34984 (34.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Note that the MAC address of Olive components shown next to ether ... always starts with enx0a:
ros2 topic list. You should be able to see all the topics published from the module. For example for IMU module you will see:192.168.7.100.olive and password one.Please make sure you assign a static IP to your computer interface (example: 192.168.7.100).
On your main computer, it’s essential to ensure that the ROS_LOCALHOST_ONLY environment variable is always set to 0. In ROS 2, ROS_LOCALHOST_ONLY, when set to 1, restricts all ROS 2 communication—including topics, services, and actions—to the local loopback interface (localhost), making them invisible to other machines on the network. The default value is 0, which allows ROS 2 communication to operate over the network as intended. Setting it to 0 ensures that the system remains discoverable and can interact properly in multi-machine setups.
To ensure optimal performance, please ensure that your main computer is configured to utilize FastDDS middleware. If you find that CycloneDDS is currently in use, you'll need to switch the configuration from the device's web-based GUI to CycloneDDS. Additionally, in cases where your computer employs multiple network interfaces, it's essential to establish a specific configuration for CycloneDDS and explicitly designate the IP address of the active network. This ensures seamless operation and maximizes efficiency. Please follow the steps in chapter Data Distribution Service (DDS).
The ROS_DOMAIN_ID environment variable defines the DDS domain in which your ROS 2 nodes communicate. All nodes with the same ROS_DOMAIN_ID can discover and interact with each other, while nodes in different domains remain isolated. For multi-machine communication to work, your main computer’s ROS_DOMAIN_ID must exactly match the value set on any other host you want to connect with. If the IDs differ, discovery will fail, and the systems will operate as if on separate networks—even if they share the same physical connection.
Sometimes you have to restart your ROS 2 daemon.
ros2 daemon stop
ros2 daemon start
Sometimes your ROS 2 cli terminal is not showing the topics, but in rqt you will see the topics and this is a bug in ROS 2 cli terminal. Double check with rqt, topic monitor plugin.
rqt
The automatic background calibration detects it as stationary and suppresses the gyro output.
We recommend that if you need the raw sensor data without this effect, you should refer to the filtered_IMU stream instead of filtered_AHRS.
This gives you direct access to the accelerometer and gyroscope data without the aggressive bias correction.
Additionally, you can adjust the yaw sensitivity in filtered_IMU using the fusion_gain parameter:
A higher fusion_gain makes the system more responsive to motion.
A lower fusion_gain makes the output more stable but slower to respond.