一、创建一个工作空间
首先创建一个工作空间以及一个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
成功后如图所示