2D coordinate representation in unity simulator and Isaac Sigh

Hi, I’m new to Isaac’s development environment and I’m learning how the system works, so I’ve come up with some examples to follow. However, I have had some problems along the way. The first thing I want to do is to represent a coordinate (X, Y) inside the 2D plot in the Isaac Sight and at the same time make the robot in the unity simulator to be located in that coordinate (the scene used is small_warehouse). These coordinates are supplied from Python, sending the coordinates I think is solved but the visa is not.
I tried to use the type: isaac::alice::PoseMessageInjector and the isaac::alice::PyCodelet, but there is no way, I don’t know if what I do is wrong. I hope you can help me, at the bottom I have attached the json and the code in python.

Thanks for your attention.

Jaime

Json Code

{
  "name": "my_assistant_robot",
  "modules": [
    "navigation",
    "segway"
  ],
  "config": {
    "interface": {
      "input": {
        "port": 55001
      },
      "output": {
        "port": 55000,
        "host": "localhost"
      }
    },
    "bounding_boxes": {
      "conversion": {
        "resolution": 2
      }
    },
    "plan_converter": {
      "global": {
        "frame": "unity"
      },
      "local": {
        "frame": "unity"
      }
    },
    "scenario_manager": {
      "scenario_manager": {
        "ref_pose_name": "unity"
      }
    },
    "odometry": {
      "isaac.navigation.DifferentialBaseOdometry": {
        "tick_period": "100Hz"
      }
    },
    "init_pose":{
      "isaac.alice.PoseInitializer": {
        "lhs_frame": "lhs_frame",
        "rhs_frame": "rhs_frame",
        "pose": [[30, 30, 0]],
        "report_success": false,
        "attach_interactive_marker": false,
        "add_yaw_degrees": 0.0,
        "add_pitch_degrees": 0.0,
        "add_roll_degrees" : 0.0
      }
    },     
    "websight": {
      "WebsightServer": {
        "port": 3000,
        "ui_config": {
          "windows": {
            "Proportional Control Python": {
              "renderer": "plot",
              "channels": [
                { "name": "proportional_control_python/py_controller/isaac.alice.PyCodelet/reference (m)" },
                { "name": "proportional_control_python/py_controller/isaac.alice.PyCodelet/position (m)" }
              ]
            }
          }
        }
      }
    }
  },
  "graph": {
    "nodes": [
      {
        "name": "robot_controll",
        "components": [
          {
            "name": "message_ledger",
            "type": "isaac::alice::MessageLedger"
          },
          {
            "name": "isaac.alice.PyCodelet",
            "type": "isaac::alice::PyCodelet"
          }
        ]
      },
      {
        "name": "odometry",
        "components": [
          {
            "name": "message_ledger",
            "type": "isaac::alice::MessageLedger"
          },
          {
            "name": "isaac.navigation.DifferentialBaseOdometry",
            "type": "isaac::navigation::DifferentialBaseOdometry"
          }
        ]
      },
      {
        "name": "pose_injector",
        "components": [
          {
            "name": "ledger",
            "type": "isaac::alice::MessageLedger"
          },
          {
            "name": "pose_injector",
            "type": "isaac::alice::PoseMessageInjector"
          }
        ]
      },    
      {
        "name": "plan_generator",
        "components": [
          {
            "name": "isaac.message_generators.Plan2Generator",
            "type": "isaac::alice::PyCodelet"
          }
        ]
      }
    ],
    "edges": [
      {
        "source": "pose_injector/pose_injector/pose",
        "target": "robot_controll/isaac.alice.PyCodelet/cmd"
      },
      {
        "source": "odometry/isaac.navigation.DifferentialBaseOdometry/state",
        "target": "odometry/isaac.navigation.DifferentialBaseOdometry/odometry"
      }
    ]
  }
}

Python Code

from engine.pyalice import *

import random

class AssistantRobot(Codelet):
    def start(self):


        self.tx1 = self.isaac_proto_tx("PoseTreeEdgeProto", "pose")
        self.tx2 = self.isaac_proto_tx("StateProto", "cmd") 
        self.tx_x = self.isaac_proto_tx("Vector3dProto", "x")
        

        self.rx1 = self.isaac_proto_rx("PoseTreeEdgeProto", "pose")
        self.rx2 = self.isaac_proto_rx("Vector3dProto", "x")
            

        # Parameters. We'll be able to modify them through Sight website.
        self.set_isaac_param("desired_position_meters", 1.0)
        self.set_isaac_param("gain", 1.0)

        # We can tick periodically, on every message, or blocking. See documentation for details.
        self.tick_periodically(0.01)

    def tick(self):

        tx_message_x = self.tx_x.init_proto()
        tx_message_x.x = 20
        tx_message_x.y = 30
        self.tx_x.publish()

        if not self.rx2.available():
            return

        message = self.rx2.get_proto()
        print("-"*20)
        print(message)

   

        self.log_info("tx - pubtime: {}, acqtime: {}, uuid: {}".format(self.tx_x.pubtime(), self.tx_x.acqtime(), self.tx_x.message_uuid()))
        



def main():
    app = Application(app_filename="apps/samples/my_assistant_robot/my_assistant_robot.app.json")
    app.register({"robot_controll": AssistantRobot})
    app.start_wait_stop()


if __name__ == '__main__':
    main()