# Copyright 2025 Open Source Robotics Foundation # Distributed under the terms of the BSD license { lib, buildRosPackage, fetchurl, ament-cmake-auto, ament-lint-auto, ament-lint-common, class-loader, cv-bridge, geometry-msgs, image-transport, opencv, rcl-interfaces, rclcpp, rclcpp-components, sensor-msgs, tf2, tf2-geometry-msgs, tf2-ros }: buildRosPackage { pname = "ros-jazzy-image-rotate"; version = "5.0.9-r1"; src = fetchurl { url = "https://github.com/ros2-gbp/image_pipeline-release/archive/release/jazzy/image_rotate/5.0.9-1.tar.gz"; name = "5.0.9-1.tar.gz"; sha256 = "8d4d5a7b87530ffd9cc75a39379aa0d300a15cf8658b8540d7b9ccc10651abc8"; }; buildType = "ament_cmake"; buildInputs = [ ament-cmake-auto class-loader ]; checkInputs = [ ament-lint-auto ament-lint-common ]; propagatedBuildInputs = [ cv-bridge geometry-msgs image-transport opencv opencv.cxxdev rcl-interfaces rclcpp rclcpp-components sensor-msgs tf2 tf2-geometry-msgs tf2-ros ]; nativeBuildInputs = [ ament-cmake-auto ]; meta = { description = "

Contains a node that rotates an image stream in a way that minimizes the angle between a vector in some arbitrary frame and a vector in the camera frame. The frame of the outgoing image is published by the node.

This node is intended to allow camera images to be visualized in an orientation that is more intuitive than the hardware-constrained orientation of the physical camera. This is particularly helpful, for example, to show images from the PR2's forearm cameras with a consistent up direction, despite the fact that the forearms need to rotate in arbitrary ways during manipulation.

It is not recommended to use the output from this node for further computation, as it interpolates the source image, introduces black borders, and does not output a camera_info.

"; license = with lib.licenses; [ bsdOriginal ]; }; }