使用Visual Studio Code 运行ROS
Visual Studio Code 運行ROS
- 學(xué)習(xí)目標(biāo):
- 操作步驟:
- Visual Studio Code下載
- Visual Studio Code安裝與卸載
- 安裝
- 方式1:雙擊安裝即可(或右擊選擇安裝)
- 方式2:sudo dpkg -i xxxx.deb
- 卸載
- 集成 ROS 插件
- 使用步驟
- 創(chuàng)建 ROS 工作空間
- 啟動 vscode打開工作空間
- 使用vscode 編譯 ros
- 創(chuàng)建 ROS 功能包
- C++ 實現(xiàn)
- python 實現(xiàn)
- 配置 CMakeLists.txt
- C++ 配置格式:
- Python 配置格式:
- 執(zhí)行ROS功能包
- 使用C++在控制臺輸出 Hello ROS !!!
- 使用Python在控制臺輸出 你好 Python
- 添加launch文件啟動ROS節(jié)點
- 踩坑
- 總結(jié)
學(xué)習(xí)目標(biāo):
Visual Studio Code 運行ROS
環(huán)境:
- ubuntu:18.04.5 LTS
- VMware:15.5.0
- Visual Studio Code:1.59.0
- ROS:melodic
- Python:3.6.9
- gcc:7.5.0
Visual Studio Code下載:https://code.visualstudio.com/docs?start=true
Visual Studio Code 歷史版本下載鏈接: https://code.visualstudio.com/updates
操作步驟:
ROS中的程序即使使用不同的編程語言,實現(xiàn)流程大致如下:
- 創(chuàng)建工作空間
- 編譯工作空間
- 創(chuàng)建ROS功能包
- 進入ROS包的src目錄編輯源文件
- 編輯功能包下的Cmakelist.txt文件
- 進入工作空間目錄并編譯(ROS版本為melodic,Python無需編譯)
- 配置環(huán)境變量
- 啟動ROS Master 和 執(zhí)行編寫的源文件
Visual Studio Code下載
進入Visual Studio Code官方找到 Download 的點擊進行下載。
由于使用的操作系統(tǒng)格式ubuntu,選擇 .deb 64bit 進行下載。
以下是下載完以后在電腦本地的安裝包。
Visual Studio Code安裝與卸載
安裝
方式1:雙擊安裝即可(或右擊選擇安裝)
方式2:sudo dpkg -i xxxx.deb
sudo dpkg -i code_1.59.0-1628120042_amd64.deb
把Visual Studio Code添加到收藏夾
Show Applications → 搜索 Visual Studio Code → 右擊選擇 Add to Favorites
以下為啟動 Visual Studio Code,看到的界面。
卸載
使用以下指令卸載 Visual Studio Code
sudo dpkg --purge code集成 ROS 插件
使用 VScode 開發(fā) ROS 程序,需要先安裝一些插件,常用插件如下:
- Python
- C/C++
- CMake Tools
- ROS
打開插件插件庫,安裝第三方插件。
通過搜索框搜索 CMake Tools和ROS插件。
安裝完成后,加載的插件有以下幾個,就算安裝成功了。
使用步驟
4.vscode 使用_基本配置
創(chuàng)建 ROS 工作空間
格式:
mkdir -p xxx_ws/src(必須得有 src)例如:
mkdir -p day02_ws/src創(chuàng)建成功后,會在Home目錄下生成 day02_ws 工作空間
進入剛創(chuàng)建的工作空間
編譯工作空間
catkin_make啟動 vscode打開工作空間
cd ~/day02_ws創(chuàng)建完工作空間后,要使用vscode打開工作空間,使用以下命令。
code .在 vscode 中可以看到,工作空間下有以下文件
- .vscode
- build:編譯空間
- devel:開發(fā)空間
- src:代碼空間
- .catkin_workspace
使用vscode 編譯 ros
在vscode中設(shè)置快捷鍵編譯的方法如下:
先使用快捷鍵 ctrl + shift + B 調(diào)用編譯選項配置
選擇: catkin_make:build
可以點擊配置設(shè)置為默認(rèn),修改 .vscode/tasks.json 文件
以下為vscode添加的默認(rèn)配置。
如果需要設(shè)置快捷鍵編譯,把 .vscode/tasks.json 文件的內(nèi)容全部替換為以下內(nèi)容:
創(chuàng)建 ROS 功能包
選定 src 右擊 —> create catkin package
設(shè)置包名
設(shè)置完包名后,按下回車,需要繼續(xù)設(shè)置依賴
添加依賴
roscpp rospy std_msgs
依賴添加成功后,會自動生成 hello_world_c 功能包所需要的相關(guān)文件。
注意:使用快捷鍵 ctrl + shift + B 調(diào)用編譯,可以驗證加入的依賴是否正確。
C++ 實現(xiàn)
在功能包的 src 下新建 cpp 文件
以下為hello_ros_c.cpp文件內(nèi)容
/*控制臺輸出 Hello ROS !!! */ #include "ros/ros.h"int main(int argc, char *argv[]) {setlocale(LC_ALL,""); // 防止輸出日志亂碼//執(zhí)行節(jié)點初始化ros::init(argc,argv,"HelloVSCode");//輸出日志ROS_INFO("Hello ROS !!!");return 0; }注:: main 函數(shù)的參數(shù)不可以被 const 修飾
python 實現(xiàn)
在 功能包 下新建 scripts 文件夾,添加 python 文件,并添加可執(zhí)行權(quán)限
以下為hello_ros_p.py文件內(nèi)容
#-*- coding: UTF-8 -*- #! /usr/bin/env python ##指定解釋器# 1.導(dǎo)包 import rospy #2.編寫主入口 if __name__ == "__main__":# 3.初始化 ROS 節(jié)點rospy.init_node("hello_world") # 4.輸出日志rospy.loginfo("你好 Python ....")選擇Open in Integrated Terminal (在集成終端中打開)。
給所有的Python文件加上可執(zhí)行權(quán)限
chmod +x *.py通過以下命令查看Python文件的權(quán)限
ls -l配置 CMakeLists.txt
C++ 配置格式:
add_executable(節(jié)點名稱src/C++源文件名.cpp ) target_link_libraries(節(jié)點名稱${catkin_LIBRARIES} )配置如下:
add_executable(hello_ros_csrc/hello_ros_c.cpp ) target_link_libraries(hello_ros_c${catkin_LIBRARIES} )Python 配置格式:
Python 配置:
catkin_install_python(PROGRAMS scripts/自定義文件名.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )配置如下:
catkin_install_python(PROGRAMSscripts/hello_ros_p.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )配置完成后,使用快捷鍵 ctrl + shift + B 編譯
執(zhí)行ROS功能包
打開vscode自帶的終端啟動編寫好的ros項目,可以在vscode中打開多個終端,執(zhí)行以下命令。
roscore
配置環(huán)境變量
使用C++在控制臺輸出 Hello ROS !!!
rosrun hello_world_c hello_ros_c使用Python在控制臺輸出 你好 Python
rosrun hello_world_c hello_ros_p.py添加launch文件啟動ROS節(jié)點
創(chuàng)建launch文件
在launch文件配置以下信息
設(shè)置環(huán)境變量
source ~/工作空間名/devel/setup.bash使用以下命令啟動launch文件
roslaunch hello_world_c start_turtle.launch roslaunch 功能包名 自定義launch文件名.launchlaunch文件的使用:https://blog.csdn.net/qq_44989881/article/details/118607995
踩坑
注意1.:當(dāng)使用C++編寫的ROS__INFO 終端輸出有中文時,會出現(xiàn)亂碼
INFO: ???
解決辦法:在函數(shù)開頭加入下面代碼的任意一句
setlocale(LC_CTYPE, "zh_CN.utf8"); setlocale(LC_ALL, "");
當(dāng)使用Python編寫的loginfo終端輸出有中文時,會出現(xiàn)以下錯誤
SyntaxError: Non-ASCII character ‘\xe7’ in file /home/vvcat/day02_ws/src/hello_world_c/scripts /hello_ros_p.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
解決辦法:在Python文件的開頭加上以下代碼
#-*- coding: UTF-8 -*-注意2.:如果在編寫c++代碼沒有代碼提示
需要修改 .vscode/c_cpp_properties.json 文件。
我的.vscode/c_cpp_properties.json文件如下
{"configurations": [{"browse": {"databaseFilename": "","limitSymbolsToIncludedHeaders": true},"includePath": ["/home/vvcat/catkin_ws/devel/include/**","/opt/ros/melodic/include/**","/home/vvcat/catkin_ws/src/test_pkg/include/**","/usr/include/**"],"name": "ROS",}],"version": 4 }在 “name”: “ROS”,后面添加了
"intelliSenseMode": "gcc-x64","compilerPath": "/usr/bin/gcc","cStandard": "gnu17","cppStandard": "c++17"添加后成功解決代碼提示問題。
注:除了 “name”: “ROS” 后面添加幾條內(nèi)容,其它地方無需修改。
修改完后的.vscode/c_cpp_properties.json文件如下:
{"configurations": [{"browse": {"databaseFilename": "","limitSymbolsToIncludedHeaders": true},"includePath": ["/home/vvcat/catkin_ws/devel/include/**","/opt/ros/melodic/include/**","/home/vvcat/catkin_ws/src/test_pkg/include/**","/usr/include/**"],"name": "ROS","intelliSenseMode": "gcc-x64","compilerPath": "/usr/bin/gcc","cStandard": "gnu17","cppStandard": "c++17"}],"version": 4 }注意3.:
如果拋出異常: /usr/bin/env: “python”: 沒有那個文件或目錄
解決1:Linux中在代碼的第一行解釋器聲明,可以使用絕對路徑定位到 python3 的安裝路徑
#! /usr/bin/python3或
# !/usr/bin/python解決2: 創(chuàng)建一個鏈接符號到 python 命令:
sudo ln -s /usr/bin/python3 /usr/bin/python解決3:
在 CMakeLists.txt 文件下 添加以下內(nèi)容
總結(jié)
編譯: ctrl + shift + B
執(zhí)行: 和之前一致,只是可以在 VScode 中添加終端,首先執(zhí)行:
source ./devel/setup.bash使用其它開發(fā)工具集成ROS插件:http://wiki.ros.org/IDEs
總結(jié)
以上是生活随笔為你收集整理的使用Visual Studio Code 运行ROS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Raspberry 4B 串口通信
- 下一篇: 使用 Termux 查看连接到手机热点的