VMware+Ubuntu+VScode+ROS一站式教學+常見問題解決

目錄

一.VMware的安裝

二.Ubuntu下載

1.前言

2.Ubuntu版本選擇

三.VMware中Ubuntu的安裝

四.Ubuntu系統基本設置

1.中文更改

2.中文輸入法更改

3. 輔助工具?vmware tools?

五.VScode的安裝+ros基本插件

1.安裝

2.ros輔助插件下載

六.ROS安裝

1.安裝ros

2.配置ROS環境變量

3.ROS經典案例烏龜教程

(1)啟動ros

(2)啟動圖形端

(3)啟動控制端

七.VScode集成ros

1.插件準備

2.項目創建

(1)工作空間創建

(2)環境配置

1.編譯

2.前置準備

3.運行

(1)官方版運行方法

(2)vscode內部命令

(3)最終結果

八.常見問題解決

1.未啟動ros就運行

2.ros路徑報錯


一.VMware的安裝

這個比較簡單去官網下載對應版本的正版VMware Workstation,然后去百度對應版本的密鑰激活即可,如果有不會的可以去搜索其他博主的博客看看,這里不再贅述。

二.Ubuntu下載

1.前言

首先先確定你要下載ROS1還是ROS2,然后確定下載哪個版本,畢竟ROS2有jazzyRolling,Humble 等等版本,ROS1目前還在支持的版本就是Noetic(推薦使用)。

?我來解釋下為什么先選擇ros版本,因為Ubuntu版本和ros版本息息相關,簡單來說就是有一個版本對應關系,比如目前最新的Ubuntu24.04支持ROS2的jazzy等版本,而Ubuntu20.04支持ROS1的Noetic還有ROS2的foxy,galactic,rolling,noetic等版本,所以先確定版本是很有必要的。版本不對應可能會出現些許奇奇怪怪的問題。


2.Ubuntu版本選擇

這里我以ROS1的noetic為例

(1)去Ubuntu官網?20.04版本的Ubuntu?到達后如下圖所示,

(2)下載完后是一個iso格式的映像文件,也是待會在虛擬機中安裝Ubuntu所要的iso文件。

三.VMware中Ubuntu的安裝

我的是VMware16PRO

按下圖的步驟來即可,點擊創建新的虛擬機

選擇推薦,(如果知道自定義選項具體干什么的也可以選擇第二個自己調整)

這個自己填寫即可,密碼盡量別太難記,別忘了就行。

這個安裝路徑盡量別在C盤,改成其他盤,如果C盤很大請忽略。

分配的大小看自己配置盡量多分配點

選擇自定義硬件

這東西不同配置都不一樣,根據配置來填,盡可能分配多一點,不然會很卡。

然后出現以下幾個階段,等待即可,可能會比較漫長。

中間會出現一些登錄等設置,點右上角skip即可(桌面上有兩個是我測試用的,初次安裝沒有)

四.Ubuntu系統基本設置

1.中文更改

按圖示步驟

中間出現選項就選install

找到簡體中文,點擊apply

然后回到

然后就是中文了

2.中文輸入法更改

然后點擊添加即可。

作者:在Ubuntu24.04中默認有中文,無需下載。

3. 輔助工具?vmware tools?

這個可以讓虛擬機與外界數據交換,就是可以自由復制粘貼(指的是虛擬機內與自己的電腦之間),這個版本的Ubuntu自帶?vmware tools。如果是沒有自帶的Ubuntu版本,請自行通過命令下載

sudo apt-get autoremove open-vm-toolssudo apt-get install open-vm-tools-desktopsudo reboot // 重啟電腦

五.VScode的安裝+ros基本插件

1.安裝

找到應用商店并打開,也可瀏覽器搜VScode官網下載。

2.ros輔助插件下載

中文不會換的看我的另一篇博客??vscode漢化

一些輔助插件自行下載

六.ROS安裝

1.安裝ros

