机器人--架构及设备
机器人的四大组成部分
控制系统
驱控系统
驱控=驱动系统+控制系统。
注意,这里的控制系统不是机器人层面的控制系统,属于更小层级的,驱控系统的控制系统。
驱动系统:
一般指硬件设备,比如电机驱动器,I/O驱动器等。
控制系统:
驱控系统中的控制系统,可以使用51,STM32单片机芯片,或者ESP32这些控制板。
STM32作为驱动控制系统核心的原因
机器人中为什么使用STM32作为驱控系统控制系统,直接使用树莓派控制电机这些设备不就行了吗?
1. 实时性要求:STM32是“硬实时”的保障
-
树莓派的局限性:
-
树莓派运行 Linux 系统,属于 非实时操作系统(即使使用
PREEMPT_RT
补丁优化,延迟仍在 毫秒级)。 -
电机控制(如PID调节)、紧急制动等任务需要 微秒级(μs)响应,Linux的任务调度和中断处理无法满足。
-
-
STM32的优势:
-
作为 裸机(Bare Metal) 或 实时操作系统(RTOS) 运行的微控制器,中断响应时间可控制在 1μs以内。
-
示例:
-
电机编码器信号丢失时,STM32可立即触发保护逻辑,而树莓派可能因系统繁忙延迟响应,导致电机损坏。
-
-
2. 外设专用接口:STM32提供硬件级支持
-
树莓派的局限性:
-
GPIO数量有限,且缺乏专用外设(如正交编码器接口、高精度PWM生成硬件)。
-
驱动电机需额外扩展板(如PCA9685舵机驱动模块),增加复杂性和成本。
-
-
STM32的优势:
-
内置硬件外设:
-
定时器(TIM):直接生成PWM(如控制伺服电机)。
-
编码器接口:无需软件解码,直接读取电机转速(如STM32的
TIM_EncoderMode
)。 -
ADC/DAC:高速采集传感器数据(如电流检测)。
-
-
STM32作为驱动系统控制核心的作用
1,实时运动控制(核心作用)
STM32 的 高实时性 和 丰富的外设接口 使其成为机器人运动控制的理想选择。
2. 传感器数据采集与处理
STM32 的 ADC、SPI、I2C、UART 等接口可连接多种传感器,并实时处理数据
3. 通信与协同控制
STM32 作为 底层执行单元,与上位机(如ROS主机、工控机)协同工作。
机器人控制系统(比如树莓派)----上位机;
驱动系统的控制系统(比如STM32)----下位机。
驱控系统包括各种设备的驱动器,控制系统以及很多电路元件和驱动控制板组成,这些驱动器可能被安装在驱动控制板上。
驱控系统的作用:
1,电源管理:
给各个设备提供不同电压的电源。
2,控制信号转换:
将来自控制系统的控制信号转为对应的设备的控制信号,控制设备运行;比如将来自控制系统的数字信号转为电机的电信号。
电机控制的基本流程:
-
控制指令(如速度、位置信号)由上位机(ROS/工控机)或用户输入。
-
控制器(如STM32、Arduino)生成PWM或数字信号。
-
电机驱动器(如H桥、伺服驱动器)将信号转换为电机可识别的电流/电压。
-
电机执行转动,并通过编码器/霍尔传感器反馈实时数据。
-
闭环控制:根据反馈调整输出,确保精度(如PID控制)。
执行系统
电机属于执行系统的设备。
传感系统
传感系统分为内部传感系统和外部传感系统。
内部传感系统(内部传感器):
用于获取机器人内部信息,比如IMU,力传感器等。
外部传感系统(外部传感器):
为机器人获取外部信息,比如测距的激光雷达传感器,相机等。