You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Artem-Darius Weber bb2dc1e41e
feat: Определение местоположения объектов относительно RealSense и их разметка
8 months ago
..
blob feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
flexible feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
ros2 feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
blob-msg.h feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
dds-topic-names.h feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
device-info-msg.h feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
flexible-msg.h feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
image-msg.h feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
imu-msg.h feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago
readme.md feat: Определение местоположения объектов относительно RealSense и их разметка 8 months ago

readme.md

Topic List

The various topics are arranged hierarchically:

Interface Definition Files

The code for each message type in this directory is generated from IDL files if the message format is defined by RealDDS.

For ROS, the IDLs are not available.

Generation

A utility from FastDDS called FastDDSGen is required to convert the IDL files to the headers that're needed. Unfortunately, this utility requires a java installation and sometimes not even the latest.

Instead, we found it easiest to download a Docker image for FastDDS (last used is version 2.9.1) and generate the files within.

  1. Download the Docker image from here (link was valid at time of writing; if no longer, register with eProsima and update it)

    docker load -i /mnt/c/work/ubuntu-fastdds_v2.9.1.tar
    
  2. In a zsh shell:

    # from third-party/realdds/
    #
    for topic in flexible
    do
    cd include/realdds/topics/${topic}
    cid=`docker run -itd --privileged ubuntu-fastdds:v2.9.1`
    docker exec $cid mkdir /idl /idl/out
    docker cp *.idl $cid:idl/
    docker exec -w /idl/out $cid fastddsgen -typeobject /idl/`ls -1 *.idl`
    docker cp $cid:/idl/out .
    docker kill $cid
    cd out
    for cxx in *.cxx; do mv -- "$cxx" "../../../../../src/topics/${cxx%.cxx}.cpp"; done
    mv -- *TypeObject.h "../../../../../src/topics/"
    mv * ..
    cd ..
    rmdir out
    cd ../../../..
    done
    

    This automatically renames .cxx to .cpp, places them in the right directory, etc.

  3. Once files are generated, they still need some manipulation:

    • Certain #include statements (mainly in the .cpp files moved into src/) need to be updated (e.g., #include "flexible.h" changed to #include <realdds/topics/flexible/flexible.h>)
    • Copyright notices in all the files needs updating to LibRealSense's

ROS2

All the ROS2 topics are under ros2/. The IDLs are not part of this repo and the source code was pre-generated then modified appropriately.

The per-distro (including rolling) source message (.msg) files can be found in:

https://github.com/ros2/common_interfaces

The .msg files can be converted to .idl with rosidl and then fastddsgen can be used to generate source code, similar to what was detailed above. This was all done offline and is not part of the build.

Because there is an interest in keeping our topics ROS-compatible (i.e., so that ROS applications can pick up on and read them), this requires specific topic naming conventions and formats. We try to use ROS-compatible formats, encodings, and names where possible. Right now this is only done one-way: ROS2 can read certain topics, but cannot otherwise control the camera.