ros创建工作空间和功能包

目录

  • 1 ros创建工作空间和功能包
    • 1.1 ros工程结构
    • 1.2 创建工作空间
      • 1.2.1 初始化工作空间
      • 1.2.2 设置环境变量
    • 1.3 创建功能包
    • 1.4 编译工作空间
    • 1.5 运行功能包下的可执行文件
    • 1.6 选择查看当前工作空间下的可用功能包

1 ros创建工作空间和功能包

1.1 ros工程结构

ros创建工作空间和功能包_第1张图片

1.2 创建工作空间

1.2.1 初始化工作空间

打开终端,快捷键ctrl+alt+t

$ mkdir -p ~/catkin_ws/src # -p代表创建多层目录
$ cd ~/catkin_ws # 进入catkin_ws工作空间
$ catkin_make # 初始化(编译)工作空间

1.2.2 设置环境变量

方法1

# 把工作空间添加到bash中,就不用每次启动终端都刷新环境变量
$ echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc 

方法2

# 直接打开终端配置文件
$ sudo nano ~/.bashrc
# 在文件末尾输入
source ~/catkin_ws/devel/setup.bash

1.3 创建功能包

package是ROS软件的基本组织形式,catkin编译的基本单元

1个package可以包含多个节点(可执行文件)

1个node(节点) = 1个进程(存在main函数) = 1个可执行文件

# 进入src目录
$ cd src
# 创建test功能包,依赖为roscpp,rospy,std_msgs
$ catkin_create_pkg test roscpp rospy std_msgs 

然后进入test功能包src目录,创建hello_ros.cpp文件

$ cd test/src
$ touch hello_ros.cpp

使用编辑器打开源代码文件hello_ros.cpp,输入以下内容

#include "ros/ros.h"

int main(int argc, char *argv[])
{
    ros::init(argc, argv, "hello_ros");
    ROS_INFO("hello ros");
    return 0;
}

修改test功能包下编译相关的CMakeLists.txt,生成可执行文件并将其链接到相关库

# 根据源文件hello_ros.cpp生成可执行文件hello_ros_node
add_executable(hello_ros_node src/hello_ros.cpp)

# 将可执行文件hello_ros_node链接到库${catkin_LIBRARIES}
target_link_libraries(hello_ros_node
  ${catkin_LIBRARIES}
)

除了自己创建功能包,还能从其他地方克隆,根据package下的xml描述文件安装所需的依赖

1.4 编译工作空间

$ cd ~/catkin_ws/ # 进入工作空间目录
$ catkin_make # 编译工作空间

1.5 运行功能包下的可执行文件

$ roscore # 启动ros
$ rosrun test hello_ros_node # 运行test功能包下的hello_ros_node可执行文件

ros创建工作空间和功能包_第2张图片

1.6 选择查看当前工作空间下的可用功能包

$ rospack list | grep catkin_ws

你可能感兴趣的:(ros,c++,ros)