0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS1和ROS2之間的通訊

云深之無跡 ? 來源:云深之無跡 ? 作者:云深之無跡 ? 2022-08-12 11:30 ? 次閱讀

??兜兜轉(zhuǎn)轉(zhuǎn),我又拐回Ubuntu了~,首先是對(duì)顯卡的執(zhí)念,肯定X1C就不裝了,那肯定就是DELL了,不過看我以前文的人,都知道我雙系統(tǒng)安裝失敗了。

f8e18454-1976-11ed-ba43-dac502259ad0.png

顯卡正常工作


這次嘗試了很多次成功了,我是一塊1T的SSD上面分割300G給Liunx,一開始的分割空間什么的,大家都知道,這里就不說了,大問題是引導(dǎo)上面,開機(jī)的時(shí)候,沒有系統(tǒng)選擇的界面.

現(xiàn)在的電腦都是EFI分區(qū)的,里面有兩個(gè)小區(qū),ESP和ERP(應(yīng)該是這樣的),使用硬盤分區(qū)可以看到的.就是100~200MB的小空間.

我前面安裝了幾個(gè)Ubuntu一直找不到EFI的引導(dǎo)文件,后來看了一下分區(qū),是我刪除了一個(gè)小分區(qū),之所以一直可以啟動(dòng)Win是因?yàn)镋FI (boot)這個(gè)沒有刪除,我可太牛逼了。

不過這個(gè)分區(qū)重建很麻煩的事情,教程都是進(jìn)PE來對(duì)C盤的重新分割建立這個(gè)分區(qū),我看了看我Win軟件,破解,盜版不計(jì)其數(shù),更重要的是Matlab這些大型武器,幾百G啊,根本重裝不了。

我一直用的這個(gè)

找到ESP的空白小分區(qū),右鍵有建立ESP分區(qū)選項(xiàng),可以建立,這是我見過最簡單的分發(fā)。

最后在安裝的時(shí)候選擇和Win共存的選項(xiàng)就好了,如果沒有上面的小分區(qū),這個(gè)共存的選擇是沒有的。

然后開機(jī)的時(shí)候就有了自動(dòng)的界面切換。雙系統(tǒng)的安裝坑比較多,需要有經(jīng)驗(yàn)來安裝,不然你進(jìn)不去系統(tǒng)就慌的一筆,事實(shí)上只是找不到了引導(dǎo)文件而已,重建一下引導(dǎo)就好了。

因?yàn)樾孪到y(tǒng)就像毛坯房,首先就是截圖的工具了:

f965900a-1976-11ed-ba43-dac502259ad0.png

安裝后設(shè)置一下快捷鍵,我設(shè)置的F1

sudo apt-get install flameshot

直接安裝就行。

第二個(gè)問題是輸入法的問題,自帶的輸入法就像個(gè)腦殘一樣,搞得我打字速度下降了好多。

大家一直使用的是sougou輸入法,這次使用百度

主要因?yàn)槟壳肮俜?a href="http://ttokpm.com/article/zt/" target="_blank">最新的搜狗輸入法 for Linux v2.3.1.0112,使用的還是 qt4,依賴于 fcitx-frontend-qt4 等組件,然而在 Ubuntu 20.04 LTS 軟件源中 qt4 已被移除,導(dǎo)致安裝錯(cuò)誤。

f9beabea-1976-11ed-ba43-dac502259ad0.png

百度怕你不會(huì)用,還帶了文檔

所以你得安裝個(gè)wps來看文檔

fa1b5bd8-1976-11ed-ba43-dac502259ad0.png

這里要先安裝一點(diǎn)關(guān)于fiticx,直接install就行,后面也要安裝這個(gè),這里我覺得不用著急安裝先.

sudo aptitude install qt5-default qtcreator qml-module-qtquick-controls2

如果你安裝過,就不用安裝了

fa456018-1976-11ed-ba43-dac502259ad0.png

因?yàn)檫@里會(huì)提示

fa6b841e-1976-11ed-ba43-dac502259ad0.png

提前等著

fa982faa-1976-11ed-ba43-dac502259ad0.png

如果右上角沒有出現(xiàn)配置,就使用命令呼出

face6908-1976-11ed-ba43-dac502259ad0.png

