Autonomous Mapping with SMACC & Isaac Sim (with VIDEO!)

Hi Everyone,

I wanted to show off an autonomous exploration and mapping application we wrote using SMACC, the Nova Carter AMR and Isaac Sim. Be sure to watch it in HD if you can.

This example uses ROS 2 Humble and is our first example to integrate with issac_ros_nitros and the isaac_ros_map_localization packages. We also ported a modified version of the famous rrt_exploration package from ROS to ROS 2 which we used to map the unknown environment.

Going forward, I’m very excited about exploring the accelerated computing vision pipelines using NITROS and the other Isaac ROS packages on the Nova Carter. This was our first exposure to Isaac Sim and we found the out-of-the-box capabilities to be simply amazing.

As always, I’ll be posting links to the source code and rrt_exploration repo as soon as we’ve got them polished up, and we’ll also make the docker containers available so they can be run by anyone with a Nova Carter.

Cheers,

If you’re interested in using SMACC and Isaac Sim for your application development, come join us in the SMACC Working Group.

Meeting times can be found here: https://lnkd.in/gC9GfewW

15 Likes

Great video Brett!

I have been impressed by this simulator capabilities. We believe it has the potential to quickly establish itself as the premier software for robot and ROS simulation, surpassing other alternatives available in the market.

Working with it has been both enjoyable and promising!

Another great video.
How would you characterize the strengths and weaknesses of Isacc Sim vs Unreal vs Gazebo vs O3DE?

Great Video @brettpac,
I am working on a project using Isaac sim but when I am simulating multiple dynamic pedestrians along with robot/ROS simulation fps drop significantly. Have you faced similar issues? I am running the simulation on Nvidia A10G with 64GB RAM.

Also, could you share the system configuration on which you are running Isaac Sim?

Hi @akathpal, Thank you.
I can’t say that I’ve seen the same drop in FPS. In the scene shown in the video which contains 3 dynamic pedestrians and 43k sq.ft., We consistent hover around 40 FPS.

My workstation is pretty beefy. I’ve got 32 cores, 128gb of RAM, and a Nvidia GeForce RTX 4090 which has 24gb of RAM. I’m running Ubuntu 22.04 and ROS2 Humble.

I’m happy to try and reproduce the results you’re getting. Are you using a Nucleus server or do you have a zip file of the scene you can share (via PM)? Also, what version of Isaac Sim are you currently using? We just moved to 2023.1.0.

Thanks @brettpac, i will give it another try with upgraded instance configuration on cloud, and will reach out to you via PM if the issue still persists.

Hello @ARob I think this question could require a long analysis or study (comparing aspects one by one). However, I had the oportunity to spend a lot of time with Gazebo, IsaacSIM and Unreal (for example working in many of these SMACC demos) and I can share some of my personal general impressions:

  • Gazebo: Gazebo is a well-established, open-source solution that integrates seamlessly with ROS. It’s known for its reliability and compatibility with the ROS ecosystem. However, it may lag behind in terms of advanced graphics and some professional features.
  • Unreal Engine: Unreal Engine is a robust game engine known for its impressive graphics capabilities, extensive asset library, and a large community of developers. It already has ROS bindings, making it a viable choice for robotics simulation. However, it may come with a steeper learning curve for those not familiar with game development.
  • Isaac Sim: Isaac Sim is a highly promising solution, backed by NVIDIA. It’s designed specifically for robotics and offers exceptional graphics, machine learning integration, and novel unique features. With NVIDIA’s support, it has the potential to become a leading choice in the field.

In my case, for a profesional usage, I think IsaacSIM is the best option (I also have the impression that this will be more clear in the next months or years).

Regarding O3DE (Open 3D Engine), I must admit that I haven’t had the opportunity to work with it firsthand, so my opinion may not carry as much weight in this particular context. One interesting aspect that has caught my attention is that O3DE is opensource and follows the same axis convention as ROS, which could potentially simplify integration and compatibility. I feel it could be a good alternative to Unreal Engine and maybe better option than Unity.

2 Likes

Open 3D Engine (O3DE) strengths:

  • Open source (dual license Apache 2.0 / MIT) and free of fees, under the Linux Foundation. This is as compatible with ROS license / model as it gets.
  • Best kind of ROS integration: O3DE simply links to ROS libraries and includes ROS headers. This is one of a kind, since even Gazebo has a bridge. The implications are not immediately clear, but it is even better than it sounds:
    • Improved performance: there is no bridge, you can benefit from rmw inter-process communication, any serialization features, writing directly to bags with ros2 bag api, dds configs etc. All without any extra effort.
    • ROS way: respecting QoS as well as other ROS concepts and interfaces. These are available out of the box: custom messages, services, actions, executors, lifecycle nodes, workspace overlays, you name it.
  • Developer experience: C++ & CMake project where you can write ROS code as you normally would. ROS concepts are well-reflected in the engine with components (e.g. Frame Component).
  • Supports multi-robot by default.
  • Full feature box including sensors (lidar, cameras, imus, …), utilities and control components (for mobile bases, arms, grippers, …).
  • Atom: a modern, modular renderer. Things look great!
  • High performance: running many robots with sensors in large environments is very efficient compared to other simulators. See the demo: https://www.youtube.com/watch?v=2sQuCFNAHe8.

We are building commercial simulation platforms on O3DE and the experience is excellent. We are also migrating our product from Unity3D since we believe O3DE is much better for robotics.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.