Skip to content

Commit 0f13e80

Browse files
committed
added vxworks
1 parent 99287f3 commit 0f13e80

3 files changed

Lines changed: 135 additions & 66 deletions

File tree

modules/os/nav.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
.Sistemas Operativos en Tiempo Real (RTOS)
1+
.Sistemas Operativos
22
* xref:rtos.adoc[]
3+
* xref:ros.adoc[]

modules/os/pages/ros.adoc

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
= Robot Operating System
2+
3+
Robot Operating System (ROS) es un conjunto de bibliotecas de
4+
software y herramientas que facilitan el desarrollo de robots.
5+
Incluye desde *drivers* hasta algoritmos, es multiplataforma y soporta
6+
Linux, macOS, Windows, así como plataformas embebidas a través de micro-ROS.
7+
8+
*ROS 1* fue la primera versión ampliamente adoptada y se diseñó
9+
principalmente para investigación y prototipado en robótica.
10+
11+
*ROS 2* es la evolución de ROS, rediseñado desde cero para uso industrial,
12+
comercial y en sistemas críticos.
13+
14+
Características principales de ROS 2:
15+
16+
- Arquitectura descentralizada (sin master).
17+
- Basado en DDS (Data Distribution Service) para la comunicación.
18+
- Soporte nativo para tiempo real.
19+
- Funciona en múltiples sistemas operativos: Linux, Windows, macOS, RTOS (FreeRTOS, Zephyr, ThreadX, etc.).
20+
- Seguridad integrada (autenticación, cifrado, control de acceso).
21+
- Mejor soporte para sistemas distribuidos y escalables.
22+
23+
ROS 2 sí puede usarse con Zephyr y otros RTOS,
24+
pero no de la misma forma que en Linux. La integración está pensada para
25+
microcontroladores y sistemas con recursos limitados. Para esto se utiliza micro-ROS.
26+
27+
. Zephyr ejecuta el micro-ROS client.
28+
. El micro-ROS Agent corre en un PC o SBC (Linux).
29+
. La comunicación usa DDS de ROS 2 a través del agente.
30+
31+
.Conexión entre ROS2 y Zephyr
32+
[source, text]
33+
----
34+
┌────────────────────────────┐
35+
│ ROS 2 (PC / SBC) │
36+
│ Linux / Windows / etc. │
37+
└───────────┬────────────────┘
38+
│ DDS
39+
┌───────────▼────────────────┐
40+
│ micro-ROS Agent │
41+
│ (Linux / PC / SBC) │
42+
└───────────┬────────────────┘
43+
│ Serial / UDP
44+
┌───────────▼────────────────┐
45+
│ micro-ROS Client │
46+
│ Zephyr RTOS │
47+
│ MCU (Cortex-M, RISC-V) │
48+
└────────────────────────────┘
49+
----
50+
51+
Plataformas como https://developer.nvidia.com/isaac[Nvidia Isaac] están basadas
52+
en ROS2.
53+
54+
== Beam Bots
55+
56+
Una alternativa del ecosistema Elixir a ROS2 es Beam Bots. Ya que la máquina virtual
57+
de Erlang proporciona todos los componentes necesarios para la creación de complejas
58+
orquestaciones de movimientos en robots.
59+
60+
Puedes leer el tutorial para saber más de xref:advanced:beambots.adoc[Beam Bots].
61+
62+
== Referencias
63+
64+
- https://www.ros.org/

modules/os/pages/rtos.adoc

Lines changed: 69 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,57 @@
11
= Sistemas Operativos en Tiempo Real
22

3+
Un sistema operativo en tiempo real (RTOS, Real-Time Operating System)
4+
es un tipo de sistema operativo diseñado para responder a eventos y ejecutar
5+
tareas dentro de plazos estrictos y deterministas. La clave no es solo ejecutar
6+
tareas correctamente, sino garantizar que se ejecuten a tiempo.
7+
8+
En contraste, un sistema operativo tradicional (como Windows, Linux de escritorio o macOS)
9+
se centra en rendimiento y multitarea general, pero no garantiza
10+
tiempos de respuesta deterministas.
11+
12+
Un RTOS garantiza "hacer lo correcto y a tiempo",
13+
mientras que un OS tradicional garantiza "hacer lo correcto eventualmente".
14+
15+
*Ejemplo*:
16+
17+
- RTOS: control de un motor, parpadeo de un LED crítico, sistema de frenos ABS en un automóvil.
18+
- OS tradicional: abrir un navegador, reproducir música, ejecutar software de oficina.
19+
20+
.Comparación entre RTOS y OS
21+
[cols="1,1,1", options="header"]
22+
|===
23+
| Característica | RTOS | Sistema Operativo Tradicional
24+
25+
| Objetivo principal
26+
| Cumplimiento de tiempos estrictos
27+
| Rendimiento general y multitarea
28+
29+
| Determinismo
30+
| Garantizado
31+
| No determinista
32+
33+
| Planificador (scheduler)
34+
| Prioridad estricta, preemptivo
35+
| Basado en tiempo compartido / fairness
36+
37+
| Uso de recursos
38+
| Optimizado, bajo consumo
39+
| Flexible, más pesado
40+
41+
| Latencia de interrupción
42+
| Muy baja (microsegundos a milisegundos)
43+
| Variable, puede ser alta
44+
45+
| Ejemplos típicos
46+
| FreeRTOS, Zephyr, ThreadX, VxWorks
47+
| Windows, Linux, macOS
48+
49+
| Aplicaciones
50+
| Automoción, robótica, IoT, control industrial
51+
| PCs, servidores, smartphones
52+
|===
53+
54+
355
== FreeRTOS
456

