欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請碼778899分享:基于Docker的ROS開發(fā)

柚子快報(bào)邀請碼778899分享:基于Docker的ROS開發(fā)

http://yzkb.51969.com/

本文主要介紹如何使用Docker在Windows和Linux環(huán)境中部署并使用ROS,通過Docker Container運(yùn)行ROS,可以方便我們在一個(gè)本地環(huán)境中運(yùn)行多個(gè)ROS版本。 更多內(nèi)容,訪問專欄目錄獲取實(shí)時(shí)更新。

關(guān)于ROS的版本

參考ROS1 Distribution Wiki和ROS2 Distribution Wiki,推薦使用:

ROS1 Noetic 版本(2020/05發(fā)布,支持到2025/05)ROS2 Humble版本(2022/05發(fā)布,支持到2027/05)

拉取ROS鏡像并運(yùn)行ROS容器

要求閱讀者需要具有基礎(chǔ)的Docker使用經(jīng)驗(yàn) 關(guān)于ROS的鏡像,可以訪問Docker Hub查找對應(yīng)版本的腳本,本文里我們以ROS1 Noetic和ROS2 Humble為例演示。

環(huán)境要求 在Windows環(huán)境中,需要安裝Docker Desktop,并且可以通過命令行執(zhí)行docker命令: Linux環(huán)境使用的是Ubuntu 22,同樣已經(jīng)提前安裝了docker:

拉取鏡像 在Windows環(huán)境中,需要首先啟動Docker Desktop。然后執(zhí)行下面的腳本,可以拉取ROS1和ROS2的鏡像文件:

docker pull osrf/ros:noetic-desktop

docker pull osrf/ros:humble-desktop

執(zhí)行完成后,通過指令查看已拉取的鏡像文件:

docker images

運(yùn)行容器

docker run --name -it

上面的指令是運(yùn)行一個(gè)容器,容器名為’container-name’的替換內(nèi)容,使用’image-name:tag’指定的鏡像文件,并運(yùn)行在交互模式下(-it),指令示例:

docker run --name noetic-gui -it osrf:noetic-desktop

指令運(yùn)行以后,命令行將會進(jìn)行到該容器的交互模式下,在Docker Desktop中,能看到當(dāng)前運(yùn)行的容器:

運(yùn)行ROS

當(dāng)前我們已經(jīng)啟動了ROS Noetic的Docker容器,并進(jìn)入了交互模式,在命令行中執(zhí)行roscore來啟動ROS Master (僅針對ROS1版本需要) 如果你也在命令行中看到了上述的內(nèi)容,說明ROS1運(yùn)行成功。 Windows中啟動另一個(gè)命令行,執(zhí)行下面的命令,進(jìn)入到一個(gè)已啟動容器的交互模式:

docker exec -it bash

然后執(zhí)行:

source /opt/ros/noetic/setup.bash

printenv | grep ROS

rostopic list

第一條指令在每啟動一個(gè)shell時(shí)都需要執(zhí)行一下(除非你將該指令加入到了.bashrc文件中),它能配置你的shell讓你獲取到ROS的程序和幫助這些程序找到依賴的包。 第二,三條指令分別是查看已安裝ROS的環(huán)境變量和當(dāng)前的ROS Topic列表,如果已正確完成了上述步驟,你可以看到下圖類似的內(nèi)容:

Docker容器中的GUI程序

如果我們運(yùn)行的ROS程序需要打開一些用戶交互界面,比如Gazebo,RViz等,在Docker容器中要怎么辦呢?

以經(jīng)典的小烏龜(turtlesim)為例,演示如何在docker容器中使用GUI。

rosrun turtlesim turtlesim_node

我相信執(zhí)行完上面的指令后你將會得到下面的錯誤: 這時(shí)就需要我們安裝XLaunch來實(shí)現(xiàn)界面的顯示,你可以訪問Xming網(wǎng)站獲取,或通過SourceForge下載。在安裝時(shí)基本不許要任何配置,僅注意同時(shí)安裝XLaunch即可。 安裝完成后,啟動XLaunch,只需要在下圖標(biāo)注的步驟修改值為0,其他一直點(diǎn)擊下一步直至結(jié)束 這時(shí)在電腦的狀態(tài)欄里你應(yīng)該能夠看到啟動的XServer. 確保XServer正常運(yùn)行,這時(shí)再重新運(yùn)行Noetic的容器,不過通過下面的指令運(yùn)行:

docker run --name noetic-gui -e DISPLAY=host.docker.internal:0.0 -it osrf/ros:noetic-desktop

然后運(yùn)行roscore并在另一個(gè)命令行中重復(fù)之前的命令(不要忘記source一下),啟動turtlesim

rosrun turtlesim turtlesim_node

我們的小烏龜就正常的顯示在桌面上了。 啟動另一個(gè)命令行,我們來通過鍵盤上下左右控制小烏龜:

rosrun turtlesim turtle_teleop_key

在Ubuntu中,步驟基本類似,在啟動ROS時(shí),建議通過一個(gè)bash文件來啟動容器,run_noetic_gui.bash:

xhost local:root

XAUTH=/tmp/.docker.xauth

docker run -it \

--name=noetic-gui \

--env="DISPLAY=$DISPLAY" \

--env="QT_X11_NO_MITSHM=1" \

--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \

--env="XAUTHORITY=$XAUTH" \

--volume="$XAUTH:$XAUTH" \

--net=host \

--privileged \

osrf/ros:noetic-desktop \

bash

echo "Done."

如何訪問Docker容器中的文件

在之后的開發(fā)中,我們需要創(chuàng)建工作空間并創(chuàng)建自己的工程項(xiàng)目,而當(dāng)前的ROS運(yùn)行在Docker容器中,要怎樣訪問的到呢。

這里推薦使用VisualStudio Code,并安裝插件Dev Container 成功安裝了插件后,我們就可以通過VS Code打開一個(gè)Docker Container的文件目錄啦。 至此,我們成功的在Windows或Ubuntu環(huán)境下,通過Docker中運(yùn)行了ROS Noetic,并且能夠顯示用戶界面,并且通過VS Code訪問容器中的文件和工程。

如有錯誤,歡迎留言或來信指正:hbin6358@163.com

柚子快報(bào)邀請碼778899分享:基于Docker的ROS開發(fā)

http://yzkb.51969.com/

推薦閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19573016.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