目錄
一、創建一個工作空間
二、再創建一個功能包
三、編輯源文件
四、編輯配置文件
五、編譯並執行
首先創建一個工作空間以及一個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
成功後如圖所示
In this article, we continue t
I changed my profession from c