和大多数开发环境一样,理论上,在 ROS 中,只需要记事本就可以编写基本的 ROS 程序,但是工欲善其事必先利其器,为了提高开发效率,可以先安装集成开发工具和使用方便的工具:终端、IDE…
1.安装终端
在使用ros时需要频繁的同时打开新的终端窗口,为了解决这个问题,我们可以下载一个Terminator。安装完后效果如下:
Terminato安装步骤
安装步骤很简单,新建一个终端窗口输入一个命令就行了
步骤如下:
第一步:先按快捷键 ctrl+alt+t
,这时候会出现一个终端窗口
第二步:在终端窗口输入命令sudo apt install terminator
如下图所示:
第三步:回车,并输入密码,然后等待完成下载即可。
下图为下载中图片
下图为安装成功图片
现在你用快捷键ctrl+alt+t
,出来的终端窗口效果如下:
要想实现多窗口,你得先把鼠标移动到窗口黑色区域中,然后右键,会出现以下画面:
这里的水平分割和垂直分割会同时把多个窗口放在相邻位置,从此你就不需要一个一个频繁的创建新窗口了。
如果你想方便使用Terminator,你可以用鼠标点击桌面左下角显示应用程序
然后你就会找到了Terminator,如下图示:
此时你只需要鼠标右键点击他,然后会有一个添加到收藏夹
选项,你鼠标左键点击他就行,他就会出现在你桌面的左边那一列了。
完成后的效果图如下:
2.vscode安装
VSCode 全称 Visual Studio Code,是微软出的一款轻量级代码编辑器,免费、开源而且功能强大。它支持几乎所有主流的程序语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。软件跨平台支持 Win、Mac 以及 Linux操作系统。
下载
个人建议:下载之前,我建议大家还是使用20.04的ubantu的linux系统吧,我那18.04的ubantu装了最新版的vscode之后,使用命令code .
之后启动不了,不知道为啥,我试着把最新的卸载了,安装旧版本的vscode,发现能启动,但安装不了python,导致功能包创建不了rospy依赖。但使用20.04的ubantu的linux系统完全遇不到问题。
vscode软件下载地址如下:
你把下面两个网址其中一个复制之后,到Linux系统桌面上把火狐浏览器打开,在这个浏览器里打开这个网址。
vscode 下载:https://code.visualstudio.com/docs?start=true
历史版本下载链接: https://code.visualstudio.com/updates
这里我选择打开的是第一个网址,进去之后然后点击dowlnoad
点击完之后,再点击如下图画的小圆圈的按钮,也就是的.deb
右边的x64
,这是Linux的运行版本的vscode。
点击完之后他就会开始自动下载。
下载完之后的样子
安装方法1
下载完之后返回桌面,点击左侧<文件>,再在打开的页面中点击<下载>,操作步骤如下图所示:
下载完之后再鼠标右键点击这个下载的vscode文件,会弹出如下图所示界面,点击最上面的<用软件安装打开>。
再然后点击如下图所示的<安装>按钮就行了
安装方法2
方式2:sudo dpkg -i xxxx.deb
方法2安装步骤如下:
第一步:在下载位置用鼠标右键打开一个新的终端窗口
效果如下图所示:
第二步:在窗口先输入sudo dpkg -i
命令
第三步:去看看下载的vscode文件的属性,如下图所示:
把红色圆圈里的复制了,粘贴到刚开的终端窗口sudo dpkg -i
命令后面,效果图如下所示。然后按回车就行了。等待安装完成即可。
3.vscode 集成 ROS 插件
要安装的插件有c++、python、Cmake tools、ROS。
打开vscode后,点击左侧的扩展按钮,如下图所示:
接下来在如下图圆圈圈出的位置去搜索要安装的插件
c++插件如下图
python插件如下图
cmake tools插件如下图
ROS插件如下图
自己去搜索栏中下载上图中的插件。
4.vscode 使用_基本配置
4.1 创建 ROS 工作空间
命令如下
mkdir -p xxx_ws/src(必须得有 src)
cd xxx_ws
catkin_make
对上述命令解释如下:
mkdir -p xxx_ws/src
这个命令中mkdir -p
是一个创建工作空间的命令,xxx_ws
是工作空间的名字,xxx表示你自己给这个工作空间取的名字,可别以为这三个xxx是命令哈。创建一个工作空间一定要在这个工作空间下创建src文件,无需知道为什么,所以xxx_ws
后要紧接着/src
。src是专门存放功能包的文件夹,在这里面会存储这之后要创建的功能包。
cd xxx_ws
这个命令的意思是进入xxx_ws这个工作空间,命令cd
加空格再加一个工作空间名称就是进入这个工作空间的作用。
catkin_make
这个命令就是编译工作空间的作用,把这个名为xxx_ws
的工作空间编译后,你发现这个文件里会多两个文件,一个叫build
,一个叫include
。如下图所示:
4.2 启动 vscode
进入工作空间 xxx_ws
启动 vscode
cd xxx_ws
code .
code .
的作用就是启动vscode,注意,使用code .
之前一定要先进入工作空间cd xxx_ws
。
4.3 vscode 中编译 ros
第一步:按下快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build右边的小齿轮,也就是也就是我画红色圆圈的地方。
这时候画面会变成下面这张图所示:
第二步:再把当前tasks.json文件里的代码全部删除掉,把下面的代码复制粘贴上去。
{
// 有关 tasks.json 格式的文档,请参见
// https://go.microsoft.com/fwlink/?LinkId=733558
"version": "2.0.0",
"tasks": [
{
"label": "catkin_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin_make",//这个是我们需要运行的命令
"args": [],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "$msCompile"
}
]
}
4.4 创建 ROS 功能包
第一步:选定 src 右击 —> create catkin package,操作页面如下图所示:
第二步:设置包名 添加依赖
注意:具体操作位置是上面的输入栏
包名我写的是hello_vscode
操作页面如下图所示:
加入依赖操作页面如下图所示:
就是加入roscpp rospy std_msgs
依赖
4.5 C++ 实现
在功能包的 src 下新建 cpp 文件,用鼠标右键点击src新建文件夹就行,然后取名为什么什么.cpp就行
/*
控制台输出 HelloVSCode !!!
*/
#include "ros/ros.h"
int main(int argc, char *argv[])
{
setlocale(LC_ALL,"");//这一行代码不是必须的,只是防止ROS__INFO 终端输出有中文时,会出现乱码
//执行节点初始化
ros::init(argc,argv,"hello");//初始化节点名称叫hello
ROS_INFO("HAHAHA");//让这个节点输出日志为HAHAHA
return 0;
}
PS1: 如果没有代码提示
修改 .vscode/c_cpp_properties.json
设置 “cppStandard": "c++17
”
操作页面如下:
PS2: main 函数的参数不可以被 const 修饰//这个别管
PS3: 当ROS_INFO 终端输出有中文时,可能会出现乱码
INFO: ???
解决办法:在函数开头加入下面代码的任意一句
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, "");
4.4 配置 CMakeLists.txt
注意是如下图所示画圈处的位置的CMakeLists.txt
C++ 配置:
add_executable(节点名称
src/C++源文件名.cpp
)
target_link_libraries(节点名称
${catkin_LIBRARIES}
)
上面是配置程序的模板
下面是我自己自己写的:
add_executable(hello_vscode_c src/hello_vscode_c.cpp)//左边是项目名称也叫映射名称,这个名称可以自己取,但我们在编写的时候一般写项目名称,右边的就是.cpp源文件全名了
target_link_libraries(hello_vscode_c//hello_vscode_c这个就和上面add_executable()函数中左边的映射名称一致##下面程序rosrun的先是src中功能包名称#hello_vscode 在是功能包中的hello_vscode_c.cpp源文件的映射名称hello_vscode_c
${catkin_LIBRARIES}
)
4.5 编译执行
编译: ctrl + shift + B
然后在vscode下方找到+
号,点击他新建终端,具体操作如下图:
然后在这个窗口启动ros核心,具体操作如下图:
再按回车键。
再点击+号,新建终端窗口,输入source ./devel/setup.bash
,操作页面如下图:
然后再输入rosrun hello_vscode hello_vscode_c
,效果如下图所示: