1.2 ROS2安裝

1.2.1 安裝ROS2

整體而言,ROS2的安裝步驟不算復雜,大致步驟如下:

  1. 準備1:設置語言環境;
  2. 準備2:啟動Ubuntu universe存儲庫;
  3. 設置軟件源;
  4. 安裝ROS2;
  5. 配置環境。

請注意:雖然安裝比較簡單,但是安裝過程比較耗時,需要耐心等待。

1.準備1:設置語言環境

請先檢查本地語言環境是否支持UTF-8編碼,可調用如下指令檢查并設置UTF-8編碼:

locale  # 檢查是否支持 UTF-8sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8locale  # 驗證設置是否成果

注意:語言環境可以不同,但必須支持UTF-8編碼。

2.準備2:啟動Ubuntu universe存儲庫

常用的啟動Ubuntu universe存儲庫方式有兩種:圖形化操作與命令行操作。

方式1:圖形化操作

請打開軟件與更新(Software & Updates)窗口,確保啟動了universe存儲庫,以保證可以下載”社區維護的免費和開源軟件“,操作示例如下:

方式2:命令行操作

首先,通過如下命令檢查是否已經啟動了Ubuntu universe存儲庫:

apt-cache policy | grep universe500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packagesrelease v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64

如果沒有如上所示的輸出,那么請調用如下命令啟動Ubuntu universe存儲庫:

sudo apt install software-properties-common
sudo add-apt-repository universe
3.設置軟件源

先將ROS 2 apt存儲庫添加到系統,用apt授權我們的GPG密鑰:

sudo apt update && sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

提示:如果拋出連接?raw.githubusercontent.com?失敗的異常信息,解決方式請參考本節最后部分補充2內容。

然后將存儲庫添加到源列表:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
4.安裝ROS2

首先更新apt存儲庫緩存:

sudo apt update

然后升級已安裝的軟件(ROS2軟件包建立在經常更新的Ubuntu系統上,在安裝新軟件包之前請確保您的系統是最新的):

sudo apt upgrade

安裝桌面版ROS2(建議),包含:ROS、RViz、示例與教程,安裝命令如下:

sudo apt install ros-humble-desktop

或者,也可以安裝基礎版ROS2,包含:通信庫、消息包、命令行工具,但是沒有 GUI 工具,安裝命令如下:

sudo apt install ros-humble-ros-base
5.配置環境

終端下,執行ROS2程序時,需要調用如下命令配置環境:

source /opt/ros/humble/setup.bash

每次新開終端時,都得執行上述命令,或者也可以執行如下命令,將配置環境指令寫入 ”~/.bashrc“ 文件,那么每次新啟動終端時,不需要在手動配置環境:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

到目前為止,ROS2就已經安裝且配置完畢了。


補充1:關于卸載(謹慎操作)

ROS2安裝完畢之后,如果想卸載ROS2,可以執行如下命令:

sudo apt remove ~nros-humble-* && sudo apt autoremove

還可以再刪除ROS2對應的存儲庫:

sudo rm /etc/apt/sources.list.d/ros2.list
sudo apt update
sudo apt autoremove
# Consider upgrading for packages previously shadowed.
sudo apt upgrade
補充2:關于?raw.githubusercontent.com 連接失敗的處理

安裝ROS2過程中,執行到步驟3也即設置軟件源時,可能會拋出異常。

異常提示:curl: (7) Failed to connect to raw.githubusercontent.com port 443: 拒絕連接。

異常原因:DNS被污染。

解決思路:查詢錯誤提示中域名的IP地址,然后修改 /etc/hosts 文件,添加域名與IP映射。

具體實現:

1.訪問?https://www.ipaddress.com/?并輸入域名?raw.githubusercontent.com,查詢 ip 地址。

?

查詢到的ip地址可能有多個,記錄任意一個地址即可。

2.修改/etc/hosts文件:

sudo gedit /etc/hosts

添加ip和域名映射到hosts文件,保存并退出。

操作完畢后,終端再次運行安裝指令即可正常執行

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

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