557
FreeRTOS es un kernel de sistema operativo en tiempo real (RTOS)
@@ -316,6 +368,23 @@ más complejas y de mayor escala.
316368
- https://www.arduinolibraries.info/libraries/rt-thread
317369
- https://www.rt-thread.io/
318370

371+
=== VxWorks
372+
373+
VxWorks es un sistema operativo de tiempo real desarrollado como software
374+
propietario por Wind River Systems. Se puso a la venta la primera versión en 1987.
375+
Es utilizado para sistemas incrustados que habitualmente necesitan una respuesta
376+
rápida del orden de ms o microsegundos ante interrupciones en su funcionamiento,
377+
una reconocida estabilidad y una seguridad certificada. Forma parte, junto con otros
378+
sistemas operativos alternativos, de millones de dispositivos electrónicos como
379+
cajeros automáticos, impresoras, cámaras fotográficas y en sistemas
380+
críticos de complejos productos aeroespaciales como el avión de pasajeros Boeing 787,
381+
del robot Curiosity de la NASA, o del avión militar Northrop Grumman X-47B, entre otros.
382+
383+
==== Recursos
384+
385+
- https://www.windriver.com/products/embedded/vxworks
386+
- https://es.wikipedia.org/wiki/VxWorks
387+
319388
=== Apache Nuttx
320389

321390
Apache Nuttx es un RTOS que se enfoca en el cumplimiento de estándares,
@@ -373,68 +442,3 @@ int main(int argc, char *argv[])
373442
==== Recursos
374443

375444
- https://nuttx.apache.org/
376-
377-
== ROS (Robot Operating System)
378-
379-
Robot Operating System (ROS) es un conjunto de bibliotecas de
380-
software y herramientas que facilitan el desarrollo de robots.
381-
Incluye desde *drivers* hasta algoritmos, es multiplataforma y soporta
382-
Linux, macOS, Windows, así como plataformas embebidas a través de micro-ROS.
383-
384-
*ROS 1* fue la primera versión ampliamente adoptada y se diseñó
385-
principalmente para investigación y prototipado en robótica.
386-
387-
*ROS 2* es la evolución de ROS, rediseñado desde cero para uso industrial,
388-
comercial y en sistemas críticos.
389-
390-
Características principales de ROS 2:
391-
392-
- Arquitectura descentralizada (sin master).
393-
- Basado en DDS (Data Distribution Service) para la comunicación.
394-
- Soporte nativo para tiempo real.
395-
- Funciona en múltiples sistemas operativos: Linux, Windows, macOS, RTOS (FreeRTOS, Zephyr, ThreadX, etc.).
396-
- Seguridad integrada (autenticación, cifrado, control de acceso).
397-
- Mejor soporte para sistemas distribuidos y escalables.
398-
399-
ROS 2 sí puede usarse con Zephyr y otros RTOS,
400-
pero no de la misma forma que en Linux. La integración está pensada para
401-
microcontroladores y sistemas con recursos limitados. Para esto se utiliza micro-ROS.
402-
403-
. Zephyr ejecuta el micro-ROS client.
404-
. El micro-ROS Agent corre en un PC o SBC (Linux).
405-
. La comunicación usa DDS de ROS 2 a través del agente.
406-
407-
.Conexión entre ROS2 y Zephyr
408-
[source, text]
409-
----
410-
┌────────────────────────────┐
411-
│ ROS 2 (PC / SBC) │
412-
│ Linux / Windows / etc. │
413-
└───────────┬────────────────┘
414-
│ DDS
415-
┌───────────▼────────────────┐
416-
│ micro-ROS Agent │
417-
│ (Linux / PC / SBC) │
418-
└───────────┬────────────────┘
419-
│ Serial / UDP
420-
┌───────────▼────────────────┐
421-
│ micro-ROS Client │
422-
│ Zephyr RTOS │
423-
│ MCU (Cortex-M, RISC-V) │
424-
└────────────────────────────┘
425-
----
426-
427-
Plataformas como https://developer.nvidia.com/isaac[Nvidia Isaac] están basadas
428-
en ROS2.
429-
430-
=== Recursos
431-
432-
- https://www.ros.org/
433-
434-
== Beam Bots
435-
436-
Una alternativa del ecosistema Elixir a ROS2 es Beam Bots. Ya que la máquina virtual
437-
de Erlang proporciona todos los componentes necesarios para la creación de complejas
438-
orquestaciones de movimientos en robots.
439-
440-
Puedes leer el tutorial para saber más de xref:advanced:beambots.adoc[Beam Bots].

0 commit comments

Comments
 (0)