Skip to content

Investigate composable nodes #176

Description

@yuzhiliu8

#169

Discovered other potential vision bottleneck

When we run our vision pipeline, we have
v4l2_camera_node/camera_ros --> CameraNode --> potentially multiple vision nodes at a time.

We currently run them all as separate launch actions, which launches them in different processes. CameraNode subscribes to v4l2, and vision nodes all subscribe to CameraNode stream, which means a lot of inter process communications and copying of image memory buffers

A composable node lets multiple nodes run in one process, which can allow for zero copying img buffers (thru C++ shared_ptr) and also no DDS serialization/deserialization overhead. The main issue is that zero copying (the important one) comes from C++ nodes only. Prob no diff on laptop, but potentially high benefit for a raspberry pi.

Basically, try to keep most of the vision pipeline stuff in same process and try not to expose raw topics or image data to other processes or over network

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions