Creación del proyecto
Última actualización
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.
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.
Última actualización
"""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,
)