ROBOTICS IS MORE THAN HARDWARE AND EMBEDDED SYSTEMS

ROBOTICS IS MORE THAN HARDWARE AND EMBEDDED SYSTEMS

机器人学不仅仅是硬件和嵌入式系统

I have been thinking about how loosely the word robotics is sometimes used. Build a circuit, connect a sensor to an Arduino, control a motor, and the project is immediately described as robotics. There is nothing wrong with building those systems. In fact, they are important building blocks for many robots. The problem is that we often confuse the components and technologies used to build a robot with the discipline of robotics itself. Hardware engineering, embedded systems, and robotics overlap considerably, but they are not the same field. Understanding that distinction matters.

我一直在思考“机器人学”(robotics)这个词有时被用得多么随意。搭建一个电路,将传感器连接到 Arduino,控制一个电机,这个项目就会立即被称为机器人项目。构建这些系统本身并没有错。事实上,它们是许多机器人的重要组成部分。问题在于,我们经常将构建机器人所使用的组件和技术与机器人学这门学科本身混为一谈。硬件工程、嵌入式系统和机器人学在很大程度上是重叠的,但它们并不是同一个领域。理解这种区别至关重要。

Hardware is not robotics

硬件不等于机器人学

Hardware engineering deals primarily with the physical implementation of a system. It concerns electronic circuits, processors, sensors, actuators, power systems, signal conditioning, communication interfaces, PCB design, and the electrical constraints that determine whether a system can actually be built and operate reliably. A hardware engineer could design the electronics for a robot, but could just as easily design the electronics for a medical device, an automobile, an industrial controller, a satellite, or a power system. The hardware does not become “robotics” simply because a motor or sensor is involved. Hardware provides the physical platform on which a robotic system can exist.

硬件工程主要处理系统的物理实现。它涉及电子电路、处理器、传感器、执行器、电源系统、信号调理、通信接口、PCB 设计以及决定系统能否实际构建并可靠运行的电气约束。一名硬件工程师可以为机器人设计电子设备,但同样可以为医疗设备、汽车、工业控制器、卫星或电力系统设计电子设备。仅仅因为涉及电机或传感器,硬件并不会自动成为“机器人学”。硬件为机器人系统的存在提供了物理平台。

Embedded systems are not robotics

嵌入式系统不等于机器人学

Embedded systems sit much closer to robotics, but the distinction remains. An embedded system is a computing system designed to perform a particular function within a larger physical system. It typically involves a processor or microcontroller, firmware, sensors, actuators, communication interfaces, and real-time constraints. Programming an STM32 to read an encoder and control a motor is embedded engineering. Designing firmware that communicates with several sensors over CAN is embedded engineering. Writing firmware that receives a command and produces a precise actuator response is embedded engineering. All of these things can exist inside a robot. But they can also exist inside an automobile, drone, washing machine, medical instrument, industrial machine, camera, or aircraft. So an embedded system is not automatically a robotic system.

嵌入式系统与机器人学更为接近,但两者仍有区别。嵌入式系统是一种旨在大型物理系统中执行特定功能的计算系统。它通常涉及处理器或微控制器、固件、传感器、执行器、通信接口和实时约束。对 STM32 进行编程以读取编码器并控制电机属于嵌入式工程。设计通过 CAN 总线与多个传感器通信的固件属于嵌入式工程。编写接收指令并产生精确执行器响应的固件也属于嵌入式工程。所有这些功能都可以存在于机器人内部,但它们同样可以存在于汽车、无人机、洗衣机、医疗仪器、工业机器、相机或飞机中。因此,嵌入式系统并不自动等同于机器人系统。

So what makes something robotics?

那么,什么才算机器人学?

This is where the distinction becomes interesting. Robotics is concerned with the design and behaviour of machines that sense, reason about, and act upon the physical world. The important part is not simply that a machine contains a processor, sensor, or motor. It is the way those elements are brought together to produce purposeful physical behaviour. Robotics deals with questions such as: How does a robot determine where it is? How does it estimate the state of its body and environment? How does it represent its position and orientation in space? How does it determine where its end-effector should be? How should its joints move to reach a desired position? How should it generate a feasible trajectory? How does it maintain stability while moving? How does it react when the environment changes? How does it perceive objects and determine how to interact with them? How can it plan a safe path from one location to another? These questions take us into the core of robotics. Kinematics. Dynamics. Motion planning. Trajectory generation. Control. State estimation. Localization. Mapping. Computer vision. Manipulation. Navigation. Human-robot interaction. These are not simply questions about making electronics work. They are questions about machines operating and making decisions in the physical world.

