lidar_initializer pose attribute

Hi!

I inserted my robot in the simulation, and I am having trouble on simulating the lidar data, here are my config and graph related to the lidar:

bridge_config/robot_config.json:

...
  "RearLidar": {
    "LidarComponent": {
      "parent_actor": "myRobot_1",
      "parent_T_lidar": [0.3826834, 0.0, 0.0, 0.9238795, -0.3235, 0.2985, 0.0536],
      "horizontal_fov": 90.0,
      "vertical_fov": 1,
      "rotation_rate": 20.0,
      "horizontal_resolution": 0.5,
      "vertical_resolution": 4,
      "min_range": 0.05,
      "max_range": 29.0,
      "draw_lidar_points": true
    }
  },
  ...
  "RearLidarPublisher": {
    "isaac.alice.TcpPublisher": {
      "port": 5100,
      "host": "localhost"
    }
  },
  ...

bridge_config/robot_graph.json:

"nodes": [
  ...
  {
    "name": "RearLidar",
    "components": [
      {
        "name": "MessageLedger",
        "type": "isaac::alice::MessageLedger"
      },
      {
        "name": "LidarComponent",
        "type": "isaac::sim_bridge::Lidar"
      }
    ]
  },
  ...
  {
    "name": "RearLidarPublisher",
    "components": [
      {
        "name": "isaac.alice.MessageLedger",
        "type": "isaac::alice::MessageLedger"
      },
      {
        "name": "isaac.alice.TcpPublisher",
        "type": "isaac::alice::TcpPublisher"
      }
    ]
  },
  ...
"edges": [
  {
    "source": "Arculee1RearLidar/LidarComponent/range_scan",
    "target": "RearLidarPublisher/isaac.alice.TcpPublisher/LidarSensor"
  },
  ...

robot.config.json:

...
  "rear_scan_accumulator": {
    "isaac.perception.ScanAccumulator": {
      "min_slice_count": 180,
      "clock_wise_rotation": false
    }
  },
...
  "RearLidarSubscriber": {
    "lidar_initializer": {
      "lhs_frame": "robot",
      "rhs_frame": "rear_lidar",
      "pose": [0.3826834, 0.0, 0.0, 0.9238795, -0.3235, 0.2985, 0.0536]
    },
    "isaac.alice.TcpSubscriber": {
      "port": 5100,
      "host": "localhost"
    }
  },
...

robot.graph.json:

"nodes": [
...
  {
    "name": "rear_scan_accumulator",
    "components": [
      {
        "name": "isaac.alice.MessageLedger",
        "type": "isaac::alice::MessageLedger"
      },
      {
        "name": "isaac.perception.ScanAccumulator",
        "type": "isaac::perception::ScanAccumulator"
      }
    ]
  },
...
  {
    "name": "RearLidarSubscriber",
    "components": [
      {
        "name": "lidar_initializer",
        "type": "isaac::alice::PoseInitializer"
      },
      {
        "name": "isaac.alice.MessageLedger",
        "type": "isaac::alice::MessageLedger"
      },
      {
        "name": "isaac.alice.TcpSubscriber",
        "type": "isaac::alice::TcpSubscriber"
      }
    ]
  },
...
"edges": [
  {
    "source": "RearLidarSubscriber/isaac.alice.TcpSubscriber/LidarSensor",
    "target": "rear_scan_accumulator/isaac.perception.ScanAccumulator/scan"
  },
...
  {
    "source": "rear_scan_accumulator/isaac.perception.ScanAccumulator/fullscan",
    "target": "ROSRearLaserPublisher/isaac.rosbridge.LaserScanDataPublisher/rosbridge_laser_scan"
  },
...

Here is an explanation of the desired workflow:

Simulation side:
Bridge spawns my robot with the lidar on the right front corner -> lidar data is generated, with fov = 90°, resolution= 0.5, so 180 points are generated per spin -> data is sent to TcpPublisher.

SDK side:
Data is received on TcpSubscriber and sent to accumulator -> data is sent from accumulator to a codelet that prints the data.

My Problems:

  1. I don't fully understand the transformation on the TcpSubscriber for the lidar data. And maybe because of that, every time I run the simulation, I get a different angle interval on the lidar data, i.e.: First Run: AngleMin: 0.357782, AngleMax: 6.63224. Second Run: AngleMin: 0.270518, AngleMax: 6.54498 Third Run: AngleMin: 5.50654, AngleMax: 11.781.
  2. Because of these variations, my lidar data is not precise, and on every time run I get different data, even though my robot is stopped at the same spot, in a static world.