ros-workspace


title: ros-workspace-创建工作空间和功能包
date: 2021-09-14 08:30:26
tags:

  • ros
  • AUV

工作空间是一个存放工程开发相关文件的文件夹。

  • src:代码空间(Source Space),存放代码文件,放置功能包。
  • build:编译空间(Build Space),存放编译过程的中间文件,一般都不用管
  • devel:开发空间(Development Space),放置编译生成的可执行文件和库文件,脚本
  • install:安装空间(Install Space),安装的制定目标位置,与开发空间有重复,一般不用管

主要用src和devel两个文件夹。

1,创建工作空间

# 创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
# 编译工作空间
cd ~/catkin_ws/
catkin_make # 编译src下面所有源码,但是不会生成install空间,如果需要生成install,catkin_make install
# 设置环境变量
source devel/setup.bash
# 检查环境变量
echo $ROS_PACKAGE_PATH # 查看路径,通过路径可以找到功能包,如果功能包不在路径之内,无法被编译

2,创建功能包

所有源码必须放到功能包里面。

# 创建功能包
cd ~/catkin_ws/src # 跳到工作空间的src
catkin_create_pkg test_pkg std_msgs rospy roscpp #创建一个功能包,名字是test_pkg,依赖于rospy,roscpp,std_msgs是ros定义的标准消息结构
# 编译功能包
cd ~/catkin_ws
catkin_make # 编译功能包
source ~/catkin_ws/devel/setup.bash # 添加环境变量

同一工作空间下,不允许存在同名功能包。

不同工作空间下,允许存在同名功能包。

功能包会创建两个文件,CMakeLists.txt(设置编译功能包代码的规则)和package.xml(告诉用户功能包的基本信息),这两个文件标志着这是一个功能包而不是一个文件夹属性。

<think>好的,我现在需要帮助用户解决在使用Catkin构建时遇到的错误:“unable to find source space carla-ros-bridge”。首先,我需要回忆一下Catkin构建系统的基本工作原理,以及常见的导致找不到源空间的原因。 用户提到的是源空间的问题,所以应该检查工作空间的结构是否正确。Catkin工作空间通常要求有src目录,所有的包都应该放在src下。用户可能没有正确地将carla-ros-bridge包放置在src目录中,或者路径有误。此外,可能缺少必要的依赖或者工作空间初始化步骤未完成。 接下来,我应该分步骤思考可能的解决方案。第一步可能是确认工作空间的目录结构是否正确,确保carla-ros-bridge存在于src下。第二步是运行catkin_init_workspace来初始化工作空间,这可能被用户忽略了。第三步是安装依赖,特别是使用rosdep来安装缺少的依赖项,这通常是导致构建失败的原因之一。用户提供的引用中提到了rosdep install的命令,这可能是一个关键的步骤,需要确保执行正确。 另外,用户可能在执行catkin build之前没有正确配置环境变量,或者没有在正确的工作空间目录下执行命令。需要提醒用户检查当前目录,并确保执行了source devel/setup.bash等步骤。 可能还需要检查CMakeLists.txt和package.xml文件是否正确,特别是如果用户手动复制了包而没有使用git或rosinstall的话,可能会有文件缺失。此外,权限问题也可能导致无法访问源目录,需要确认目录权限是否正确。 最后,生成相关问题需要考虑用户可能遇到的后续问题,比如依赖安装失败、构建其他包的问题、环境配置等。这样用户可以在解决问题后进一步处理其他潜在的问题。</think>### 解决Catkin构建时找不到源空间的问题 #### 1. 检查工作空间结构 Catkin要求ROS包必须放置在`src`目录下。请确认: - 工作空间路径结构为:`~/catkin_ws/src/carla-ros-bridge` - 使用`tree -L 2`命令验证目录结构: ```bash catkin_ws/ └── src/ └── carla-ros-bridge/ ``` #### 2. 初始化工作空间 若未初始化,执行: ```bash cd ~/catkin_ws catkin_init_workspace src ``` #### 3. 安装依赖项 使用rosdep安装依赖(注意路径参数)[^1]: ```bash rosdep install --from-paths src --ignore-src --rosdistro melodic -y ``` #### 4. 构建特定包 尝试单独构建指定包: ```bash catkin build carla-ros-bridge ``` #### 5. 检查环境变量 确保已加载环境: ```bash source devel/setup.bash ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值