Skip to content

made it work on orin#1

Open
gardeg wants to merge 13 commits into
mainfrom
chore/make-it-work-on-orin
Open

made it work on orin#1
gardeg wants to merge 13 commits into
mainfrom
chore/make-it-work-on-orin

Conversation

@gardeg
Copy link
Copy Markdown
Collaborator

@gardeg gardeg commented Mar 31, 2026

it works on orin, with config launch and all the good shit

@gardeg gardeg requested review from kluge7 and sophia-mina March 31, 2026 13:47
@gardeg gardeg self-assigned this Mar 31, 2026
@gardeg gardeg added high priority This issue should be prioritized perception Perception team responsible labels Mar 31, 2026
gardeg and others added 2 commits March 31, 2026 15:57
- Fix header guard in gstreamer_to_ROS.hpp to use ROS2 style
- Add missing #include <string> to both headers
- Remove explicit keyword from zero-parameter constructors
- Remove stray global variable re-declarations in image_to_gstreamer_node.cpp
- Add config_arg to LaunchDescription in image_to_gstreamer.launch.py
- Apply clang-format and trailing whitespace/EOF fixes

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@vortexuser vortexuser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First round of reviews, only looked at gstreamer_to_ROS so far

Comment on lines +12 to +13
pub_ = this->create_publisher<sensor_msgs::msg::Image>(
output_topic_, rclcpp::SensorDataQoS());
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use the vortex_utils definition for Sensor data, then we can configure the depth: https://github.com/vortexntnu/vortex-utils/blob/main/vortex_utils_ros/vortex_utils_ros/qos_profiles.py

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since this only works with H265 (without requiring major refactor), maybe rename files to clarify that it is for H265 encoding and decoding?


GstCaps* caps = gst_caps_new_simple(
"application/x-rtp", "media", G_TYPE_STRING, "video", "encoding-name",
G_TYPE_STRING, "H265", "payload", G_TYPE_INT, 96, NULL);
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a comment explaining why 96, and what the rest of the parameters mean (and why they were used)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like some comments explaining the different operations, it is not inherently obvious (I dont know Gst syntax), and there is a lot of functions with parameters, difficult to understand what their purpose is, and why those values were used specifically

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Decouple ROS logic from gstreamer logic, main reason is that you then can make tests for the gstreamer logic separate from ROS

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You need to add vortex utils here since you will use it for qos

<version>0.1.0</version>
<description>ROS 2 node that fits a line over a white segmented mask using IRLS (Huber/Tukey) and OpenCV.</description>

<maintainer email="you@example.com">You</maintainer>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add yourself here

Copy link
Copy Markdown

@vortexuser vortexuser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mainly comments explaining how the different parts works, and separating the ROS Layer from the gstreamer code

Comment on lines +7 to +13
framerate: 15
bitrate: 500000
preset_level: 1
iframe_interval: 15
control_rate: 1
pt: 96
config_interval: 1
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment explaining what preset_level, iframe_interval, control_rate, pt and config_interval is (not obvious)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should also be able to configure the input topic from here on runtime (we want to launch multiple instances of this with different input topic)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a fan of having default value for IP, Port and input topic here, can lead to unexpeceted behavior

jobs:
code-coverage:
uses: vortexntnu/vortex-ci/.github/workflows/reusable-code-coverage.yml@main
continue-on-error: true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💀

Comment thread image_to_gstreamer/config/stream.yaml Outdated
image_to_gstreamer_node:
ros__parameters:
input_topic: "/zed_node/left/image_rect_color"
host: "127.0.0.1"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comment to clarify that this is the IP you want to send the gstreamer data to (or update the variable name to something more obvious than host)

@gardeg gardeg force-pushed the chore/make-it-work-on-orin branch from 7ad4639 to 7e9305e Compare April 2, 2026 18:41
@kluge7
Copy link
Copy Markdown

kluge7 commented Apr 24, 2026

We should also make it configurable so that you can change if you want to use nvidia encoding or just cpu from config, and remove default params from code if it is defined in a config file

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

Labels

high priority This issue should be prioritized perception Perception team responsible

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants