Skip to content

zed_aruco_localization outputting infinite transform  #31

@dylan-gonzalez

Description

@dylan-gonzalez

Preliminary Checks

  • This issue is not a duplicate. Before opening a new issue, please search existing issues.
  • This issue is not a question, feature request, or anything other than a bug report directly related to this project.

Description

I am trying to run the zed_aruco_localization example with just one marker, set to the origin of the map frame (i.e. pos = 0,0,0, or = 0,0,0).

But whenever I try to run this example with one marker, it outputs an infinite transform. I have tried this at different distances and doesn't seem to affect it.

When I try running the example with 2 markers, it doesn't output an infinite transform. But the transform is still quite off, and am just wondering if there is anything I am missing?

image

Here is my config file:

# config/aruco_loc.yaml
# Parameters for ArUco localization

---
/**:
    ros__parameters:

      general:
        marker_count: 1             # Number of markers in the World
        marker_size: 0.16           # Width/Height of the ArUco markers [m]
        maximum_distance: 3.0       # Maximum distance of the target from the camera to consider it valid
        detection_rate: 0.5         # Maximum detection frequency for pose update
        camera_name: 'zed'          # Name of the camera to relocate
        world_frame_id: 'map'       # Frame id of the world frame
        refine_detection: false     # If enabled the corners of the detected markers will be processed to obtain sub-pixel precision

      debug:
        active: false               # Enable debug messages

      marker_000:
        aruco_id: 40                 # ID of the ArUco tag as retrieved by the ArUco Detector code
        position: [0.0,0.0,0.0]
        orientation: [0.0,0.0,0.0]   # Orientation with respect to the World origin [rad]

      #marker_001:
      #  aruco_id: 19                 # ID of the ArUco tag as retrieved by the ArUco Detector code
      #  position: [0.0,0.0,1.09]     # Pose with respect to the World origin [m]
      #  orientation: [0.0,0.0,0.0]   # Orientation with respect to the World origin [rad]

      # Add a number of marker definitions equal to the number of markers in the World according to the `marker_count` value
      
      #marker_xxx:
      #  aruco_id: YYY               # ID of the ArUco tag as retrieved by the ArUco Detector code
      #  position: [x.x,y.y,z.z]     # Pose with respect to the World origin [m]
      #  orientation: [R.R,P.P,Y.Y]  # Orientation with respect to the World origin [rad]

Steps to Reproduce

  1. ros2 launch zed_aruco_localization zed_aruco_loc.launch.py camera_model:=zed2i

Expected Result

Should be outputting a valid transform from the marker to the camera.

Actual Result

It outputs an infinite transformation.

ZED Camera model

ZED2i

Environment

OS: Ubuntu 22.04
CPU: AMD64 (also tried on ARM64 (Jetson Xavier NX))

ZED SDK 4.0.8
ROS2 Humble

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions