<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bespokerobotsociety.org/index.php?action=history&amp;feed=atom&amp;title=Robotics_Ontology</id>
	<title>Robotics Ontology - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bespokerobotsociety.org/index.php?action=history&amp;feed=atom&amp;title=Robotics_Ontology"/>
	<link rel="alternate" type="text/html" href="https://wiki.bespokerobotsociety.org/index.php?title=Robotics_Ontology&amp;action=history"/>
	<updated>2026-04-25T10:16:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://wiki.bespokerobotsociety.org/index.php?title=Robotics_Ontology&amp;diff=17&amp;oldid=prev</id>
		<title>John: Created page with &quot;= How BRS Organizes Robotics Knowledge =  The Bespoke Robot Society uses a specific framework to organize robotics knowledge. We call it the &#039;&#039;&#039;ABCs of Robotics&#039;&#039;&#039;:  * &#039;&#039;&#039;A&#039;&#039;&#039;ctivities - What do you want to happen? (The real-world task) * &#039;&#039;&#039;B&#039;&#039;&#039;ehaviors - What does the robot need to do to accomplish its part? (The algorithms) * &#039;&#039;&#039;C&#039;&#039;&#039;apabilities - What hardware upgrades enable the robot to exhibit the behavior and participate in the activity?  This ABC framework helps...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.bespokerobotsociety.org/index.php?title=Robotics_Ontology&amp;diff=17&amp;oldid=prev"/>
		<updated>2025-10-11T16:09:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= How BRS Organizes Robotics Knowledge =  The Bespoke Robot Society uses a specific framework to organize robotics knowledge. We call it the &amp;#039;&amp;#039;&amp;#039;ABCs of Robotics&amp;#039;&amp;#039;&amp;#039;:  * &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;ctivities - What do you want to happen? (The real-world task) * &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;ehaviors - What does the robot need to do to accomplish its part? (The algorithms) * &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;apabilities - What hardware upgrades enable the robot to exhibit the behavior and participate in the activity?  This ABC framework helps...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= How BRS Organizes Robotics Knowledge =&lt;br /&gt;
&lt;br /&gt;
The Bespoke Robot Society uses a specific framework to organize robotics knowledge. We call it the &amp;#039;&amp;#039;&amp;#039;ABCs of Robotics&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;ctivities - What do you want to happen? (The real-world task)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;ehaviors - What does the robot need to do to accomplish its part? (The algorithms)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;apabilities - What hardware upgrades enable the robot to exhibit the behavior and participate in the activity?&lt;br /&gt;
&lt;br /&gt;
This ABC framework helps you understand the flow from vision to reality: start with an activity, break it down into behaviors, then upgrade your robot with the capabilities needed to make it work. From there, building specific implementations is just a matter of following instructions for your hardware.&lt;br /&gt;
&lt;br /&gt;
This page explains the BRS ontology so you can navigate the wiki effectively.&lt;br /&gt;
&lt;br /&gt;
== The Four Layers ==&lt;br /&gt;
&lt;br /&gt;
BRS organizes robotics into four interconnected layers:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&lt;br /&gt;
! Layer !! What It Is !! Example !! Wiki Namespace&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;[[Activities]]&amp;#039;&amp;#039;&amp;#039; || Real-world tasks people expect robots to do || &amp;quot;Follow a line on the ground&amp;quot; || &amp;lt;code&amp;gt;Activity:&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;[[Capabilities]]&amp;#039;&amp;#039;&amp;#039; || Hardware abilities - sensors and actuators || &amp;quot;Line sensing&amp;quot; or &amp;quot;Differential drive&amp;quot; || &amp;lt;code&amp;gt;Capability:&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;[[Behaviors]]&amp;#039;&amp;#039;&amp;#039; || Algorithms and software logic || &amp;quot;Line following algorithm&amp;quot; || &amp;lt;code&amp;gt;Behavior:&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Implementations&amp;#039;&amp;#039;&amp;#039; || Specific code for specific robots || &amp;quot;SimpleBot line following code&amp;quot; || &amp;lt;code&amp;gt;robotname:&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Working Backwards: Start With Activities ==&lt;br /&gt;
&lt;br /&gt;
BRS&amp;#039;s philosophy is to &amp;#039;&amp;#039;&amp;#039;start with the end in mind&amp;#039;&amp;#039;&amp;#039;. We work backwards from what you want your robot to DO.&lt;br /&gt;
&lt;br /&gt;
=== 1. Activities: The &amp;quot;Why&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;An Activity is something people do with, or expect from, their robot.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Activities are the real-world use cases that justify building a robot. They answer the question: &amp;quot;What should this robot accomplish?&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Examples:&lt;br /&gt;
* [[Activity:Line Following]] - Follow black tape paths on the ground&lt;br /&gt;
* [[Activity:Dead Reckoning Navigation]] - Drive a pattern and return to the starting point&lt;br /&gt;
* [[Activity:Maze Solving]] (stub) - Navigate a cardboard maze using sensors&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Key insight&amp;#039;&amp;#039;&amp;#039;: Activities are &amp;#039;&amp;#039;&amp;#039;robot-agnostic&amp;#039;&amp;#039;&amp;#039;. Any robot with the required capabilities can perform an activity. This means teaching materials can be reused across different robots!&lt;br /&gt;
&lt;br /&gt;
=== 2. Capabilities: The &amp;quot;What Hardware&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A Capability is a hardware ability - either sensing something or actuating (moving) something.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Each Activity requires one or more Capabilities. For example:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Line Following&amp;#039;&amp;#039;&amp;#039; requires: [[Capability:Line Sensing]] + [[Capability:Differential Drive]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Dead Reckoning&amp;#039;&amp;#039;&amp;#039; requires: [[Capability:Optical Odometry]] + [[Capability:Differential Drive]]&lt;br /&gt;
&lt;br /&gt;
Capabilities come in two types:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sensing Capabilities&amp;#039;&amp;#039;&amp;#039; - Detect the environment (line sensors, distance sensors, cameras)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Actuation Capabilities&amp;#039;&amp;#039;&amp;#039; - Move or manipulate (motors, servos, grippers)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Key insight&amp;#039;&amp;#039;&amp;#039;: Capabilities define the &amp;quot;tech tree&amp;quot; for robots. Add a new capability to your robot, and you unlock new activities!&lt;br /&gt;
&lt;br /&gt;
=== 3. Behaviors: The &amp;quot;How&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;A Behavior is an algorithm or software pattern that connects sensing to action.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Behaviors are implementation-agnostic descriptions of how robots think and react. They include:&lt;br /&gt;
* Algorithm descriptions&lt;br /&gt;
* Pseudocode&lt;br /&gt;
* Decision logic&lt;br /&gt;
* Control theory&lt;br /&gt;
&lt;br /&gt;
Example: The [[Behavior:Line Following]] page describes multiple algorithms:&lt;br /&gt;
* One-sensor: Rotate until line found → drive forward → repeat&lt;br /&gt;
* Two-sensor: Turn toward whichever sensor sees the line&lt;br /&gt;
* Multi-sensor array: Use PID control for smooth tracking&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Key insight&amp;#039;&amp;#039;&amp;#039;: Behaviors are language-agnostic and sensor-agnostic. The same behavior can be implemented in MicroPython, C++, or Arduino code, using different sensor modules.&lt;br /&gt;
&lt;br /&gt;
=== 4. Implementations: The &amp;quot;Build It&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;An Implementation is robot-specific code and instructions.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Implementation pages provide:&lt;br /&gt;
* Hardware setup instructions&lt;br /&gt;
* Wiring diagrams&lt;br /&gt;
* Complete working code (MicroPython, C++, etc.)&lt;br /&gt;
* Calibration procedures&lt;br /&gt;
* Troubleshooting guides&lt;br /&gt;
* Challenge variations&lt;br /&gt;
&lt;br /&gt;
Example: [[SimpleBot:Line Following Implementation]] shows exactly how to wire sensors to a SimpleBot, provides tested MicroPython code, and includes tuning instructions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Key insight&amp;#039;&amp;#039;&amp;#039;: Implementations are step-by-step &amp;quot;how to build it&amp;quot; guides for specific robot hardware.&lt;br /&gt;
&lt;br /&gt;
== The Flow: Activity → Capability → Behavior → Implementation ==&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s how the layers connect:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. You want to: FOLLOW A LINE (Activity)&lt;br /&gt;
                     ↓&lt;br /&gt;
