Robotics / Industrial Control DSLs Family Index


type: language-family-index family: robotics-control languages_catalogued: 18 tags: [language-reference, family-index, robotics, industrial-control, automation, plc]

Robotics / Industrial Control DSLs — Family Index

Family overview

Programming a machine that moves in physical space is a different discipline from programming a server, and it has produced one of the most fragmented language ecosystems in computing. Three sub-families dominate. First, vendor-proprietary teach-pendant languages: each major industrial-robot OEM ships its own Pascal-flavored DSL — KUKA KRL, ABB RAPID, Fanuc TP/KAREL, Universal Robots URScript, Stäubli VAL3, Yaskawa INFORM. They are deliberately incompatible: the language is a moat, the teach pendant is the product, and a factory that has trained a hundred technicians on RAPID is not switching to KRL. Second, open robotics description formats — URDF, SDF, Webots PROTO, OpenSCENARIO, OpenDRIVE — which describe robots and the worlds they operate in rather than imperative motion. These came out of academia and ROS, and they are the closest the field has to portable, vendor-neutral artifacts. Third, industrial-control standard languages under IEC 61131-3 (Structured Text, Ladder Diagram, Function Block Diagram, Sequential Function Chart) and its event-driven distributed successor IEC 61499 — the languages of PLCs and process control rather than articulated robots.

The cultural divide between these worlds is large. The factory-floor / process-control world (PLCs, IEC 61131-3, safety-rated controllers from Pilz / B&R / Beckhoff TwinCAT, Allen-Bradley, Siemens) is conservative, regulated, and dominated by Ladder Logic written by electricians who think in relay diagrams. The research / autonomous-vehicle / service-robotics world (ROS 2, URDF, Drake, Gazebo, OpenSCENARIO) is C++/Python-centric, GitHub-native, and rooted in robotics PhD programs. The two worlds barely talk; their conferences, journals, vendors, and hiring pipelines are largely disjoint. Bridging tools (ros2_control, OPC UA over TSN, IEC 61499 multivendor pilots) are getting traction in 2026 but the divide is still very real.

A modern industrial robotics integrator is fluent in several of these at once — a single welding cell might run RAPID on the robot, Structured Text on a Beckhoff PLC for cell logic, URDF for offline simulation in RoboDK, and Robot Framework for end-of-line acceptance tests.

In our deep library

None of these are in the deep library. Cross-reference visual-dataflow for LabVIEW G and Simulink (which overlap industrial measurement and control), and scientific for Modelica (acausal physical-systems modeling, used heavily in robot dynamics).

Tier 3 family table

LanguageFirst appearedVendor / originDomainStatus (2026)URL
KUKA KRL~1996KUKATeach-pendant motion DSL for KUKA arms; Pascal-flavoredActive; KRL-AI Copilot generates KRL from promptshttps://en.wikipedia.org/wiki/KUKA_Robot_Language
ABB RAPID1994 (with S4)ABBTeach-pendant motion DSL for ABB IRC5/OmniCore; structured-text-likeActive; flagship language for the global #1 industrial-robot vendorhttps://library.e.abb.com/public/688894b98123f87bc1257cc50044e809/Technical%20reference%20manual_RAPID_3HAC16581-1_revJ_en.pdf
Fanuc TPearly 1990sFanucTeach-pendant assembler-like motion language; the workhorse on R-30iB controllersActive; ubiquitous in automotivehttps://www.fanucamerica.com/support-services/robotics-training/CourseDetails.aspx?CourseNumber=KAREL-OP
Fanuc KARELearly 1990sFanucCompiled Pascal-derived language for complex Fanuc logic, vision, comms (compiled to .PC p-code)Active; controller optionhttps://www.onerobotics.com/posts/2013/introduction-to-karel-programming/
Universal Robots URScript~2008Universal RobotsCobot motion + scripting; PolyScope GUI compiles to URScript under the hoodActive; the language of the cobot categoryhttps://www.universal-robots.com/developer/urscript/
Stäubli VAL3~2005 (VAL II → VAL3)StäubliHigh-level robot DSL with rich type system; “programmer’s robot”Active; SP2 controller linehttps://www.staubli.com/global/en/robotics/products/robot-software/val-3-language.html
Yaskawa INFORM1990sYaskawa MotomanNative language for YRC1000 / YRC1000micro controllersActivehttps://knowledge.motoman.com/hc/en-us/articles/4407425435927-YRC1000-INFORM-LANGUAGE
ROS 2 launch (XML / Python / YAML)2017 (ROS 2)Open RoboticsDeclarative process-orchestration DSL for ROS 2 nodesActive; canonical with every ROS 2 release through Kilted (2026)https://docs.ros.org/en/rolling/How-To-Guides/Launch-file-different-formats.html
URDF~2008Willow Garage / ROSXML kinematic + visual + collision description for a single robotActive but limited (no parallel linkages, no world); still the lingua francahttps://docs.ros.org/en/rolling/Tutorials/Intermediate/URDF/URDF-Main.html
SDF (SDFormat)2012Open Robotics / GazeboXML world+robot description; superset of URDF with worlds, sensors, joint loopsActive; native format of Gazebo / gz-simhttps://sdformat.org/
Webots PROTO~2000sCyberboticsVRML-derived parametric node format for Webots simulatorActive; open-sourced by Cyberbotics in 2018https://cyberbotics.com/doc/reference/proto
IEC 61131-3 Structured Text (ST)1993 (1st ed); 4th ed. May 2025IEC / PLCopenPascal-like textual PLC languageActive; primary modern PLC text languagehttps://plcopen.org/iec-61131-3
IEC 61131-3 Ladder Diagram (LD)1993 standardization (concept ~1920s relay logic)IEC / PLCopenGraphical relay-rung languageActive; still the most-deployed PLC language by program counthttps://en.wikipedia.org/wiki/IEC_61131-3
IEC 61131-3 Function Block Diagram (FBD)1993IEC / PLCopenGraphical block-and-wire language for control loops, signal flowActive; preferred in process / continuous controlhttps://en.wikipedia.org/wiki/IEC_61131-3
IEC 61131-3 Sequential Function Chart (SFC)1993 (descended from Grafcet, 1977)IEC / PLCopenGraphical language for sequential / batch / state-machine logicActive; standard for batch processinghttps://en.wikipedia.org/wiki/IEC_61131-3
IEC 614992005IECEvent-driven distributed FB language extending 61131-3Niche but growing; ExxonMobil/CPLANE multivendor pilot, Eclipse 4diac open-source runtimehttps://iec61499.com/
OpenSCENARIO (XML 1.x / 2.0)2017 (1.0); 2021 (2.0)ASAMDynamic-scenario DSL for AV simulation (vehicle maneuvers, triggers)Active; OpenSCENARIO 2.0 introduced a new domain-specific scripting syntaxhttps://www.asam.net/standards/detail/openscenario-xml/
OpenDRIVE2006ASAM (orig. VIRES)XML road-network description (geometry, lanes, signs)Active; ASAM standard, paired with OpenSCENARIO + OpenCRGhttps://www.asam.net/standards/detail/opendrive/
Drake2014 (MIT); led by TRI from ~2016MIT CSAIL / Toyota Research InstituteC++/Python toolbox + system-modeling DSL for multibody dynamics, optimization, controlActive; used by Amazon, Dexai, TRI manipulation researchhttps://drake.mit.edu/
Robot Framework2008Originally Nokia Networks; now Robot Framework FoundationKeyword-driven test-automation DSL (acceptance / RPA), tabular plain-text syntaxActive; large ecosystem (SeleniumLibrary, AppiumLibrary, etc.)https://robotframework.org/

