ROS LaserScan to FlatScan Conversion : Nvidia ISAAC

I want to interface RPLidar A1M8 with Nvidia Isaac. Is there a direct solution to convert ROS : LaserScan to ISAAC: Flatscan ?

Could you describe a bit more about how you plan to interface the RPLidar A1M8 between Isaac and ROS? You’re planning on running a component in Isaac SDK that interfaces with the driver to capture laser scans and then emits an Isaac Flatscan. Then another bridge component to take the Flatscan and emit it as a ROS LaserScan?

There are utilities to convert FlatscanProto to ROS LaserScan in //sdk/packages/ros_bridge/components/FlatscanToRos.cpp, but it should be straightforward to write the reverse transform.

I need to do the following.

  1. Use an RP LiDAR A1M8 to read l;aser scans
  2. Create a map using Gmapping or cartographer with the turtlbot-2 platform I have.
  3. Implement autonomous navigation using turtlebot-2, Nvidia Isaac, RP Lidar a1 M8 and Jetson Nano ( for deployment )
  4. Study the difference in performance in performance from that of native ROS implementation.

I am stuck at feeding the ROS messages of type LaserScan ( pointcloud2D) to Isaac as flatscan. I couldn’t.t find any implementations/tutorials for the same. Also same for turtlebot 2 interfacing. Could you advise ?

Are you trying to collect the laser scans using a ROS node that connects to the RP LiDAR on the Turtlebot to create your map, and then offline feed the ROS bags of LaserScaninto an Isaac app after the fact, or is the Isaac app running and connected over a bridge so you can compare results online? The key point I gather here is that the RP LiDAR data is first captured as a ROS LaserScan here.

If you need to get from ROS LaserScan to Isaac Flatscan, there is only implementation/tutorial for the other direction. You will have to implement an inverse transform by reading through //sdk/packages/ros_bridge/components/FlatscanToRos.cpp, but it is not difficult.

See ROS Bridge for more details.