這里照顧新手,則使用魚香ROS大佬部署的工具安裝,新手也能輕松安裝。

打開一個新終端輸入(注意liunx粘貼是CTRL+SHIFT+V,復制是CTRL+SHIFT+C),回車

wget http://fishros.com/install -O fishros && . fishros

輸入密碼后出現下面的界面

選擇第一個,即輸入1

然后再輸入1,再輸入2

然后等待更換源

選擇你要安裝的版本,這里Ubuntu的版本不同,ROS的版本也不同。

推薦選noetic,然后選擇桌面版

然后等待即可。出現下面即為安裝成功!!!

2.配置ROS環境變量

再次打開新終端,輸入

wget http://fishros.com/install -O fishros && . fishros

選擇4,等待環境配置完畢。

該工具還有其他功能,可自行探索。

3.ROS經典案例烏龜教程

(1)啟動ros
roscore

(2)啟動圖形端

打開一個新終端(ctrl+shift+t),輸入

rosrun turtlesim turtlesim_node

然后小烏龜就出來了?

(3)啟動控制端

再打開一個新終端,輸入

rosrun turtlesim turtle_teleop_key

焦點必須在該終端內,按小鍵盤的上下左右即可控制烏龜(烏龜樣貌隨機),碰到邊緣會有小彩蛋。

七.VScode集成ros

1.插件準備

前面說過了,這里再提一下

2.項目創建

(1)工作空間創建

新建一個任意名稱的父級文件夾,里面包含一個名為src(必須是src)。

然后把父級文件夾在終端中打開,輸入

catkin_make

等待即可

(2)環境配置

在vscode內打開。在剛才的終端輸入

code .

即可快捷打開VS code,也可先打開vscode,再打開文件夾。

(2)創建功能包

右鍵src文件夾,點擊紅框所示

上方框內會讓你輸入功能包名,任意即可。

然后會讓你選擇依賴,常用的就是roscpp?rospy?std_msgs,這里使用cpp演示,所以我輸入roscpp。

會出現下圖的目錄結構

右鍵.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"
}
]
}

在src文件夾下新建一個helloworld.cpp文件用來測試,內容為

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

在CMakeLists.txt中加入

//137 行
add_executable(helloworld
src/helloworld.cpp
)
//152 行
target_link_libraries(helloworld
${catkin_LIBRARIES}
)


(3)編譯和運行

1.編譯

ctrl+shift+b進行編譯,這種方法會將可執行文件生成在devel。

2.前置準備

運行程序我們需要打開一個ROS MASTER。

(1)第一種方法

打開一個新終端輸入roscore即可,如下:

