ROS系列:一、第一个ROS程序
背景
简单的学习记录,主要是罗列一下自己使用过程中遇见的问题。
具体流程详见以下链接:
https://blog.csdn.net/hltt3838/article/details/107632397
1、创建工作区
2、创建功能包
需要查看自己ubuntu版本,在运行语句时加入"–rosdistro kinetic"
成功后会生成了两个配置文件,分别是:
package.xml:
CMakeLists.txt:CMake的脚本文件。这个文件包含了一系列的编译指令,包括生成可执行文件,需要哪些源文件,以及哪里可以找到所需头文件和链接库
进入功能包,并创建src
编写hello.cpp文件(vi hello.cpp 或者 vim hello.cpp 或者 gedit hello.cpp)
修改CMakeLists.txt文件
修改前:
修改后:添加依赖库,这里添加名为roscpp的依赖库,它提供了ROS的C++客户端
添加声明语句。声明可执行文件的文件名,以及所需的源列表。如果有多个源文件,把他们列在此处,并用空格将其分开。这里要注意hello.cpp的文件地址应该是src/hello.cpp
添加语句。告诉CMake当链接此可执行文件时需要链接哪些库
修改package.xml文件
增加两句话即可
3、编译工作区
出现了曾经遇到的问题,提示catkin_make未安装。按照指令安装也不能解决。
解决方法:在catkin_make之前先在终端中输入:
source /opt/ros/kinetic/setup.bash
4、其他编译出现的错误
ERROR:没有ros/ros.h文件
解决方法:
加入以下红框部分
发现,CMakeLists.txt文件应该是包含了许多的“开关”,我们需要在里面加入相应的依赖包,并且打开相应的开关,才能保证程序各模块间衔接好。
疑问,每次用到ros时都需要在终端source /opt/ros/kinetic/setup.bash,怀疑是安装时哪里出现了问题?
解决方案:
打开一个终端输入:gedit ~/.bashrc
在bashrc文件末尾添加:source ~/catkin_ws/devel/setup.bash
5、设置环境变量及运行
设置环境变量:source devel/setup.bash
在此终端运行时会出现错误,需要开启另一个终端输入roscore,然后回到此终端中运行。需要注意的是,输入roscore时需要再次source一下。
至此,终于输出了 Hello ROS!