ros自带package在哪里_创建ROS的Package(功能包)

本文讲如何用catkin创建一个ROS的package

1. catkin package的组成:一定要包含CMakeLists.txt及package.xml文件

my_package/

CMakeLists.txt

package.xml

此外,每个package必须要有他自己的文件夹。

2. 推荐使用catkin workspace来处理catkin package

workspace_folder/ -- WORKSPACE

src/ -- SOURCE SPACE

CMakeLists.txt -- ‘Toplevel‘ CMake file, provided by catkin

package_1/

CMakeLists.txt -- CMakeLists.txt file for package_1

package.xml -- Package manifest for package_1

...

package_n/

CMakeLists.txt -- CMakeLists.txt file for package_n

package.xml -- Package manifest for package_n

3. 创建catkin package

使用catkin_create_pkg脚本来创建新的catkin package:

(1)切换source space目录至之前创建的catkin workspace

$ cd ~/catkin_ws/src

(2)用catkin_create_pkg创建一个catkin package,名字是beginner_tutorials,且依赖于已有的功能包std_msgs,roscpp,rospy,后者称为dependency

$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

4. build 这个catkin workspace, source 这个setup文件

build方法:

$ cd ~/catkin_ws

$ catkin_make

source方法:

$ . ~/catkin_ws/devel/setup.bash

5. package dependencies

(1)用rospack查看1阶dependencies:

$ rospack depends1 beginner_tutorials

package.xml中储存了package的dependencies信息

$ roscd beginner_tutorials

$ cat package.xml

(2)用rospack查看间接(高阶)的dependencies:

$ rospack depends beginner_tutorials

6. customize(自定义、定制) package

6.1 自定义package.xml

(1) 描述标签(description tag):尽可能短

5 The beginner_tutorials package

(2)Maintainer 标签:必须有,而且非常重要,至少要有一条。作用是让别人知道有关这个package该联系谁。

Toggle line numbers

7

8

9

10 user

(3)许可证标签(license tag):有很多开源许可证,我们这里使用BSD,因为许多ROS核心部件都是用的它。

12

13

14

15 TODO

(4)dependencies标签: dependencies标签可分为build_depend, buildtool_depend, exec_depend, test_depend。因为我们使用了std_msgs, roscpp, and rospy,所以该标签应为:

27

28

29

30

31

32

33

34

35

36

37

38 catkin

39 roscpp

40 rospy

41 std_msgs

我们希望在build和run的时候使用所有特定的dependencies,因此我们还要增加exec_depend标签,最后如下:

12 catkin

13

14 roscpp

15 rospy

16 std_msgs

17

18 roscpp

19 rospy

20 std_msgs

(5) 最终的package.xml:下面是不含有评论和未使用tag的package.xml文件,非常concise(简明)

beginner_tutorials

0.1.0

The beginner_tutorials package

Your Name

BSD

http://wiki.ros.org/beginner_tutorials

Jane Doe

catkin

roscpp

rospy

std_msgs

roscpp

rospy

std_msgs

6.2 自定义CMakeLists.txt

ROS系统中,可以通过以下步骤来创建一个功能并导入依赖:urdf、xacro、gazebo_ros、gazebo_ros_control、gazebo_plugins。 1. 打开终端,进入你想要创建功能的路径,例如:`cd ~/catkin_ws/src` 2. 创建一个新的功能,例如:`catkin_create_pkg my_package rospy urdf xacro gazebo_ros gazebo_ros_control gazebo_plugins` 这个命令会在当前路径下创建一个名为`my_package`的功能,并且指定了该功能所依赖的其他功能括`rospy`、`urdf`、`xacro`、`gazebo_ros`、`gazebo_ros_control`、`gazebo_plugins`。 3. 进入功能的目录:`cd my_package` 4. 创建一个`urdf`文件,例如:`touch my_robot.urdf` 5. 编辑`my_robot.urdf`文件,添加你的机器人模型信息 6. 创建一个`xacro`文件,例如:`touch my_robot.xacro` 7. 编辑`my_robot.xacro`文件,添加你的机器人模型信息 8. 在`my_robot.urdf`或`my_robot.xacro`文件中,添加`gazebo`所需的插件和控制器等信息,例如: ``` <gazebo> <plugin name="my_plugin" filename="libmy_plugin.so"/> <plugin name="my_controller" filename="libmy_controller.so"/> </gazebo> ``` 9. 在`package.xml`文件中添加`gazebo_ros`、`gazebo_ros_control`、`gazebo_plugins`的依赖信息,例如: ``` <depend>gazebo_ros</depend> <depend>gazebo_ros_control</depend> <depend>gazebo_plugins</depend> ``` 10. 编译你的功能:`catkin_make` 现在,你已经成功创建了一个功能,并且导入了`urdf`、`xacro`、`gazebo_ros`、`gazebo_ros_control`、`gazebo_plugins`等依赖
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值