CommunityProgramación y desarrollogithub.com

wzyn20051216/ros-robotics-skill

Habilidad para el desarrollo, migración y depuración de ROS 1/ROS 2. Cubre catkin/catkin_tools, colcon/ament, package.xml, CMakeLists.txt, launch, URDF/Xacro, RViz, TF, Navigation2, ros2_control, serie/CAN, MCU y micro-ROS, entre otros escenarios de ingeniería comunes.

¿Qué es ros-robotics-skill?

Esta habilidad está diseñada para asistentes de IA (como Claude Code, Cursor o Codex) que trabajan en proyectos de robótica con ROS 1 y ROS 2. Su objetivo es guiar al agente a través de las tareas más comunes y complejas del ecosistema ROS: desde la creación y migración de paquetes, la depuración de builds, la configuración de modelos URDF/Xacro, el manejo de la transformación TF, hasta la navegación con Navigation2 y el control de hardware con ros2_control. La habilidad se activa cuando el usuario menciona temas como workspace (catkin_ws, colcon_ws), archivos de configuración (package.xml, CMakeLists.txt), lanzadores, simulación, SLAM, micro-ROS o despliegue con Docker. El agente sigue un flujo estructurado: primero identifica el tipo de workspace y realiza una verificación de consistencia, luego carga la referencia técnica adecuada según el problema (por ejemplo, `references/ros2-colcon.md` para builds fallidos, `references/navigation2.md` para problemas de navegación). Además, impone principios fundamentales como verificar siempre la construcción, dependencias y TF antes de modificar algoritmos, y evitar anti-patrones comunes (mezclar build systems, ignorar time stamps o unidades). La salida esperada incluye la identificación del workspace y tipo de paquete, las suposiciones clave, los cambios realizados con su justificación, los comandos mínimos de build/test/run, y los puntos de riesgo y regresión.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add wzyn20051216/ros-robotics-skill

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

ROS Robotics

Cuándo usar

Usa esta habilidad cuando la solicitud del usuario involucre alguno de los siguientes temas:

  • catkin_ws, colcon_ws, src/CMakeLists.txt, package.xml, setup.py
  • Creación, migración, compilación, prueba y depuración de paquetes ROS 1 / ROS 2
  • launch / launch.py, parámetros YAML, URDF/Xacro, RViz, TF
  • topic / service / action / msg / srv / QoS
  • Chasis, IMU, LiDAR, cámara, localización, SLAM, Navigation2, ros2_control
  • Simulación Gazebo / Ignition, simulación de sensores, ros_gz_bridge
  • Desarrollo ROS con Docker, docker-compose para orquestación multinodo
  • Nodos de ciclo de vida (Lifecycle), rclcpp_components, comunicación intra-proceso
  • Grabación y reproducción con rosbag2, mcap, diagnóstico offline
  • Mapeo SLAM (Cartographer, SLAM Toolbox, ORB-SLAM)
  • Configuración DDS / QoS, ROS_DOMAIN_ID, selección de RMW, redes multiequipo
  • Definición y generación de interfaces personalizadas msg / srv / action
  • Sistemas multirobot, aislamiento con namespaces, comunicación entre equipos
  • Planificación de movimiento MoveIt 2, SRDF, plugins de cinemática
  • CI/CD para ROS 2 (GitHub Actions, colcon test, ament_lint)
  • Visualización y análisis offline con Foxglove Studio / PlotJuggler
  • Desarrollo cooperativo con MCU / RTOS / UART / CAN / micro-ROS

Qué hacer primero

1. Identificar el workspace

python scripts/detect_ros_workspace.py <workspace-path>

2. Realizar una verificación de consistencia

python scripts/check_ros_workspace_consistency.py <workspace-path>

