<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Kellen Betts: Robotics]]></title><description><![CDATA[Adversarial cybersecurity for warehouse robots. Currently, I'm building Argus, a system that detects compromised robots in simulated fleets, and exploring the policy and ethics of securing physical AI systems at scale. This is an independent build thread: the project, the code, and the learning process.]]></description><link>https://kellenbetts.substack.com/s/robotics</link><image><url>https://substackcdn.com/image/fetch/$s_!UHhI!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe1e4979a-ce09-4353-9a7b-5caa2c831a97_1280x1280.png</url><title>Kellen Betts: Robotics</title><link>https://kellenbetts.substack.com/s/robotics</link></image><generator>Substack</generator><lastBuildDate>Mon, 08 Jun 2026 08:09:36 GMT</lastBuildDate><atom:link href="https://kellenbetts.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Kellen Betts]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[kellenbetts@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[kellenbetts@substack.com]]></itunes:email><itunes:name><![CDATA[Kellen Betts]]></itunes:name></itunes:owner><itunes:author><![CDATA[Kellen Betts]]></itunes:author><googleplay:owner><![CDATA[kellenbetts@substack.com]]></googleplay:owner><googleplay:email><![CDATA[kellenbetts@substack.com]]></googleplay:email><googleplay:author><![CDATA[Kellen Betts]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Below the Threshold]]></title><description><![CDATA[Why I'm building Argus, a system that detects compromised robots in a simulated warehouse fleet.]]></description><link>https://kellenbetts.substack.com/p/below-the-threshold</link><guid isPermaLink="false">https://kellenbetts.substack.com/p/below-the-threshold</guid><dc:creator><![CDATA[Kellen Betts]]></dc:creator><pubDate>Sun, 07 Jun 2026 11:37:04 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Ujpi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Ujpi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Ujpi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 424w, https://substackcdn.com/image/fetch/$s_!Ujpi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 848w, https://substackcdn.com/image/fetch/$s_!Ujpi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 1272w, https://substackcdn.com/image/fetch/$s_!Ujpi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Ujpi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png" width="1456" height="1208" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1208,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:844792,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://kellenbetts.substack.com/i/200994170?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Ujpi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 424w, https://substackcdn.com/image/fetch/$s_!Ujpi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 848w, https://substackcdn.com/image/fetch/$s_!Ujpi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 1272w, https://substackcdn.com/image/fetch/$s_!Ujpi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fce3f6102-2a67-4f64-8e57-db4080d1a73b_2000x1660.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Credit: delcarmat (Shutterstock)</figcaption></figure></div><p>Amazon&#8217;s fleet has crossed one million robots. The largest single fulfillment center runs roughly seven thousand of them in the same building, threading dynamic paths around each other and around human workers.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-1" href="#footnote-1" target="_self">1</a> That is not a network of laptops. It is a population of cyber-physical agents whose decisions translate, continuously, into kinetic motion across millions of square feet.</p><p>The standard approach for keeping that population safe was built for fleets a tenth of this size. Interval testing, random sampling, threshold alarms, and post-incident forensics all assume that a human operator can plausibly inspect the suspicious cases. That assumption breaks at a million. But even when the fleet is small enough to inspect, the most dangerous compromises are the ones engineered to stay below whatever threshold the alarm is calibrated to catch.</p><p>This is the first post in a long-form series about a portfolio project I am calling <strong>Argus</strong>. It is a system that detects compromised robots in a simulated warehouse fleet by combining an unsupervised detector with an AI auditing agent. This post explains why I picked this project, what it is, what it is not, and what I plan to do with the code while I build it.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://kellenbetts.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://kellenbetts.substack.com/subscribe?"><span>Subscribe now</span></a></p><h2>The Failure Mode</h2><p>The failure mode I am building Argus for is not a ransomware lock or denial-of-service. It is a robot that continues to do its job, while unknowingly or deceptively performing a different one. A planner that biases path selection through a sensitive area or shaves a few centimeters off a safety margin. A control loop with subtly tampered gains that introduce small oscillations under specific load conditions. A state estimator whose feedback has been injected with a bias that the controller dutifully tries to compensate for, throwing the robot off its intended trajectory in ways that aggregate over hours rather than seconds.</p><p>The technical name for one family of these attacks is False Data Injection. Recent work<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-2" href="#footnote-2" target="_self">2</a> on resilient manipulator control has shown that an adversary can craft attacks that move entirely within a null space. This might be large internal joint reconfigurations that produce no change in the end-effector&#8217;s task space, and therefore no residual that a standard chi-square detector will see. There is also work showing that the feedback linearization used to make non-linear robots controllable also creates a structural &#8220;integrator vulnerability&#8221; that lets a properly designed injection steer the chassis without leaking residual information to the monitor.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-3" href="#footnote-3" target="_self">3</a> The same pattern shows up in path planning, where compromised routing degrades throughput by fractions of a percent or steers the robot past unauthorized zones without violating any safety constraint, a rule-based system was given to check.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-4" href="#footnote-4" target="_self">4</a></p><p>These are not theoretical. Researchers working on commercial systems have documented vulnerabilities in industrial robot controllers that let an unauthenticated attacker on a fleet network achieve remote code execution.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-5" href="#footnote-5" target="_self">5</a> Work on commercial quadruped robots has demonstrated wormable Bluetooth exploits that propagate root access laterally across units in minutes.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-6" href="#footnote-6" target="_self">6</a> The compromise vectors exist. What is missing is the auditing approach that can find a compromise after the perimeter has already been crossed and the attacker has chosen to stay quiet.</p><h2>A Menu of Project Options</h2><p>Before settling on Argus, I considered four projects in the robotics-and-cybersecurity space. I wanted to discuss them here because each is the seed of a separate strand of work, and the eventual project I chose to focus on combines many elements from each.</p><p>The first project was a ROS 2 vulnerability testbed: build a simulated warehouse running ROS 2 with realistic DDS-based communication, then systematically probe its attack surface. This is a natural extension of the warehouse cybersecurity research I have published before. The limitation with this project is that it does not move beyond cataloging. It produces a map of what is broken, but not a mechanism for finding compromises after the map is drawn.</p><p>The second project was an AI-powered anomaly detection system for fleets, essentially an observatory for telemetry. This would potentially produce a commercially viable product. It also pulls in time-series modeling, edge inference, and fleet-level reasoning, all of which are skills I want to deepen. However, pure anomaly detection at the fleet level is not a new concept, and entering that conversation as a new voice requires either a new technique or a new framing.</p><p>The third project was focused on adversarial attacks on the sensor-based ML models that physical AI systems depend on: computer vision for pick-and-place, IMU-based state estimation, and LiDAR-based mapping. The goal would be to demonstrate how each fails under adversarial input, then build a defense. This project would be publishable and build a bridge to the adversarial ML literature. It is also likely to live as a sequence of papers rather than as a single coherent system.</p><p>The fourth project was an open-source ROS 2 security toolkit. I would build a tool that scans a deployment, maps the communication graph, identifies unencrypted channels, and generates a security report. The toolkit would be useful, but it is really more of a tool than a project. It would work best as a complement to a project, rather than as the build itself.</p><h2>The Project I Decided On</h2><p>Argus combines elements from each of the other projects I considered. The testbed is a simulated warehouse running a heterogeneous fleet of robots with deliberately implanted compromises. The fleet-anomaly system is an unsupervised detector that learns the manifold of normal kinematic and telemetry behavior and scores each robot for deviation. The implanted compromises are designed adversarial behaviors, shaped to stay under standard detection thresholds.</p><p>The architectural pattern that ties these pieces together did not come from the robotics literature. It came from Anthropic&#8217;s recent work on Natural Language Autoencoders.<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-7" href="#footnote-7" target="_self">7</a> The NLA tool itself &#8212; producing natural-language explanations of LLM activations &#8212; is a different problem from what I am working on. What I am borrowing is the auditor architecture the paper uses to evaluate the tool: deliberately implant misalignment in a population of models, equip an auditor with special access plus a set of probes, and measure how often the auditor catches the implant. In Anthropic&#8217;s benchmarks, agents equipped with the NLA-style auditor pattern surfaced hidden motivations in 12&#8211;15% of cases compared to less than 3% for unequipped baselines. This is a 4&#8211;5&#215; improvement attributable to the structure of the auditor, not the underlying model.</p><p>Translated into the robotics domain, the same three roles map cleanly. The target system is a robot whose planner or control loop may be compromised. The interpretability layer is the unsupervised detector that scores deviations from nominal behavior across the fleet. The auditor is an agent that consumes detector scores, decides which robots to investigate, designs targeted physical probes (a specific corner-case trajectory, a kinematic perturbation, an injected sensor anomaly), and decides whether the results constitute compromise or benign noise. The detector is the fast filter that makes the system tractable at fleet scale. The auditor is the slow reasoner that does detailed testing. This pattern has precedent in the robotics literature for two-stage anomaly detection. For example, Sinha et al. (2024)<a class="footnote-anchor" data-component-name="FootnoteAnchorToDOM" id="footnote-anchor-8" href="#footnote-8" target="_self">8</a> propose a closely related fast-classifier/slow-reasoner architecture for general anomaly handling in robotic systems.</p><p>I am not focused on identifying vulnerabilities with any particular manufacturer&#8217;s systems. The fleet that I will start with is a simulated one. The robot types are generic abstractions: an AMR-style drive unit and a manipulator with a model-predictive controller. Any code that I release will use these generic abstractions rather than reverse-engineered proprietary controllers. If I do happen to find any real vulnerabilities with the tools I use, I will follow standard responsible-disclosure norms.</p><p>Argus is a portfolio project. It is my own build, developed independently. I don&#8217;t have a pitch deck or commercialization plan. I am going to work on the project in a private repository initially and release it publicly later. This will give the codebase time to mature before opening it up. Code snippets will appear here in the meantime. My goal is to learn and develop my skills. The purpose of these posts is to document that process.</p><p>Next up: a deep dive on the architecture. How the implant, the detector, and the auditing agent fit together. What I learned from the NLA paper. The experimental design.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://kellenbetts.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://kellenbetts.substack.com/subscribe?"><span>Subscribe now</span></a></p><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-1" href="#footnote-anchor-1" class="footnote-number" contenteditable="false" target="_self">1</a><div class="footnote-content"><p>Schmelzer, R. (2025, July 7). Amazon&#8217;s millionth warehouse robot is here, and it&#8217;s getting smarter. <em>Forbes.</em> <a href="https://www.forbes.com/sites/ronschmelzer/2025/07/07/amazons-millionth-warehouse-robot-is-here-and-its-getting-smarter/">https://www.forbes.com/sites/ronschmelzer/2025/07/07/amazons-millionth-warehouse-robot-is-here-and-its-getting-smarter/</a></p><p>Amazon. (2025). <em>How Amazon&#8217;s robotics are reshaping our fulfillment network.</em> <a href="https://www.aboutamazon.com/news/operations/amazon-robotics-robots-fulfillment-center">https://www.aboutamazon.com/news/operations/amazon-robotics-robots-fulfillment-center</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-2" href="#footnote-anchor-2" class="footnote-number" contenteditable="false" target="_self">2</a><div class="footnote-content"><p>Larsson, C. (2025). False Data Injection Using Null Space. <em>M&#228;lardalen University</em>. <a href="https://www.diva-portal.org/smash/get/diva2:1968676/FULLTEXT01.pdf">https://www.diva-portal.org/smash/get/diva2:1968676/FULLTEXT01.pdf</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-3" href="#footnote-anchor-3" class="footnote-number" contenteditable="false" target="_self">3</a><div class="footnote-content"><p>Gualandi, G., &amp; Papadopoulos, A. V. (2026). From Passive Monitoring to Active Defence: Resilient Control of Manipulators Under Cyberattacks. <em>arXiv</em>. <a href="https://doi.org/10.48550/arxiv.2603.13003">https://doi.org/10.48550/arxiv.2603.13003</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-4" href="#footnote-anchor-4" class="footnote-number" contenteditable="false" target="_self">4</a><div class="footnote-content"><p>Maggi, F. (2017). Rogue Robots: Testing the Limits of an Industrial Robot&#8217;s Security. <em>Trend Micro Forward-Looking Threat Research.</em> <a href="https://blackhat.com/docs/us-17/thursday/us-17-Quarta-Breaking-The-Laws-Of-Robotics-Attacking-Industrial-Robots-wp.pdf">https://blackhat.com/docs/us-17/thursday/us-17-Quarta-Breaking-The-Laws-Of-Robotics-Attacking-Industrial-Robots-wp.pdf</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-5" href="#footnote-anchor-5" class="footnote-number" contenteditable="false" target="_self">5</a><div class="footnote-content"><p>Kovacs, E. (2026). Critical Vulnerability Exposes Industrial Robot Fleets to Hacking - SecurityWeek, accessed May 20, 2026, <a href="https://www.securityweek.com/critical-vulnerability-exposes-industrial-robot-fleets-to-hacking/">https://www.securityweek.com/critical-vulnerability-exposes-industrial-robot-fleets-to-hacking/</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-6" href="#footnote-anchor-6" class="footnote-number" contenteditable="false" target="_self">6</a><div class="footnote-content"><p>Insikt Group (2026). Hacking Embodied AI. <em>Recorded Future</em>. <a href="https://www.recordedfuture.com/research/hacking-embodied-ai">https://www.recordedfuture.com/research/hacking-embodied-ai</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-7" href="#footnote-anchor-7" class="footnote-number" contenteditable="false" target="_self">7</a><div class="footnote-content"><p>Fraser-Taliente et al. (2026). Natural language autoencoders produce unsupervised interpretability of LLM activations. <em>Anthropic</em>. <a href="https://transformer-circuits.pub/2026/nla/">https://transformer-circuits.pub/2026/nla/</a></p></div></div><div class="footnote" data-component-name="FootnoteToDOM"><a id="footnote-8" href="#footnote-anchor-8" class="footnote-number" contenteditable="false" target="_self">8</a><div class="footnote-content"><p>Sinha, R., et al. (2024). Real-time anomaly detection and reactive planning with large language models. <em>Robotics: Science and Systems (RSS) Proceedings.</em> <a href="https://roboticsproceedings.org/rss20/p114.pdf">https://roboticsproceedings.org/rss20/p114.pdf</a></p></div></div>]]></content:encoded></item></channel></rss>