Skip to content

Commit

Permalink
Merge pull request #22 from NVIDIA-ISAAC-ROS/release-3.0
Browse files Browse the repository at this point in the history
Isaac ROS 3.0.1
  • Loading branch information
jaiveersinghNV authored Jun 14, 2024
2 parents 7a3f365 + 1e620c6 commit bcc7478
Show file tree
Hide file tree
Showing 372 changed files with 29,793 additions and 13,704 deletions.
Binary file modified public/.doctrees/concepts/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified public/.doctrees/concepts/manipulation/index.doctree
Binary file not shown.
Binary file modified public/.doctrees/concepts/manipulation/xrdf.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified public/.doctrees/environment.pickle
Binary file not shown.
Binary file not shown.
Binary file modified public/.doctrees/getting_started/index.doctree
Binary file not shown.
Binary file modified public/.doctrees/getting_started/isaac_sim/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified public/.doctrees/releases/index.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified public/.doctrees/robots/nova_carter/demo_docking.doctree
Binary file not shown.
Binary file modified public/.doctrees/robots/nova_carter/demo_lidar_mapping.doctree
Binary file not shown.
Binary file modified public/.doctrees/troubleshooting/deep_learning.doctree
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Tutorial Walkthrough
:align: center
:width: 400px

6. Select ``/World/Nova_Carter_ROS/ros_lidars/front_2d_lidar_render_product`` in the *Stage* pane and set ``enabled`` to True.
6. Select ``/World/Nova_Carter_ROS/ros_lidars/front_2d_lidar_render_product`` in the *Stage* pane and set ``enabled`` to True (checked).

7. Press **Play** to start publishing data from the Isaac Sim.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,53 +16,78 @@ in Isaac Sim leveraging the cuMotion plugin for MoveIt 2 provided by
developed by PickNik Robotics, which in turn was based on a less featureful MoveIt example provided
with Isaac Sim.

This tutorial has been tested with Isaac Sim 2023.1.1.
This tutorial has been tested with Isaac Sim 4.0 and Isaac Sim 2023.1.1.

Tutorial Walkthrough
--------------------

1. Complete the "Basic Setup" section of the ``isaac_ros_cumotion_moveit`` :ref:`quickstart <repositories_and_packages/isaac_ros_cumotion/isaac_ros_cumotion_moveit/index:Quickstart>`.
2. Build the ``isaac_ros_cumotion_examples`` package and its dependencies (including ``isaac_ros_cumotion`` and ``isaac_ros_cumotion_moveit``):
1. Set up your development environment by following the instructions in :doc:`Getting Started </getting_started/dev_env_setup>`.

.. code:: bash
cd ${ISAAC_ROS_WS} && \
colcon build --packages-up-to isaac_ros_cumotion_examples
3. Launch MoveIt (including RViz) using the provided launch file:
2. Clone ``isaac_ros_common`` under ``${ISAAC_ROS_WS}/src``.

.. code:: bash
source install/setup.bash && \
ros2 launch isaac_ros_cumotion_examples franka_isaac_sim.launch.py
cd ${ISAAC_ROS_WS}/src && \
git clone :ir_clone:`<isaac_ros_common>`
4. In a separate terminal, run the cuMotion planner node:
3. Install the ``isaac_ros_cumotion_examples`` package and its dependencies
(including ``isaac_ros_cumotion`` and ``isaac_ros_cumotion_moveit``):

.. code:: bash
source install/setup.bash && \
ros2 run isaac_ros_cumotion cumotion_planner_node --ros-args -p robot:=franka.xrdf -p urdf_path:=/opt/ros/humble/share/moveit_resources_panda_description/urdf/panda.urdf
.. include:: /repositories_and_packages/isaac_ros_cumotion/isaac_ros_cumotion_moveit/_snippets/install.rst

5. Install and configure Isaac Sim following the steps in the
4. Install and configure Isaac Sim following the steps in the
:doc:`Isaac ROS Isaac Sim Setup Guide </getting_started/isaac_sim/index>`, stopping after step 4.
6. This tutorial uses the Isaac Sim "standalone workflow," in which Isaac Sim is launched via a python script. In the

5. This tutorial uses the Isaac Sim "standalone workflow," in which Isaac Sim is launched via a python script. In the
terminal opened using the **"Open in Terminal"** button in the Isaac Sim App Selector (and notably **not** in a shell
within the Isaac ROS docker container), source your ROS 2 workspace, e.g.,

.. code:: bash
source /opt/ros/humble/setup.bash
7. Run ``python.sh`` with the full path to the ``start_isaac_sim_franka.py`` script provided by the
6. Run ``python.sh`` with the full path to the ``start_isaac_sim_franka.py`` script provided by the
``isaac_ros_cumotion_examples`` package. Please note that this is a standalone script and could be copied to
another location for convenience.

.. tabs::

.. tab:: Binary Package

Please clone or download the script from :ir_repo:`here <isaac_ros_cumotion> <isaac_ros_cumotion_examples/isaac_sim_scripts/start_isaac_sim_franka.py>`. Then run it with ``python.sh`` as follows.

.. code:: bash
./python.sh <DOWNLOAD_PATH>/start_isaac_sim_franka.py
.. tab:: Build from Source

.. code:: bash
./python.sh ${ISAAC_ROS_WS}/src/isaac_ros_cumotion/isaac_ros_cumotion_examples/isaac_sim_scripts/start_isaac_sim_franka.py
Once Isaac Sim fully loads, the timeline will begin playing automatically.

.. note::

The example should be loaded in Isaac Sim before MoveIt is launched.

7. In a terminal within the Isaac ROS Docker container, launch MoveIt (including RViz) using the provided
launch file. Remember to first run ``source install/setup.bash`` if package was built from source.

.. code:: bash
./python.sh ${ISAAC_ROS_WS}/src/isaac_ros_cumotion/isaac_ros_cumotion_examples/isaac_sim_scripts/start_isaac_sim_franka.py
ros2 launch isaac_ros_cumotion_examples franka_isaac_sim.launch.py
The visualization of the robot in RViz should reflect the current joint state of the
simulated robot in Isaac Sim.

7. In a separate terminal within the Docker container, run the cuMotion planner node. Remember to first run
``source install/setup.bash`` if package was built from source.

.. code:: bash
Once Isaac Sim fully loads, the timeline will begin playing automatically, with the simulated robot synchronized
to the one visualized in RViz.
ros2 run isaac_ros_cumotion cumotion_planner_node --ros-args -p robot:=franka.xrdf -p urdf_path:=/opt/ros/humble/share/moveit_resources_panda_description/urdf/panda.urdf
8. In RViz, enable cuMotion by ensuring that ``isaac_ros_cumotion`` and ``cuMotion`` are selected within the
**"Planning Library"** pane within the **"Context"** tab in the bottom left corner of the RViz window.
Expand Down
15 changes: 8 additions & 7 deletions public/_sources/concepts/manipulation/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ perceived via cameras or other sensors.
An example of perception-driven manipulation is unstructured picking, where the robot might be tasked
with picking a variety of objects whose positions are not known in advance. This requires modules
to detect a given object, determine its pose, compute a suitable grasp (dependent on the installed gripper),
plan a trajectory to bring the gripper to the desired pose while avoiding collisions, execute the planned trajectory, grasp the object, and finally plan a
trajectory to the desired place point, all in real time. More challenging scenarios might require the
planner to adapt to a changing environment where the presence and positions of obstacles also vary.
plan a trajectory to bring the gripper to the desired pose while avoiding collisions, execute the planned
trajectory, grasp the object, and finally plan a trajectory to the desired place point, all in real time.
More challenging scenarios might require the planner to adapt to a changing environment where the presence
and positions of obstacles also vary.

`Isaac Manipulator <https://developer.nvidia.com/isaac/manipulator>`_ consists of a set of components and
:doc:`reference workflows </reference_workflows/isaac_manipulator/index>` for advanced perception-driven
Expand All @@ -28,14 +29,14 @@ obstacle-aware motion generation, described in more detail below.

.. _concept-cumotion:

Isaac cuMotion
--------------
NVIDIA cuMotion
---------------

`Isaac cuMotion` is a software package for computing optimal-time, minimal-jerk trajectories for serial robot arms.
`NVIDIA cuMotion` is a software package for computing optimal-time, minimal-jerk trajectories for serial robot arms.
It is capable of avoiding collisions with obstacles represented as a set of cuboids, meshes, signed distance fields
(computed from one or more depth image streams using :doc:`nvblox </repositories_and_packages/isaac_ros_nvblox/index>`),
or any combination of the three. cuMotion leverages NVIDIA hardware acceleration to compute such trajectories in
less than 100 ms on Jetson AGX Orin or tens of milliseconds on a discrete GPU such as RTX 6000 (Ada Generation).
a fraction of a second on Jetson AGX Orin or tens of milliseconds on a discrete GPU such as RTX 6000 (Ada Generation).

In the current release, the planning capabilities of cuMotion are exposed via a plugin for
`MoveIt 2 <https://moveit.picknik.ai>`_. In addition, a ROS 2 node is provided that uses the current joint
Expand Down
4 changes: 2 additions & 2 deletions public/_sources/concepts/manipulation/xrdf.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Extended Robot Description Format (XRDF)
In order to generate motion for a robot, the kinematics and collision geometry must be defined.

The Universal Robot Description Format (URDF) is used to specify kinematics, but it does not
include all the robot description required for motion generation via Isaac cuMotion.
include all the robot description required for motion generation via NVIDIA cuMotion.

The Extended Robot Description Format (XRDF) is designed to supplement the URDF by adding specification for:

Expand All @@ -14,7 +14,7 @@ The Extended Robot Description Format (XRDF) is designed to supplement the URDF
* Masking to regulate self-collision avoidance.

XRDF also allows minor modifications to the kinematic structure (e.g., adding new frames).
These modifications are designed to, in general, allow existing URDFs to be used with Isaac cuMotion without
These modifications are designed to, in general, allow existing URDFs to be used with cuMotion without
changing the URDF directly.

XRDF Specification
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Create a ROS Noetic Container with ROS 1 Bridge
=================================================


1. Clone the ``isaac_ros_common`` repository and ``ros1_bridge`` under ROS 2 workspace:
1. Clone the ``isaac_ros_common`` repository and ``ros1_bridge`` under ROS 1 workspace:

.. code:: bash
Expand All @@ -29,4 +29,4 @@ Create a ROS Noetic Container with ROS 1 Bridge
.. code:: bash
cd ~/workspaces && \
docker build --build-arg USER_UID=$(id -u) --build-arg USER_GID=$(id -g) -t nitros_bridge -f ros1_ws/isaac_ros_1-dev/src/isaac_ros_nitros_bridge/docker/Dockerfile.ros1_noetic .
docker build --build-arg USER_UID=$(id -u) --build-arg USER_GID=$(id -g) -t nitros_bridge -f ros1_ws/isaac_ros_1-dev/src/isaac_ros_nitros_bridge/docker/Dockerfile.ros1_noetic .
45 changes: 45 additions & 0 deletions public/_sources/concepts/nitros_bridge/tutorial_isaac_sim.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
Tutorial for NITROS Bridge with Isaac Sim
=================================================

Overview
------------

This tutorial will walk you through how to use :ir_repo:`isaac_ros_nitros_bridge <isaac_ros_nitros_bridge> <isaac_ros_nitros_bridge_ros2>` to move images on the GPU while avoiding CPU memory copies from Isaac Sim.

Tutorial Walkthrough
--------------------

1. Clone ``isaac_ros_common`` repository under a new workspace:

.. code:: bash
mkdir -p ~/isaac_sim_workspaces && \
cd ~/isaac_sim_workspaces && \
git clone :ir_clone:`<isaac_ros_common>`
2. Install and launch Isaac Sim under the Isaac Sim workspace following the steps in the :doc:`Isaac ROS Isaac Sim Setup Guide </getting_started/isaac_sim/index>`

3. Press **Play** to start publishing data from the Isaac Sim.

.. note::

You should be able to see, using the command ``ros2 topic list``, two topics under the same main name, one for the standard ROS 2 `sensor_msgs/Image <https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Image.msg>`__ (e.g.: ``/front_stereo_camera/left/image_rect_color``) and another for :ir_repo:`isaac_ros_nitros_bridge_interfaces/NitrosBridgeImage <isaac_ros_common> <isaac_ros_nitros_bridge_interfaces/msg/NitrosBridgeImage.msg>` (e.g.: ``/front_stereo_camera/left/image_rect_color/nitros_bridge``).

4. Complete the step 3 & 4 from ``Set Up Development Environment`` section and ``Build from Source`` section following the ``isaac_ros_nitros_bridge_ros2`` quickstart :ref:`here <repositories_and_packages/isaac_ros_nitros_bridge/index:quickstart>`.


5. Inside the container, change the ``ptrace`` scope to be able to run the NITROS Bridge:

.. code:: bash
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
6. Inside the container, edit the :ir_repo:`isaac_ros_nitros_bridge_image_converter.launch.py <isaac_ros_nitros_bridge> <isaac_ros_nitros_bridge_ros2/launch/isaac_ros_nitros_bridge_image_converter.launch.py?ref_type=heads#L39>` ROS 2 launch file to remap the ``ros2_input_bridge_image`` to the Isaac Sim's NITROS Bridge topic name (e.g.: ``/front_stereo_camera/left/image_rect_color/nitros_bridge``). Then, run the following command to start the NITROS Bridge.

.. code:: bash
cd /workspaces/isaac_ros-dev && \
source install/setup.bash && \
ros2 launch isaac_ros_nitros_bridge_ros2 isaac_ros_nitros_bridge_image_converter.launch.py pub_image_name:=nitros_pub sub_image_name:=nitros_sub
7. The converted NITROS image will be available under the ``nitros_pub`` topic.
Original file line number Diff line number Diff line change
Expand Up @@ -26,29 +26,19 @@ Tutorial Walkthrough
3. Install and launch Isaac Sim following the steps in the :doc:`Isaac ROS Isaac Sim Setup Guide </getting_started/isaac_sim/index>`.

4. Download the ``mac_and_cheese.usdz`` mesh file from NGC to ``${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_rtdetr``:

:ir_assets:`<isaac_ros_rtdetr> <isaac_sim.tar.gz>`

5. Import and place the ``mac_and_cheese.usdz`` in front of the camera in Isaac Sim as shown below:

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/concepts/pose_estimation/foundationpose/isaac_ros_foundationpose_sim_mac_cheese_place.gif>`
:alt: Isaac ROS FoundationPose Isaac Sim Object setup
:align: center

6. Run the launch file.
4. Run the launch file.

.. code:: bash
ros2 launch isaac_ros_rtdetr isaac_ros_rtdetr_isaac_sim.launch.py
7. Press **Play** to start publishing data from the Isaac Sim.
5. Press **Play** to start publishing data from the Isaac Sim.

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/getting_started/isaac_sim_sample_scene.png>`
:align: center
:width: 600px

8. Validate that you see a visualization of the 2D object detection as shown below:
6. Validate that you see a visualization of the 2D object detection as shown below:

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/concepts/object_detection/rtdetr/isaac_sim_rtdetr.gif>`
:alt: Isaac ROS RT-DETR
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,29 +38,19 @@ Tutorial Walkthrough
5. Install and launch Isaac Sim following the steps in the :doc:`Isaac ROS Isaac Sim Setup Guide </getting_started/isaac_sim/index>`.

6. Download the ``mac_and_cheese.usdz`` mesh file from NGC to ``${ISAAC_ROS_WS}/isaac_ros_assets/isaac_ros_foundationpose``:

:ir_assets:`<isaac_ros_foundationpose> <isaac_sim.tar.gz>`

7. Import and place the ``mac_and_cheese.usdz`` in front of the camera in Isaac Sim as shown below:

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/concepts/pose_estimation/foundationpose/isaac_ros_foundationpose_sim_mac_cheese_place.gif>`
:alt: Isaac ROS FoundationPose Isaac Sim Object setup
:align: center

8. Run the launch file.
6. Run the launch file.

.. code:: bash
ros2 launch isaac_ros_foundationpose isaac_ros_foundationpose_isaac_sim.launch.py
9. Press **Play** to start publishing data from the Isaac Sim.
7. Press **Play** to start publishing data from the Isaac Sim.

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/getting_started/isaac_sim_sample_scene.png>`
:align: center
:width: 600px

10. Validate that you see a visualization of the 3D pose estimate as shown below:
8. Validate that you see a visualization of the 3D pose estimate as shown below:

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/concepts/pose_estimation/foundationpose/foudnationpose_isaac_sim.png>`
:alt: Isaac ROS FoundationPose Hawk Tracking
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Tutorial for Freespace Segmentation with Isaac Sim
==================================================

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/repositories_and_packages/isaac_ros_freespace_segmentation/Isaac_sim_tutorial.gif>`
.. figure:: :ir_lfs:`<resources/isaac_ros_docs/repositories_and_packages/isaac_ros_freespace_segmentation/Isaac_sim_tutorial.png>`
:width: 600px
:align: center

Expand All @@ -20,28 +20,20 @@ Tutorial Walkthrough
:ref:`Isaac ROS Freespace Segmentation quickstart <repositories_and_packages/isaac_ros_freespace_segmentation/isaac_ros_bi3d_freespace/index:quickstart>`.
2. Install and launch Isaac Sim following the steps in the :doc:`Isaac ROS Isaac Sim Setup Guide </getting_started/isaac_sim/index>`

3. Disable the clock reset when simulation is stopped. Go to the
*Stage* tab and select ``/World/ROS_Clock/isaac_read_simulation_time``,
then untick the *Reset On Stop* checkbox.

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/repositories_and_packages/isaac_ros_freespace_segmentation/Isaac_sim_disable_clock_reset.png>`
:width: 500px
:align: center

4. Press **Play** to start publishing data from Isaac Sim.
3. Press **Play** to start publishing data from Isaac Sim.

.. figure:: :ir_lfs:`<resources/isaac_ros_docs/getting_started/isaac_sim_sample_scene.png>`
:align: center
:width: 600px

5. Open a second terminal and attach to the container:
4. Open a second terminal and attach to the container:

.. code:: bash
cd ${ISAAC_ROS_WS}/src/isaac_ros_common && \
./scripts/run_dev.sh
6. In the second terminal, start the ``isaac_ros_bi3d`` node using the
5. In the second terminal, start the ``isaac_ros_bi3d`` node using the
launch files:

.. code:: bash
Expand All @@ -57,7 +49,7 @@ Tutorial Walkthrough
:width: 500px
:align: center

7. Optionally, you can run the visualizer script to visualize the
6. Optionally, you can run the visualizer script to visualize the
disparity image:

.. code:: bash
Expand Down
Loading

0 comments on commit bcc7478

Please sign in to comment.