一、创建一个工作空间
首先创建一个工作空间以及一个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中生成一个功能包,该功能包依赖于roscpp,rospy,std_msgs,其中roscpp是使用C++实现的库,rospy是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
建议写要求性能高,算法复杂的代码用C++,写一些功能简单的工具包的代码使用python。
用鼠标右键点击src,选择create catkin package,在输入框填一个名字hello_vscode
再到输入框输入 roscpp rospy std_msgs
在hello_vscode目录下面新建目录scripts
然后在scripts新建hello_vscode_p.py
然后修改scripts文件权限,右键点击scripts选择以终端方式打开,输入
chmod +x *.py
三、编辑源文件
再到hello_vscode_p.py中写代码
#! /usr/bin/env python #导入包 import rospy #入口 if __name__=="__main__": #初始化ros节点 rospy.init_node("hello_p") #输出日志 rospy.loginfo("hello vscode! 这是python!")
四、编辑配置文件
此时打开与里面src同目录的CmakeLists.txt文件
找到
# catkin_install_python(PROGRAMS
# scripts/my_python_script
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
# )
去掉 #
#
#
#
将scripts/my_python_script改成scripts/hello_vscode_p.py
最后按Ctrl+Shift+B进行编译
#当不配置CmakeLists.txt 执行python文件会抛出异常 #/usr/bin/env :"python":没有那个文件或目录 #原因是:当前ros版本是 noetic ,它使用的是python3 #解决方案 #1、直接声明解释器为python3:#! /usr/bin/env python3(不建议,如果调用别人的代码就可能不能直接修改到他的py文件) #2、通过软链接的方式将python链接到python3(建议) sudo ln -s /usr/bin/python3 /usr/bin/python
五、编译并执行
点击终端里面的+,新建终端
进入工作环境
cd ~/demo02_ws/
roscore
再新开一个终端, 然后再新建终端输入
source ./devel/setup.bash rosrun hello_vscode hello_vscode_p.py
成功后如图所示