Skip to content

Introduce compression publication to ROS 2 camera - #1067

Merged
jhanca-robotecai merged 11 commits into
o3de:developmentfrom
RobotecAI:mp/compression
Aug 19, 2026
Merged

jhanca-robotecai merged 11 commits into
o3de:developmentfrom
RobotecAI:mp/compression

Conversation

@michalpelka

@michalpelka michalpelka commented Jul 28, 2026 •

Copy link
Copy Markdown
Contributor

What does this PR do?

Introduce compression to ROS 2 camera.

  • modified UX to ROS2ImageEncodingConversionComponent - it now allows to choose conversion
  • added to ROS2ImageEncodingConversionComponent depth32F1 -> mono16/mono8
  • moved conversion code out of component for reuse in other components
  • added runtime fallback to ROS2ImageCompressionComponent (depth32F1 to mono16)- applied when there is no ROS2ImageEncodingConversionComponent with warning in the log.
  • added automatically generated tests.

New UX of ROS2ImageEncodingConversionComponent

In development was bug that prevented user getting back from invalid config. I've changed it to message, that user is about shoot themself in foot:
Screenshot from 2026-07-30 11-33-07

ROS2ImageCompressionEditorComponent

image

I also do not prevent user from trying to compress depth with JPEG (what makes no sense in any application).

How was this PR tested?

image
  • added tests
  • build and tested against o3de development.

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
@byrcolin byrcolin added the sig/simulation Categorizes an issue or PR as relevant to SIG Simulation label Jul 28, 2026
@michalpelka
michalpelka force-pushed the mp/compression branch 2 times, most recently from 466d034 to 66391d4 Compare July 30, 2026 10:50
- modified UX to ROS2ImageEncodingConversionComponent - it now allows to choose conversion
- added to ROS2ImageEncodingConversionComponent depth32F1 -> mono16/mono8
- moved conversion code out of component for reuse in other components
- added runtime fallback to ROS2ImageCompressionComponent (float to mono16)
- added automatically generated tests.

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Comment thread Gems/ROS2Sensors/Code/Source/Camera/CameraUtilities.h Outdated
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Comment thread Gems/ROS2Sensors/Code/Source/Camera/Compression/ImageCompression.h Outdated
Comment thread Gems/ROS2Sensors/Code/Source/Camera/Compression/ImageCompressionConfiguration.h Outdated
Comment thread Gems/ROS2Sensors/Code/Source/Camera/Compression/ImageCompressionConfiguration.h Outdated
Comment thread Gems/ROS2Sensors/Code/Source/Camera/Compression/ROS2ImageCompressionComponent.h Outdated
Comment thread Gems/ROS2Sensors/Code/Source/Camera/Compression/ROS2ImageCompressionComponent.cpp Outdated
michalpelka and others added 5 commits August 18, 2026 11:21
…essionEditorComponent.cpp

Co-authored-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
…essionComponent.cpp

Co-authored-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
…essionComponent.h

Co-authored-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
@michalpelka

Copy link
Copy Markdown
Contributor Author

@jhanca-robotecai thank you for your review, applied all your comments except one, that I do not understand.

@jhanca-robotecai jhanca-robotecai left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

  • the code does not build with ROS 2 Lyrical
  • JPEG is disabled (I assume debug leftover)

Comment thread Gems/ROS2Sensors/Code/CMakeLists.txt Outdated
Comment thread Gems/ROS2Sensors/Code/Source/Camera/Compression/ImageCompression.cpp Outdated
michalpelka and others added 3 commits August 19, 2026 14:05
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
…on.cpp

Co-authored-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
…codingConversionComponent.h

Co-authored-by: Jan Hanca <jan.hanca@robotec.ai>
Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
@jhanca-robotecai
jhanca-robotecai merged commit e212ce0 into o3de:development Aug 19, 2026
1 check passed
@jhanca-robotecai
jhanca-robotecai deleted the mp/compression branch August 19, 2026 12:32
jhanca-robotecai added a commit that referenced this pull request Sep 8, 2026
* Introduce compression publication to ROS 2 camera (#1067)
* Use O3DE's 3rdParty convention for ROS 2 package dependencies to survive in Prebuilt Gems (#1066)
* Upgrade Tracy profiler to 1.14.1, also mark the tracy frame end to RHI OnFrameEnd. (#1090)
* Add workflow to test simulation Gems for PR (#1089)

---------

Signed-off-by: Michał Pełka <michal.pelka@robotec.ai>
Signed-off-by: Mateusz Żak <mateusz.zak@robotec.ai>
Signed-off-by: Ross Charles C. <10781734+rossbridger@users.noreply.github.com>
Signed-off-by: Jan Hanca <jan.hanca@robotec.ai>
Co-authored-by: Michał Pełka <michal.pelka@robotec.ai>
Co-authored-by: Mateusz Żak <mateusz.zak@robotec.ai>
Co-authored-by: Ross Charles C. <10781734+rossbridger@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

sig/simulation Categorizes an issue or PR as relevant to SIG Simulation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants