Important
Applicable for Ubuntu 22.04 and ROS2 Humble and Isaac Sim 4.0.0
-
Nvidia Issac Sim Compatibility
- Omniverse Downloads
sudo chmod +x omniverse-launcher-linux.AppImagesudo apt update && sudo apt install fuse- Double click
- Disable IOMMU
sudo bash -c 'echo GRUB_CMDLINE_LINUX="amd_iommu=off" >> /etc/default/grub'sudo update-grubsudo reboot
- Install
- Cache
- Nucleus
- Issac Sim
- Omniverse Downloads
-
Launch Issac Sim
-
Add to .bashrc
# Issac Sim ROS Variables
export ROS_DOMAIN_ID=0
export FASTRTPS_DEFAULT_PROFILES_FILE=/home/administrator/issac_sim/fastdds.xml
# export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp # Optional if required- Add build
rosdep install -i --from-path src --rosdistro humble -y
colcon build --symlink-install
source install/setup.bash- Run directly so that the file is sourced
bash ~/.local/share/ov/pkg/isaac-sim-4.0.0/isaac-sim.sh- Go to
Windows->Extension Manager-> EnableROS2 Bridge&ROS2 Robot Description URDF - Go to
Create->Isaac->Environment->Grid Room
- Go to
Issac Utils->Workflows->URDF Importer- Add the robot
- Ensure base_link is not checked as it is a mobile robot
- Check the drive type, usually velocity for wheel based robots
- Self-collision disable if URDF limits are correct
- Select output directory
- Play Animation and then Stop
- Click
Issac Utils->Common Omnigraph-> Articulation Position Controller and/or Articulation Velocity Controller- Press
Addand select therobot - Click
Ok - Right Click on the
Graphsin the Stage and select optionOpen Graphs
- Press
- Click Play and in the graphs, one of them will be a controller graph change values to see if it is reflected on robot
- Add the following to the graphs
- On Playback Tick node
- Isaac Read Simulation Time node
- ROS2 Publish Joint State node
- Connect On On Playback Tick from
TicktoExec In - Connect On Isaac Read Simulation Time node from
Simulation TimetoTimestamp
- Connect On On Playback Tick from
- ROS2 Subscribe Joint State node
- Connect On On Playback Tick from
TicktoExec In
- Connect On On Playback Tick from
- ROS2 Nodes
- Connect
Effort Command,Joint Names,Position Command, etc.
- Connect
- Click play and run
ros2 launch h1_isaac_controller system.launch.pyfor incremental steps to move the robot