2. ubuntu20.04 和VS Code實現 ros的輸出 (C++,Python)

本節對應趙虛左ROS書籍的1.4.2

1)創建工作空間

mkdir -p catkin_ws/src
cd catkin_ws
catkin_make

2) 終端進入VS Code

code .

3) vscoe 的基本配置

? ? ? ? 3.1)修改.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"}]
}

? ? ? ? 3.2)修改 .vsocde/c_cpp_properties.json 修改內容如下:

      "cppStandard": "c++14"-->"cppStandard": "c++17"

在vscode 的終端下 編譯一下

catkin_make

4)創建功能包

????????src目錄下右鍵選中 create catkin package?

? ? ? ? 在彈出的橫框中寫入功能包名 hello_ros? ,回車

? ? ? ? 再輸入依賴 roscpp rospy std_msgs

這樣就新建了一個功能包了

5)在功能包的src目錄下新建cpp文件,并且寫入:

#include "ros/ros.h"
int main(int argc,char *argv[]){setlocale(LC_ALL,"");ros::init(argc,argv,"hello_ros_c");ROS_INFO("He 哈");return 0;
}

6) 或者在功能包下新建scripts ,在scripts目錄下新建python文件,并且寫入:

#! /usr/bin/env pythonimport rospyif __name__ == "__main__":rospy.init_node("hello_ros_p")rospy.loginfo("he 哈")

7) 修改功能包目錄下CMakeLists.txt

? ? ? ? 7.1) C++的修改(136行,149行)

//136行 后面為cpp文件名,前面為自定義節點名(盡量和cpp文件名一樣即可)
add_executable(hello_ros src/hello_ros.cpp)//149行 hello_ros也為前面的節點名target_link_libraries(hello_ros${catkin_LIBRARIES}
)

? ? ? ? 7.2)python的修改

//這里的scripts文件夾要創建,防止報錯 
catkin_install_python(PROGRAMSscripts/hello_ros.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

8)編譯運行

編譯

catkin_make

新建終端打開roscore

roscore

?8.1) cpp執行 rosrun <包名> <節點名>

source ./devel/setup.bash
rosrun hello_ros hello_ros

8.2)?python執行 rosrun <包名> <python文件名>

source ./deve/setup.bash
rosrun hello_ros hello_ros.py

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77491.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SAP系統中MD01與MD02區別

知識點普及&#xff0d;MD01與MD02區別 1、從日常業務中&#xff0c;我們都容易知道MD01是運行全部物料&#xff0c;MD02是運行單個物料 2、在做配置測試中&#xff0c;也出現過MD02可以跑出物料&#xff0c;但是MD01跑不出的情況。 3、MD01與MD02的差異: 3.1、只要在物料主數…

快速迭代收縮-閾值算法(FISTA)

文章目錄 1. 數學與優化基礎2. FISTA 算法的原理、推導與機制3. Matlab 實現4. FISTA 在圖像處理與壓縮感知中的應用4.1. 基于小波稀疏先驗的圖像去噪4.2 壓縮感知圖像重建 1. 數學與優化基礎 在許多信號處理與機器學習問題中&#xff0c;我們希望獲得稀疏解&#xff0c;即解向…

微服務之間打通用戶上下文

微服務之間打通用戶上下文 打通上下文步驟需求&#xff1a;1、gateway網關登錄攔截器&#xff1a;【LoginFilter】解釋&#xff1a;代碼 2、SpringMVC全局處理&#xff1a;【GlobalConfig】解釋&#xff1a;代碼&#xff1a; 3、自定義登錄攔截器&#xff1a;【LoginIntercepto…

Hutool之DateUtil:讓Java日期處理變得更加簡單

前言 在Java開發中&#xff0c;日期和時間的處理是一個常見問題。為了簡化這個過程&#xff0c;許多開發者會使用第三方工具包&#xff0c;如Hutool。Hutool是一個Java工具包&#xff0c;提供了許多實用的功能&#xff0c;其中之一就是日期處理。日期時間工具類是Hutool的核心包…

ES中常用的Query和查詢作用,以及SpringBoot使用實例

ES中常用的Query和查詢作用&#xff0c;以及 SpringBoot 使用實例 文章目錄 ES中常用的Query和查詢作用&#xff0c;以及 SpringBoot 使用實例MatchAllQueryTermQueryBoolQueryRangeQueryMatchQueryMultiMatchQueryTermsQueryPrefixQueryWildcardQueryRegexpQueryFuzzyQueryDis…

Flutter 自定義插件基礎

1、Flutter插件是什么&#xff1f;官方插件庫 在開發Flutter應用過程中會涉及到平臺相關接口調用&#xff0c;例如數據庫操作、相機調用、外部瀏覽器跳轉等業務場景。其實Flutter自身并不支持直接在平臺上實現這些功能&#xff0c;而是通過插件包接口去調用指定平臺API從而實現…

極狐GitLab 外部授權控制機制是怎樣的?

極狐GitLab 是 GitLab 在中國的發行版&#xff0c;關于中文參考文檔和資料有&#xff1a; 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 外部授權控制 (BASIC SELF) 在高度控制的環境中&#xff0c;訪問策略可能需要由外部服務控制&#xff0c;該服務允許基于項目…

Linux系統之----馮諾依曼結構

