Sistemes Robotitzats
Introducció
La robòtica és una de les disciplines on la convergència entre la IA i l'enginyeria física és més visible i d'impacte més immediat. Un robot és un sistema físic capaç de percebre el seu entorn, prendre decisions i actuar sobre ell de forma autònoma o semi-autònoma. Quan integrem tècniques d'IA en els sistemes robòtics, passem de robots programats per a tasques rígides i repetitives a sistemes capaços d'adaptar-se a entorns canviants, aprendre de l'experiència i col·laborar de forma segura amb humans.
A l'actualitat, la robòtica intel·ligent ha assolit fites que fins fa poc eren terreny de la ciència-ficció: cotxes que condueixen sols, robots humanoides que treballen a fàbriques, drons de lliurament autònom i robots cirurgians de precisió sub-mil·limètrica.
Robòtica i el mercat laboral
Contràriament al que moltes vegades es presenta, els robots no simplement eliminen feines: transformen el seu contingut. L'automatització dels treballs físics repetitius i perillosos allibera els humans per a tasques de supervisió, manteniment, programació i disseny dels sistemes robòtics. El WEF estima que per cada lloc de treball eliminat per l'automatització robòtica se'n creen 2,5 de nous relacionats amb la robòtica i la IA.
1. Tipus de robots
1.1. Robots industrials tradicionals
Els robots industrials clàssics (manipuladors) són màquines programades per realitzar tasques repetitives de precisió en entorns controlats. Treballen darrere de tanques de seguretat, sense cap interacció directa amb humans.
Característiques: - Precisió: repetibilitat de ±0,02 mm (millor que qualsevol humà) - Velocitat: fins a 2 m/s de velocitat de l'extrem efector - Força: fins a varies tones de capacitat de càrrega - Programació: trajectòries predefinides, sense capacitat d'adaptació
Fabricants principals: FANUC, ABB, KUKA, Yaskawa, Kawasaki, Stäubli
Aplicacions típiques: - Soldadura per punts a la indústria de l'automòbil (BMW, Toyota, Volkswagen) - Pintura de carrosseries: precisió i reproducibilitat impol·luta - Manipulació de materials pesants (peces de motors, planxes) - Paletització i empaquetatge en alimentació i logística
1.2. Robots col·laboratius (Cobots)
Els cobots (collaborative robots) representen la revolució de la robòtica en entorns de producció flexibles. A diferència dels robots industrials, els cobots estan dissenyats per treballar al costat dels humans, compartint l'espai de treball sense necessitar tanques de seguretat físiques.
Característiques clau: - Detecció de força: si el robot entra en contacte no previst amb un humà, s'atura immediatament - Programació intuïtiva: molts es programen guiant-los físicament amb la mà (teach pendant o hand-guided programming) - Desplegament ràpid: instal·lació en hores, no setmanes - Flexibilitat: canvi de tasca senzill, adequat per a lots petits
Fabricants i models destacats: - Universal Robots (UR): UR3e, UR5e, UR10e, UR20 — els cobots més venuts del món - KUKA: LBR iiwa — primer cobot comercial, usat per BMW per roscar peces - Franka Emika: Panda — molt popular en recerca i entorns universitaris - ABB: YuMi — robot de doble braç per a muntatge electrònic
Limitació principal: velocitat i força molt inferiors als robots industrials (per seguretat). Capacitat de càrrega típica: 3-16 kg.
1.3. Robots autònoms mòbils (AMR i AGV)
AGV (Automated Guided Vehicles): vehicles autònoms que segueixen guies físiques (línies magnètiques, rail al terra, codis QR) o làser per a trajectòries predefinides. Molt usats en magatzems.
AMR (Autonomous Mobile Robots): evolució dels AGV. No necessiten infraestructura fixa: perceben el seu entorn amb làsers LiDAR, càmeres i ultrasò, i naveguen de forma dinàmica evitant obstacles.
Exemples actuals: - Amazon Kiva (ara Amazon Robotics): 750.000+ robots en magatzems, porten les prestatgeries als operaris humans - Fetch Robotics: AMRs per a logística interna de fàbriques - MiR (Mobile Industrial Robots): transport autònom de material entre departaments - Aethon TUG: robots per a hospitals que transporten medicaments, menjars i roba
1.4. Robots socials i humanoides
Robots socials: dissenyats per interactuar de forma natural amb humans en entorns no estructurats.
- Pepper (SoftBank): robot humanoide petit per a recepció i atenció al client (hotels, comerços, hospitals)
- NAO (SoftBank): usat massivament en educació i recerca en robòtica
- Furhat: robot de cap expressiu per a investigació en interacció humà-robot
Robots humanoides d'última generació (2024-2025):
| Robot | Empresa | Estat | Aplicació |
|---|---|---|---|
| Optimus Gen 2 | Tesla | Pilot a fàbriques Tesla | Tasques de magatzem i muntatge |
| Figure 01/02 | Figure AI | Pilot amb BMW | Manufactura |
| Atlas | Boston Dynamics | I+D avançat | Recerca, inspeccions |
| Digit | Agility Robotics | Pilot amb Amazon | Logística |
| Unitree H1 | Unitree | Comercial | Recerca, indústria |
Realitat vs. hype en humanoides
Les demos impressionants de robots humanoides sovint amagues que en condicions reals (entorns no controlats, variabilitat d'objectes, interfèrencies) el rendiment baixa dràsticament. El 2025, els robots humanoides encara no són competitius en cost/benefici respecte a humans per a la majoria de tasques. Però l'evolució és molt ràpida.
2. Cinemàtica: directa i inversa
2.1. Cinemàtica directa
La cinemàtica directa respon la pregunta: donada la configuració de les articulacions del robot (angles o desplaçaments), on es troba l'extrem efector (la "mà" del robot)?
Per a un braç robòtic de N articulacions, la posició i orientació de l'extrem efector és una funció dels N angles de les articulacions:
La solució és analíticament directa (per a cada configuració hi ha una única posició de l'extrem). S'usa per a simulació, planificació de trajectòries i control.
Convenció de Denavit-Hartenberg (DH): mètode estàndard per descriure la cinemàtica d'una cadena articulada. Cada articulació es descriu amb 4 paràmetres: distància, desplaçament, angle de torsió i angle de l'articulació.
2.2. Cinemàtica inversa
La cinemàtica inversa respon la pregunta oposada: donada una posició i orientació desitjada de l'extrem efector, quins han de ser els angles de les articulacions?
Aquí és on la complexitat matemàtica és major: - Pot no haver-hi solució (la posició és fora de l'espai de treball) - Pot haver-hi múltiples solucions (diverses configuracions que arriben al mateix punt) - Les solucions analítiques existeixen per a robots simples (6 DOF), però per a robots de molts graus de llibertat o robots amb restriccions, cal usar mètodes numèrics iteratius (Jacobià, gradient descent)
IA per a la cinemàtica inversa: Les xarxes neuronals s'usen cada cop més per aprendre la relació inversa directament de dades, evitant la matemàtica complexa. Especialment útil per a robots de molts graus de llibertat (p. ex. mà robòtica de 20 DOF).
3. ROS 2 — Robot Operating System 2
3.1. Què és ROS 2?
ROS 2 (Robot Operating System 2) no és un sistema operatiu en el sentit convencional: és un middleware de codi obert que proporciona infraestructura de comunicació, eines i biblioteques per al desenvolupament de software robòtic. És l'estàndard de facto en recerca i cada cop més en producció.
ROS 2 és la versió reescrita de ROS 1, amb millores fonamentals: - Temps real: suport per a comunicació hard real-time (DDS - Data Distribution Service) - Multi-robot: dissenyat per a flotes de robots des del principi - Seguretat: autenticació i xifratge de comunicacions - Portabilitat: suporta Linux, Windows i macOS
3.2. Arquitectura de ROS 2
graph TD
subgraph Nodes ROS 2
N1[Node Càmera\ncamera_node]
N2[Node Deteccio\nyolo_detector]
N3[Node Planificacio\npath_planner]
N4[Node Control\nrobot_controller]
end
N1 -- Topic: /camera/image_raw --> N2
N2 -- Topic: /deteccions/objects --> N3
N3 -- Topic: /cmd_vel --> N4
N3 -- Service: /get_plan --> N4
N4 -- Action: /navigate_to_pose --> N3
Conceptes clau:
Nodes: processsos independents que realitzen una tasca específica. Cada node pot ser en Python o C++.
Topics: canals de comunicació pub/sub asíncrons. Un node publica missatges a un topic i altres nodes es subscriuen. Exemple: el node de la càmera publica imatges al topic /camera/image_raw.
Services: comunicació request-response síncrona. El client envia una petició i espera la resposta. Exemple: servei /get_map que retorna el mapa actual.
Actions: com els serveis però per a tasques llargues, amb feedback periòdic. Exemple: acció /navigate_to_pose que navega a una posició i informa del progrés.
Messages: estructures de dades tipades que viatgen per topics i serveis. ROS 2 defineix centenars de tipus estàndard (imatges, poses, nucs de punts, etc.).
3.3. Exemple de node ROS 2 en Python
#!/usr/bin/env python3
"""
Node ROS 2 exemple: detector d'obstacles simplificat
Subscriu a les lectures del làser i publica si hi ha un obstacle proper
"""
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import LaserScan
from std_msgs.msg import Bool, String
class DetectorObstacles(Node):
"""Node que detecta obstacles usant un sensor làser (LiDAR)."""
def __init__(self):
super().__init__('detector_obstacles')
# Paràmetre configurable: distància mínima de seguretat (metres)
self.declare_parameter('distancia_minima', 0.5)
self.distancia_minima = self.get_parameter('distancia_minima').value
# Subscriptor: llegeix les dades del LiDAR
self.subscripcio_laser = self.create_subscription(
LaserScan,
'/scan',
self.callback_laser,
10 # Longitud de la cua de missatges
)
# Publicadors: avís d'obstacle i missatge descriptiu
self.pub_obstacle = self.create_publisher(Bool, '/obstacle_detectat', 10)
self.pub_avis = self.create_publisher(String, '/avis_obstacle', 10)
self.get_logger().info(
f'Node detector_obstacles iniciat. '
f'Distancia minima de seguretat: {self.distancia_minima}m'
)
def callback_laser(self, msg: LaserScan):
"""S'executa cada vegada que arriben noves dades del làser."""
# Filtrem les lectures invàlides (inf, nan, 0)
lectures_valides = [
r for r in msg.ranges
if msg.range_min < r < msg.range_max
]
if not lectures_valides:
return
distancia_minima_llegida = min(lectures_valides)
hi_ha_obstacle = distancia_minima_llegida < self.distancia_minima
# Publiquem si hi ha obstacle
msg_bool = Bool()
msg_bool.data = hi_ha_obstacle
self.pub_obstacle.publish(msg_bool)
if hi_ha_obstacle:
msg_avis = String()
msg_avis.data = (
f'ALERTA: Obstacle a {distancia_minima_llegida:.2f}m '
f'(minim: {self.distancia_minima}m)'
)
self.pub_avis.publish(msg_avis)
self.get_logger().warning(msg_avis.data)
def main(args=None):
rclpy.init(args=args)
node = DetectorObstacles()
try:
rclpy.spin(node)
except KeyboardInterrupt:
pass
finally:
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
Executar el node amb Docker:
# Córrer ROS 2 Humble amb Docker (sense necessitat d'instal·lar ROS localment)
docker run -it --rm \
--name ros2-joan-garcia \
--network host \
osrf/ros:humble-desktop-full \
bash
# Dins del contenidor, crear i executar el node
mkdir -p /workspace/src/detector_obstacles/detector_obstacles
# ... (copiar el fitxer Python)
cd /workspace
colcon build
source install/setup.bash
ros2 run detector_obstacles detector_obstacles
3.4. Eines de ROS 2
rviz2: visualitzador 3D per a dades robòtiques (mapes, nucs de punts, trajectòries, marcs de referència)
rqt: conjunt d'eines GUI per a depuració i monitorització (gràfics de topics, visualització d'imatges, etc.)
rosbag2: gravació i reproducció de tots els missatges de ROS 2. Indispensable per a depuració i entrenament d'IA.
ros2 launch: arxius de llançament que inicien múltiples nodes simultàniament amb la seva configuració.
4. Visió artificial amb IA
4.1. Visió artificial per a robòtica
La visió artificial proporciona als robots "ulls" per percebre el món. Les aplicacions en robòtica inclouen: - Localització i mapeig simultani (SLAM): construir un mapa de l'entorn i localitzar el robot simultàniament - Detecció d'objectes: identificar i localitzar objectes per a tasques de manipulació - Seguiment de persones: cobots que segueixen un operari o li eviten el pas - Inspecció de qualitat: detectar defectes en superfícies, soldadures o components
4.2. YOLO — You Only Look Once
YOLO és la família de models de detecció d'objectes en temps real més popular. La seva gràcia és que detecta totes les caixes englobants i classes en una sola passada per la xarxa neuronal (d'aquí el nom), a diferència dels models de dues fases (R-CNN) que primer proposen regions d'interès i després les classifiquen.
Evolució de YOLO:
YOLOv1 (2016) → YOLOv3 (2018) → YOLOv5 (2020) → YOLOv8 (2023) → YOLOv9/v10 (2024)
10fps 30fps 100fps 200fps+ 200fps+
YOLOv8 (Ultralytics, 2023) és el model recomanat per a la majoria de casos d'ús el 2025: - Detecció d'objectes (bounding boxes) - Segmentació d'instàncies (màscares pixel a pixel) - Estimació de pose (keypoints del cos humà) - Classificació d'imatges - Tracking multi-objecte
# Detecció d'objectes amb YOLOv8
# pip install ultralytics
from ultralytics import YOLO
import cv2
# Carregar model preentrenat (descarrega automàticament si no existeix)
model = YOLO('yolov8n.pt') # 'n' = nano (més petit), 's', 'm', 'l', 'x' (més gran)
# Inferència sobre una imatge
resultats = model('imatge_magatzem.jpg', conf=0.5) # conf = llindar de confiança
# Mostrar i guardar els resultats
for resultat in resultats:
# Coordenades de les caixes: [x1, y1, x2, y2, confiança, classe]
per a cada caixa en resultat.boxes:
x1, y1, x2, y2 = caixa.xyxy[0].tolist()
conf = caixa.conf[0].item()
classe = model.names[int(caixa.cls[0].item())]
print(f"Detectat: {classe} ({conf:.2%}) a [{x1:.0f},{y1:.0f},{x2:.0f},{y2:.0f}]")
# Guardar imatge amb les deteccions anotades
resultat.save('deteccions_magatzem.jpg')
# Inferència en temps real (càmera)
model.predict(source=0, show=True, conf=0.5) # source=0 = càmera web
# Fine-tuning sobre dades pròpies (exemple de peça de fàbrica)
model_custom = YOLO('yolov8n.pt')
model_custom.train(
data='dades_peces_fabbrica.yaml', # Fitxer de configuració del dataset
epochs=100,
imgsz=640,
batch=16,
name='detector_peces_joan_garcia'
)
4.3. SLAM — Simultaneous Localization and Mapping
El SLAM resol el problema de "l'ou i la gallina" de la navegació robòtica: per construir un mapa cal saber on ets, i per saber on ets cal tenir un mapa. SLAM resol ambdues tasques simultàniament.
Components principals: - Sensors: LiDAR (làser 2D/3D), càmeres (monoculars, estèreo, RGB-D) - Frontend: extracció de característiques de cada mesura, estimació del moviment - Backend: optimització global del mapa i la trajectòria (pose graph optimization)
Algorismes SLAM populars: - GMapping: SLAM 2D basat en partícules, clàssic i robust - Cartographer (Google): SLAM 2D/3D, molt usat en producció - ORB-SLAM3: SLAM visual (càmera), altament precís - RTAB-Map: SLAM RGB-D i LiDAR, amb bucle de tancament
5. Planificació de moviment amb IA
5.1. Planificació de trajectòria clàssica
La planificació de moviment determina la trajectòria que ha de seguir un robot des d'una posició inicial fins a un objectiu, evitant obstacles.
Algorismes clàssics: - A*: cerca el camí mínim en un graf. Eficient per a espais discrets (mapes de graella) - RRT (Rapidly-exploring Random Trees): mostreig aleatori de l'espai de configuració. Molt usat per a braços robòtics - PRM (Probabilistic Roadmap Method): construeix un mapa de camins vàlids per a preguntes múltiples
5.2. Aprenentatge per reforç en robòtica
El Reinforcement Learning (RL) ha permès que robots aprenguin tasques complexes de manipulació que eren molt difícils de programar explícitament:
- OpenAI Dexterous Hand (2019): mà robòtica que aprèn a resoldre el cub de Rubik usant RL simulat i transferit a hardware real
- DeepMind AlphaCode per a robòtica: aprèn a manipular objectes deformables (roba, cables) que els mètodes clàssics gestionen malament
- Google RT-2 (2023): model de visió-llenguatge-acció que pot generalitzar instruccions en text a accions robòtiques
graph LR
SIM[Simulador Gazebo-Isaac] --> POL[Politica RL]
POL --> ACT[Accions del robot]
ACT --> ENV[Entorn simulat]
ENV --> REW[Recompensa]
REW --> POL
POL -- Transfer learning --> REAL[Robot real]
Sim-to-Real Transfer: entrenar en simulació i transferir a hardware real. El repte és el "reality gap": diferències entre simulació i realitat (fricció, llum, deformació de materials).
6. Casos d'ús industrials
6.1. Pick & Place intel·ligent
El pick & place (agafar i col·locar) és una de les tasques robòtiques més comunes. La IA ha transformat la seva capacitat:
Repte clàssic: els sistemes de pick & place tradicionals necessitaven que les peces estiguessin en posicions perfectament definides.
Solució IA: visió artificial (YOLO + estimació de pose 6D) permet al robot identificar i agafar peces en qualsevol orientació, inclús de caixes a granel (bin picking).
Cas real: Amazon Sparrow (2022) — robot de pick & place d'articles individuals per a comandes de clients, usa visió IA per seleccionar articles de caixes mixtes.
6.2. Inspecció automàtica de qualitat
Repte: detectar defectes de fabricació (ratlles, bombolles, deformacions) a alta velocitat en línies de producció.
Solució IA: models de visió artificial entrenats en imatges defectuoses (o sobre dades sintètiques generades per IA) detecten anomalies imperceptibles a l'ull humà.
Cas real: BMW usa sistemes de visió IA que inspeccionen la pintura de carrosseries a 10 m/s, detectant defectes de menys d'1 mm². Taxa de fals positiu inferior al 0,1%.
6.3. AGV i AMR en logística
Cas Amazon: la xarxa de 750.000 robots Kiva és el sistema AMR més gran del món. Porta les prestatgeries dels productes fins als operaris de picking, eliminant la caminada dels treballadors (fins a 20 km/dia). Resultat: velocitat de processament 3x superior, errors reduïts al 0,1%.
Cas DHL: AMRs de Locus Robotics en centres de distribució. L'IA optimitza les rutes de tota la flota en temps real, equilibrant la càrrega de treball entre robots.
6.4. Manteniment predictiu amb robots i sensors
Robots i sensors IoT recullen dades de vibracions, temperatura, soroll i consum elèctric de la maquinària. Models de sèries temporals (LSTM, Prophet, Transformers) prediuen quan una màquina fallarà hores o dies abans.
Impacte real (Siemens, 2023): - Reducció del 30-50% en temps de parada no planificada - Reducció del 25% en costos de manteniment - Allargament de la vida útil de la maquinària en un 20%
7. Simuladors de robòtica
Per desenvolupa i provar software robòtic sense necessitar hardware físic, s'usen simuladors:
| Simulador | Empresa | Punts forts | Integració ROS 2 |
|---|---|---|---|
| Gazebo (Ignition) | Open Robotics | Estàndard de facto en recerca, gratis | Nativa |
| Webots | Cyberbotics / Google | Fàcil d'usar, bon per a educació | Sí |
| Isaac Sim | NVIDIA | Màxima realisme (ray tracing), IA integrada | Sí |
| PyBullet | Bullet Physics | Lleuger, ideal per a RL | Parcial |
| MuJoCo | DeepMind (Google) | Estàndard per a RL de robòtica | Parcial |
Isaac Sim (NVIDIA) és especialment interessant el 2025: usa ray tracing en temps real per generar dades sintètiques fotorealistes per a entrenar models de visió artificial, eliminant parcialment la necessitat de fotografiar peces reals.
Miniactivitat CA4.4 — Simulació bàsica amb Webots
Accedeix a Webots (gratuït, descarregable o accessible via navegador a cyberbotics.com/run_simulation). Obre l'exemple "e-puck maze". Observa com el robot navega pel laberint usant sensors de proximitat.
Respon les preguntes: 1. Quins sensors usa el robot per detectar les parets? 2. Quin tipus d'agent és (reflexos simples, basat en model, etc.)? 3. Modifica la velocitat dels motors. Com afecta el comportament? 4. Proposa una millora: com faries que el robot recordés els llocs ja visitats?
8. Robòtica social i humanoides
8.1. Boston Dynamics Spot
Spot és un robot quadrúpede (quatre potes) capaç de navegar per terrenys difícils, pujar escales, obrir portes i dur a terme inspeccions autònomes. A diferència de la robòtica industrial clàssica, Spot opera en entorns no estructurats.
Aplicacions reals: - Inspeccions industrials (refineries, plantes nuclears, mines): recull dades de sensors en llocs perillosos per a humans - Seguretat i vigilància: patrulles autònomes de perímetres - Construcció: mapeig 3D de progressos d'obra
IA integrada: Spot usa visió artificial per a navegació, detecció d'obstacles i reconeixement de persones. L'SDK permet programar missions autònomes en Python.
8.2. Tesla Optimus
Tesla va presentar Optimus Gen 2 el novembre 2023 i el desplegà parcialment a les seves fàbriques el 2024. Capacitats actuals: - Caminar i manipular objectes amb les mans - Ordenar peces de bateria a la fàbrica (tasca real demostrada) - Auto-calibrat: aprèn la seva postura de forma autònoma
Arquitectura d'IA: la mateixa IA de conducció autònoma (visió artificial pura, sense LiDAR) s'adapta per al robot.
8.3. Reptes oberts en humanoides
Els robots humanoides el 2025 encara lluiten amb: - Manipulació fina: moure objectes petits, frables o deformables (una fulla de paper, un cable, un ou) - Generalització: aprendre de pocs exemples a fer tasques noves en entorns nous - Cost: Optimus Tesla s'espera que costi menys de $20.000 en producció en massa, però ara és molt més car - Fiabilitat: el MTBF (temps mig entre fallades) d'un humanoide en tasques reals és molt inferior al d'un robot industrial
9. Exercici pràctic del tema
AC5076 — Disseny de sistema robòtic per a un cas d'ús real
Elabora un document tècnic (mínim 600 paraules + diagrames) que dissenyi un sistema robòtic per a un dels següents escenaris:
Opció A: Sistema de picking autònom per a un magatzem de peces electròniques de petita mida. Les peces arriben en caixes barrejades i han d'ordenar-se en cubetes individualitzades.
Opció B: Robot mòbil per a la inspecció autònoma de la instal·lació fotovoltaica del sostre de l'escola. Ha de detectar panells amb rendiment degradat i reportar-ho.
Opció C: Sistema cobòtic per a l'assemblea de kits de robòtica educativa. Un cobot treballa al costat d'un humà empaquetant components.
Per a l'escenari triat, documenta:
- Tipus de robot recomanat i justificació de l'elecció
- Sensors necessaris (tipus, especificacions mínimes)
- Càmeres i sistema de visió artificial: quin model YOLO o similar usaries i per a quina tasca
- Anàlisi PEAS complet del sistema robòtic
- Riscos de seguretat i mesures per mitigar-los (normes ISO 10218, ISO/TS 15066 per a cobots)
- Estimació de cost aproximada (hardware + software + integració)
- Diagrama Mermaid de l'arquitectura del sistema
Recursos per al disseny
- Catàleg UR cobots: universal-robots.com
- Preus referència sensors LiDAR: SICK, Hokuyo, Velodyne
- Especificacions càmeres industrials: Basler, FLIR, Intel RealSense
- Normativa ISO cobots: ISO/TS 15066:2016