Skip to content

Implement Object Detection Node #170

Description

@conmascheetos

Background

The 3 objects requiring autonomous image detection are: 1) an orange rubber mallet (Amazon link); 2) a rock pick hammer (Amazon link); and 3) a standard 1 liter wide-mouthed plastic water bottle (approximately 21.5 cm tall and 9 cm diameter; and of unspecified color/markings – not the same bottles used in 2024 or 2025). GNSS coordinates will be provided for each object with <3 m accuracy for the first two objects, and <10 m accuracy for the third object. The latter two objects will have obstacles in the way that require autonomous avoidance, such as being in a boulder field. Rovers are not required to interact with the objects, but must clearly (and autonomously) highlight or designate the object on the display in the C2 station, soit is obvious that the computer recognizes the object and is not merely at the correct location. The rover must be stopped to successfully indicate recognition of the objects, however the rover may stop at any distance from the object so long as it has been successfully detected. Only 1 object may be highlighted on the display in the C2station.

As part of the URC, the rover must be able to detect one of three objects for the image detection Autonomous mission. It must either detect (and highlight) an orange rubber mallet, a rock pick hammer, or a standard 1 liter wide-mouthed plastic water bottle. Approximate locations will be given for these objects, however, the rover must be able to clearly detect these objects via image detection. However, the rover does not need to interact with these objects!

Problem Statement

We need to implement an image detection ROS2 node to detect one of three objects as part of the image detection Autonomous mission.

Stakeholders / Dependents

  • navigator_node

Functional Requirements

  • Object detection of either:
    • An orange rubber mallet
    • A rock pick hammer
    • A Standard 1 liter wide-mouthed plastic water bottle

Nonfunctional Requirements

  • Rust
  • Local inference for image detection
    • i.e. all computation must be done directly on the node / Jetson
  • Lightweight and real-time object detection

Recommended Dependencies and/or Frameworks

Recommended Approach

I STRONGLY recommend utilizing Rust for this node. This node will require ingesting a Linux (V4L) camera stream. As you ingest the camera stream, you will need to use camera vision to detect the individual objects in real time. This is why it is important to use a fast language like Rust and a crate like Ort which supports hardware acceleration!

Appendices

Related Issues

Extra Resources

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    object detectionthe green squares that say "hammer"

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions