vscode 使用的基本配置
1 创建 ROS 工作空间
mkdir -p xxx_ws/src //必须得有 src
cd xxx_ws/
catkin_make
2 启动 vscode
cd xxx_ws/
code .
3 vscode 中编译 ros
快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build
可以点击配置设置为默认,修改.vscode/tasks.json 文件
复制下面的代码替换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"
}
]
}
3.1 创建 ROS 功能包
选定 src 右击 —> create catkin package
3.2 设置包名 hello_vscode
回车一下
3.3 添加依赖 roscpp rospy std_msgs
回车一下
C++实现
- 在功能包的 src 下新建 cpp 文件,例如命名为:hello_vscode_c.cpp
#include "ros/ros.h"
int main(int argc, char *argv[]){
//执行节点初始化
ros::init(argc,argv,"hellovscode");
//输出日志
ROS_INFO("Hello vscode!");
return 0;
}
ctrl+shift+k删除一行代码。
注:(1) 如果没有代码提示
修改 .vscode/c_cpp_properties.json
设置 “cppStandard”: “c++17”
保存一下。
(2) main 函数的参数不可以被 const 修饰
- 编辑 ros 包下的 Cmakelist.txt文件
快捷键:ctrl+/ 自动加/去注释
3.编译 ctrl+shift+b编译一下,出现百分之一百没有错误,红色字体就有错误。
4. 执行
点+添加新的终端
(1)输入 roscore
(2)点+添加新的终端,输入:
source ./devel/setup.bash
rosrun hello_vscode hello_vscode_c
注意:当ROS__INFO 终端输出有中文时,会出现乱码
修改.Cpp文件,重新编译一下。
解决办法:在函数开头加入下面代码的任意一句
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, "");
Python实现
- 在ros 包新建scripts 在scripts文件下新建 文件名.py 文件,并且编辑;记得编译。
- python代码:
import rospy
if __name__ == "__main__":
rospy.init_node("Hello")
rospy.loginfo("hellovscode! by python")
- 为 python 文件添加可执行权限
chmod +x 自定义文件名.py
ll
- notenic版本的ROS需要编辑 ros 包下的 CamkeList.txt 文件,其他版本不需要,配置完编译。
catkin_install_python(PROGRAMS scripts/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
- 执行
先启动命令行1:roscore
再启动命令行2:
source ./devel/setup.bash
rosrun 包名 自定义文件名.py
注:Python可以直接输出中文,如果不可以,在开头处声明Python使用UTF-8编码显示字符
# -*- coding: UTF-8 -*-