Some questions about GPU Accelerated April Tags with Python

Hi, I’m trying to accelarate apriltag detection using isaac sdk. I’m exploring the isaac sdk and tried to play on april-tag sample. I do have some questions. What I am trying to achieve is to have a ticking function that ticks on time or message that’ll take image and give me the detections. I have declared a custom codelet for my apriltag;

class mert_april_tag_detector(Codelet):
    def start(self):
        self.rx = self.isaac_proto_rx("ImageProto","image")
        self.tick_periodically(1.0)

    def tick(self):
        if self.rx.message == None:
            return
        print(self.rx.message.proto)

def main():
    app = Application(app_filename="apps/samples/mert_april_tag/mert_april_tag.app.json")
    app.load_module("//packages/fiducials:april_tags")
    nv_tags_detection = app.nodes["april_tags_detection"].add(mert_april_tag_detector)

I’m sending the image using ImageLoader, now I’m receiving the image mert_april_tag_detector but how do I do the actual detection part, it feels like by declaring my own class did I do overwrite something?

Also is it possible to send Image without using ImageLoader? I don’t want to write and read everytime I send an image.

I think I’m missing some fundamental workings of isaac, can use some clarification.

The Apriltag codelet itself has a receiver for images and responds by publishing detection messages. It follows the same pattern you have here except in tick(), it actually performs the detection. You probably want to remove your codelet and instead wire in the ApriltagDetector codelet in its place. Note, this codelet was removed in Isaac SDK 2021.1

I have ended up using april tag libraries without isaac sdk, using this as an example.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.