<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Robots on ErrorZap</title><link>https://errorzap.com/tags/robots/</link><description>Recent content in Robots on ErrorZap</description><image><title>ErrorZap</title><url>https://errorzap.com/og.png</url><link>https://errorzap.com/og.png</link></image><generator>Hugo</generator><language>en-US</language><copyright>ErrorZap</copyright><lastBuildDate>Sat, 26 Sep 2026 17:11:00 -0600</lastBuildDate><atom:link href="https://errorzap.com/tags/robots/index.xml" rel="self" type="application/rss+xml"/><item><title>The Robot Asks for a Ride</title><link>https://errorzap.com/elevators/robot-ride/</link><pubDate>Sat, 26 Sep 2026 17:11:00 -0600</pubDate><guid>https://errorzap.com/elevators/robot-ride/</guid><description>Elevators now have APIs. How a delivery robot requests a ride, what KONE&amp;#39;s public API examples and the open-source Open-RMF lift message actually contain, and the national standards in Singapore and Japan trying to make any robot work with any elevator.</description><content:encoded><![CDATA[<div class="ez-dossier-lede"><span>ELEVATORS · FLOOR 11 · ROBOTS</span><p>To a modern group controller, a delivery robot is just another client. It requests a ride, gets an assignment, and subscribes to updates, the same way a phone app calls a car.</p></div>
<h2 id="the-short-version">The short version</h2>
<ul>
<li>The big makers sell <strong>ride-request APIs</strong>. Otis calls its product <strong>Integrated Dispatch</strong>. KONE publishes developer docs and example code. Schindler and TK Elevator have their own.</li>
<li>KONE&rsquo;s public examples use a <strong>WebSocket</strong>: get a token, read the building&rsquo;s layout, send a call from one area to another, then watch the assigned car&rsquo;s state or cancel.</li>
<li>The open-source robotics world has its own version. <strong>Open-RMF</strong>, a ROS-based framework for fleets of robots in buildings, defines a <code>LiftRequest</code> message with a lift name, destination floor, door state, and session ID.</li>
<li>Countries are standardizing the handshake. Singapore&rsquo;s robot-to-infrastructure reference <strong>TR 93</strong> has been succeeded by <strong>SS 713:2025</strong>. Japan&rsquo;s Robot Friendly Facilities Promotion Organization published a <strong>robot-elevator cooperation interface definition</strong>, RFA B 0001:2025, in February 2025.</li>
<li>None of this lets a robot drive the elevator. It asks the dispatcher for a ride, exactly like a person at a kiosk.</li>
</ul>
<h2 id="the-handshake-step-by-step">The handshake, step by step</h2>
<ol>
<li><strong>Authenticate.</strong> The robot&rsquo;s fleet software gets an access token scoped to one
building and one elevator group.</li>
<li><strong>Learn the building.</strong> It pulls the topology: which floors and areas exist,
and which actions this group controller supports.</li>
<li><strong>Request a ride.</strong> It sends a destination call: <em>from</em> this area <em>to</em> that one.</li>
<li><strong>Get an assignment.</strong> The dispatcher picks a car, just like it would for a
person using the lobby kiosk (Floor 4), and says which one.</li>
<li><strong>Watch.</strong> The robot subscribes to that car&rsquo;s state: where it is, when the
doors open, when it arrives.</li>
<li><strong>Ride and release.</strong> It rolls in, rides, rolls out, and ends the session so
the car goes back to normal service.</li>
</ol>
<p>KONE&rsquo;s example code follows almost exactly this flow. Its README lists an
Authentication API that returns a token with a scope like
<code>callgiving/group:BUILDING_ID:GROUP_ID</code>, and an Elevator WebSocket API for making
or cancelling calls and getting real-time data about the assigned elevators. A
destination call sets the source area and the destination from the building
layout the robot fetched earlier.</p>
<h2 id="what-the-open-source-version-looks-like">What the open-source version looks like</h2>
<p>Open-RMF&rsquo;s lift message is short enough to read in one breath. These are the
real field names from the public definition:</p>
<div class="el-code"><b>rmf_lift_msgs/LiftRequest.msg (abridged)</b>
<pre>string lift_name
builtin_interfaces/Time request_time
string session_id          # unique per requester
uint8  request_type
  REQUEST_END_SESSION = 0
  REQUEST_AGV_MODE    = 1  # doors held open whenever the car is stopped
  REQUEST_HUMAN_MODE  = 2  # doors must be opened and closed explicitly
string destination_floor
uint8  door_state          # DOOR_CLOSED = 0, DOOR_OPEN = 2</pre></div>
<p>The comment on the modes is the funny part. In <strong>AGV mode</strong>, the doors stay
open whenever the car stops, because a robot doesn&rsquo;t want a door closing on it
mid-roll. <strong>Human mode</strong> means the robot has to ask for the doors explicitly,
since they might time out and close on their own, just like they would on you.</p>
<h2 id="why-countries-are-writing-standards">Why countries are writing standards</h2>
<p>Every maker has its own API, and every robot company has its own fleet software.
A hotel with one brand of elevator and two brands of robots ends up paying for
custom integrations. National standards try to fix that:</p>
<ul>
<li><strong>Singapore</strong> ran an early technical reference, TR 93, for how robots talk to
building infrastructure such as lifts and doors. Its National Robotics
Programme lists it as succeeded by <strong>SS 713:2025</strong>.</li>
<li><strong>Japan&rsquo;s</strong> Robot Friendly Facilities Promotion Organization published its
robot-elevator cooperation interface definition, <strong>RFA B 0001:2025</strong>, as a
first edition on February 20, 2025.</li>
</ul>
<p>These define a common language. They don&rsquo;t guarantee that any particular robot
will ride any particular elevator out of the box.</p>
<h2 id="and-sometimes-the-robot-just-pushes-the-button">And sometimes the robot just pushes the button</h2>
<p>Not every robot uses an API. Some delivery robots carry a little arm or a
button-presser, or have a staff member call the car for them. The API route is
cleaner, though, because the dispatcher knows the robot is coming and can give it
a car with room, and hold the doors the way AGV mode asks.</p>
<div class="el-callout"><b>Security note</b><p>An API that can call cars is also an API that decides who reaches which floor. That's why these systems use scoped tokens tied to one building and group. It's also why Floor 12's destination-dispatch security story matters.</p></div>
<h2 id="sources">Sources</h2>
<ol class="ez-sources">
<li><a href="https://www.otis.com/en/us/products-services/products/otis-integrated-dispatch">Otis: Integrated Dispatch</a></li>
<li><a href="https://github.com/konecorp/kone-api-examples">KONE: API example code (GitHub)</a></li>
<li><a href="https://github.com/open-rmf/rmf_internal_msgs/blob/main/rmf_lift_msgs/msg/LiftRequest.msg">Open-RMF: LiftRequest message definition (GitHub)</a></li>
<li><a href="https://nrp.gov.sg/capability-development/standards/">Singapore National Robotics Programme: standards (TR 93, SS 713:2025)</a></li>
<li><a href="https://robot-friendly.org/publication/elevator_definition_2025/">Robot Friendly Facilities Promotion Organization: elevator robot cooperation interface definition (2025)</a></li>
<li><a href="https://www.schindler.co.th/content/dam/website/jsg/docs/schindler-built-in-api.pdf/_jcr_content/renditions/original./schindler-built-in-api.pdf">Schindler: BuilT-In integration API (PDF)</a></li>
</ol>
]]></content:encoded></item></channel></rss>