3. Cargar la documentación mínima necesaria según el problema

  • ROS 1: references/ros1-catkin.md
  • ROS 2: references/ros2-colcon.md
  • Híbrido / Migración: references/interop-and-migration.md
  • Modelo / TF: references/robot-description-and-tf.md
  • Navegación: references/navigation2.md
  • Control: references/ros2-control.md
  • Embebido: references/micro-ros-and-embedded.md
  • Simulación: references/gazebo-simulation.md
  • Ciclo de vida / Componentes: references/lifecycle-and-components.md
  • DDS / QoS / Redes: references/dds-qos-networking.md
  • Grabación, reproducción y diagnóstico: references/rosbag-diagnostics.md
  • SLAM / Mapeo: references/slam-mapping.md
  • Docker: references/docker-ros.md
  • Interfaces personalizadas: references/custom-interfaces.md
  • Multirobot: references/multi-robot.md
  • MoveIt 2: references/moveit2.md
  • CI/CD: references/ros2-cicd.md
  • Visualización: references/foxglove-visualization.md
  • Resolución de problemas: references/debug-playbooks.md
  • Revisión: references/review-checklist.md

Principios que deben cumplirse

  • Primero identifica el sistema de compilación, luego modifica el código
  • Primero corrige la consistencia de package.xml / CMakeLists.txt, luego piensa en refactorizar
  • Primero revisa TF, sellos de tiempo, frames, unidades, luego culpa al algoritmo
  • Primero evidencia, luego modificación: la salida de compilación, topics, TF, parámetros y logs deben ser verificables
  • ROS 1 → ROS 2 primero puentea o estratifica, no derribes todo de una vez
  • MCU / micro-ROS: primero determina si realmente es necesario ingresar al grafo de ROS

Manejo de tareas comunes

Agregar o reparar un paquete

  • Primero determina el tipo de paquete: catkin, ament_cmake, ament_python
  • Primero declara las dependencias, luego agrega la lógica de compilación, luego las reglas de instalación
  • Para interfaces personalizadas msg / srv / action, verifica primero el orden de generación y los ciclos de dependencia (consulta references/custom-interfaces.md)

Fallo de compilación

  • Primero ejecuta rosdep
  • Luego verifica package.xml y los scripts de compilación
  • Luego comprueba que el entorno esté sourceado correctamente
  • Finalmente verifica dependencias del sistema, ABI y compatibilidad de la distribución

El robot no se comporta correctamente aunque todo funcione

  • Primero revisa launch, namespace, remap, parámetros
  • Luego revisa el nombre del topic, frecuencia, sellos de tiempo, unidades, frame_id
  • Luego revisa si TF tiene una sola raíz, y si estática/dinámica está bien diferenciada
  • Solo al final duda del algoritmo en sí

Nav2 / ros2_control

  • Para Navigation2, prioriza la cadena /cmd_vel, la calidad de la localización, la frecuencia de control y las unidades del chasis
  • Para ros2_control, prioriza el tipo de interfaz de hardware, el YAML del controlador, el ciclo de lectura/escritura y el estado activo

MCU / micro-ROS

  • Primero determina si el nodo puente del lado Linux es suficiente
  • Si el MCU debe entrar en el grafo de ROS 2, entonces considera micro-ROS
  • Revisa estrictamente el orden de bytes, checksum, timeout, reconexión, fuente de tiempo y protección por desconexión

Anti-patrones

  • Mezclar catkin y ament en el mismo paquete
  • Modificar solo CMakeLists.txt sin actualizar package.xml
  • Ignorar TF, sellos de tiempo, unidades y definición de ejes
  • Meter driver, protocolo, filtrado, control y diagnóstico todo en un solo nodo enorme
  • Al migrar de ROS 1 a ROS 2, solo hacer sustituciones de API sin realizar una verificación sistémica

Requisitos de salida

Al usar esta habilidad para procesar una tarea, la salida debe incluir prioritariamente:

  1. El workspace actual y el tipo de paquete identificado
  2. Las suposiciones y datos clave
  3. Los puntos de modificación y su razón
  4. Los comandos mínimos de compilación / prueba / ejecución
  5. Los puntos de riesgo y puntos de verificación de regresión

Skills relacionados