目录
首先创建一个工作空间以及一个src子目录,然后再进入工作空间调用catkin_make命令编译
- mkdir -p demo02_ws/src
-
- cd demo02_ws/
-
- catkin_make
启动VScode
code .
按Ctrl+Shift+B,点击catkin_make:build

将里面的文本全部替换
- {
- "version": "2.0.0",
- "tasks": [
- {
- "type": "catkin_make",
- "problemMatcher": [
- "$catkin-gcc"
- ],
- "group": "build",
- "label": "catkin_make: build"
- }
- ]
- }
-
- 将上面代码全部替换成下面代码
-
- {
- "version": "2.0.0",
- "tasks": [
- {
- "label":"catkin_make:debug",
- "type": "shell",
- "command":"catkin_make",
- "args":[],
- "group": {"kind":"build","isDefault":true},
- "presentation":{
- "reveal":"always"
- },
- "problemMatcher":"$msCompile"
- }
- ]
- }
这样做的目的是为了方便编译,以后在VScode中按Ctrl+Shift+B就可以实现编译
用鼠标右键点击src,选择create catkin package,在输入框填一个名字hello_vscode
再到输入框输入 roscpp rospy std_msgs

在src中生成一个功能包,该功能包依赖于roscpp,rospy,std_msgs,其中roscpp是使用C++实现的库,rospy是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
建议写要求性能高,算法复杂的代码用C++,写一些功能简单的工具包的代码使用python。
鼠标右键点击里面的src,新建文件hello_vscode_c.cpp

点击c_cpp_properties.json,将文件里面的gun++14修改成c++17,关闭保存该文件
再到hello_vscode_c.cpp中写代码
- //1.包含ros的头文件
- #include"ros/ros.h"
- //2.编写main函数
- int main(int argc,char *argv[]){
- //3.初始化ros节点
- ros::init(argc,argv,"hello");
- //4.输出日志
- ROS_INFO("haha");
- return 0;
- }
此时打开与里面src同目录的CmakeLists.txt文件
找到
# add_executable(${PROJECT_NAME}_node src/hello_vscode_node.cpp)
去掉 #
将helloworld_vscode_node.cpp改成helloworld_vscode_c.cpp
将${PROJECT_NAME}_node改称自定义名字如helloworld_vscode_c
找到
# target_link_libraries(${PROJECT_NAME}_node
#${catkin_LIBRARIES}
#)
去掉 #
#
#
将${PROJECT_NAME}_node改称自定义名字如helloworld_vscode_c
最后按Ctrl+Shift+B进行编译
点击终端里面的+,新建终端

编译成功后新开一个终端
cd ~/demo02_ws/
roscore
然后再新建终端输入
source ./devel/setup.bash
rosrun hello_vscode hello_vscode_c
成功后如图所示
