SICKAG / SICK-LiDAR-API-Documentation-and-Examples

This repository contains information on how to communicate with SICK LiDARs such as the multiScan100 family or the picoScan100 family.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LiDAR API Documentation

#f03c15 This document is on DRAFT stage! #f03c15

This description covers all possibilities to work with the following sensors.

  • multiScan100 family
  • picoScan100 family

... you have your sensor on hand: Kick start here 🚀

Table of content

Introduction

The LiDAR API documentation differentiates between two communication concepts. For both cases there are multiple ways to work with the sensor.

1. Receive event-driven measurement data streaming

Communication concept of measurement data streaming:

sequenceDiagram
    client->>sensor: enable measurement data streaming
    sensor-->>client: acknowledge measurement data streaming
    client->>sensor: measurement data packet [0]
    client->>sensor: measurement data packet [1]
    client->>sensor: measurement data packet [...]


2. Read or write sensor parameters

Communication concept of sensor configuration:

sequenceDiagram
    client->>sensor: set parameter1
    sensor-->>client: acknowledge parameter1
    client->>sensor: set parameter2
    sensor-->>client: acknowledge parameter2
    client->>sensor: ...

General information

Drivers and SDKs

For complete drivers instead of single telegrams, the following options are available:

Examples

All available examples can be found here.

Default IP address

The default IP address for the sensors (if not specified different is 192.168.0.1)

Measurement Data Streaming - Comparison and choice

Transport Layer Port Advantages Bandwidth factor
Compact UDP default is port 2115 - smallest traffic
- best fit for PLCs
1
MSGPACK UDP default is port 2115 - available libraries in almost all programming languages ~2
WebSocket TCP 80 - uses port 80 which is open in most circumstances
- good for low output frequencies
- uses JSON structure
~3

Device configuration - Comparison and choice

Transport Layer Port When to use what
REST TCP 80 - if you only want to read data - if your system can handle a challenge and response process
CoLa A TCP default is port 2111 - if your system cannot handle a challenge and response process
CoLa B TCP default is port 2112 - if your system cannot handle a challenge and response process
- it is the best fit for PLCs.

Getting started to work with a sensor

0️⃣ Prerequisites

✔️ SICK sensor (e.g. multiScan100)

✔️ Power cable

✔️ Ethernet cable to connect the sensor to your system

1️⃣ See scan data on sensor web server

2️⃣ Decide how you want to work with the device

  • Case 1: You want to test the device and change some settings with the given web browser.
    • You are ready to got and do not need any further actions.
  • Case 2: You want to integrate the device into a ROS environement (ROS / ROS2)
  • Case 3: You want to use an existing driver (C++ or Python)
  • Case 4: You want to build your own driver in specidic programming language.
    • Decide which measurement data straming approach you want you use. You can choose from these:
      • Compact Format via UDP
      • MSGPACK Format via UDP
      • ScanData via WebSockets
    • Decide which sensor configuration approach you want you use. You can choose from these:
      • HTTP/REST via TCP
      • CoLa via TCP

About

This repository contains information on how to communicate with SICK LiDARs such as the multiScan100 family or the picoScan100 family.