|
| 1 | +# How to set up Robots!? |
| 2 | + |
| 3 | +In this page, we will explore how robots can be integrated to OmniLRS. |
| 4 | + |
| 5 | +> [!Note](#how-to-set-up-robots) |
| 6 | +> Isaac provides many ways to import, create, or modify existing robots. This can be done through a URDF importer, a mujoco importer, or an Onshape importet. Robots can also be rigged manually from within the UI. We encourage anyone non-familiar with Isaac Sim to [take a look at Isaac's Sim comprehensive suite of tutorials for ROS/ROS2](https://docs.omniverse.nvidia.com/isaacsim/latest/installation/install_ros.html#). |
| 7 | +
|
| 8 | +## Robots and where to find them |
| 9 | + |
| 10 | +By default, we provide two robots to be used in the simulation. These are generic non-space robots. |
| 11 | +The reasoning behind that is that Space hardware is so unique that end-users would either use generic off-the-shelf robots or highly specialized ones. |
| 12 | +Hence we settled with two popular options from [ClearPath Robotics](https://clearpathrobotics.com/) (the Husky and the Jackal), which we fitted with a basic suite of sensors. |
| 13 | + |
| 14 | +Available robots & sensor payloads: |
| 15 | +- Husky: |
| 16 | + - Velodyne VLP16: `ros2_husky_PhysX_vlp16.usd` |
| 17 | + - Velodyne VLP16 + RGB + Depth + IMU: `ros2_husky_PhysX_vlp16_mono_depth_imu.usd` |
| 18 | +- Jackal: |
| 19 | + - Velodyne VLP16: `ros2_jackal_PhysX_vlp16.usd` |
| 20 | + - Velodyne VLP16 + RGB Left + RGB Right + IMU: `ros2_jackal_PhysX_vlp16_stereo.usd` |
| 21 | + |
| 22 | +> [!CAUTION] |
| 23 | +> These robots are ROS2 capable only. Their omnigraphs are setup for ROS2. This makes them compatible with SpaceROS. |
| 24 | +
|
| 25 | +> [!NOTE] |
| 26 | +> This list will grow in the coming month as we try more robots onto it. We are planning on adding Leo Rovers and Quadrupeds in the near future. |
| 27 | +
|
| 28 | +## Changing the default robot used when starting an environment |
| 29 | + |
| 30 | +To change the default robot used when starting an environment, you need to edit the `robot_settings` inside the environment config. |
| 31 | +The `robot_settings` who defines the set of parameters managing robots provides the following set of parameters. |
| 32 | + |
| 33 | +Arguments: |
| 34 | +- `uses_nucleus`: `(str)`, whether or not the robot loader should try to find the robot on Omniverse Nucleus cloud. True means the robot is on nucleus. False the robot is local. |
| 35 | +- `is_ROS2`: `(bool)`, if the robot is ROS2 enabled. True if the robot is using ROS2. |
| 36 | +- `max_robots`: `(int)`, The maximum amount of robots in the scene. |
| 37 | +- `robots_root`: `(str)`, The path where the robots are generated in the scene. |
| 38 | +- `parameters`: `(list(RobotsParameters))`, A list of parameters defining robots. |
| 39 | + |
| 40 | +> [!IMPORTANT] |
| 41 | +> Large scale environments only support one robot at a time. This is due to the type of algorithms used to render the terrain. |
| 42 | +
|
| 43 | +To define a robot one can use the following arguments: |
| 44 | +- `robot_name`: `(str)`, the name of the robot. It's mostly used to teleport it or reset it. |
| 45 | +- `usd_path`: `(str)`, the path of the robot on nucleus or locally. |
| 46 | +- `pose`: |
| 47 | + - `position`: `(float,float,float)` x, y, z position. |
| 48 | + - `orientation`: `(float,float,float)` w, x, y, z quaternion. |
| 49 | +- `domain_id`: `int`, The domain id of the robot. (not functional) |
| 50 | +- `target_links`: `(list(str))` The links used to compute the deformation forces when derforming terrains. |
| 51 | + |
| 52 | +> [!IMPORTANT] |
| 53 | +> For the large scale environments the position and orientation of the robot is ignored and the `starting_position` parameter is used instead. |
| 54 | +> The Z position of the robot is computed automatically. |
| 55 | +
|
| 56 | + |
| 57 | +Example: |
| 58 | +```bash |
| 59 | +robots_settings: |
| 60 | + uses_nucleus: False |
| 61 | + is_ROS2: True |
| 62 | + max_robots: 5 |
| 63 | + robots_root: "/Robots" |
| 64 | + parameters: |
| 65 | + - |
| 66 | + robot_name: husky |
| 67 | + usd_path: assets/USD_Assets/robots/ros2_husky_PhysX_vlp16.usd |
| 68 | + pose: |
| 69 | + position: [5.0, 5.0, 0.5] |
| 70 | + orientation: [1, 0, 0, 0] |
| 71 | + domain_id: 0 |
| 72 | + target_links: ["front_left_wheel_link", "front_right_wheel_link", "rear_left_wheel_link", "rear_right_wheel_link"] |
| 73 | +``` |
0 commit comments