Notable threads

  • Vendor lock-in via teach-pendant DSLs is deliberate. KRL, RAPID, TP, URScript, VAL3, INFORM are all roughly Pascal-derived imperative motion languages — they could have been one language with six dialects. They aren’t, because the language is the moat. A factory that has trained 100 technicians on RAPID is not switching to KRL, and offline-programming tools (RoboDK, Visual Components, Octopuz) make their living translating between these dialects. The cobot category (UR, then Doosan, Techman, Franka Emika) tried to break the pattern with simpler scripting + drag-and-drop, but URScript itself is still UR-only.

  • The IEC 61131-3 standardization story is the biggest “agreed in name only” in industrial computing. The 1993 standard defined five languages (IL, ST, LD, FBD, SFC), but each PLC vendor — Siemens (TIA Portal), Rockwell (Studio 5000), Beckhoff (TwinCAT 3), B&R, Mitsubishi, Schneider — implements its own variant with proprietary extensions. A “standard” Structured Text program almost never ports cleanly. PLCopen has spent 30 years pushing motion-control function-block standardization with mixed success. Instruction List was deprecated in the 2013 edition and removed entirely in the 2025 fourth edition, leaving four languages.

  • Why programmers still pick FBD or LD over Structured Text. Two reasons: (1) regulatory and inspection workflows in process industries (oil & gas, pharma, water/wastewater) expect graphical diagrams that match P&IDs, and an inspector can read a ladder rung without being a programmer; (2) the workforce. The median PLC programmer in a US factory is an industrial electrician, not a CS graduate, and Ladder is literally the relay-logic diagrams they grew up reading. ST is winning in greenfield motion control and OEM machine-builder code; LD/FBD are dominant in installed base.

  • ROS 2 as the de facto research / dev OS, but it is not ROS 1. ROS 2 (2017+) is built on DDS (Data Distribution Service) for real-time pub/sub, which is genuinely different from ROS 1’s roscore-based architecture. ROS 1 reached EOL with Noetic (May 2025); the field has moved to ROS 2 distros (Humble LTS through 2027, Jazzy LTS through 2029, Kilted in 2026). Launch files transitioned from XML-only (ROS 1) to Python-first with XML/YAML supported (ROS 2). Drake, MoveIt 2, Nav2, ros2_control all assume ROS 2.

  • Safety-rated PLCs are quietly eating the dedicated-safety-controller market. Pilz PNOZmulti, B&R X20 Safety, Beckhoff TwinSAFE, Siemens F-CPU — all run safety-certified IEC 61131-3 / IEC 61508 SIL3 code. The trend in 2026 is converging safety logic into the same TwinCAT/TIA Portal project as the standard control logic, instead of bolting on a separate safety relay rack.

  • URDF/SDF are the closest the field has to a portable robot description, but neither is fully portable. URDF can’t represent parallel linkages (closed kinematic loops), worlds, or rich sensor models — every nontrivial real robot uses xacro macros + URDF + SDF tags grafted on. SDF (Gazebo’s format) is more complete but is largely Gazebo-only. The 2024–2026 push toward USD (Pixar’s Universal Scene Description, championed by NVIDIA Isaac Sim) is the most credible attempt yet at a unified format, but USD has not displaced URDF for ROS-native pipelines.

  • The industrial AV stack is converging on ASAM. OpenSCENARIO + OpenDRIVE + OpenCRG + OSI (Open Simulation Interface) form a layered standard suite under ASAM, used across CARLA, Applied Intuition, dSPACE, Foretellix Foretify, NVIDIA DRIVE Sim, and the major OEM internal stacks. OpenSCENARIO 2.0 (2021) introduced a real domain-specific scripting language (more Python-like than the V1.x XML), reflecting the realization that scenario coverage — the combinatorial explosion of test cases — needs programmable description, not hand-authored XML.

Citations