In order to enable seemless integration of GRID into your current robotics stack, we support ROS2 support with Isaac. This enables users to both publish data from the simulation as well as receive commands into the simulation to execute.

Publishing Simulation Data

In order to publish simulation data, we provide support for a list of message types the details of which are provided below:

Message TypeConfigurable ParametersDescription
RGBImagemsg_type: "sensor_msgs/Image",
target: "name_of_rgb_camera",
msg_name: "name_of_topic"
RGB image frames
DepthImagemsg_type: "sensor_msgs/Image",
target: "name_of_depth_camera",
msg_name: "name_of_topic"
Depth image frames
BasePosemsg_type: "geometry_msgs/Pose",
target: "name_of_robot",
body_name: "name_of_body",
msg_name: "name_of_topic"
Pose of the robot’s base link
EndEffectorPosemsg_type: "geometry_msgs/Pose",
target: "name_of_robot",
link_name: "name_of_link",
msg_name: "name_of_topic"
Pose of the end-effector link (e.g. panda_hand)
JointStatemsg_type: "sensor_msgs/JointState",
target: "name_of_robot",
msg_name: "name_of_topic"
Current joint states of the robot
ContactForcesmsg_type: "geometry_msgs/Wrench",
target: "name_of_contact_sensor",
msg_name: "name_of_topic"
Contact force/torque readings
LidarScanmsg_type: "sensor_msgs/PointCloud2",
target: "name_of_lidar",
msg_name: "name_of_topic"
Point-cloud data from the LiDAR
ImuDatamsg_type: "sensor_msgs/msg/Imu",
target: "name_of_imu",
msg_name: "name_of_topic"
IMU (accelerometer/gyroscope) measurements

An example of how to publish simulation data using env.yaml is as follows:

comms:
  - name_of_camera_msg:
      type: RGBImage
      config:
        target: camera_rgb_0 # name of the camera sensor
        msg_name: /robot/camera_rgb_0 # name of the topic to publish data

Subscribing to Commands

We also allow users to send commads to the robot in the simulation session. Here is the list of commands we support.

ROS2 Msg TypeDescription
sensor_msgs/JointStateCommand message to set robot joint positions
geometry_msgs/TwistCommand message to control base linear/angular velocity
geometry_msgs/PoseCommand message to set end-effector delta pose

For each command, users need to specify the name of the topic to which they are publishing the specific message and the target command name from the commands entity specified in the mdp.yaml. An example of how to use commands in env.yaml is as follows:

comms:
  - name_of_the_command_msg:
      type: Commands
      config:
        target: base_velocity # this is the name of the command 
        msg_name: /base_vel_cmd # this is the name of the topic to which the user is publishing

We are constantly updating our offering of supported message types, please let us know on our Discord Community or reach out to us on our email.