【ROS】ubuntu16.04下vs code配置ros环境并编写helloworld程序

一、vs code下载
1、相关配置要求:
(1)系统为ubuntu16.04
(2)已安装好kinetic-ros
选择ubuntu18.04+melotic版本也一样,差别不大,不过博主这边以kinetic为例进行说明
2、进入官网下载vs code
链接: https://code.visualstudio.com/Download.
在这里插入图片描述

在下载安装包时,要选择.deb格式的安装包(一定要在ubuntu系统下),如下图

在这里插入图片描述

然后,在该界面打开一个终端,输入下面的指令对安装包进行解压下载,这里注意sudo dpkg -i后面的内容一定要与你的安装包名字一致,否则将会出现错误

sudo dpkg -i code_1.55.0-1617120720_amd64.deb

vs code安装完成后,打开vs code,界面如下

在这里插入图片描述

二、插件下载

进入vs code界面后,首先要完成相关插件的下载,点击左上角中像俄罗斯方块的图标,并搜索chinese,完成对vs code软件的汉化,chinese插件下载完成后要关闭vs code并重启才能生效。

在这里插入图片描述

然后同样的方法搜索ros、C/C++、cmaketool等插件并下载

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装完这些插件后,就可以在vs code中编写第一个helloworld小程序了

三、程序编写及相应注意事项

在程序编写之前,Ctrl+Alt+T打开终端,输入命令创建工作空间

mkdir -p ~/catkin_hello/src

或者,也可以在文件夹中直接进行创建,然后在vs code中打开catkin_hello,如下图所示,工作空间的初始化命令catkin_init_workspace可以不执行,在后面的编译中直接完成工作空间的初始化,当然,先初始化也是一样的,博主这边只是创建了文件夹

在这里插入图片描述

在这里插入图片描述

按Ctrl+Tab+~,打开vs code中的终端,进入输入命令catkin_make对catkin_hello工作空间进行编译,但是要注意的是要在catkin_hello路径下,编译完成后如下图

在这里插入图片描述

完成catkin_make后,要设置环境变量,并检查环境变量设置是否正确

source devel/setup.bash //设置环境变量
echo $ROS_PACKAGE_PATH //查看环境变量

检查好后,在src文件夹下创建功能包,有两种方式,一种是终端命令创建功能包

cd ~/catkin_hello/src
catkin_create_pkg helloworld rospy roscpp

另一种方式是右击src,通过菜单栏进行功能包的创建,如下图

在这里插入图片描述

完成功能包的创建后,在helloworld文件的src文件中,新建一个hello.cpp文件,来编写代码,博主这边通过终端命令来实现

cd helloword/src
touch hello.cpp
gedit hello.cpp //这是用gedit文本编辑器对hello.cpp进行编辑

当然,在创建好hello.cpp后,直接单击左侧的hello.cpp文件,在vs code界面中就直接可以进行程序的编写, helloworld的代码如下所示

#include<ros/ros.h> //头文件调用
int main(int argc,char **argv)
{
ros::init(argc,argv,“hello_ros”); //ros节点初始化
ros::NodeHandle nh; //创建节点句柄
ROS_INFO_STREAM(“hello,ROS!”); //将接收到的消息打印出来
}

在这里插入图片描述

但是,此时会发现报错,发现找不到ros/ros.h,这个问题的解决需要配置c_cpp_properties.json文件,方法如下,
按住Fn+F1,输入C/C++,选择C/C++编辑配置(JSON),会在左边菜单中产生一个.vscode文件,文件下包含c_cpp_properties.json,单击c_cpp_properties.json文件,初始界面如下

在这里插入图片描述

在这里插入图片描述

出现找不到ros/ros.h错误的原因,主要是因为没有添加ros头文件路径,在第六行下面,添加“/opt/ros/kinetic/include”,即可以完成路径的添加,再按Ctrl+s保存,如下图,发现报错提醒消失

在这里插入图片描述

然后就是编辑CMakeLists.txt文件和package.xml文件了
单击CMakeLists.txt文件进行配置,在代码的最下面添加两行代码

#生成可执行文件
add_executable( helloworld src/helloworld.cpp )
#连接库
target_link_libraries(helloworld ${catkin_LIBRARIES})

单击package.xml,默认不修改
然后,在catkin_hello文件夹下进行编译,一般情况下基本都编译成功

在这里插入图片描述

最后进行运行一下helloworld,按住Ctrl+ALt+T打开一个新的终端,启动roscore,并在vs code终端上运行hello节点,结果如下

在这里插入图片描述

在这里插入图片描述

到此为止,以最简单的例子helloworld向大家介绍了如何用vs code进行ros环境的配置,并编写简单的应用程序,以实现项目的需求。