Localization Monitor - Grade

Hi,
I am trying to receive the grade from the localization monitor into a codelet using ISAAC_POTO_RX. I am using CompositeProto as the proto type. The idea is to check if the de-localization has occurred and stop the robot if it has, until it is localized and the grade is within the fused_grade_threshold. I have two questions here:

  • Is the grade is good parameter to check for de-localization?

  • When I try to recieve the grade into a codelet, the script abruptly terminates. Is the CompositeProto the right proto for grade? Is it possible to receive grade into a codelet? Any suggestions on how I can go about this?

@cfr @hemals @Swapnesh @sdesai @sdebnath ^^^

1 Like

Is the grade is good parameter to check for de-localization?

Depending on your specifics and threshold tuning, yes, it can be an useful value to determine localization loss. You would configure MonitorEvaluatorMapscan codelet, for example, and create an edge to a Monitor (using a fusion codelet like MaxValueGradeFusion) which is configured as a node in a behavior tree. When the Monitor detects that the grade has exceeding the threshold, the node will fail and cause the behavior tree to respond.

When I try to recieve the grade into a codelet, the script abruptly terminates. Is the CompositeProto the right proto for grade? Is it possible to receive grade into a codelet? Any suggestions on how I can go about this?

The evalutor codelets, like MonitorEvaluatorMapscan, publish a CompositeProto with the grade with the following schema [“grade”, “score”, “good beam percentage”, “far beam percentage”, “close beam percentage”]. You can add an edge to receive this CompositeProto directly and interpret it, or feed this into Monitor which will fuse multiple evaluators together using the fusion codelets and then apply a threshold to the resulting value itself which could have the codelet go into failure state when exceeded.

Are you actually receiving the CompositeProto in your codelet, and if so, is there a crash or warning log statement when pulling values from it?

Does the Monitor send out a grade message as well? I’m receiving the data from the MonitorEvaluatorMapscan. I’m using the CompositeProto. Can you please explain how I can access the parameters in the schema? When I get the proto into my codelet and try to access the data, I don’t see grade or any other fields that you mentioned. I see only the options shown in the screenshot below.

See Localization Monitor — ISAAC 2021.1 documentation for more information if you haven’t. The schema for the CompositeProto is not meant to be consumed directly but through the failure state of the Monitor component. However, if you want to use the CompositeProto directly, the schema is [“grade”, “score”, “good beam percentage”, “far beam percentage”, “close beam percentage”]

The localization monitor has no output channel from which I can directly use the grade and the schema that you mentioned, can you please give me an example of how to use it?