机器人学基础与 ROS 2 入门
机器人 = 感知(传感器)+ 决策(算力与算法)+ 执行(电机与机构)。ROS 2 是把它们粘在一起的“操作系统”。
一、必备数学直觉
- 坐标变换:机器人在世界坐标中的位置与姿态(欧拉角 / 四元数)
- 运动学:正运动学算末端位置,逆运动学反推关节角
- 线代功底:平移旋转矩阵、齐次坐标
二、ROS 2 的核心概念
- 节点(Node):一个可执行进程
- 话题(Topic):发布/订阅式通信,一对多、异步
- 服务(Service):请求/响应式,适合同步调用
- 参数(Parameter):运行时配置
三、跑通第一个例子
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker # 终端 1:持续发布
ros2 run demo_nodes_cpp listener # 终端 2:订阅打印
四、写一个自己的发布节点
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class Talker(Node):
def __init__(self):
super().__init__('talker')
self.pub = self.create_publisher(String, 'chatter', 10)
self.create_timer(1.0, self.tick)
def tick(self):
msg = String(); msg.data = 'hello ros2'
self.pub.publish(msg)
rclpy.init()
rclpy.spin(Talker())
五、仿真先行
真机调试昂贵且危险,先用 Gazebo 在虚拟环境验证算法,再搬到真机。学会 ROS 2,就拿到了机器人的“驾驶舱”。