日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Visual Studio Code 运行ROS

發布時間:2025/5/22 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Visual Studio Code 运行ROS 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Visual Studio Code 運行ROS

    • 學習目標:
    • 操作步驟:
      • Visual Studio Code下載
      • Visual Studio Code安裝與卸載
        • 安裝
          • 方式1:雙擊安裝即可(或右擊選擇安裝)
          • 方式2:sudo dpkg -i xxxx.deb
        • 卸載
        • 集成 ROS 插件
    • 使用步驟
        • 創建 ROS 工作空間
        • 啟動 vscode打開工作空間
        • 使用vscode 編譯 ros
        • 創建 ROS 功能包
          • C++ 實現
          • python 實現
        • 配置 CMakeLists.txt
          • C++ 配置格式:
          • Python 配置格式:
        • 執行ROS功能包
          • 使用C++在控制臺輸出 Hello ROS !!!
          • 使用Python在控制臺輸出 你好 Python
        • 添加launch文件啟動ROS節點
        • 踩坑
        • 總結

學習目標:

Visual Studio Code 運行ROS

環境:

  • 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中的程序即使使用不同的編程語言,實現流程大致如下:

  • 創建工作空間
  • 編譯工作空間
  • 創建ROS功能包
  • 進入ROS包的src目錄編輯源文件
  • 編輯功能包下的Cmakelist.txt文件
  • 進入工作空間目錄并編譯(ROS版本為melodic,Python無需編譯)
  • 配置環境變量
  • 啟動ROS Master 和 執行編寫的源文件

Visual Studio Code下載

進入Visual Studio Code官方找到 Download 的點擊進行下載。

由于使用的操作系統格式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 開發 ROS 程序,需要先安裝一些插件,常用插件如下:

  • Python
  • C/C++
  • CMake Tools
  • ROS

打開插件插件庫,安裝第三方插件。

通過搜索框搜索 CMake Tools和ROS插件。


安裝完成后,加載的插件有以下幾個,就算安裝成功了。

使用步驟

4.vscode 使用_基本配置

創建 ROS 工作空間

格式:

mkdir -p xxx_ws/src(必須得有 src)

例如:

mkdir -p day02_ws/src

創建成功后,會在Home目錄下生成 day02_ws 工作空間

進入剛創建的工作空間

cd ~/day02_ws

編譯工作空間

catkin_make

啟動 vscode打開工作空間

cd ~/day02_ws

創建完工作空間后,要使用vscode打開工作空間,使用以下命令。

code .

在 vscode 中可以看到,工作空間下有以下文件

  • .vscode
  • build:編譯空間
  • devel:開發空間
  • src:代碼空間
  • .catkin_workspace

使用vscode 編譯 ros

在vscode中設置快捷鍵編譯的方法如下:
先使用快捷鍵 ctrl + shift + B 調用編譯選項配置

選擇: catkin_make:build

可以點擊配置設置為默認,修改 .vscode/tasks.json 文件
以下為vscode添加的默認配置。

如果需要設置快捷鍵編譯,把 .vscode/tasks.json 文件的內容全部替換為以下內容:

{ // 有關 tasks.json 格式的文檔,請參見// https://go.microsoft.com/fwlink/?LinkId=733558"version": "2.0.0","tasks": [{"label": "catkin_make:debug", //代表提示的描述性信息"type": "shell", //可以選擇shell或者process,如果是shell代碼是在shell里面運行一個命令,如果是process代表作為一個進程來運行"command": "catkin_make",//這個是我們需要運行的命令"args": [],//如果需要在命令后面加一些后綴,可以寫在這里,比如-DCATKIN_WHITELIST_PACKAGES=“pac1;pac2”"group": {"kind":"build","isDefault":true},"presentation": {"reveal": "always"//可選always或者silence,代表是否輸出信息},"problemMatcher": "$msCompile"}] }

創建 ROS 功能包

選定 src 右擊 —> create catkin package


設置包名

hello_world_c


設置完包名后,按下回車,需要繼續設置依賴

添加依賴

roscpp rospy std_msgs


依賴添加成功后,會自動生成 hello_world_c 功能包所需要的相關文件。
注意:使用快捷鍵 ctrl + shift + B 調用編譯,可以驗證加入的依賴是否正確。

C++ 實現

在功能包的 src 下新建 cpp 文件

以下為hello_ros_c.cpp文件內容

/*控制臺輸出 Hello ROS !!! */ #include "ros/ros.h"int main(int argc, char *argv[]) {setlocale(LC_ALL,""); // 防止輸出日志亂碼//執行節點初始化ros::init(argc,argv,"HelloVSCode");//輸出日志ROS_INFO("Hello ROS !!!");return 0; }

注:: main 函數的參數不可以被 const 修飾

python 實現

在 功能包 下新建 scripts 文件夾,添加 python 文件,并添加可執行權限


以下為hello_ros_p.py文件內容

#-*- coding: UTF-8 -*- #! /usr/bin/env python ##指定解釋器# 1.導包 import rospy #2.編寫主入口 if __name__ == "__main__":# 3.初始化 ROS 節點rospy.init_node("hello_world") # 4.輸出日志rospy.loginfo("你好 Python ....")

選擇Open in Integrated Terminal (在集成終端中打開)。

給所有的Python文件加上可執行權限

chmod +x *.py

通過以下命令查看Python文件的權限

ls -l

配置 CMakeLists.txt

C++ 配置格式:
add_executable(節點名稱src/C++源文件名.cpp ) target_link_libraries(節點名稱${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 編譯

執行ROS功能包

打開vscode自帶的終端啟動編寫好的ros項目,可以在vscode中打開多個終端,執行以下命令。

roscore


配置環境變量

source ./devel/setup.bash
使用C++在控制臺輸出 Hello ROS !!!
rosrun hello_world_c hello_ros_c

使用Python在控制臺輸出 你好 Python
rosrun hello_world_c hello_ros_p.py

添加launch文件啟動ROS節點

創建launch文件

在launch文件配置以下信息

<launch><node pkg="hello_world_c" type="hello_ros_c" name="hello" output="screen" /><node pkg="hello_world_c" type="hello_ros_c" name="hello" output="screen" /> </launch>

設置環境變量

source ~/工作空間名/devel/setup.bash

使用以下命令啟動launch文件

roslaunch hello_world_c start_turtle.launch roslaunch 功能包名 自定義launch文件名.launch

launch文件的使用:https://blog.csdn.net/qq_44989881/article/details/118607995

踩坑

注意1.:當使用C++編寫的ROS__INFO 終端輸出有中文時,會出現亂碼

INFO: ???

解決辦法:在函數開頭加入下面代碼的任意一句

setlocale(LC_CTYPE, "zh_CN.utf8"); setlocale(LC_ALL, "");


當使用Python編寫的loginfo終端輸出有中文時,會出現以下錯誤

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” 后面添加幾條內容,其它地方無需修改。

修改完后的.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: 創建一個鏈接符號到 python 命令:

sudo ln -s /usr/bin/python3 /usr/bin/python

解決3:
在 CMakeLists.txt 文件下 添加以下內容

catkin_install_python(PROGRAMSscripts/自定義文件名.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )

總結

編譯: ctrl + shift + B

執行: 和之前一致,只是可以在 VScode 中添加終端,首先執行:

source ./devel/setup.bash

使用其它開發工具集成ROS插件:http://wiki.ros.org/IDEs

總結

以上是生活随笔為你收集整理的使用Visual Studio Code 运行ROS的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。