faef00b4-1976-11ed-ba43-dac502259ad0.png

小企鵝

fb1d5f04-1976-11ed-ba43-dac502259ad0.png

確定

此時(shí)去重啟電腦,如果沒有啥意外,會(huì)出現(xiàn)下面的配置頁面:

fb4f8dbc-1976-11ed-ba43-dac502259ad0.png

fb688236-1976-11ed-ba43-dac502259ad0.png

現(xiàn)在試試看,舒服的一筆(和配置一樣就行)

這里說一下我遇到的問題,自帶是有個(gè)中文輸入法的,但是我沒有見過這么愣逼的輸入法,是一點(diǎn)聯(lián)想都沒有,沒聯(lián)想就算了,我正經(jīng)打的字也不知道是啥。所以這個(gè)體驗(yàn)感太差了,搜狗是很不錯(cuò)的輸入法,但是20.04就不要想了,底層庫的變化也安裝不上,別問為什么(我折騰了好久能不知道?)

這次發(fā)現(xiàn)了百度,偷偷的做了輸入法,狗男人真棒!

找不到打賞的口子,真想親你一口哇

另外就是,一般的教程是設(shè)置中文什么的,大多數(shù)人安裝的時(shí)候應(yīng)該都是中文的,所以這里就不要多做了,沒有這個(gè)必要跟著他一步一步的操作,問題是你和他不可能每一步都一樣的。

安裝了以后,一般是右上角出現(xiàn)不了這個(gè)配置的,你要知道為什么文檔這樣的寫,就是因?yàn)闇y試的時(shí)候就發(fā)現(xiàn)這種問題了,你可以就像上面使用命令行來呼出配置,也可以重啟,重啟大法好。

我這里測試應(yīng)該是有幾秒的延遲時(shí)間,

fbc9fbc4-1976-11ed-ba43-dac502259ad0.png

右上角打開以后把百度輸入法找到,設(shè)置成我這里的樣子

應(yīng)該在右上角是可以看到百度的輸入法的Logo的。

其實(shí)這次的系統(tǒng)體驗(yàn)很好,Python也運(yùn)行正常:

fbf13644-1976-11ed-ba43-dac502259ad0.png

Jupyter也正常

fc28b36c-1976-11ed-ba43-dac502259ad0.png

相當(dāng)ok

fc51ecdc-1976-11ed-ba43-dac502259ad0.png

這天生對(duì)C系語言的親和性,愛死了

我這里想插一段我在win上面的垃圾經(jīng)歷。

fc77dbae-1976-11ed-ba43-dac502259ad0.png

我麻了,VSCode配一晚上調(diào)試不了,你敢相信是沒有調(diào)試器???

如果GCC的標(biāo)準(zhǔn)版,就是沒有GDB

fca1deb8-1976-11ed-ba43-dac502259ad0.png

需要再安裝一下

fccb4d8e-1976-11ed-ba43-dac502259ad0.png

點(diǎn)擊這里

fcedab54-1976-11ed-ba43-dac502259ad0.png

安裝

fd083d0c-1976-11ed-ba43-dac502259ad0.png

我麻了...

fd39d66e-1976-11ed-ba43-dac502259ad0.png

這次有了

fd576134-1976-11ed-ba43-dac502259ad0.png

命令行可以進(jìn)去了

fd858aa0-1976-11ed-ba43-dac502259ad0.png

這個(gè)是調(diào)試的launch文件

{    "configurations": [        {            "name": "(gdb) 啟動(dòng)",            "type": "cppdbg",            "request": "launch",            "program": "${fileDirname}/${fileBasenameNoExtension}.exe",            "args": [],            "stopAtEntry": false,            "cwd": "${fileDirname}",            "environment": [],            "externalConsole": false,            "MIMode": "gdb",            "miDebuggerPath": "C:/MinGW/bin/gdb.exe",            "setupCommands": [                {                    "description": "為 gdb 啟用整齊打印",                    "text": "-enable-pretty-printing",                    "ignoreFailures": true                },                {                    "description": "將反匯編風(fēng)格設(shè)置為 Intel",                    "text": "-gdb-set disassembly-flavor intel",                    "ignoreFailures": true                }            ]        }    ],    "version": "2.0.0"}

雖然不完美,但是能用

綜上所述,win系統(tǒng),真難搞,不過Mac也好用,環(huán)境很輕松就配置好了,阻擋我成功絆腳石是配置環(huán)境。。。

現(xiàn)在的頁面有點(diǎn)不好看

好看不,我管你說啥,就用這個(gè)了

https://unsplash.com/photos/NdSHSMkKOvU

鏈接在此

因?yàn)樽罱谘芯?a href="http://ttokpm.com/v/tag/1528/" target="_blank">ROS2,這里我也寫了個(gè)簡單的腳本來簡化安裝的過程。其實(shí)我是給X3派寫的,先在這個(gè)上面測試一下。

首先我個(gè)人用,什么毛病也沒有,就摁了幾次Y,其次我全局梯子,網(wǎng)絡(luò)順暢,刨錯(cuò)誤的都是網(wǎng)絡(luò)問題。

#!/bin/bash
if (( $EUID > 0 )); then  echo " - Please run as root"  exitfi
#Install ROS 2echo " - Installing ROS 2 Foxy"
echo " - Install Build Tools"
# C++ Build toolsapt install build-essential gdb
# Set UTF-8 charsetapt updateapt install -y localeslocale-gen en_US en_US.UTF-8update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8export LANG=en_US.UTF-8
echo " - ROS 2 sources"
# Add ROS2 sourcesapt updateapt install -y curl gnupg2 lsb-releasecurl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | apt-key add -sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'
echo " - Install ROS 2"
# Install ROS 2 (foxy)apt updateapt install -y ros-foxy-desktop
# Step envriomentsource /opt/ros/foxy/setup.bash
echo " - Install Python ROS 2"
# Argcompleteapt install -y python3-pippip3 install -U argcomplete
# Colcon build toolsapt install -y python3-colcon-common-extensions python3-rosdep2
# Update ROS deprosdep updaterosdep fix-permissions
# Add to bashrcecho " - Register ROS 2 in .bashrc"echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrcecho "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrcecho "export _colcon_cd_root=~/ros2_install" >> ~/.bashrcsource ~/.bashrc
# Install project dependenciesecho " - Python dependencies"pip3 install catkin_pkg rospkg av image opencv-python djitellopy2 pyyamlapt install python3-tf*
echo " - CPP dependencies"apt install ros-foxy-ament-cmake* ros-foxy-tf2* ros-foxy-rclcpp* ros-foxy-rosgraph*
echo " - Rviz and RQT Tools"aptinstallros-foxy-rviz*ros-foxy-rqt*

這些就是腳本了

復(fù)制腳本到文件里面,后綴為sh,運(yùn)行的時(shí)候,sudo一下就好。

fdfde9be-1976-11ed-ba43-dac502259ad0.png

核心的代碼就這些

fe1e4c0e-1976-11ed-ba43-dac502259ad0.png

因?yàn)镽OS2使用CPP多,CPP工具也得安裝

fe4d4892-1976-11ed-ba43-dac502259ad0.png

這里nano ~/.bashrc在末尾添加這個(gè)

source /opt/ros/foxy/setup.bash

這個(gè)

source ~/.bashrc

然后環(huán)境生效

ros2 run demo_nodes_cpp talker

fe7b016a-1976-11ed-ba43-dac502259ad0.png

fea0c60c-1976-11ed-ba43-dac502259ad0.png

一發(fā)一收,搞完扯呼

fec24e3a-1976-11ed-ba43-dac502259ad0.png

看下本地的地址

feeda918-1976-11ed-ba43-dac502259ad0.png

ros2已經(jīng)注冊(cè)好了

ff0d0aec-1976-11ed-ba43-dac502259ad0.png

幫助的命令

ROS2是爽了,ROS1也跑不了,快快安裝,因?yàn)闆]有可視化的工具。

ROS1無腦安裝了,家人:

愣著干嘛,趕緊輸命令啊

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

sudo apt update

sudo apt install ros-noetic-desktop-full

ff735e5a-1976-11ed-ba43-dac502259ad0.png

完整版安裝,安裝不成功就反思自己的網(wǎng)絡(luò)問題

