AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Ros2 Perception

skill-leehyunbin0131-claude-ros2-skills-ros2-perception · by Leehyunbin0131

Perception: image_transport, cv_bridge, vision_msgs, depth_image_proc, laser_geometry, pcl_ros.

No reviews yet
0 installs
11 views
0.0% view→install

Install

$ agentstack add skill-leehyunbin0131-claude-ros2-skills-ros2-perception

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-leehyunbin0131-claude-ros2-skills-ros2-perception)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
18d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ros2 Perception? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

ROS 2 Perception & Computer Vision Instructions (Ubuntu 24.04 LTS & ROS 2 Jazzy)

1. Core Principles & Architecture

  • Target OS & ROS Distro: Ubuntu 24.04 LTS & ROS 2 Jazzy Jalisco.
  • Perception Pipeline: Handles image streams, OpenCV conversions (cv_bridge), 2D/3D object detections (vision_msgs), depth image processing (depth_image_proc), LiDAR scan projection (laser_geometry), 3D-to-2D scan conversion (pointcloud_to_laserscan), and Point Cloud Library processing (pcl_ros).
  • Zero-Hallucination Policy: Always verify C++ and Python class names, message fields, and plugin encodings against official ROS 2 Jazzy documentation.

2. Official Documentation Catalog

A. Master Documentation & Package Indices

  • image_transport Package: https://docs.ros.org/en/jazzy/p/image_transport/
  • cv_bridge Package: https://docs.ros.org/en/jazzy/p/cv_bridge/
  • vision_msgs Package: https://docs.ros.org/en/jazzy/p/vision_msgs/
  • depthimageproc Package: https://docs.ros.org/en/jazzy/p/depth_image_proc/
  • pointcloudtolaserscan Package: https://docs.ros.org/en/jazzy/p/pointcloud_to_laserscan/
  • laser_geometry Package: https://index.ros.org/p/laser_geometry/
  • pcl_ros Package: https://docs.ros.org/en/jazzy/p/pcl_ros/

3. Key Concepts & Patterns

A. cv_bridge OpenCV Conversion (C++)

#include 
#include 
#include 
#include 
#include 

void process_image(const sensor_msgs::msg::Image::ConstSharedPtr & msg) {
  cv_bridge::CvImagePtr cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::BGR8);
  cv::circle(cv_ptr->image, cv::Point(50, 50), 10, CV_RGB(255, 0, 0), 2);
  sensor_msgs::msg::Image::SharedPtr out_msg = cv_ptr->toImageMsg();
}

B. pcl_ros PointCloud Conversion (C++)

#include 
#include 
#include 
#include 

void filter_cloud(const sensor_msgs::msg::PointCloud2::SharedPtr msg) {
  pcl::PointCloud::Ptr pcl_cloud(new pcl::PointCloud);
  pcl::fromROSMsg(*msg, *pcl_cloud);

  pcl::PointCloud::Ptr filtered(new pcl::PointCloud);
  pcl::VoxelGrid sor;
  sor.setInputCloud(pcl_cloud);
  sor.setLeafSize(0.05f, 0.05f, 0.05f);
  sor.filter(*filtered);

  sensor_msgs::msg::PointCloud2 output_msg;
  pcl::toROSMsg(*filtered, output_msg);
}

4. Symptom -> Root Cause -> Action

| Symptom | Likely root cause | Action | | :--- | :--- | :--- | | Image topic listed but callback never fires | QoS mismatch: camera drivers publish BestEffort, subscriber defaults Reliable | Subscribe with SensorDataQoS; confirm with ros2 topic info -v | | cv_bridge throws encoding exception | Requested encoding doesn't match source (bgr8 vs rgb8, 16UC1 depth) | Use toCvCopy(msg, msg->encoding) (passthrough) or convert explicitly; never assume bgr8 for depth | | Depth values look 1000x off or all ~0 | 16UC1 is millimeters, 32FC1 is meters — unit confusion | Check msg->encoding before scaling; divide 16UC1 by 1000.0 for meters | | Point cloud misaligned with the RGB image | Depth not registered into the color optical frame | Use the depth_registered topic or depth_image_proc register node; verify both frame_ids | | pointcloud_to_laserscan outputs empty scans | min_height/max_height band excludes all points, or target_frame transform missing | Widen the height band around the sensor's actual Z; check TF to target_frame | | Detection boxes drawn at wrong image positions | Processing the rectified topic but projecting with the raw camera matrix (or vice versa) | Pair image_rect with P (projection) matrix, raw image with K; don't mix | | High CPU from image subscribers | Subscribing raw full-resolution images over the network | Use image_transport compressed transport, or throttle/downscale before processing |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.