Galaxea A1 Simulation Isaac Sim 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
- Add Objects and Set Physical Properties
- Assemble Robots and Import
Importing USD File
First,you need to clone our repositry A1_Simulation_Isaac_Sim_Usage_Tutorial in our GitHub.
Visit A1_Simulation_SDK to the resources of A1_fixed_base_scene.usd and A1_raw.usd for A1.
Visit A1_Simulation_A1 G1_SDK to the resources of A1_G1_scene.usd and A1_G1_raw.usd for A1 with gripper G1.
-
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 if you are using A1, or chooseA1_G1_scene.usd
file if you are using A1 with gripper G1.
-
Run the Synchronization Script: After opening the file, you will see the corresponding scene. Click the "Play" button on the left sidebar.
Run thea1_jointsync.py
script from the folder to synchronize the RViz simulation with the Isaac Sim simulation, which is further elaborated in the following tutorial.
Important: The Isaac Sim ROS Bridge can only publish/subscribe topython a1_jointsync.py
rostopic
whenroscore
is running.
Demonstration Example
After clicking the Play button, start the python script A1_simulation_SDK/a1_joint_move_sin.py.
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 the python file A1_simulation_SDK/a1_control_from_traj.py.
This will play the trajectory based on the given data file A1_simulation_SDK/joint_trajectory.npz.
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 End-Effector Movement Example in A1 SDK and clone the A1_SDK repository to complete the simuation process in Isaac Sim.
Note:
- After launching the
eeTrackerdemo.launch
, make sure to select thebase_link
as the Fixed Frame, and add theRobotModel
to it, then you can see the visualized A1 in RViz screen.
- If the arm does not move after conducting all the commands (only in pure simulation scenario), go to the file in A1_SDK and change the
joint_states_sub_topic
from/joint_states_host
to/joint_states
. It changes the control mode from real hardware to pure simulation mode.
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 A1_SDK/install source setup.bash roslaunch mobiman eeTrackerdemo.launch ##Initiate one terminal,e.g. "terminal_1", open the A1 simulation sync. python A1_simulation_SDK/a1_jointsync.py ##or if you are using the A1-G1, run: python A1_simulation_A1_G1_SDK/a1_jointsync_A1G1.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 A1_SDK/install source setup.bash roslaunch mobiman eeTrackerdemo.launch ##Initiate another terminal,e.g. "terminal_3", run the script. python mpc_picker.py
-
Demo Video