ffa4b6a8-1976-11ed-ba43-dac502259ad0.png

這個(gè)是安裝好的

source /opt/ros/noetic/setup.bash

這里是ros1寫入的配置文件

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

我這里兩句寫反了,自己換過來

ffcc7af8-1976-11ed-ba43-dac502259ad0.png

ROS1,2共存,怎么辦?

echo "ros melodic(1) or ros2 eloquent(2)?"read editionif [ "$edition" -eq "1" ];then  source /opt/ros/melodic/setup.bashelse  source /opt/ros/eloquent/setup.bashfi

fff095fa-1976-11ed-ba43-dac502259ad0.png

寫入bashrc里面,在打開新的Terimal后會(huì)有一個(gè)切換的選擇

000f321c-1977-11ed-ba43-dac502259ad0.png

就是也奇怪,我明明寫入了參數(shù)

sudoaptinstallpython3-rosdep2

rosdep update

sudo apt install python3-roslaunch

sudo apt install python3-rostopic

以上是缺少的包,安裝一下

sudo apt install ros-foxy-ros1-bridge

ROS1和ROS2之間的通訊需要一個(gè)橋

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Wind
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    30433
  • DELL
    +關(guān)注

    關(guān)注

    2

    文章

    43

    瀏覽量

    13703
  • Ubuntu
    +關(guān)注

    關(guān)注

    5

    文章

    559

    瀏覽量

    29503
  • C盤
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    3590

原文標(biāo)題:Ubuntu20.04的讓人GC

