> For the complete documentation index, see [llms.txt](https://angellm.gitbook.io/isaac-sim-and-lab/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://angellm.gitbook.io/isaac-sim-and-lab/proyectos/robot-tipo-segway/creacion-del-proyecto.md).

# Creación del proyecto

## Creación del proyecto <a href="#creacion-del-proyecto" id="creacion-del-proyecto"></a>

Creé el proyecto de Isaac Lab de la misma manera que lo hacen en la guía oficial, con el comando `home/angellm/IsaacLab/isaaclab.sh -n`. Utilicé la siguiente configuración:

* **Tipo**: External
* **Nombre**: SimpleRobot
* **Workflow**: Direct | Single-agent
* RL **library**: rsl\_rl

En mi caso, el proyecto está ubicado en `/home/angellm/SimpleRobot`

## Instalar el proyecto en el entorno de Isaac Lab <a href="#instalar-el-proyecto-en-el-entorno-de-isaac-lab" id="instalar-el-proyecto-en-el-entorno-de-isaac-lab"></a>

Para poder ejecutar los entrenamientos es necesario instalar el proyecto en el entorno de Python de Isaac Lab. En mi caso lo hago ejecutando este comando: `~/IsaacLab/isaaclab.sh -p -m pip install -e ~/SimpleRobot/source/SimpleRobot/`

## Agregar el robot como asset de Isaac Lab

Antes he creado el USD del robot, ahora hay que incluirlo en los assets de Isaac Lab. Antes de eso, aclarar que he creado una carpeta en mi proyecto (`/home/angellm/SimpleRobot/others`) para copiar los archivos relacionados con el proyecto (urdf, usd...). Esto no es obligatorio, pero me ayuda a mantener el proyecto organizado.

Ahora si, creé un archivo nuevo en el directorio `/home/angellm/IsaacLab/source/isaaclab_assets/isaaclab_assets/robots` llamado `simplerobot.py`.&#x20;

Este archivo actúa como puente de union entre el modelo físico del robot y el sistema de simulación de Isaac. En este archivo se define el USD que se carga, qué articulaciones tiene, qué actuadores usa, parámetros físicos y cómo se crea el robot en el mundo simulado.

{% code title="simplerobot.py" expandable="true" %}

```python
"""Configuration for the SimpleRobot robot.

The following configuration parameters are available:

"""

from isaaclab.actuators import ImplicitActuatorCfg
from isaaclab.assets import ArticulationCfg
import isaaclab.sim as sim_utils

SIMPLE_ROBOT_CFG = ArticulationCfg(
    spawn=sim_utils.UsdFileCfg(
        usd_path="/home/angellm/SimpleRobot/other/SimpleRobot/SimpleRobot.usd",
        activate_contact_sensors=True,
        rigid_props=sim_utils.RigidBodyPropertiesCfg(
            rigid_body_enabled=True,
            max_linear_velocity=1000.0,
            max_angular_velocity=1000.0,
            max_depenetration_velocity=100.0,
            enable_gyroscopic_forces=True,
            disable_gravity=False,
        ),
        articulation_props=sim_utils.ArticulationRootPropertiesCfg(
            enabled_self_collisions=False,
            solver_position_iteration_count=8,
            solver_velocity_iteration_count=1,
            sleep_threshold=0.005,
            stabilization_threshold=0.001,
        ),
    ),
    init_state=ArticulationCfg.InitialStateCfg(
        pos=(0.0, 0.0, 0.1),
        rot=(0.0, 0.0, 0.0, 1.0),
        joint_pos={
            "left_joint": 0.0,
            "right_joint": 0.0,
        },
        joint_vel={
            "left_joint": 0.0,
            "right_joint": 0.0,
        },
    ),
    actuators={
        "wheel_joints": ImplicitActuatorCfg(
            joint_names_expr=[
                "left_joint",
                "right_joint",
            ],
            effort_limit=15.0,
            velocity_limit=20.0,
            stiffness=0.0,
            damping=5.0,
        ),
    },
    soft_joint_pos_limit_factor=1.5,
)
```

{% endcode %}