这就是区别变得有趣的地方。机器人学关注的是那些能够感知、推理并作用于物理世界的机器的设计与行为。重点不仅仅在于机器是否包含处理器、传感器或电机,而在于这些元素如何结合在一起产生有目的的物理行为。机器人学处理的问题包括:机器人如何确定自己的位置?它如何估计自身和环境的状态?它如何在空间中表示自己的位置和姿态?它如何确定末端执行器应该到达的位置?它的关节应该如何运动才能到达目标位置?它应该如何生成可行的轨迹?它在移动时如何保持稳定性?当环境发生变化时它如何反应?它如何感知物体并确定如何与它们交互?它如何规划从一个位置到另一个位置的安全路径?这些问题将我们带入了机器人学的核心:运动学、动力学、运动规划、轨迹生成、控制、状态估计、定位、建图、计算机视觉、操作、导航、人机交互。这些不仅仅是关于如何让电子设备工作的问题,而是关于机器如何在物理世界中运行并做出决策的问题。

Consider a robotic arm

以机械臂为例

Suppose we have a six-degree-of-freedom robotic arm. The hardware engineer may design the PCB, select the motor drivers, develop the power architecture, and integrate the encoders. The embedded engineer may write the firmware responsible for reading those encoders, communicating with the controllers, and commanding the motors. But then we encounter a different problem. We want the end-effector to move to a specific position and orientation. Which joint angles will achieve that pose? That is an inverse kinematics problem. Once we know the desired configuration, how should the robot move through those configurations? That becomes a trajectory planning problem. How do we ensure the robot follows that trajectory accurately despite disturbances, load changes, friction, and modelling errors? Now we are dealing with control. What happens if an obstacle appears in the robot’s path? Now motion planning becomes relevant. How does the robot determine its position relative to the environment? Now we enter state estimation, localization, perception, and potentially mapping. This is where robotics begins to distinguish itself from simply controlling electronic hardware.

假设我们有一个六自由度的机械臂。硬件工程师可能会设计 PCB、选择电机驱动器、开发电源架构并集成编码器。嵌入式工程师可能会编写负责读取这些编码器、与控制器通信并指挥电机的固件。但随后我们会遇到一个不同的问题:我们希望末端执行器移动到特定的位置和姿态。哪些关节角度能实现该姿态?这是一个逆运动学问题。一旦我们知道了目标配置,机器人应该如何通过这些配置进行移动?这变成了轨迹规划问题。尽管存在干扰、负载变化、摩擦和建模误差,我们如何确保机器人准确地遵循该轨迹?现在我们处理的是控制问题。如果机器人的路径上出现了障碍物怎么办?现在运动规划变得相关了。机器人如何确定其相对于环境的位置?现在我们进入了状态估计、定位、感知,甚至可能涉及建图。这就是机器人学开始区别于单纯控制电子硬件的地方。

The same principle applies to humanoid robots

同样的原则也适用于人形机器人

A humanoid robot is not defined by having two arms, two legs, cameras, servos, and a microcontroller. The difficult engineering problems begin when we ask the robot to actually function as a physical agent. How does it maintain balance? How does it estimate the state of its body? How does it coordinate multiple joints? How does it generate a walking gait? How does it respond when its foot encounters an unexpected surface? How does it perceive an object? How does it determine whether and how that object can be grasped? How does it plan and execute a movement while respecting the physical limitations of its body? These are fundamentally robotic problems. The motors, sensors, processors, PCBs, and firmware are necessary. But they are not the entirety of the problem.

人形机器人并不是由拥有两条手臂、两条腿、摄像头、伺服电机和微控制器来定义的。当我们要求机器人真正作为一个物理智能体(physical agent)发挥作用时,真正的工程难题才开始。它如何保持平衡?它如何估计自身的状态?它如何协调多个关节?它如何生成行走步态?当它的脚遇到意想不到的表面时它如何反应?它如何感知物体?它如何确定该物体是否可以抓取以及如何抓取?它如何在尊重自身物理限制的同时规划并执行动作?这些从根本上说是机器人学的问题。电机、传感器、处理器、PCB 和固件是必要的,但它们并不是问题的全部。

Robotics is multidisciplinary by nature

机器人学本质上是多学科的

This is also why robotics is difficult to place inside a single traditional engineering discipline. A serious robotic system can require knowledge from: Mechanical Engineering for mechanisms, structures, actuators, and physical design. Electrical and Electronics Engineering for sensing, power, electronics, and hardware. Embedded Systems for low-level computation, communication, and real-time control.

这也是为什么机器人学很难被归入单一传统工程学科的原因。一个严肃的机器人系统可能需要以下知识:机械工程(用于机构、结构、执行器和物理设计)、电气与电子工程(用于传感、电源、电子设备和硬件)、嵌入式系统(用于底层计算、通信和实时控制)。