Deploying between simulation and a physical robot is extremely simple with GRID due to the parity between simulated and physical robots.The easiest way to do this, is to take a skill that works with a simulated robot and replace the simulated robot with a physical robot. In many cases, this is as simple as changing the object instantiation. Both agents have access to the rest of GRID and the other functionality that we offer.
The main difference between the two is that AirGenCar has access to the underlying AirGen API, enabling it to control the environment, receive ground truth data, etc. This can be accessed by using the AirGenCar.client field.JetBot does not have this access, but it does have access to the rest of GRID and the other functionality that we offer.
Here is an example of a skill that works with IsaacLocomotion, but can be easily modified to work with Go2. There is more initial setup required for the IsaacLocomotion as IsaacLab requires ROS.