本文参考的是赵虚左老师的博客和视频。主要目的是记录一下快速使用ROS输出Hello World!这个信息的步骤。
1. 概述
ROS设计的编程语言主要是C++和python,使用哪一门语言进行开发取决于我们熟悉使用哪一门语言。
实现输出Hello World!的步骤分为如下几步:
- 创建一个工作空间;
- 在工作空间中创建一个功能包;
- 编辑源文件;
- 编辑配置文件;
- 编译并执行;
2. 创建和编译
2.1 创建工作空间并初始化
1 | mkdir -p 自定义空间名称/src |
需要注意的是,使用mkdir
创建工作空间的时候,后面必须要有/src
;初始化的时候,必须是在创建好的工作空间内进行初始化。
2.2 进入src创建ros功能包并添加依赖
1 | cd src |
1 | roscpp: C++的依赖包 |
2.3 使用C++实现输出Hello World
2.3.1 ROS功能包内容
- 进入刚才创建的ros功能包:
1 | cd ros功能包 |
可以看到这里面也有一个src
文件夹,我们需要将当前ros功能包要实现的功能的源代码文件放在这个文件夹下,头文件放在ros功能包中的include
文件夹下。需要注意区分工作空间下的src
文件夹和ros功能包中的src
文件夹。
2.3.2 创建和编辑节点源文件
进入ros功能包中的src文件夹新建源文件
1
2cd src
gedit hello.cpp使用gedit新建并打开hello.cpp,如果不是在vmware或者vxwork中而是使用ssh连接虚拟机的话,需要将gedit换做vim。
编辑hello.cpp
1 |
|
我们要使用ros的库API,需要包含它的头文件。在main函数中,一个简单的ros节点创建和信息输出总结为如下几步:
- 使用ros->init接口初始化节点,第三个参数是节点名称;
- 使用ros->NodeHandle 创建当前ros节点的句柄;
- 调用ros标准信息输出接口ROS输出信息;
编辑好源代码之后保存退出编辑;
2.3.3 编译配置文件
- 编辑ros功能包中的配置文件CMakelist.txt
1 | cd ~/工作空间/src/ros功能包 |
找到默认被注释掉的add_executable
和target_link_libraries
,默认分别是在136行
和149行
:
将他们按照下面的格式修改:
1 | add_executable(步骤3的源文件名 |
然后保存退出编辑。
2.3.4 编译功能包
- 进入工作空间根目录编译
1 | cd ~/Desktop/工作空间 |
如果提示编译失败:
则根据提示去修改,比如我们这里最初提示在配置文件CMakelist.txt
中没有找到hello_node.cpp
,也就是我们的配置文件没有修改正确,那我们又去ros功能包中修改CMakelist.txt
文件:
再重新回到工作空间编译,编译成功会有如下提示:
3. 执行
需要打开两个终端:
- 在终端1中启动ROS:
1 | roscore |
- 在终端2中启动编译出来的ros节点
1 | cd ~/工作空间 |
当我们执行后看到了打印信息则证明我们的ROS环境搭建基本没有问题。
source ~/工作空间/devel/setup.bash
可以添加进.bashrc
文件,使用上更方便,这一步是配置环境变量。
- 本文作者: 摘星星的小朋友
- 本文链接: http://slhking.github.io/2022/04/22/ROS-2-GetStarted/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!