Code Monkey home page Code Monkey logo

gz-omni's Introduction

ign-omni

NOTES:

  • This repository is under development, you might find compilation errors, malfunctions or some undocumented features.
  • This code will only run on Linux (for now).
  • You should install Ignition Fortress (from source).

Requirements:

  • ROS 2 Galactic.
  • Ignition Gazebo Fortress
  • ubuntu 20.04

Features:

  • Ignition -> IsaacSim
    • Move/rotate models
    • Create/remove models
    • Joints
    • Sensors (lidar, cameras)
  • IsaacSim -> Ignition
    • Create/remove models

Tutorials

ROSCon 2022

gz-omni's People

Contributors

ahcorde avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gz-omni's Issues

SDF <-> USD connector

This issue is meant to track the progress of the connector between Ignition Gazebo and Issac Sim SDF which is currently a work in progress.

Ignition -> Issac Sim

TODO

  • Q/A and testing

Issac Sim -> Ignition

  • Remove, add and move models #16

TODO

  • Joints
  • Lights
  • Sensors
  • Visual

Additional context

  • Threadsafe architecture #7

Dead Project ?

For some reasons I have to use Isaac Sim but would love to backport environments to sdf and robot models to urdf.

This project seems to be the only way and it has been announced as great coalition between nvidia and OSRF.

Now last commit has been older than six month.

Can you kindly comment on the project state ?

Failed verification: ' r '

~: cd ~/ign-omni/src/ign-omni
~/ign-omni/src/ign-omni: bash run_ignition_omni.sh -p omniverse://localhost/Users/ignition/shapes.usd -w shapes --pose ignition
Running script in /home/erwincoumans/ign-omni/src/ign-omni
Opening in existing browser session.
Coding Error (secondary thread): in AddXformOp at line 189 of /buildAgent/work/ca6c508eae419cf8/USD/pxr/usd/usdGeom/xformable.cpp -- The xformOp 'xformOp:rotateXYZ' already exists in xformOpOrder [[xformOp:translate, xformOp:rotateXYZ]].
Coding Error (secondary thread): in _GetOrAddCommonXformOps at line 934 of /buildAgent/work/ca6c508eae419cf8/USD/pxr/usd/usdGeom/xformCommonAPI.cpp -- Failed verification: ' r '

Environment

  • OS Version: Ubuntu 20.04
    I build both source and binary, following the instructions exactly (how to compile and quickstart) then ran
bash run_ignition_omni.sh -p omniverse://localhost/Users/ignition/shapes.usd -w shapes --pose ignition

Playing with Gazebo and Isaac Sim, adding a few objects, moving them around, start/stop the simulation in Gazebo. The synchronization from Gazebo to IsaacSim works fine. Then after a while I noticed this error message in the terminal.

Feel free to close this issue it is harmless/expected.

Build system discussion

The current build system is a mess with a mix of cmake, premake and several nvidia build tools.

cmake wraps nvidia build tools which in turn wraps premake (along side other tools depending on the host/target platforms). Some limitations of the current system.

  • nvidia tools lack documentations
  • hardcoded build directory
    • not exactly hardcoded, but changing them require understanding nvidia's build tools
  • does not support installing

The main limitation we need to solve in order to release this is to make it support installation and packaging for omniverse.

  • Should we write custom scripts to perform installation or attempt to build this using cmake to make use of cmake install targets?
    • If we go the cmake route, how should we handle fetching of dependencies?
  • How should we package this so that it can find the ignition libraries? Note that we also need to set this up so that they do not use the system's ignition libs, as this requires custom build of ignition with pre cxx11 abi.
    • Static link those libraries
    • set rpath to find those libraries
    • make a launcher script which sets LD_LIBRARY_PATH (this is the approach the nvidia sample connector uses)
    • How about windows/mac support?

Sharing code with sdformat

There are many duplicated code from sdformat, mostly in parsing msgs into usd. We could use the code in sdformat but most functions takes in sdf objects. Is there already a way to convert ignition::msgs to sdf? If not, should we convert them to sdf and then to usd? @ahcorde Do you think the it is worth the performance penalty?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.