A1 Simulation Isaac Sim Usage Tutorial
Install Isaac Sim 4.0.0
Isaac Sim has specific requirements for GPU versions and drivers. Arbitrary changes may cause issues. Therefore, it is recommended to directly download and install the necessary files.
The download size is approximately 8 GB, so please plan your time accordingly.
Download Omniverse Launcher
- Visit the page: Go to NVIDIA's official website at https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_workstation.html and download the Omniverse Launcher.
- Register an account: During the download process, you may be prompted to log in. If you don't have an NVIDIA account, follow the instructions to register. Once registered, continue with the download.
- Install Omniverse Launcher: After the download is complete, launch the installer and follow the prompts to complete the installation.
- Launch Omniverse Launcher: Once the installation is complete, open the Omniverse Launcher. For the first time use, you will need to log in with your registered NVIDIA account.
- Set up paths: After logging in, the system will prompt you to configure some related file paths. Set them up according to your needs.
- Install Cache: Follow the system prompts to install Cache. It is recommended to choose the default installation option to enhance your experience.
- Access the main interface: Once these settings are completed, you will enter the Omniverse Launcher main interface.
Install Isaac Sim
- Open "Exchange" : In the Omniverse Launcher main interface, click on the "Exchange" tab.
- Find Isaac Sim: Search the "Isaac Sim" application within the "Exchange".
- Select version: Ensure you install version 4.0.0 of Isaac Sim to avoid potential issues with the ROS bridge. Please note that the version number might be hidden in a dropdown menu, so carefully check and select the correct version.
- Install Isaac Sim: After selecting the version, click the "Install" button to begin the installation of Isaac Sim.
Important: The installed applications can be found in the "Library" tab. Simply locate the desired application and launch it from there.
Isaac Sim Basic Operations
The following is the official tutorial to help you understand the basic Isaac Sim interface.
- UI Interface
- https://docs.omniverse.nvidia.com/isaacsim/latest/introductory_tutorials/tutorial_intro_interface.html
- https://docs.omniverse.nvidia.com/isaacsim/latest/introductory_tutorials/tutorial_intro_workflows.html
- Add Objects and Set Physical Properties
- https://docs.omniverse.nvidia.com/isaacsim/latest/gui_tutorials/tutorial_intro_simple_objects.html#isaac-sim-app-tutorial-intro-simple-objects
- Assemble Robots and Import
- https://docs.omniverse.nvidia.com/isaacsim/latest/gui_tutorials/tutorial_gui_simple_robot.html
- https://docs.omniverse.nvidia.com/isaacsim/latest/features/environment_setup/ext_omni_isaac_urdf.html
Importing A1 USD File
- Open Isaac Sim: Start Isaac Sim 4.0.0 from Omniverse Launcher. Ensure you select
omni.isaac.ros_bridge(deprecated)
at startup to enable communication between Isaac Sim and ROS nodes.
- Open the USD File: After starting Isaac Sim, select "File -> Open". In the file dialog that appears, choose the
A1_fixed_base_scene.usd
file from the folder. Do not select the A1 simulation raw fileA1_raw.usd
.
- Run the Synchronization Script: After opening the file, you will see the corresponding scene. Click the "Play" button on the left sidebar.
Run the a1_jointsync.py
script from the folder to synchronize the RViz simulation with the Isaac Sim simulation.
```shell
python a1_jointsync.py
```
Important: The Isaac Sim ROS Bridge can only publish/subscribe to rostopic
when roscore
is running.
Demonstration Example
After clicking the Play button, start the python a1_joint_move_sin.py
script. A1 robot arm will begin executing a sinusoidal trajectory in joint space, as shown in the image below. You can also play the controller trajectory by running python a1_control_from_traj.py
. This will play the trajectory based on the given joint_trajectory.npz
data.
With this, the Isaac Sim A1 robot arm simulation process is complete. You may play the demo in the system with the code provided, like shown below.
Gripping
After clicking the “Play”, please refer to the file "Joint and End-Effector Motion Interface" in A1 SDK to complete the simuation process in Isaacsim.
Take the following code as an example:
-
Trace the end pose and position
##Initiate the end motion script to start one RViz of the arm. Joint position is on zero-point by default. cd release/install source setup.bash roslaunch mobiman eeTrackerdemo.launch ##Initiate one terminal,e.g. "terminal_1", open the A1 simulation sync. python a1_jointsync.py ##Initiate one terminal,e.g. "terminal_2", publish the example trajactory ponits. rostopic pub /a1_ee_target geometry_msgs/PoseStamped "{ header: { seq: 0, stamp: {secs: 0, nsecs: 0}, frame_id: 'world' }, pose: { position: {x: 0.08, y: 0.0, z: 0.5}, orientation: {x: 0.5, y: 0.5, z: 0.5, w: 0.5} } }"
-
Gripping the object. demo
##Initiate the end motion script to start one RViz of the arm. Joint position is on zero-point by default. cd release/install source setup.bash roslaunch mobiman eeTrackerdemo.launch ##Initiate another terminal,e.g. "terminal_3", run the script. python mpc_picker.py
-
Demo Video