新写的launch文件不能用tab补全

博客地址:https://www.cnblogs.com/zylyehuo/
系统环境:ros1 noetc

问题描述

复制代码
launch文件不能用tab补全

全部手敲是能运行的(执行完 source ./devel/setup.bash)

解决方法

Tab 补全失败的原因通常是 ROS 的包索引缓存(rospack cache)没有更新。
在终端执行以下命令,强制刷新 ROS 的包索引

复制代码
rospack profile

原因分析

  • Tab 补全的机制: ROS 的 Tab 补全(bash completion)并不像 roslaunch 运行命令那样直接实时去扫描所有文件夹。为了速度,它依赖一个缓存列表。

  • 缓存滞后: 当你创建一个新的功能包(package)或者在一个包里新加了文件时,这个缓存列表并不总是立刻自动更新。虽然 source ./devel/setup.bash 告诉了系统"我的新包在哪里",但 Tab 补全工具查的还是旧的"户口本"。

  • rospack profile 的作用: 这个命令相当于让 ROS 重新扫描一遍 ROS_PACKAGE_PATH 下的所有目录,并修复缓存。通常新建了包之后,最好都手动敲一下这个命令。

相关推荐
zylyehuo2 天前
ROS1 noetic 中将 Unitree G1 基于 Gazebo/RViz 关节联动【使用一个launch文件启动】
ros1·humanoid
zylyehuo7 天前
ROS1 noetic 中将 Unitree G1 的 URDF 导入 Gazebo/RViz
ros1
奔跑的花短裤1 个月前
ROS2安装
ros·ros2·ros1
选与握3 个月前
ubuntu22 docker安装ros1 noetic
docker·ros1
好奇怪o5 个月前
Package.xml的字段说明
package.xml·ros1·noetic
放羊郎10 个月前
机器人交互系统 部署构建
机器人·cmakelist·ros1
二十四桥下一句1 年前
ubuntu 20.04 安装ros1
ubuntu·ros1