roscore

    (2)第二種方法

    vscode里面可以執行直接執行指令,代替了第一種方法,不需要來會反復切換終端,減少了麻煩。
    執行快捷鍵ctrl + shfit + p輸入ROS:Start,即可打開ROS MASTER,如果想要關閉,執行ROS:Stop即可。

    3.運行
    (1)官方版運行方法

    打開一個新終端輸入rosrun 包名 節點名稱即可,如下:
    在這里我的包名helloworld,節點名稱helloworld

    rosrun helloworld helloworld
    
    (2)vscode內部命令

    執行快捷鍵ctrl + shfit + p輸入ROS:Run a Ros executable,代替了在終端調用rosrun helloworld helloworld指令的操作,依次輸入你創建的功能包的名稱以及節點名稱(即編譯成功后二進制文件的名稱)

    參考至https://blog.csdn.net/g944468183/article/details/123759886?spm=1001.2014.3001.5506

    然后回車等待即可。

    (3)最終結果

    到此如果沒有問題那么ros安裝完成。

    八.常見問題解決

    1.未啟動ros就運行

    報錯代碼

    [ERROR] [1743315426.567311745]: [registerPublisher] Failed to contact master at [localhost:11311].  Retrying...
    

    解決辦法

    在終端輸入roscore啟動ros

    roscore
    2.ros路徑報錯

    問題描述:找不到ros/ros.h頭文件

    可能的原因1:你安裝的是ros2,ros2的架構和ros1不同,ros2是不存在ros.h文件的,請下載ros1再試。

    可能的原因2:路徑出錯

    如果安裝了ros插件一般是不會有問題的。


    如果還有問題可以留言,有時間會進行更新常見問題解決。

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

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

    相關文章

    PostgreSQL pg_repack 重新組織表并釋放表空間

    pg_repack pg_repack是 PostgreSQL 的一個擴展,它允許您從表和索引中刪除膨脹,并可選擇恢復聚集索引的物理順序。與CLUSTER和VACUUM FULL不同,它可以在線工作,在處理過程中無需對已處理的表保持獨占鎖定。pg_repack 啟動效率高&a…

    5G_WiFi_CE_射頻輸出功率、發射功率控制(TPC)和功率密度測試

    目錄 一、規范要求 1、法規目錄: (1)RF Output Power (2)Transmit Power Control (TPC) (3)Power Density 2、限值: 二、EIRP測試方法 (1)測試條件 (2&#xff…

    掃描線離散化線段樹解決矩形面積并-洛谷P5490

    https://www.luogu.com.cn/problem/P5490 題目描述 求 n n n 個四邊平行于坐標軸的矩形的面積并。 輸入格式 第一行一個正整數 n n n。 接下來 n n n 行每行四個非負整數 x 1 , y 1 , x 2 , y 2 x_1, y_1, x_2, y_2 x1?,y1?,x2?,y2?,表示一個矩形的四個…

    Java項目之基于ssm的簡易版營業廳寬帶系統(源碼+文檔)

    項目簡介 簡易版營業廳寬帶系統實現了以下功能: 此營業廳寬帶系統利用當下成熟完善的SSM框架,使用跨平臺的可開發大型商業網站的Java語言,以及最受歡迎的RDBMS應用軟件之一的Mysql數據庫進行程序開發。實現了營業廳寬帶系統基礎數據的管理&…

    從入門到入土,SQLServer 2022慢查詢問題總結

    列為,由于公司原因,作者接觸了一個SQLServer 2022作為數據存儲到項目,可能是上一任的哥們兒離開的時候帶有情緒,所以現在項目的主要問題就是,所有功能都實現了,但是就是慢,列表頁3s打底,客戶很生氣,經過幾周摸爬滾打,作以下總結,作為自己的成長記錄。 一、索引問題…

    PDF處理控件Aspose.PDF教程:在Python、Java 和 C# 中旋轉 PDF 文檔

    您是否希望快速輕松地在線旋轉PDF文檔?無論您需要修復文檔的方向還是只想重新排列頁面,本指南都能滿足您的需求。有簡單的方法可以解決此問題 - 無論您喜歡在線工具還是編程解決方案。 在本指南中,我們將向您展示如何免費在線旋轉 PDF&#…

    編譯原理:first集和follow

    一、First 集(首符號集) 定義: 對于符號(非終結符或終結符)或符號串,First 集是該符號串能夠推導出的所有可能開頭的終結符的集合。若符號串可以推導出空串(ε),則 ε 也…

    python實現簡單fast-cgi服務,對接到nginx

    python代碼 import socket import struct import threading# FastCGI 頭格式(8 字節) FCGI_HEADER_FORMAT "!BBHHBx" FCGI_VERSION 1 FCGI_TYPE_BEGIN_REQUEST 1 FCGI_TYPE_PARAMS 4 FCGI_TYPE_STDIN 5 FCGI_TYPE_STDOUT 6 FCGI_TYPE_E…

    vue開始時間小于等于結束時間,且開始時間小于等于系統時間,時間格式:年月日時分

    // 日期配置 export const DATA_CONFIGS [{itemKey: "startDate",startDateKey: "startDate",endDateKey: "endDate",isStart: true,},{itemKey: "endDate",startDateKey: "startDate",endDateKey: "endDate",is…

    PyCharm 下載與安裝教程:從零開始搭建你的 Python 開發環境

    PyCharm 是一款專為 Python 開發設計的集成開發環境(IDE),它提供了強大的代碼編輯、調試、版本控制等功能,是 Python 開發者的必備工具之一。如果你是初學者,或者正在尋找一款高效的開發工具,這篇文章將幫助…

    Qt線程等待條件QWaitCondition

    Qt 線程等待條件 概念 Qt提供了QWaitCondition類實現“等待條件”式的線程控制方法,它讓線程阻塞在等待條件的地方,直到條件滿足后才繼續執行下去。也就是說,QWaitCondition可以使一個線程在滿足一定條件時通知其他多個線程,使它…

    RAG 和 RAGFlow 學習筆記

    一、RAG(檢索增強生成) 1. RAG 的定義與核心思想 RAG(Retrieval-Augmented Generation,檢索增強生成) 是一種結合 信息檢索(Retrieval) 和 文本生成(Generation) 的技術…

    Windows連接服務器Ubuntu_MobaXterm

    通過 SSH 遠程連接(命令行方式) 🔧 所需工具: Windows:MobaXterm(強烈推薦)或 PuTTY Ubuntu:已開啟 SSH 服務 Ubuntu 開啟 SSH 服務(僅需一次) 在 Ubuntu …

    Rust 中的高效視頻處理:利用硬件加速應對高分辨率視頻

    引言 在視頻處理領域,隨著4K、8K甚至更高分辨率內容的普及,傳統的CPU計算方式逐漸顯得力不從心。無論是視頻剪輯、直播流處理還是格式轉換,高負載場景下CPU占用過高的問題常常讓開發者頭疼。硬件加速技術通過利用GPU等專用硬件分擔編解碼任務…

    大模型提示工程中,提示、補全、指令、上下文和樣本這幾個概念的區別是什么?

    提示 (Prompt) 定義:輸入給大模型的完整文本刺激,是與模型交互的主要方式。 特點: 是最廣義的概念,包含其他幾個元素整體輸入的總和,包括指令、上下文和樣本等內容決定模型如何理解和處理請求 示例: 分…

    AI的未來演進

    企業數字IP實戰:創始人分身如何實現品宣獲客雙贏? ——從量子化建模到聯邦學習的全鏈路技術拆解 一、行業痛點:品牌信任與獲客效率的雙重困局 2025年數據顯示,73%的企業因傳統營銷模式效率低下錯失市場機遇(家居品牌…

    軟件定義無線電39

    13.8 RFSoC上PYNQ的SDR設計流程 本節中詳細介紹的設計過程可以分為六個獨立的步驟,如圖13.16所示,并在接下來的幾頁中進行討論。 13.8.1 初始設計過程 。在這里,系統設計人員必須考慮許多因素,例如RFDC接收和/或發送的頻率范圍…

    ?自動化網絡架構搜索(Neural Architecture Search,NAS)

    NAS是一種旨在自動設計神經網絡結構的技術。傳統上,神經網絡的架構設計依賴于專家的經驗和大量的試錯過程,而NAS通過算法自動搜索網絡架構,以發現最適合特定任務的神經網絡設計。 NAS的主要組成部分包括: 搜索空間:定…

    Ubuntu 22.04 安裝和運行 EDK2 超詳細教程

    Ubuntu 22.04 安裝和運行 EDK2 超詳細教程 適合新手小白,從零開始 🌟 1. 什么是 EDK2? EDK2(EFI Development Kit 2)是一個開源的 UEFI(統一可擴展固件接口)開發環境,主要用于編寫和…

    什么是STEP認證

    **什么是STEP認證** STEP認證,全稱為“可持續紡織生產認證”(Sustainable Textile Production),是一項由國際環保紡織協會Oeko-Tex提供的權威獨立認證體系。這一認證體系猶如紡織和皮革行業的綠色燈塔,為追求可持續發…