Skip to content
On this page

olive® Camera

Technical Specifications

Feature CategoryFeature SubcategorySpecification
Form FactorDimensions (W x H x D)40mm x 40mm x 30mm
Weight89 grams
Processor UnitApplication ProcessorDual Cortex-A7 up to 800 MHz
Real-Time ProcessorCortex-M4 MPU up to 200 MHz
MemoryOn Chip (SoC)512 MB RAM
On Chip EEPROM (SoC)512 Bytes x 8
On SOM64 GByte SD Flash
SensorsImage Sensor1/2.7" OmniVision OV2710
Max Resolution1920(H)x1080(V) pixels
Lens2.1mm (L210) / 1.8mm (L180)
Frame Rate640x480 VGA @120fps, 1280x720 HD @60fps, 1920x1080 FHD @30fps
IMU Sensor6-Axis Automotive-Proven IMU
IMU Range & SensitivityAccelerometer: 0.06 mg/LSB, Gyroscope: 0.004 dps/LSB
ConnectivityHigh-Speed Connectivity1x Virtual Ethernet USB Type C @ 60 MBps
Other I/O1x User Switch, 3x User LEDs
SoftwareYocto BSPAvailable for batch purchases
Linux KernelLinux 5.10
Operating SystemDebian 11
Communication middlewareApache Cyclone DDS
Robotic Operating SystemsROS Noetic Ninjemys, ROS 2 Humble Hawksbill
Power and ThermalPower ConsumptionUSB Type C PD (15 W max)
VoltagePD 5.0v
Max Current3000mA
Temperature RangeCommercial: 0°C to 85°C, Industrial: -40°C to +85°C

Quick Setup

Quick start guide for the olive® Camera module:

  1. Install ROS2 (https://docs.ros.org/en/humble/index.html) on your host computer. This will provide the necessary tools and libraries to communicate with the Olive Robotics modules.

  2. Connect the Olive Robotics modules to your host computer using the USB Type C cables.

  3. Check if your compueter asigns an IP address to your component. This may take up to 30~60 seconds. Each module ships with a defauld static IP address asigned to it. The defauls address for smart components is 10.42.0.7 and can be changed later via the web interface.

    • You can check the if the connection is stablished or not in two ways:

      1. ping the device using the following command in your terminal:

        ping 10.42.0.7
        ping 10.42.0.7

        and if the module is connected successfully, you should see something like this:

        PING 10.42.0.7 (10.42.0.7) 56(84) bytes of data.
        64 bytes from 10.42.0.7: icmp_seq=1 ttl=64 time=0.402 ms
        64 bytes from 10.42.0.7: icmp_seq=2 ttl=64 time=0.371 ms
        64 bytes from 10.42.0.7: icmp_seq=3 ttl=64 time=0.397 ms
        64 bytes from 10.42.0.7: icmp_seq=4 ttl=64 time=0.398 ms
        PING 10.42.0.7 (10.42.0.7) 56(84) bytes of data.
        64 bytes from 10.42.0.7: icmp_seq=1 ttl=64 time=0.402 ms
        64 bytes from 10.42.0.7: icmp_seq=2 ttl=64 time=0.371 ms
        64 bytes from 10.42.0.7: icmp_seq=3 ttl=64 time=0.397 ms
        64 bytes from 10.42.0.7: icmp_seq=4 ttl=64 time=0.398 ms
      2. Check if the network adapter is attached and recognized by your host computer.

        ifconfig
        ifconfig

        and if the device is recognized successfully, you should see something like this:

        enxd8de9b838d35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 10.42.0.79  netmask 255.255.255.0  broadcast 10.42.0.255
                inet6 fe80::ef0a:e686:27aa:6307  prefixlen 64  scopeid 0x20<link>
                ether d8: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
        enxd8de9b838d35: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
                inet 10.42.0.79  netmask 255.255.255.0  broadcast 10.42.0.255
                inet6 fe80::ef0a:e686:27aa:6307  prefixlen 64  scopeid 0x20<link>
                ether d8: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
  4. Check if the data is alreaddy published to your system using:

    ros2 topic list
    ros2 topic list

    you should be able to see all the topics published from the module. For exampe for IMU module you will see:

    /olive/imu/x1681709875/image/camera_info
    /olive/imu/x1681709875/image/compressed
    /olive/imu/x1681709875/imu
    /olive/imu/x1681709875/magnetometer
    /olive/imu/x1681709875/status
    /olive/imu/x1681709875/switch
    /olive/imu/x1681709875/led
    /rosout
    /olive/imu/x1681709875/image/camera_info
    /olive/imu/x1681709875/image/compressed
    /olive/imu/x1681709875/imu
    /olive/imu/x1681709875/magnetometer
    /olive/imu/x1681709875/status
    /olive/imu/x1681709875/switch
    /olive/imu/x1681709875/led
    /rosout

INFO

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

  1. Visualize the data using:

    1. Embedded Web Interface (https://docs.olive-robotics.com/software/gui/gui.html)

    2. rqt (https://docs.ros.org/en/humble/Tutorials/Beginner-CLI-Tools/Introducing-Turtlesim/Introducing-Turtlesim.html#install-rqt)

      • Visualize the topics: olive_camera_rqt_topics!

      • Plot the data from the IMU messages: olive_camera_rqt_imu!

      • Visualize the Image: olive_camera_rqt_image!

      • Change the parameters of the DCM: olive_camera_rqt_param!

    3. rviz2 (https://github.com/ros2/rviz).

      • Visualize the IMU data in Rviz2 olive_rviz_imu!
  2. Visualize the data and change the parameters like IP, 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 IP address, then it must be 10.42.0.7.

ROS Topics and Services

Topic NameMessage TypeTypeDescription
.../image/camera_infosensor_msgs/CameraInfoPublisherCamera image information
.../image/compressedsensor_msgs/CompressedImagePublisherCamera image
.../imusensor_msgs/ImuPublisherMessured acc/gyro/quaternion
.../magnetometersensor_msgs/MagneticFieldPublisherMessured Magnetic field.
.../statusdiagnostic_msgs/DiagnosticStatusPublisherDevice status.
.../switchstd_msgs/BoolPublisherDevice micro-switch status.
.../ledstd_msgs/BoolSubscriberUser defined LED.

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_camera <parameter> <new_value>

Camera

ParameterTypeRange MinRange MaxDefaultDescription
frequencyint012030Camera publish rate
brightnessdouble0.01.00.5Camera brightness parameter
contrastdouble0.01.00.5Camera contrast parameter
saturationdouble0.01.00.5Camera saturation parameter
gammadouble0.01.00.5Camera gamma parameter
whitebalancedouble0.01.00.5Camera whitebalance parameter
resolutionstring"320x240""1920x1080""640x480"Camera image resolution

IMU

ParameterTypeRange MinRange MaxDefaultDescription
filter_frequencyint01200100IMU filter frequency
filter_gainint010.2IMU filter gain
frequency_imuint01200100IMU publish rate
frequency_magint0100100Magnetometer publish rate

System

ParameterTypeRange MinRange MaxDefaultDescription
frequencyint01010System status publish rate