【ROS】机械人开发三--ROS工作空间与功能包

机械人开发三--ROS工作空间与功能包

  • 一、ROS工作空间
    • 1.1 概念
    • 1.2 创建工作空间
    • 1.3 编译工作空间
    • 1.4 设置环境变量
    • 1.5 添加环境变量
  • 二、功能包
    • 2.1 概念
    • 2.2 功能包的内容
    • 2.3 创建功能包
  • 三、CMakeLists.txt文件
  • 四、package.xml文件

一、ROS工作空间

1.1 概念

工作空间(workspace):存放工程文件的文件夹。
具体组成为:
【ROS】机械人开发三--ROS工作空间与功能包_第1张图片

1.2 创建工作空间

① 创建文件夹

mkdir -p ~/catkin_ws/src

② 进入文件夹

cd ~/catkin_ws/src

③ 初始化工作空间

catkin_init_workspace

1.3 编译工作空间

④ 返回上一级

cd ..

⑤ 编译工作空间

catkin_make

1.4 设置环境变量

⑥ 设置环境变量

source devel/setup.bash

⑦ 查看ROS的环境变量

echo $ROS_PACKAGE_PATH

1.5 添加环境变量

命令行输入:

vi ~/.bashrc

最后一行添加:

source ~/ros/catkin/devel/setup.bash

根据你创建的目录路径来。


别的命令

编译单独功能包::

catkin_make -DCATKIN_WHITELIST_PACKAGES="package_name"

多线程编程:

catkin_make -j -l

多线程编程用于提高编译速度,但要根据你CPU的数量决定,超过的话会出问题
j:多少核编程
l:多少线程编程
例子:
【ROS】机械人开发三--ROS工作空间与功能包_第2张图片


二、功能包

2.1 概念

功能包(package):存放用户功能代码的文件夹。
具体如下:
【ROS】机械人开发三--ROS工作空间与功能包_第3张图片

2.2 功能包的内容

  • include文件夹: 包含.h文件(必要)
  • launch文件: launch文件
  • src文件夹: 包含.cpp文件(必要)
  • urdf文件夹:.urdf文件
  • config这类的文件夹:包含参数文件
  • scripts这类的文件夹:包含可执行脚本文件(python脚本)
  • CMakeLists.txt文件:定义编译的规则(必要)
  • package.xml 文件: 定义功能包(package)的属性(必要)

2.3 创建功能包

catkin_create_pkg  [depend1] [depend2] [depend3]

使用示例:

catkin_create_pkg new_package std_msgs rospy roscpp

三、CMakeLists.txt文件

定义编译的规则

官方介绍网站:
cmakelists

常用的cmakelists宏:

  • cmake_minimum_required() :CMake版本
  • project() :项目名称
  • find_package() :添加依赖
  • catkin_package() :编译生成信息导出
  • add_executable() :生成可执行文件
  • target_link_libraries() :可执行文件链接到库

部分文件截图:
【ROS】机械人开发三--ROS工作空间与功能包_第4张图片
其他的cmakelists宏:

add_message_files() 添加话题消息类型文件
add_service_files() 添加服务消息类型文件
add_action_files()  添加行为消息类型文件
generate_messages() 生成消息文件
include_directories() 添加头文件路径
add_dependencies()    添加依赖项
add_library()         生成自定义的库
install()             安装规则

四、package.xml文件

功能包的描述信息,文件使用的是标签语言

官方介绍网站:
package.xml

必要标签:

根标签

。。。


       包名
    开源许可
 维护者
 描述
     版本号

可选标签:

        指定依赖项为编译、 导出、 运行需要的依赖
  编译依赖项
 导出依赖项
         运行依赖(旧版本是         测试用例依赖项
    编译构建工具
 文档依赖项

【ROS】机械人开发三--ROS工作空间与功能包_第5张图片


到这里就结束啦!
【ROS】机械人开发三--ROS工作空间与功能包_第6张图片

你可能感兴趣的:(ROS机器人开发系列,机器人,ubuntu)