When creating an instance of the RTX Lidar The following error is produced. I have multiple instances of lidars running to be read by ROS2. Has anyone experienced this issue?
[Warning] [omni.isaac.sensor.plugin] IsaacComputeRTXLidarFlatScan: lowest elevation emitter is 0.320000, not 0.
class RosRTXLidar():
def __init__(
self,
parent_prim_path: str
) -> None:
self._initialized = True
# Locate Isaac Sim assets folder to load environment and robot stages
self._assets_root_path = nucleus.get_assets_root_path()
if self._assets_root_path is None:
carb.log_error("Could not find Isaac Sim assets folder")
self._initialized = False
# Create the lidar sensor that generates data into "RtxSensorCpu"
# Sensor needs to be rotated 90 degrees about X so that its Z up
# Possible options are Example_Rotary and Example_Solid_State
# drive sim applies 0.5,-0.5,-0.5,w(-0.5), we have to apply the reverse
_, self._sensor = omni.kit.commands.execute(
"IsaacSensorCreateRtxLidar",
path="/sensor",
parent=parent_prim_path,
config="Example_Rotary",
translation=(0, 0, 0),
orientation=Gf.Quatd(1.0, 0.0, 0.0, 0.0), # Gf.Quatd is w,i,j,k
)
# RTX sensors are cameras and must be assigned to their own render product
self._hydra_texture = rep.create.render_product(self._sensor.GetPath(), [1, 1], name=parent_prim_path.replace("/","_"))
self._simulation_context = SimulationContext(physics_dt=1.0 / 60.0, rendering_dt=1.0 / 60.0, stage_units_in_meters=1.0)
# Create Point cloud publisher pipeline in the post process graph
self._writer = rep.writers.get("RtxLidar" + "ROS2PublishPointCloud")
self._writer.initialize(topicName=parent_prim_path + "/point_cloud", frameId= parent_prim_path)
self._writer.attach([self._hydra_texture])
# Create the debug draw pipeline in the post process graph
self._writer = rep.writers.get("RtxLidar" + "DebugDrawPointCloud")
self._writer.attach([self._hydra_texture])
# Create LaserScan publisher pipeline in the post process graph
self._writer = rep.writers.get("RtxLidar" + "ROS2PublishLaserScan")
self._writer.initialize(topicName=parent_prim_path + "/laser_scan", frameId=parent_prim_path)
self._writer.attach([self._hydra_texture])
def run_lidar(self):
self._simulation_context.play()
def stop_lidar(self):
self._simulation_context.stop()