ROS实现流程:
- 先创建一个工作空间;
- 再创建一个功能包;
- 编辑源文件;
- 编辑配置文件;
- 编译并执行。
ROS文件系统分级图
1、创建工作空间
mkdir -p 自定义空间名称/src
创建一个workspace以及子目录src
cd 自定义空间名称
进入workspace之后发现只有一个自己创建的src目录
调用 catkin_make命令编译
在该目录下编译之后,发现多出build以及devel两个目录
2、创建功能包
cd src
进入src之后,发现了cmakelist,这是编译之后产生的文件。
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
创建ROS包并添加依赖
3、编写源文件
cd 包名
进入ROS包之后看见inclue,src两个文件夹以及cmakelist文件
双击,进入src目录下,右击创建文本文件(如何添加右击创建文本文件见文末),修改名字为 xxx.cpp
4、修改ros 包下的 Cmakelist.txt文件
add_executable(源文件名
src/源文件名.cpp
)
target_link_libraries(源文件名
${catkin_LIBRARIES}
)
5、进入工作空间并编译
cd 自定义空间名称
catkin_make
6、执行
首先启动
roscore
再启动
cd 工作空间
source ./devel/setup.bash
rosrun 包名 C++节点
如何添加右击创建文本文件:
ubuntu 20.04 鼠标右击没有创建文件选项,如果想要设置此选项,可以进入主目录下的模板
目录,使用 gedit 创建一个空文本文档,保存关闭以后,鼠标右击就可以添加新建文档选项,并且创建的文档与当前自定义的文档名称一致
文件系统架构
WorkSpace --- 自定义的工作空间
|--- build:编译空间,用于存放CMake和catkin的缓存信息、配置信息和其他中间文件。
|--- devel:开发空间,用于存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等。
|--- src: 源码
|-- package:功能包(ROS基本单元)包含多个节点、库与配置文件,包名所有字母小写,只能由字母、数字与下划线组成
|-- CMakeLists.txt 配置编译规则,比如源文件、依赖项、目标文件
|-- package.xml 包信息,比如:包名、版本、作者、依赖项...(以前版本是 manifest.xml)
|-- scripts 存储python文件
|-- src 存储C++源文件
|-- include 头文件
|-- msg 消息通信格式文件
|-- srv 服务通信格式文件
|-- action 动作格式文件
|-- launch 可一次性运行多个节点
|-- config 配置信息
|-- CMakeLists.txt: 编译的基本配置