0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ROS1和ROS2之间的通讯

云深之无迹 来源:云深之无迹 作者:云深之无迹 2022-08-12 11:30 次阅读

‍‍兜兜转转,我又拐回Ubuntu了~,首先是对显卡的执念,肯定X1C就不装了,那肯定就是DELL了,不过看我以前文的人,都知道我双系统安装失败了。

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

显卡正常工作


这次尝试了很多次成功了,我是一块1T的SSD上面分割300G给Liunx,一开始的分割空间什么的,大家都知道,这里就不说了,大问题是引导上面,开机的时候,没有系统选择的界面.

现在的电脑都是EFI分区的,里面有两个小区,ESP和ERP(应该是这样的),使用硬盘分区可以看到的.就是100~200MB的小空间.

我前面安装了几个Ubuntu一直找不到EFI的引导文件,后来看了一下分区,是我删除了一个小分区,之所以一直可以启动Win是因为EFI (boot)这个没有删除,我可太牛逼了。

不过这个分区重建很麻烦的事情,教程都是进PE来对C盘的重新分割建立这个分区,我看了看我Win软件,破解,盗版不计其数,更重要的是Matlab这些大型武器,几百G啊,根本重装不了。

我一直用的这个

找到ESP的空白小分区,右键有建立ESP分区选项,可以建立,这是我见过最简单的分发。

最后在安装的时候选择和Win共存的选项就好了,如果没有上面的小分区,这个共存的选择是没有的。

然后开机的时候就有了自动的界面切换。双系统的安装坑比较多,需要有经验来安装,不然你进不去系统就慌的一笔,事实上只是找不到了引导文件而已,重建一下引导就好了。

因为新系统就像毛坯房,首先就是截图的工具了:

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

安装后设置一下快捷键,我设置的F1

sudo apt-get install flameshot

直接安装就行。

第二个问题是输入法的问题,自带的输入法就像个脑残一样,搞得我打字速度下降了好多。

大家一直使用的是sougou输入法,这次使用百度

主要因为目前官方最新的搜狗输入法 for Linux v2.3.1.0112,使用的还是 qt4,依赖于 fcitx-frontend-qt4 等组件,然而在 Ubuntu 20.04 LTS 软件源中 qt4 已被移除,导致安装错误。

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

百度怕你不会用,还带了文档

所以你得安装个wps来看文档

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

这里要先安装一点关于fiticx,直接install就行,后面也要安装这个,这里我觉得不用着急安装先.

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

如果你安装过,就不用安装了

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

因为这里会提示

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

提前等着

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

如果右上角没有出现配置,就使用命令呼出

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

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

小企鹅

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

确定

此时去重启电脑,如果没有啥意外,会出现下面的配置页面:

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

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

现在试试看,舒服的一笔(和配置一样就行)

这里说一下我遇到的问题,自带是有个中文输入法的,但是我没有见过这么愣逼的输入法,是一点联想都没有,没联想就算了,我正经打的字也不知道是啥。所以这个体验感太差了,搜狗是很不错的输入法,但是20.04就不要想了,底层库的变化也安装不上,别问为什么(我折腾了好久能不知道?)

这次发现了百度,偷偷的做了输入法,狗男人真棒!

找不到打赏的口子,真想亲你一口哇

另外就是,一般的教程是设置中文什么的,大多数人安装的时候应该都是中文的,所以这里就不要多做了,没有这个必要跟着他一步一步的操作,问题是你和他不可能每一步都一样的。

安装了以后,一般是右上角出现不了这个配置的,你要知道为什么文档这样的写,就是因为测试的时候就发现这种问题了,你可以就像上面使用命令行来呼出配置,也可以重启,重启大法好。

我这里测试应该是有几秒的延迟时间,

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

右上角打开以后把百度输入法找到,设置成我这里的样子

应该在右上角是可以看到百度的输入法的Logo的。

其实这次的系统体验很好,Python也运行正常:

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

Jupyter也正常

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

相当ok

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

这天生对C系语言的亲和性,爱死了

我这里想插一段我在win上面的垃圾经历。

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

我麻了,VSCode配一晚上调试不了,你敢相信是没有调试器???

如果GCC的标准版,就是没有GDB

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

需要再安装一下

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

点击这里

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

安装

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

我麻了...

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

这次有了

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

命令行可以进去了

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

这个是调试的launch文件

{    "configurations": [        {            "name": "(gdb) 启动",            "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": "将反汇编风格设置为 Intel",                    "text": "-gdb-set disassembly-flavor intel",                    "ignoreFailures": true                }            ]        }    ],    "version": "2.0.0"}

虽然不完美,但是能用

综上所述,win系统,真难搞,不过Mac也好用,环境很轻松就配置好了,阻挡我成功绊脚石是配置环境。。。

现在的页面有点不好看

好看不,我管你说啥,就用这个了

https://unsplash.com/photos/NdSHSMkKOvU

链接在此

因为最近在研究ROS2,这里我也写了个简单的脚本来简化安装的过程。其实我是给X3派写的,先在这个上面测试一下。

首先我个人用,什么毛病也没有,就摁了几次Y,其次我全局梯子,网络顺畅,刨错误的都是网络问题。

#!/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*

这些就是脚本了

复制脚本到文件里面,后缀为sh,运行的时候,sudo一下就好。

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

核心的代码就这些

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

因为ROS2使用CPP多,CPP工具也得安装

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

这里nano ~/.bashrc在末尾添加这个

source /opt/ros/foxy/setup.bash

这个

source ~/.bashrc

然后环境生效

ros2 run demo_nodes_cpp talker

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

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

一发一收,搞完扯呼

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

看下本地的地址

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

ros2已经注册好了

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

帮助的命令

