ROS2入门21讲__第01讲__ROS/ROS2是什么

目录


引言

  1. ROS的诞生
  2. ROS的发展
  3. ROS的特点
  4. ROS的社区
  5. 参考资料

引言

机器人的发展横跨七八十年,经历了三个重要时期。

  • 2000年前,机器人主要应用于工业生产,俗称工业机器人,由示教器操控,帮助工厂释放劳动力,此时的机器人并没有太多智能而言,完全按照人类的命令执行动作,更加关注电气层面的驱动器、伺服电机、减速机、控制器等设备,这是机器人的电气时代

  • 2000年后,计算机和视觉技术逐渐应用,机器人的类型不断丰富,出现了AGV、视觉检测等应用,此时的机器人传感器更加丰富,但是依然缺少自主思考的过程,智能化有限,只能感知局部环境,这是机器人的数字时代,不过这也是机器人大时代的前夜。

  • 2015年之后,随着人工智能技术的快速发展,机器人成为了AI技术的最佳载体,家庭服务机器人、送餐机器人、四足仿生机器狗、自动驾驶汽车等应用呈井喷状爆发,智能机器人时代正式拉开序幕。

智能机器人的快速发展,必将对机器人开发提出更高的要求,软件层面最为热点的技术之一就是机器人操作系统,这也是我们课程的主角——Robot Operating System

智能时代,机器人正在向全场景的高度智能化方向进化,这对机器人开发提出了巨大挑战,机器人操作系统ROS应用而生。

那什么是ROS?什么又是ROS2呢?

接下来,我们就一起掀起ROS的神秘面纱,带领大家认识一下机器人开发中这位重量级的嘉宾。

ROS的诞生

<think>我们正在处理用户关于ROS2 bag文件夹访问的问题。根据用户提供的错误信息,路径`/home/lizhuo/rosbag2_2025_07_20-21_54_23`不存在。结合引用[1]和引用[2]的内容,我们了解到ROS2的bag是以文件夹形式存储的,而ROS1则是单个.bag文件。 关键点: 1. ROS2的bag是一个文件夹,里面包含metadata.yaml和多个.db3文件(或其他存储格式的文件)。 2. 用户可能输入了错误的路径,或者路径确实不存在。 解决方案步骤: 1. 确认路径存在:使用`ls`命令检查文件夹是否存在。 2. 检查路径格式:ROS2要求提供文件夹路径,且路径必须是绝对路径或相对路径正确。 3. 注意权限问题:确保用户有权限访问该文件夹。 另外,引用[1]提到ROS2提供了C++ API来读写包,但用户当前的问题只是播放,所以主要解决路径问题。 根据引用[2],ROS1的bag是单个文件,而ROS2是文件夹。如果用户是从ROS1迁移过来的,可能会混淆。 因此,我们将分步骤指导用户解决。</think>### ROS2 bag文件夹访问问题解析与解决方案 您遇到的`rosbag2文件夹访问问题`通常由路径格式错误或权限问题导致。以下是系统化的解决方案: --- ### 核心问题分析 1. **ROS2 bag存储结构差异** ROS2 bag以**文件夹形式存储**(而非ROS1的单个`.bag`文件),包含关键文件: ``` rosbag2_2025_07_20-21_54_23/ ├── metadata.yaml # 元数据文件[^1] ├── rosbag2_2025_07_20-21_54_23_0.db3 # SQLite3数据库 └── rosbag2_2025_07_20-21_54_23_1.db3 # 分块存储文件 ``` 错误使用文件路径(如省略末尾斜杠)会导致路径不存在[^2]。 2. **权限问题** 用户`lizhuo`可能无权访问该目录,验证命令: ```bash $ ls -ld /home/lizhuo/rosbag2_2025_07_20-21_54_23 drwxr-xr-x 2 lizhuo lizhuo 4096 Jul 20 21:54 /home/lizhuo/rosbag2_2025_07_20-21_54_23 ``` 若权限非`drwxr-xr-x`,需修复: ```bash $ sudo chown -R lizhuo:lizhuo /home/lizhuo/rosbag2_2025_07_20-21_54_23 ``` --- ### 逐步解决方案 #### 步骤1:验证路径格式 ```bash # 使用绝对路径并确保以斜杠结尾 $ ros2 bag play /home/lizhuo/rosbag2_2025_07_20-21_54_23/ # 使用tab自动补全避免拼写错误 $ ros2 bag play /home/lizhuo/rosbag2_2025_07_20-21_54_23/<按Tab键> ``` #### 步骤2:检查存储结构 ```bash # 确认文件夹存在 $ ls /home/lizhuo | grep rosbag2_2025_07_20-21_54_23 # 检查必要文件 $ ls /home/lizhuo/rosbag2_2025_07_20-21_54_23 metadata.yaml # 必须存在 *.db3 # 至少一个.db3文件 ``` #### 步骤3:指定存储插件 若使用非默认插件(如`sqlite3`): ```bash $ ros2 bag play -s sqlite3 /home/lizhuo/rosbag2_2025_07_20-21_54_23/ ``` #### 步骤4:修复损坏bag 若文件系统异常导致损坏: ```bash # 重新索引(Humble+版本支持) $ ros2 bag reindex /home/lizhuo/rosbag2_2025_07_20-21_54_23/ # 手动修复SQLite数据库 $ sqlite3 /home/lizhuo/rosbag2_2025_07_20-21_54_23/*.db3 "PRAGMA integrity_check" ``` --- ### 关键知识点 1. **路径规范对比** | 系统 | 路径类型 | 示例 | |------|----------|------| | ROS1 | 文件路径 | `~/bagfiles/20250720.bag` | | ROS2 | **文件夹路径** | `/home/lizhuo/rosbag2_2025_07_20-21_54_23/` [^1] | 2. **存储格式演进** $$ \text{ROS1} \xrightarrow{\text{.bag文件}} \text{ROS2} \xrightarrow{\text{文件夹+SQLite}} \text{可扩展存储} $$ ROS2采用模块化存储,支持SQLite3/MCAP/CDR等格式[^1]。 --- ### 相关问题 1. 如何将ROS1的`.bag`文件转换为ROS2格式? 2. 使用`ros2 bag record`时如何选择特定topic记录? 3. ROS2 bag的SQLite3存储和MCAP存储有何性能差异? 4. 如何编程读取ROS2 bag文件中的传感器数据? 5. 跨机器迁移ROS2 bag文件需要注意哪些权限问题? [^1]: ROS2 bag采用文件夹结构存储元数据和消息数据。 [^2]: 路径末尾斜杠缺失是常见错误原因。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值