1. 基本配置
1.1 创建ROS工作空间
cd入工作空间保存的目录
mkdir -p xxx_ws/src
cd xxx_ws
- 若使用python解释器为
/usr/bin/python3
,则catkin_make
- 若安装了其他python虚拟环境,则
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
由此创建了一个干净的catkin工作区
1.2 启动VScode
进入xxx_ws启动VScode
cd xxx_ws
code .
1.3 VScode中编译ROS
- 快捷键
Ctrl+shift+B
调用编译,选择catkin_make:build
- 可以点击配置设置为默认,按如下修改
.vscode/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"
}
]
}
1.4 创建ROS功能包
- 选定src文件夹右击 —>
create catkin package
- 设置包名。如
hello_vscode
。 - 添加依赖项。如
roscpp rospy std_msgs
1.5 编辑C++源码
在功能包的src目录下添加cpp源文件。例如如下
/*
控制台输出 HelloVSCode !!!
*/
#include "ros/ros.h"
int main(int argc, char *argv[])
{
//解决汉字乱码问题
setlocale(LC_ALL,"");
//执行节点初始化
ros::init(argc,argv,"HelloVSCode");
//输出日志
ROS_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");
return 0;
}
1.6 编辑Python源码
- 在功能包下新建scripts文件夹,然后添加py源文件。例如如下
#! /usr/bin/env python
"""
Python 版本的 HelloVScode,执行在控制台输出 HelloVScode
实现:
1.导包
2.初始化 ROS 节点
3.日志输出 HelloWorld
"""
import rospy # 1.导包
if __name__ == "__main__":
rospy.init_node("Hello_Vscode_p") # 2.初始化 ROS 节点
rospy.loginfo("Hello VScode, 我是 Python ....") #3.日志输出 HelloWorld
- 为py文件添加可执行权限
cd scripts
chmode +x *.py
1.7 配置CmakeLists.txt
- C++配置
add_executable(节点名称
src/C++源文件名.cpp
)
target_link_libraries(节点名称
${catkin_LIBRARIES}
)
- Python配置
catkin_install_python(PROGRAMS
scripts/自定义文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
1.8 编译执行
- 编译:
Ctrl+Shift+B
- VScode开多个终端执行:
roscore
: 终端1开启roscd xxx_ws
source ./devel/setup.bash
rosrun 功能包名 C++节点名称
rosrun 功能包名 自定义文件名.py