1.簡要描述 馮諾依曼體系結構是現代計算機的基本設計思想&#xff0c;其核心理念是將計算機的硬件和軟件統一為一個整體&#xff0c;通過存儲程序的方式實現計算。馮諾依曼體系結構的核心思想是通過存儲程序實現自動計算&#xff0c;其五大部件協同工作&#xff0c;奠定了現代…

【八股】計算機網絡

1 概述 1.1 網絡的網絡 網絡把主機連接起來,而互連網(internet)是把多種不同的網絡連接起來,因此互連網是網絡的網絡。而互聯網(Internet)是全球范圍的互連網。 1.2 ISP 互聯網服務提供商 ISP 可以從互聯網管理機構獲得許多 IP 地址,同時擁有通信線路以及路由器等聯…

基于VS Code 為核心平臺的python語言智能體開發平臺搭建

以下是基于 VS Code 為核心平臺&#xff0c;整合 Node-RED、Gradio、Docker Desktop 的智能體可視化開發平臺優化方案&#xff0c;聚焦工具鏈深度集成與開發效率提升&#xff1a; 一、核心架構設計 #mermaid-svg-f8l9kYPAlJ2TlpGF {font-family:"trebuchet ms",verd…

STM32G0單片機自帶RTC

STM32有個自帶RTC外設&#xff0c;外接32.768KHz的晶振后可得到相對精確的計時功能。 實測了一個一小時快個1秒多。 1 cubeMX設置了RTC后自動生成的初始化代碼如下 static void MX_RTC_Init(void) {/* USER CODE BEGIN RTC_Init 0 *//* USER CODE END RTC_Init 0 */RTC_TimeT…

細說STM32單片機FreeRTOS任務管理API函數及多任務編程的實現方法

目錄 一、FreeRTOS任務管理API函數 1、任務管理API函數 2、獲取任務的句柄 &#xff08;1&#xff09;函數xTaskGetCurrentTaskHandle() &#xff08;2&#xff09;函數xTaskGetIdleTaskHandle() &#xff08;3&#xff09;函數xTaskGetHandle() 3、單個任務的操作 &a…

星露谷物語 7000+ 大型MOD整合包

衣服美化、家具美化、地圖美化、人物肖像美化 全地圖裝修存檔、人物美化、擴展包、環境美化、家具、動植物、通用前置包、新增NPC、功能、服裝發飾妝 帽子發型農場小鎮美化大型玩法拓展實用功能mod 動漫人物形象MOD 地點/動物/地圖/功能/機械/家具/建筑/界面美化/擴展/農場/食譜…

C++ `unique_ptr` 多線程使用

C unique_ptr 多線程使用 一、核心結論 操作同一個 unique_ptr&#xff1a;必須加鎖&#xff08;所有權轉移是非原子操作&#xff09;訪問被管理對象&#xff1a;若對象非線程安全&#xff0c;仍需額外同步獨立 unique_ptr 實例&#xff1a;不同線程操作不同實例時無需加鎖 二…

Android audio系統六 AudioEffect音效加載

對于Android系統智能硬件設備&#xff0c;音效處理的實現方式有以下幾種&#xff1a; AudioEffect – android系統音效處理 優點&#xff1a;純軟件實現&#xff0c;移植調試簡單方便 缺點&#xff1a;cpu上運行&#xff0c;容易因為資源競爭而出現卡頓 DSP/ADSP – 數字信號處…

深度學習總結(21)

超越基于常識的基準 除了不同的評估方法&#xff0c;你還應該了解的是利用基于常識的基準。訓練深度學習模型&#xff0c;你聽不到也看不到。你無法觀察流形學習過程&#xff0c;它發生在數千維空間中&#xff0c;即使投影到三維空間中&#xff0c;你也無法解釋它。唯一的反饋…

接口自動化測試(二)

一、接口測試流程&#xff1a;接口文檔、用例編寫 拿到接口文檔——編寫接口用例以及評審——進行接口測試——工具/自動化框架進行自動化用例覆蓋(70%)——輸出測試報告 自動化的目的一般是為了回歸 第一件事情&#xff1a;理解需求&#xff0c;學會看接口文檔 只需要找到我…

Linux上位機開發實踐(以MCU小系統入門嵌入式電路)

【 聲明&#xff1a;版權所有&#xff0c;歡迎轉載&#xff0c;請勿用于商業用途。 聯系信箱&#xff1a;feixiaoxing 163.com】 一直都主張嵌入式軟件工程師&#xff0c;也要會做一點電路設計的工作。哪怕自己做的是嵌入式linux上層開發&#xff0c;一個會硬件設計&#xff0c…

瀏覽器的存儲機制 - Storage

瀏覽器的存儲機制 - Storage 前言一、核心概念與區別二、常用 API1、存儲數據&#xff08;setItem(key, value)&#xff09;2、 獲取數據&#xff08;getItem(key)&#xff09;3、刪除單個數據&#xff08;removeItem(key)&#xff09;4、清空所有數據&#xff08;clear()&…

考研單詞筆記 2025.04.18

chance n機會&#xff0c;風險&#xff0c;冒險&#xff0c;可能性&#xff0c;巧合&#xff0c;意外a偶然的&#xff0c;意外的 opportunity n機會&#xff0c;時機 crisis n危機&#xff0c;危急關頭 the economic crisis 經濟危機 danger n危險&#xff0c;可能性&#…