2. You need: LINE SENSING + DIFFERENTIAL DRIVE (Capabilities)&lt;br /&gt;
                     ↓&lt;br /&gt;
3. Algorithm: TWO-SENSOR LINE FOLLOWING (Behavior)&lt;br /&gt;
                     ↓&lt;br /&gt;
4. Build it: SIMPLEBOT LINE FOLLOWING CODE (Implementation)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Example: Line Following ==&lt;br /&gt;
&lt;br /&gt;
Let&amp;#039;s trace line following through all four layers:&lt;br /&gt;
&lt;br /&gt;
=== Activity: [[Activity:Line Following]] ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;What&amp;#039;&amp;#039;&amp;#039;: Follow arbitrary black tape paths on light surfaces&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Real-world use&amp;#039;&amp;#039;&amp;#039;: Warehouse AGVs, museum tour guides, automated delivery&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Required capabilities&amp;#039;&amp;#039;&amp;#039;: Line sensing, movement capability&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Difficulty&amp;#039;&amp;#039;&amp;#039;: Beginner&lt;br /&gt;
&lt;br /&gt;
=== Capabilities ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Capability:Line Sensing]]&amp;#039;&amp;#039;&amp;#039; - Detect light vs dark surfaces using IR reflectance&lt;br /&gt;
** Common hardware: IR obstacle avoidance modules, QTR sensor arrays&lt;br /&gt;
** Used in: SimpleBot, most line-following robots&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Capability:Differential Drive]]&amp;#039;&amp;#039;&amp;#039; - Two independently-controlled wheels&lt;br /&gt;
** How it works: Same speed = forward, different speeds = turn&lt;br /&gt;
** Used in: SimpleBot, educational robots, small rovers&lt;br /&gt;
&lt;br /&gt;
=== Behavior: [[Behavior:Line Following]] ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Two-sensor algorithm&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*# If both sensors on white → drive straight&lt;br /&gt;
*# If left sensor on line → turn right&lt;br /&gt;
*# If right sensor on line → turn left&lt;br /&gt;
*# If both on line → intersection (special handling)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tuning parameters&amp;#039;&amp;#039;&amp;#039;: Speed, turn aggression, sensor spacing&lt;br /&gt;
&lt;br /&gt;
=== Implementation: [[SimpleBot:Line Following Implementation]] ===&lt;br /&gt;
* Mount two IR sensors 3cm apart under chassis&lt;br /&gt;
* Wire to GPIO pins 10 and 11&lt;br /&gt;
* Enable pull-up resistors (sensors are active LOW)&lt;br /&gt;
* Upload provided MicroPython code&lt;br /&gt;
* Calibrate sensor potentiometers&lt;br /&gt;
* Test on black electrical tape on white poster board&lt;br /&gt;
&lt;br /&gt;
== Why This Matters ==&lt;br /&gt;
&lt;br /&gt;
This ontology structure provides several benefits:&lt;br /&gt;
&lt;br /&gt;
=== Reusability ===&lt;br /&gt;
When a new robot joins BRS, it doesn&amp;#039;t need new teaching materials from scratch. If it has Line Sensing and Differential Drive capabilities, the existing Activity and Behavior pages apply directly. Only the Implementation page is robot-specific.&lt;br /&gt;
&lt;br /&gt;
=== Clear Learning Paths ===&lt;br /&gt;
Beginners can:&lt;br /&gt;
# Browse Activities to find what interests them&lt;br /&gt;
# Check if their robot has the required Capabilities (or what they need to add)&lt;br /&gt;
# Learn the Behavior (algorithm)&lt;br /&gt;
# Follow the Implementation (step-by-step build)&lt;br /&gt;
&lt;br /&gt;
Advanced users can:&lt;br /&gt;
# Study Behaviors to understand algorithms&lt;br /&gt;
# Design new Capabilities to enable new Activities&lt;br /&gt;
# Contribute Implementations for different robots&lt;br /&gt;
&lt;br /&gt;
=== Community Contribution ===&lt;br /&gt;
The ontology makes it clear where help is needed:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Stub Activity pages&amp;#039;&amp;#039;&amp;#039; - &amp;quot;We want robots to do this, but no one has built it yet&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Missing Capabilities&amp;#039;&amp;#039;&amp;#039; - &amp;quot;This sensor/actuator would enable new activities&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Behavior variations&amp;#039;&amp;#039;&amp;#039; - &amp;quot;Here&amp;#039;s a better algorithm for this task&amp;quot;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;New Implementations&amp;#039;&amp;#039;&amp;#039; - &amp;quot;I built this on Robot X, here&amp;#039;s how&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
=== Fully Documented (SimpleBot) ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Activities&amp;#039;&amp;#039;&amp;#039;: [[Activity:Line Following]], [[Activity:Dead Reckoning Navigation]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Capabilities&amp;#039;&amp;#039;&amp;#039;: [[Capability:Line Sensing]], [[Capability:Optical Odometry]], [[Capability:Differential Drive]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Behaviors&amp;#039;&amp;#039;&amp;#039;: [[Behavior:Line Following]], [[Behavior:Dead Reckoning]]&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Implementations&amp;#039;&amp;#039;&amp;#039;: [[SimpleBot:Line Following Implementation]], [[SimpleBot:Dead Reckoning Implementation]]&lt;br /&gt;
&lt;br /&gt;
=== Stub Pages (Community Invitations) ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Activities&amp;#039;&amp;#039;&amp;#039;: Maze Solving, Room Mapping, Sign Reading, Object Manipulation&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Capabilities&amp;#039;&amp;#039;&amp;#039;: Bump Sensing, Time-of-Flight, LIDAR, IMU, Camera Vision&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Behaviors&amp;#039;&amp;#039;&amp;#039;: PID Control, SLAM, Wall Following, Pathfinding&lt;br /&gt;
&lt;br /&gt;
These stubs are invitations! If you add bump sensors to SimpleBot, document it and turn the stub into a full page.&lt;br /&gt;
&lt;br /&gt;
== How to Use This Wiki ==&lt;br /&gt;
&lt;br /&gt;
=== If You Want to Build Something ===&lt;br /&gt;
# Start at [[Activities]] - pick what you want your robot to do&lt;br /&gt;
# Check the required [[Capabilities]] - do you have the hardware?&lt;br /&gt;
# Read the [[Behaviors]] page to understand the algorithm&lt;br /&gt;
# Follow the Implementation guide for your specific robot&lt;br /&gt;
&lt;br /&gt;
=== If You&amp;#039;re Adding to a Robot ===&lt;br /&gt;
# Browse [[Capabilities]] to see what sensors/actuators are possible&lt;br /&gt;
# Check which new [[Activities]] those capabilities unlock&lt;br /&gt;
# Add the hardware, write the Implementation, share it!&lt;br /&gt;
&lt;br /&gt;
=== If You&amp;#039;re Designing a New Robot ===&lt;br /&gt;
# Decide which [[Activities]] you want to support&lt;br /&gt;
# Identify required [[Capabilities]]&lt;br /&gt;
# Design/select hardware to provide those capabilities&lt;br /&gt;
# Implement the [[Behaviors]] in your robot&amp;#039;s code&lt;br /&gt;
# Document your Implementation pages&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
* [[Activities]] - Index of all activities&lt;br /&gt;
* [[Capabilities]] - Index of all capabilities&lt;br /&gt;
* [[Behaviors]] - Index of all behaviors (algorithms)&lt;br /&gt;
* [[Bespoke_Robot_Society:About]] - BRS mission and philosophy&lt;br /&gt;
&lt;br /&gt;
[[Category:Ontology]]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>John</name></author>
	</entry>
</feed>