文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Micro-ROS:把ROS2放在MCU上

    機(jī)器人的發(fā)展。 ? ROS便是為機(jī)器人在研發(fā)的過程中的代碼復(fù)用提供支持的開源框架,大量的機(jī)器人開源項(xiàng)目,從感知到控制、從定位到構(gòu)圖、從導(dǎo)航到可視化,幾乎都使用ROS作為基礎(chǔ)。 ? Micro-ROS從何而來? ? Micro-
    的頭像 發(fā)表于 04-07 07:13 ?7561次閱讀

    系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?

    請(qǐng)問一下,百度文庫資料里面,下圖所示的系統(tǒng)鏡像Ubuntu_ROS2ROS2是什么意思,帶有ROS2開發(fā)環(huán)境嗎?與前面4GB版本的鏡像有什么區(qū)別?
    發(fā)表于 03-01 23:06

    ROS2的安裝與使用 精選資料推薦

    ros2的烏龜仿真turtlesim,介紹topic,service,action等元素及其使用,介紹ros的基本操作
    發(fā)表于 08-30 08:24

    如何在ROS2中運(yùn)行小烏龜呢

    ROS2中運(yùn)行小烏龜,其實(shí)主要就是安裝兩個(gè)工具,turtlesim和rqt。A: 安裝turtlesim。輸入【sudo apt update】輸入【sudo apt install
    發(fā)表于 11-05 06:08

    RT-Thread實(shí)時(shí)操作系統(tǒng)與ROS2是怎樣進(jìn)行通信的

    的 API,主要區(qū)別就在于 rosserial 是針對(duì) ROS1,而 micro_ros 是針對(duì) ROS2 。第一代的 ROS 發(fā)展很多年后,當(dāng)然也暴露出很多設(shè)計(jì)不合理的地方,比如有
    發(fā)表于 04-01 11:38

    基于無線wifi網(wǎng)絡(luò)的X3派和PC虛擬機(jī)通過ROS2實(shí)現(xiàn)跨設(shè)備通信

    1、X3派和PC虛擬機(jī)都連接無線wifi網(wǎng)絡(luò)的情況下通過ROS2實(shí)現(xiàn)跨設(shè)備通信多機(jī)通信是ROS的基礎(chǔ)能力之一,相比于ROS1ROS2通過非
    發(fā)表于 07-13 15:13

    【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】五:在 VisionFive2 上體驗(yàn) ROS2 humble

    count: 1 Subscription count: 0 ros2 node 分別執(zhí)行命令 ros2 run demo_nodes_cpp talker, ros2 nod
    發(fā)表于 09-04 04:59

    Linux嵌入式開發(fā)筆記(六)在ROS2中運(yùn)行小烏龜實(shí)例

    ROS2中運(yùn)行小烏龜,其實(shí)主要就是安裝兩個(gè)工具,turtlesim和rqt。A: 安裝turtlesim。輸入【sudo apt update】輸入【sudo apt install
    發(fā)表于 11-02 15:21 ?10次下載
    Linux嵌入式開發(fā)筆記(六)在<b class='flag-5'>ROS2</b>中運(yùn)行小烏龜實(shí)例

    ROS1的通信架構(gòu)的基礎(chǔ)通信方式及相關(guān)概念

    ROS的通信架構(gòu)是ROS的靈魂所在,它包括數(shù)據(jù)處理,進(jìn)程運(yùn)行,消息傳遞等** 。這篇文章主要介紹ROS1的通信架構(gòu)的基礎(chǔ)通信方式和相關(guān)概念,因?yàn)?b class='flag-5'>ROS1和
    的頭像 發(fā)表于 05-19 17:23 ?3354次閱讀
    <b class='flag-5'>ROS1</b>的通信架構(gòu)的基礎(chǔ)通信方式及相關(guān)概念

    如何初始化ROS并創(chuàng)立鏈接

    的主題(如/odometry)來發(fā)送消息。其他組件通過訂閱該主題來接收消息。本文內(nèi)容基于慕羽★大佬文章進(jìn)行了增刪。 同時(shí)由于Simulink的使用在ROS1ROS2中沒有太多的改動(dòng),所以我們就僅對(duì)
    的頭像 發(fā)表于 11-15 17:26 ?472次閱讀
    如何初始化<b class='flag-5'>ROS</b>并創(chuàng)立鏈接

    DDS在ROS2中的應(yīng)用

    DDS在ROS2中的應(yīng)用 DDS在ROS2系統(tǒng)中的位置至關(guān)重要,所有上層建設(shè)都建立在DDS之上。在這個(gè)ROS2的架構(gòu)圖中,藍(lán)色和紅色部分就是DDS。 剛才我們也提到,DDS是一種通信的標(biāo)準(zhǔn),就像4G
    的頭像 發(fā)表于 11-24 17:54 ?845次閱讀
    DDS在<b class='flag-5'>ROS2</b>中的應(yīng)用

    ros1ros2的通信模型

    ros1: talker 注冊(cè) listener 注冊(cè) ROS Master 進(jìn)行信息匹配 listener 發(fā)送鏈接請(qǐng)求 talker 確認(rèn)請(qǐng)求 建立連接 talker 給 listener 發(fā)
    的頭像 發(fā)表于 11-27 11:26 ?735次閱讀
    <b class='flag-5'>ros1</b>和<b class='flag-5'>ros2</b>的通信模型

    ROS2中自帶例程測試

    的一個(gè)例程。 和剛才一樣打開兩個(gè)終端,這里我們需要source一下ROS里的環(huán)境變量。 該環(huán)境變量我們剛才已經(jīng)設(shè)置了過軟連接,所以配置過程中它也會(huì)配置ROS2的功能包路徑。 在終端1輸入命令: $ source /opt/tro
    的頭像 發(fā)表于 11-28 16:29 ?883次閱讀
    <b class='flag-5'>ROS2</b>中自帶例程測試

    在TogetherROS中如何安裝ROS2功能包

    安裝ROS2功能包 接下來,還有一個(gè)很重要的配置,那就是安裝ROS2功能包,我們說TogetherROS是基于ROS2深度優(yōu)化的,很多模塊還是會(huì)復(fù)用ROS2中的功能,所有
    的頭像 發(fā)表于 12-01 16:02 ?905次閱讀
    在TogetherROS中如何安裝<b class='flag-5'>ROS2</b>功能包

    移動(dòng)機(jī)器人與ROS操作系統(tǒng)原理與應(yīng)用

    ROS1不同的是,ROS2誕生的目的就是為了讓更多機(jī)器人使用,所以在設(shè)計(jì)上更加符合技術(shù)的發(fā)展方向,也運(yùn)用了很多最近的技術(shù)框架。
    發(fā)表于 01-02 12:28 ?516次閱讀
    移動(dòng)機(jī)器人與<b class='flag-5'>ROS</b>操作系統(tǒng)原理與應(yīng)用