用C++或python通过VScode来实现最简单的程序,即输出“hello world!”
- 创建工作空间(同前)
使用下列代码来实现工作空间的创建并进行编译
mkdir -p demo02_ws/src
#(必须得有 src)
cd doemo02_ws
catkin_make
- 启动VScode
使用下列命令启动VScode
cd demo02_ws
code .
- VScode中编译ROS(*)
使用快捷键ctrl+shift+B可调用编译,第一次使用需配置设置,后续编译可用该快捷键默认编辑整个工作空间。选择catkin_make:build,生成默认的配置文件,在文件中一定需更改group行:
#实际操作发现只用做下边修改即可成功运行
"group": {"kind":"build","isDefault":true}
#教程也提供了完整的配置文件
{
// 有关 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"
}
]
}
- 创建ROS功能包
在src右击—>create catkin package—>包名:hello_vscode;回车—>依赖:roscpp rospy std_msgs;回车 - 编写代码
- 使用C++
在hello_vscode/src中新建文件:hello_vscode_c.cpp,编辑代码:
#include "ros/ros.h"
int main(int argc, char *argv[])//这个地方需要删去const
{
setlocale(LC_ALL,"");
//执行节点初始化
ros::init(argc,argv,"HelloVSCode");
//输出日志
ROS_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");
return 0;
}
- 使用python
在功能包(hello_vscode/)下新建 scripts 文件夹,添加 python 文件:hello_vscode_p.py,编辑代码:
#! /usr/bin/env python
import rospy # 1.导包
if __name__ == "__main__":
rospy.init_node("Hello_Vscode_p") # 2.初始化 ROS 节点
#节点名貌似是可以随便取
rospy.loginfo("Hello VScode, 我是 Python ....") #3.日志输出 HelloWorld
- 一些注意事项
- 使用C++
①编辑代码时出现不能自动补全,或者声明包含头文件行出现错误提示时,可按如下操作进行修改,打开.vscode/c_cpp_properties.json文件,修改或添加以下代码
"cppStandard": "c++17"
②输入main后回车即可生成main函数形式,但注意main函数不能被const修饰,const需删去;
③当ROS__INFO终端中有中文时,会出现乱码,可在主函数开头添加下列任一行命令:
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, "");
- 使用python
python程序完成后,需要修改文件权限:
scripts右击—>在终端中打开—>在终端中输入:
chmod +X *.py//对工作空间所有python文件添加可执行权限
ll
- 配置CMake.List.txt
双击打开CMake.List.txt文件,可将纯文本改成Makefile,更美观
- C++配置
add_executable(hello_vscode_c src/hello_vscode_c.cpp)
target_link_libraries(hello_vscode_c
${catkin_LIBRARIES}
)
- python配置
catkin_install_python(PROGRAMS scripts/hello_vscode.p.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
- 编译并执行
对程序进行编译;重新打开一个终端,使用roscore启动ros核心;在一个新的终端中使用下列代码进行环境变量的设置
source ./devel/setup.bash
- C++运行
rosrun hello_vscode hello_vscode_c
- python运行
rosrun hello_vscode hello_vscode_p.py
http://www.autolabor.com.cn/book/ROSTutorials/chapter1/14-ros-ji-cheng-kai-fa-huan-jing-da-jian/142-an-zhuang-vscode.html