相關文章

拓撲學習系列(2)同調群、同倫群與基本群

同調群 同調群是拓撲空間的一個重要不變量,用于研究空間的“洞”的結構。同調群描述了拓撲空間中的閉合曲線、曲面等的性質,是拓撲學中的一個重要工具。以下是對同調群的詳細描述: 定義: 給定一個拓撲空間 X,對于每個…

【分布式系統】監控平臺Zabbix對接grafana

以前兩篇博客為基礎 【分布式系統】監控平臺Zabbix介紹與部署(命令截圖版)-CSDN博客 【分布式系統】監控平臺Zabbix自定義模版配置-CSDN博客 一.安裝grafana并啟動 添加一臺服務器192.168.80.104 初始化操作 systemctl disable --now firewalld set…

LeetCode 算法:路徑總和 III c++

原題鏈接🔗:路徑總和 III 難度:中等???? 題目 給定一個二叉樹的根節點 root ,和一個整數 targetSum ,求該二叉樹里節點值之和等于 targetSum 的 路徑 的數目。 路徑 不需要從根節點開始,也不需要在葉…

操作系統調度算法、頁面置換算法總結

常見的進程調度算法 FCFS:非搶占、先來先服務。 對短進程不利。 優先級調度算法:在支持搶占的系統中,當新進程進入就緒隊列時,如果它的優先級高于當前運行進程的優先級,那么就會搶占CPU;在非搶占系統中,只是將新進程加入了就緒隊列中。 最短作業優先調度算法(SJF) …

去中心化經濟的革新:探索Web3的新商業模式

隨著區塊鏈技術的發展,Web3正逐漸成為全球經濟和商業模式的關鍵詞之一。Web3不僅僅是技術的革新,更是對傳統中心化商業模式的挑戰和重構。本文將深入探討Web3背后的概念、關鍵技術以及其帶來的新商業模式,帶領讀者走進這一新興領域的深度分析…

272. 最長公共上升子序列

Powered by:NEFU AB-IN Link 文章目錄 272. 最長公共上升子序列題意思路代碼 272. 最長公共上升子序列 題意 如題 思路 若按這個思路的話&#xff0c;代碼為 O ( n 3 ) O(n^3) O(n3) for (int i 1; i < n; i ) {for (int j 1; j < n; j ){f[i][j] f[i - 1][j];…

SpringSecurity中文文檔(Servlet Password Storage)

存儲機制&#xff08;Storage Mechanisms&#xff09; 每種支持的讀取用戶名和密碼的機制都可以使用任何支持的存儲機制&#xff1a; Simple Storage with In-Memory AuthenticationRelational Databases with JDBC AuthenticationCustom data stores with UserDetailsServic…

Cube大小與性能的博弈:Kylin查詢性能優化指南

Cube大小與性能的博弈&#xff1a;Kylin查詢性能優化指南 在Apache Kylin的多維數據分析世界中&#xff0c;Cube是核心組件&#xff0c;它直接影響查詢性能和系統資源的使用。理解Cube大小與查詢性能之間的關系對于構建高效的數據分析平臺至關重要。本文將深入探討Kylin中Cube…

FW SystemUI Keyguard解析(二)

文章目錄 CTS之Keyguard Menu事件處理 CTS之Keyguard Menu事件處理 事件觸發點: NotificationShadeWindowViewController.dispatchKeyEvent 設置setInteractionEventHandler回調之后通過NotificationShadeWindowView 觸發 調用到return mService.onMenuPressed(); public cla…

31-Pandas index操作索引

Pandas index操作索引 索引&#xff08;index&#xff09;是 Pandas 的重要工具&#xff0c;通過索引可以從 DataFame 中選擇特定的行數和列數&#xff0c;這種選擇數據的方式稱為“子集選擇”。 在 Pandas 中&#xff0c;索引值也被稱為標簽&#xff08;label&#xff09;&a…

簡單的text/html無法解析解決記錄

