首页 › 具身智能 › 03-机器人硬件、lerobot及地瓜RDK-X5开发板控制教程 › 06传感器选型与数据采集

06传感器选型与数据采集

传感器:机器人的感知系统​

传感器(Sensors)是机器人的五官。本章将介绍如何让机器人“看见”世界,包括传感器的分类、通信协议以及数据处理的基础算法。​

1. 传感器分类体系​

1.1 本体感知 (Proprioceptive)​

测量机器人自身的状态。​

•

编码器 (Encoder):测量电机旋转角度和速度。分为增量式(断电位置丢失)和绝对式(断电位置记忆)。​

•

IMU (惯性测量单元):包含加速度计(测线性加速度/重力方向)和陀螺仪(测角速度)。是平衡车、无人机核心传感器。​

​

飞书文档 - 图片

​

图1: 光电编码器原理​

1.2 环境感知 (Exteroceptive)​

测量外部环境。​

•

激光雷达 (LiDAR):​

◦

2D LiDAR:扫描一个平面,输出距离点云。用于 SLAM 建图。​

◦

3D LiDAR:多线扫描,用于自动驾驶。​

◦

原理:ToF (飞行时间) 或 三角测距。​

•

视觉相机 (Camera):​

◦

RGB:普通彩色图像。​

◦

RGB-D (深度相机):如 RealSense, Kinect。能同时输出色彩和像素距离。​

•

超声波/毫米波:用于近距离避障或穿透烟雾。​

​

飞书文档 - 图片

​

图2: 激光雷达三角测距原理​

​

​

2. 硬件接口与通信协议​

传感器选型不仅看性能,还要看接口是否匹配开发板(如树莓派、RDK-X5)。​

​

​
协议​
​
​
线数​
​
​
速度​
​
​
特点​
​
​
适用场景​
​
​
UART (串口)​
​
​
2 (TX, RX)​
​
​
低/中​
​
​
异步,点对点,简单​
​
​
GPS, 蓝牙模块, 激光雷达​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​

​

​

代码块​

Plain Text

mindmap​

root((传感器接口))​

低速总线​

I2C (IMU, 气压计)​

UART (GPS, 蓝牙)​

高速总线​

SPI (编码器, 屏幕)​

CAN (工业电机, 车辆OBD)​

多媒体/大数据​

MIPI-CSI (树莓派摄像头)​

USB 3.0 (深度相机)​

Ethernet (多线雷达)​

​

​

​

3. 信号处理:从噪声到真值​

传感器数据永远包含噪声。直接使用原始数据会导致机器人抖动甚至失控。​

3.1 常见噪声处理​

•

低通滤波 (Low-pass Filter):去除高频抖动。​

•

卡尔曼滤波 (Kalman Filter):最优估计,融合预测值和观测值。​

•

互补滤波 (Complementary Filter):常用于 IMU 姿态解算(融合加速度计和陀螺仪)。​

3.2 互补滤波原理​

•

加速度计:低频特性好(长期准,指示重力方向),但高频震动大。​

•

陀螺仪:高频特性好(动态响应快),但有温漂,长期积分会漂移。​

•

公式:​​

​

​

4. Python 实战:IMU 数据融合 (互补滤波)​

本示例模拟生成带噪声的传感器数据,并使用互补滤波融合出稳定的姿态角。​

​

代码块​

Python

import numpy as np​

import matplotlib.pyplot as plt​

​

def complementary_filter_demo():​

# 1. 模拟真实角度 (正弦波运动)​

t = np.linspace(0, 10, 1000)​

dt = t[1] - t[0]​

true_angle = 10 * np.sin(2 * np.pi * 0.5 * t) # 真实角度​

​

# 2. 模拟传感器读数 (添加噪声)​

# 陀螺仪测的是角速度 (真实角度的导数) + 漂移 + 噪声​

true_gyro = 10 * 2 * np.pi * 0.5 * np.cos(2 * np.pi * 0.5 * t)​

gyro_reading = true_gyro + 0.5 # 模拟漂移 bias​

​

​

​

​