ROS

ROS tutorials 系列(2) Creating a ROS Package

原文:

http://www.ros.org/wiki/ROS/Tutorials/CreatingPackage 

——————————————————————————————–

看完的一些comment:

1.1 Using roscreate

ROS把建立package這件事變得簡單,只要用簡單的一個指令:

catkin_create_pkg [package_name] [depend1] [depend2] [depend3]

就可以輕鬆把一個package建立起來,而且幫你把 package.xml, CMakeLists.txt and Makefiles這些都處理掉。

1.2 Creating a New ROS Package

我們可以建立一個package by catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
1.3&1.4 Package dependencies 

前面用 catkin_create_pkg beginner_tutorials std_msgs rospy roscpp 來建立package時,直接建立了三個dependencies,

這三個就稱為First-order package dependencies (可以用rospack depends1 beginner_tutorials 來查看) 。

所以當我輸入

rospack depends1 beginner_tutorials

就會輸出

std_msgs
rospy
roscpp

但是這三個dependencies又分別有自己的dependencies,這些就叫做indirect  dependencies。

舉例來說,如果我輸入

rospack depends beginner_tutorials

就會輸出

rospack
roslib
std_msgs
rosgraph_msgs
rosbuild
roslang
rospy
cpp_common
roscpp_traits
rostime
roscpp_serialization
xmlrpcpp
rosconsole
roscpp

會發現多了很多indirect  dependencies。(這一點就十分方便,有點像是把一個tree接上另一個tree。試想要自己把這些dependencies處理完有多麻煩@@)

1.5 ROS client library

Client library的概念很重要,因為我們會一直用到它.

Client library基本上就是一個API(Application Programming Interface,可以想成一個list,列出所有你可以使用的function),所以你的package只要depend on某個client library,你在這個package裡寫的程式碼就可以使用這個client library提供的function.

後面會學到很多ROS的機制,例如topic, service, actionlib等等, 我們之所以可以使用ROS機制就是因為有這些client library.

上面的例子中我們depend了roscpp和rospy,這兩個就分別是C++跟Python的client library,所以你如果寫了一個C++程式,他跟ROS基本上扯不上關係,但如果你使用了client library提供的函式,他就可以跟ROS接上.

Advertisements

2 thoughts on “ROS tutorials 系列(2) Creating a ROS Package

  1. 您好!
    最近開始用了ROS的機器人,但系統都不會使用,剛好在網路上看到你的文章就跟著官網一起執行;但是跟著官網作有些資料夾都找不到,目前這一步roscreate-pkg不知為什麼無法創建成功…
    還有我想請問一下~catkin跟roscreate-pkg有甚麼差別?
    抱歉問題很多…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s