Questions about Issac SDK Component APIs source code

I was wondering for locating specific component API’s source code, for example isaac::perception::CropAndDownsampleCuda, where can I find the source code that defines this API? I searched the SDK folder but there are no matches.
Thanks for your help.

Hi,
I would really like if svo was open source but yhea I gess they hidding things for security…
Some of the code is not open source but you are a nvidia employee so I gess you could request all of it.
You could also get it by reading the perception.so file with GNU binutils for example but I have not try yet.
Let me know if you can get something out of .so files I’m curious :D
Regards,
Planktos

Hi,
looking at the Isaac lisence I found that modify .so is not in agreement with the lisence so I don’t recommend it.

Why do you want access to isaac::perception::CropAndDownsampleCuda ?

Hi Planktos,

Thanks for your advice and sorry for the late reply.
I just walked through how to write a basic component in C++ and wrote a basic Isaac application. To take a step forward, I want to see how sample applications(e.g. object detection) are written so that I think I will have a deeper understanding. Though I can draw a graph of the components are constructed via the JSON config file, and with the component API I can know the input/output format, I’m a bit confused about how to specify the source and target name of edges even with the API cookbook.
Here the isaac::perception::CropAndDownsampleCuda is just an example, I cannot access to the whole perception module.
Thanks again.

Best regards,
Eric

Hi,
in the doc you can see that
Incoming messages is
input_image [ColorCameraProto]: Input image
&
Outgoing messages is
output_image [ColorCameraProto]: Cropped and resized output image

just do some node for sending image to crop and receiving image from crop and of corse one to compute crop
so if you want to use it here is the edges yoou want to have :

			{
				"source": "camera_input_node/sub node/output_image", //send image to crop
				"target": "crop_node/sub_node/input_image" //crop receive the image
			},
			{
				"source": ""crop_node/sub_node/output_image", //crop send the image after croping
				"target": "output_node/sub_node/input_image" // received the croped image
			},

Here is and example with crop(not crop and downscale but almost the same) :

In edges :
			{
				"source": "caminputn/pipeline/acquired_image",
				"target": "cropn/crop/input_image"
			},
			{
				"source": "cropn/crop/output_image",
				"target": "color_camera_viewer/isaac.viewers.ColorCameraViewer/color_listener"
			}
in nodes :
			{
				"name": "cropn",
				"components": [
					{
						"name": "MessageLedger",
						"type": "isaac::alice::MessageLedger"
					},
					{
						"name": "crop",
						"type": "isaac::perception::CropAndDownsampleCuda"
					}
				]
			},
			{
				"name": "caminputn",
				"components": [
					{
						"name": "MessageLedger",
						"type": "isaac::alice::MessageLedger"
					},
					{
						"name": "pipeline",
						"type": "isaac::deepstream::Pipeline"
					}
				]
			},
			{
				"name": "color_camera_viewer",
				"components": [
					{
						"name": "MessageLedger",
						"type": "isaac::alice::MessageLedger"
					},
					{
						"name": "isaac.viewers.ColorCameraViewer",
						"type": "isaac::viewers::ColorCameraViewer"
					}
				]
			}

in config :
		"cropn": {
			"crop": {
				"crop_start": [0, 0],
				"crop_size": [960, 1280]
			}
		},

Here is the doc for crop and downscale :

isaac.perception.CropAndDownsampleCuda
Description

Codelet to crop and downsample the input image. The input image is first cropped to the desired region of interest and then resized to the desired output dimensions. All operations are performed using cuda based functionality.

Type: Codelet - This component ticks either periodically or when it receives messages.

Incoming messages

input_image [ColorCameraProto]: Input image

Outgoing messages

output_image [ColorCameraProto]: Cropped and resized output image

Parameters

crop_start [Vector2i] [default=]: Top left corner (row, col) for crop

crop_size [Vector2i] [default=]: Target dimensions (rows, cols) for crop.

downsample_size [Vector2i] [default=]: Target dimensions (rows, cols) for downsample after crop.

Hope this will help,
Regards,
Planktos

1 Like

Hi Planktos,
During these two weeks, I’ve learned a lot in Issac application programming.
Your reply really helps me a lot.
Thanks a lot!
Best regards,
Eric