ROS官方教程里,将所有软件包放到catkin_ws/src里面。而笔者为了管理方便,将ros单独作为一个ws。其下根据ros的版本创建文件夹,如indigo。再在indigo下创建不同类型的ws,例如baxter_ws。这样子可以一目了然。
一、当要创建新的ws,如在indigo下创建rbx_ws,将ros_by_example的代码下载到本地并且作为Package包含到ROS系统中,则需要在Indigo目录下创建并初始化ws,命令如下:
$ cd ~/ros/indigo
$ mkdir rbx_ws/src
$ cd rbx_ws/src
$ catkin_init_workspace
二、初始化了rbx_ws之后,将代码下载到rbx_ws/src之后(否则将会是一个空的ws),还要建立该ws, 命令如下:
$ cd ~/rbx_ws/
$ catkin_make
三、为了使该ws的Package被包含到ROS系统中,需要将路径添加到ROS系统中,
添加 "source ~/ros/indigo/rbx_ws/devel/setup.bash" "export ROS_WORKSPACE=~/ros/indigo/rbx_ws/src" 到~/.bashrc中。则每次开启ROS都可以检测到此ws
$ rospack profile //显示有哪些包已被加入ROS PACKAGE 路径
每次要在rbx_ws下添加新package,都要将package下载到rbx_ws/src文件夹下,然后返回rbx_ws文件夹目录,执行catkin_make命令,source ~/.bashrc,再rospack profile
why do we need a workspace in ROS: catkin_init_workspace: help ros find your package automatically
catkin_make: compile and link cpp code