我的linux系统选用的是windows的子系统wsl,具体的方法是在:https://blog.csdn.net/qq_42944545/article/details/159929590
对于ROS的安装选择鱼香ros
https://blog.csdn.net/m0_58954356/article/details/155495898
里面的步骤要稍微修改一下,就是到测试ros安装那一步,不参考它的,使用下面的方法:
1测试 ROS 是否成功安装
如果是ros2版本 就不使用roscore去测试,用ros2去测试
看到下面的就是代表安装成功了
在终端输入以下命令,检查 ROS2 环境变量是否生效:
echo $ROS_DISTRO
✅ 正确的测试步骤
- 打开两个 WSL 终端
终端 1(订阅):
运行
ros2 topic echo /chatter
此时会显示 topic does not appear to be published yet,这是正常的,它正在等待消息。
终端 2(发布):
这里要注意引号和 ! 的转义,用下面任意一条命令即可:
运行
用双引号包裹,避免 ! 被解析
ros2 topic pub /chatter std_msgs/String “data: ‘Hello ROS2’”
运行后,终端 1 就会收到消息,说明 ROS2 通信功能正常了。
1.节点:
节点就是 ROS 2 里一个个独立运行的小程序 / 功能模块,就是机器人部件对应的软件程序
- 把整个机器人系统比作一间分工明确的工作室:每个节点 = 一个专职工作人员,只干自己分内事比如:读取摄像头、控制电机、处理雷达数据、播报语音,每一项单独做成一个节点
- 核心特点:各司其职一个节点只负责一件事,比如「雷达节点」只管读雷达数据,不掺和运动控制。拆分后代码简单、出问题也好排查。互相传话(通信)节点之间不靠直接调用代码交流,而是通过话题收发数据。例:雷达节点把距离数据发出去,导航节点接收数据,两者不用知道对方细节。
- 独立运行:每个节点都是单独进程,可以单独启动、停止、重启,一个节点崩了,基本不影响其他节点。
举个实例(小车场景)
节点 1:摄像头节点 → 采集画面
节点 2:图像识别节点 → 识别障碍物
节点 3:运动控制节点 → 接收指令、控制车轮
三个节点各自跑,配合起来完成小车避障,这就是 ROS 2 最基础的工作模式。