ROS2是爽了,ROS1也跑不了,快快安装,因为没有可视化的工具。

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

完整版安装,安装不成功就反思自己的网络问题

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

这个是安装好的

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后会有一个切换的选择

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

就是也奇怪,我明明写入了参数

sudoaptinstallpython3-rosdep2

rosdep update

sudo apt install python3-roslaunch

sudo apt install python3-rostopic

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

sudo apt install ros-foxy-ros1-bridge

ROS1和ROS2之间的通讯需要一个桥

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Wind
    +关注

    关注

    0

    文章

    16

    浏览量

    30410
  • DELL
    +关注

    关注

    2

    文章

    42

    浏览量

    13633
  • Ubuntu
    +关注

    关注

    5

    文章

    534

    浏览量

    28853
  • C盘
    +关注

    关注

    0

    文章

    21

    浏览量

    3545

原文标题:Ubuntu20.04的让人GC

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Micro-ROS:把ROS2放在MCU上

    了机器人的发展。   ROS便是为机器人在研发的过程中的代码复用提供支持的开源框架,大量的机器人开源项目,从感知到控制、从定位到构图、从导航到可视化,几乎都使用ROS作为基础。   Micro-ROS从何而来?   Micro-
    的头像 发表于 04-07 07:13 6623次阅读

    系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?

    请问一下,百度文库资料里面,下图所示的系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?与前面4GB版本的镜像有什么区别?
    发表于 03-01 23:06

    ROS2的安装与使用 精选资料推荐

    ros2的乌龟仿真turtlesim,介绍topic,service,action等元素及其使用,介绍ros的基本操作
    发表于 08-30 08:24

    如何在ROS2中运行小乌龟呢

    ROS2中运行小乌龟,其实主要就是安装两个工具,turtlesim和rqt。A: 安装turtlesim。输入【sudo apt update】输入【sudo apt install
    发表于 11-05 06:08

    ROS简介

    目录一、ROS简介1、什么是ROS2ROS产生、发展和壮大的原因和意义二、在Ubuntu系统中,安装对应版本的ROS软件
    发表于 12-17 08:24

    RT-Thread实时操作系统与ROS2是怎样进行通信的

    的 API,主要区别就在于 rosserial 是针对 ROS1,而 micro_ros 是针对 ROS2 。第一代的 ROS 发展很多年后,当然也暴露出很多设计不合理的地方,比如有
    发表于 04-01 11:38

    基于无线wifi网络的X3派和PC虚拟机通过ROS2实现跨设备通信

    1、X3派和PC虚拟机都连接无线wifi网络的情况下通过ROS2实现跨设备通信多机通信是ROS的基础能力之一,相比于ROS1ROS2通过非
    发表于 07-13 15:13

    【昉·星光 2 高性能RISC-V单板计算机体验】五:在 VisionFive2 上体验 ROS2 humble

    count: 1 Subscription count: 0 ros2 node 分别执行命令 ros2 run demo_nodes_cpp talker, ros2 nod
    发表于 09-04 04:59

    ROS1的通信架构的基础通信方式及相关概念

    ROS的通信架构是ROS的灵魂所在,它包括数据处理,进程运行,消息传递等** 。这篇文章主要介绍ROS1的通信架构的基础通信方式和相关概念,因为ROS1
    的头像 发表于 05-19 17:23 2885次阅读
    <b class='flag-5'>ROS1</b>的通信架构的基础通信方式及相关概念

    X3派和PC虚拟机之间基于ROS2和wifi的通信

    X3派、PC虚拟机连接无线wifi网络下,通过ROS2实现跨设备通信……
    的头像 发表于 07-13 15:03 464次阅读
    X3派和PC虚拟机<b class='flag-5'>之间</b>基于<b class='flag-5'>ROS2</b>和wifi的通信

    如何初始化ROS并创立链接

    的主题(如/odometry)来发送消息。其他组件通过订阅该主题来接收消息。本文内容基于慕羽★大佬文章进行了增删。 同时由于Simulink的使用在ROS1ROS2中没有太多的改动,所以我们就仅对
    的头像 发表于 11-15 17:26 264次阅读
    如何初始化<b class='flag-5'>ROS</b>并创立链接

    DDS在ROS2中的应用

    DDS在ROS2中的应用 DDS在ROS2系统中的位置至关重要,所有上层建设都建立在DDS之上。在这个ROS2的架构图中,蓝色和红色部分就是DDS。 刚才我们也提到,DDS是一种通信的标准,就像4G
    的头像 发表于 11-24 17:54 434次阅读
    DDS在<b class='flag-5'>ROS2</b>中的应用

    ros1ros2的通信模型

    ros1: talker 注册 listener 注册 ROS Master 进行信息匹配 listener 发送链接请求 talker 确认请求 建立连接 talker 给 listener
    的头像 发表于 11-27 11:26 340次阅读
    <b class='flag-5'>ros1</b>和<b class='flag-5'>ros2</b>的通信模型

    ROS2中自带例程测试

    如果你是一个ROS2的开发者,可能对刚才我们使用的ROS2命令比较熟悉,这时你可能也会产生一个问题:我们之前也安装了ROS2系统,那ROS2的原生功能还可以正常运行么? 我们再来试一试
    的头像 发表于 11-28 16:29 414次阅读
    <b class='flag-5'>ROS2</b>中自带例程测试

    在TogetherROS中如何安装ROS2功能包

    安装ROS2功能包 接下来,还有一个很重要的配置,那就是安装ROS2功能包,我们说TogetherROS是基于ROS2深度优化的,很多模块还是会复用ROS2中的功能,所有
    的头像 发表于 12-01 16:02 465次阅读
    在TogetherROS中如何安装<b class='flag-5'>ROS2</b>功能包