ROS的stack库分作两部分,一部分为核心部分,即main部分,简而言之就是使用下面命令,安装ROS系统时就已经安装到我们用户电脑上的那部分。
$ sudo apt-get install ros-diamondback-desktop-full
另一部分为选用部分,即universe部分,它不仅包括一些开源库的支持,如opencv,pcl,openni_kinect等,还有更上面以机器人功能模块命令的一些stack,例如pr2_doors,find_object,face recognition,grasp等等,真是一个丰富的宝藏,更详细的stack包可以在官网的StackList页面查询。(http://www.ros.org/wiki/StackList)
当然,除了随系统自动安装到我们客户端的那部分stack之外,当我们需要某特定功能的模块(如pr2_doors)时,此时,rosinstall就派上用场了,下面就简单以pr2_doors为例.
$ cp /opt/ros/diamondback/.rosinstall ~/stacks/pr2_doors.rosinstall //在stacks文件夹里面创建新的rosinstall文件
$ roslocate info pr2_doors >> ~/stacks/pr2_doors.rosinstall //此句是自动寻找pr2_doors信息
命令执行到这儿,打开pr2_doors.rosinstall,可以看到:
$ rosinstall ~/stacks ~/stacks/pr2_doors.rosinstall
$ source ~/stacks/setup.bash //为防止每次使用启动后都要重新编译,可将相应地址添到~/.bashrc中
$ rosmake .......(pr2_doors里面所需的package文件)
进一步的可以将下载后的stack目录(如 ~/stacks)添加到ROS_PACKAGE_PATH目录中,以后就能正常在原来的ROS系统下使用下载后的package了.在这里,感谢ROS论坛中提问和解惑的人们.
(本文方法参考以下网址:http://answers.ros.org/question/9197/for-new-package-downloading)