目錄
一.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有jazzy,Rolling,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
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插件一般是不會有問題的。
如果還有問題可以留言,有時間會進行更新常見問題解決。