簡單的text/html無法解析解決記錄 1. bug發現 我們所有的服務都是微服務&#xff0c;服務間調用都是使用feign接口進行調用&#xff0c;正常調用都沒有問題&#xff0c;但是某一天發現部分從esb服務調用過來到我們本地的服務&#xff0c;本地服務再使用feign接口調用其他微服…

DPO算法推導

DPO 核心思想&#xff1a;直接使用偏好數據進行策略優化&#xff0c;省去 reward 模型策略優化。 技術背景知識&#xff1a; 首先給定prompt x&#xff0c;生成兩個答案 ( y 1 , y 2 ) Π S F T ( y ∣ x ) (y_1,y_2)~\Pi^{SFT}(y|x) (y1?,y2?) ΠSFT(y∣x) &#xff0c;并通…

2. Python+Playwright playwright的API

Playwright支持同步和異步兩種API&#xff0c;使用異步API需要導入asyncio庫&#xff0c;它是一個可以用來實現Python協程的庫&#xff0c;更詳細介紹可參考Python協程 。我們可以根據自己的偏好選擇適合的模式。 同步與異步模式原理 同步操作方式&#xff1a;在代碼執行時&am…

c++的const

const在C中是一個非常重要的關鍵字&#xff0c;用于定義不可變的變量、函數參數、成員函數等。它可以提高代碼的可讀性、安全性&#xff0c;并幫助編譯器進行優化。 定義常量 使用const定義不可變的變量&#xff1a; const int MAX_SIZE 100;常量指針 指向常量的指針和常量…

【ARMv8/v9 GIC 系列 5 -- GIC GICD_CTRL 使用詳細介紹】

文章目錄 GICD_CTRLGICD_CTLR 寄存器結構RWP&#xff08;Register Write Pending&#xff09;E1NWF&#xff08;Enable 1 of N Wakeup Functionality&#xff09;DS&#xff08;Disable Security&#xff09; 親和性路由&#xff08;Affinity Routing&#xff09;ARE_NSARE_S 中…

【java計算機畢設】服裝生產管理系統java MySQL springboot vue html maven項目設計源代碼+萬字文檔

目錄 1項目功能 2項目介紹 3項目地址 1項目功能 【java計算機畢設】服裝生產管理系統java MySQL springboot vue html maven項目代碼文檔 2項目介紹 系統功能&#xff1a; 服裝生產管理系統包括管理員、用戶兩種角色。 管理員功能包括個人中心模塊用于修改個人信息和密碼&a…

【UE5.3】筆記6-創建可自由控制Pawn類

搭建場景 搭建一個場景&#xff1a;包含地板、圍墻。可以根據喜好加一些自發光的效果。 增加食物 創建食物藍圖類&#xff0c;在場景里放置一些食物以供我們player去吃掉獲取分值。 創建可控制的layer 我們先右鍵創建一個藍圖繼承自pawn類&#xff0c;起名BP_Player&#xf…

Python-算法編程100例-二分法(入門級)-業務負載分配

題目&#xff1a; 現有一個服務器集群&#xff08;服務器數量為 serverNum&#xff09;&#xff0c;和一批不同類型的任務&#xff08;用數組 tasks 表示&#xff0c;下標表示任務類型&#xff0c;值為任務數量&#xff09;。 現需要把這批任務都分配到集群的服務器上&#x…

2024年在WordPress中創建銷售活動的專家級優惠券方法

2024年在WordPress中創建銷售活動的專家級優惠券方法 今天我想和大家分享一些關于如何在WordPress網站上使用專家級優惠券工具來創建銷售活動的經驗。對于已經在電商領域有一定經驗的店主&#xff0c;利用專家級優惠券不僅能吸引顧客&#xff0c;還能顯著增加銷量。在這篇文章…

【Linux】線程封裝與互斥(萬字)

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 目錄 文章目錄 前言 C多線程的用法 對原生線程進行一次封裝 理解pthread線程 Linux線程互斥 進程線程間的互斥相關背景概念 互斥量mutex 操作共享變量會有問題的售票…