You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Split into msg and driver package (#20)
- Removal of broken tests
- Refactoring of class names regarding network communication
- Stabilization of timestamp sync
Copy file name to clipboardExpand all lines: README.md
+51-67Lines changed: 51 additions & 67 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,24 +1,19 @@
1
-
# sick_lidar_localization
1
+
# sick_lidar_localization pkg
2
2
3
3
ROS driver, native C++ library and REST API for SICK LiDAR localization.
4
4
5
5
## Introduction
6
6
7
-
This repository contains drivers and libraries for the API of LiDAR-LOC.
8
-
* Command API (REST)
9
-
* Streaming API (UDP)
7
+
This repository contains a driver for the REST-API control for the LiDAR-LOC software (LLS) version 2.
8
+
9
+
The repository is structured in two packages. The `sick_lidar_localization_msgs` contains all relevant messages and services for the driver an can be used individually. The `sick_lidar_localization_driver` package depends on the `sick_lidar_localization_msgs` package and contains the driver supporting the following ROS versions in the same source:
10
10
11
11
The drivers support the following environments:
12
12
13
13
* native **without ROS** for Linux/Windows (REST and C++)
14
14
* ROS1 for Linux
15
15
* ROS2 for Linux/Windows
16
16
17
-
## Specification
18
-
19
-
The customer requirements and the REST API specification for the implementation of the project:
20
-
[specification](doc/specifications/README.md)
21
-
22
17
## Installation
23
18
### Build on native Linux (C++ and REST API)
24
19
@@ -36,7 +31,7 @@ To build and install sick_lidar_localization on Linux without ROS, follow the st
36
31
37
32
3. Build project sick_lidar_localization with cmake:
38
33
```
39
-
cd sick_lidar_localization
34
+
cd sick_lidar_localization/sick_lidar_localization_driver
40
35
if [ -d ./build ] ; then rm -rf ./build ; fi
41
36
mkdir -p ./build
42
37
pushd ./build
@@ -62,11 +57,19 @@ To build and install sick_lidar_localization on Linux using ROS 1, follow the st
| udp_ip_lls_output | "" | string | udp_ip_lls_output:=192.168.0.100 | IP address of your local machine (i.e. the receiver of UDP stream messages) |
217
-
| udp_ip_lls_input | 192.168.0.1 | string | udp_ip_lls_input:=192.168.0.1 | IP address of host to send input UDP messages to, should be identical to hostname (except for unittests) |
234
+
| ros_machine_ip | "" | string | ros_machine_ip:=192.168.0.100 | IP address of your local machine (i.e. the receiver of stream messages) |
218
235
219
236
## REST API services
220
237
221
238
LiDAR-LOC can be configured using a JSON REST API. This API is available using ROS services (on ROS 1 and ROS 2) or commandline tool `gen_service_call` (on all target systems). See [REST API services](doc/sick_localization_services.md) for details.
222
239
223
240
## <a name="cpp_api"></a> C++ API
224
241
225
-
On native Linux or Windows without ROS, tool `gen_service_call` can be used for the [REST API services](doc/sick_localization_services.md). UDP stream messages can be processed using the [C++ API](doc/cpp_api.md).
242
+
On native Linux or Windows without ROS, tool `gen_service_call` can be used for the [REST API services](doc/sick_localization_services.md). Stream messages can be processed using the [C++ API](doc/cpp_api.md).
226
243
227
-
## UDP stream messages
244
+
## UDP Stream messages
228
245
229
-
LiDAR-LOC receives messages from and sends messages to the localization controller using UDP. UDP output messages are UDP messages sent from the localization device to the local IPC. UDP input messages are UDP messages sent from the local IPC to the localization device. On ROS1 and ROS2, these UDPmessages are converted from respective to ROS messages. On native Linux and Windows systems, these UDPmessages can be processed using the [C++ API](doc/cpp_api.md).
246
+
LiDAR-LOC receives and sends messages from resp. to the LLS device using UDP. UDP output messages are UDP messages sent from the LLS device to the local PC. UDP input messages are UDP messages sent from the local PC to the LLS device. On ROS-1 and ROS-2, these UDP-messages are converted from resp. to ROS messages. On native Linux and Windows systems, these UDP-messages can be processed using the [C++ API](doc/cpp_api.md).
230
247
231
248
UDP stream output messages are:
232
249
* [Odometry messages type 1 version 4](msg/OdometryMessage0104.msg)
@@ -249,7 +266,7 @@ See [UDP stream messages](doc/lls_messages.md) for details and examples.
249
266
250
267
## Timestamps and time synchronization
251
268
252
-
The localization timestamps in UDP output messages are converted to system time using a Software-PLL. See [Time synchronization](doc/timing.md) and [Software-PLL](doc/software_pll.md) for details.
269
+
The localization timestamps in output messages are converted to system time using a Software-PLL. See [Time synchronization](doc/timing.md) and [Software-PLL](doc/software_pll.md) for details.
253
270
254
271
## System setup and source Ids
255
272
@@ -299,39 +316,6 @@ Other frame ids can be e.g. "robot", "vehicle" or "lidar". Choose parameter tf_p
299
316
300
317
See https://roboticsknowledgebase.com/wiki/state-estimation/ros-navigation/ for further examples.
301
318
302
-
### Unittests
303
-
304
-
Folder `sick_lidar_localization/test/scripts` provide scripts for development and unittests on ROS-1, ROS-2 and native Linux or Windows. Run the following scripts for a short unittest in case of problems or use them as examples to run lidar localization:
305
-
306
-
ROS-1 Linux:
307
-
```
308
-
cd ./src/sick_lidar_localization/test/scripts
309
-
./makeall_ros1.bash
310
-
./run_linux_ros1_simu.bash
311
-
```
312
-
313
-
ROS-2 Linux:
314
-
```
315
-
cd ./src/sick_lidar_localization/test/scripts
316
-
./makeall_ros2.bash
317
-
./run_linux_ros2_simu.bash
318
-
```
319
-
320
-
Native Linux:
321
-
```
322
-
cd ./src/sick_lidar_localization/test/scripts
323
-
./makeall_linux.bash
324
-
./run_linux_simu.bash
325
-
```
326
-
327
-
Native Windows:
328
-
```
329
-
cd .\src\sick_lidar_localization\test\scripts
330
-
.\make_win64.cmd
331
-
Open sick_lidar_localization.sln in build folder and rebuild (debug version)
332
-
.\run_win64_simu.cmd
333
-
```
334
-
335
319
## FAQ, troubleshooting
336
320
337
321
### Setup
@@ -356,7 +340,7 @@ Find detailed information in the operation manuals published on https://supportp
356
340
357
341
:question: How can I record and save localization data for offline tests and diagnosis?
358
342
359
-
:white_check_mark: Use wireshark to save udp-data from the localization server as described in [udp data recording](doc/sick_localization_recording.md)
343
+
:white_check_mark: Use wireshark to save udp-data from the localization device as described in [udp data recording](doc/sick_localization_recording.md)
0 commit comments