ROS1和ROS2之间的通讯

描述

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

 

Ubuntu

显卡正常工作


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

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

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

 

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

 

我一直用的这个

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

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

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

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

Ubuntu

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

 

sudo apt-get install flameshot

直接安装就行。

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

 

 

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

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

Ubuntu

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

 

 

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

Ubuntu

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

 

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

 

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

Ubuntu

因为这里会提示

Ubuntu

提前等着

Ubuntu

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

Ubuntu

Ubuntu

小企鹅

Ubuntu

确定

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

Ubuntu

Ubuntu

 

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

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

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

 

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

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

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

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

Ubuntu

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

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

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

Ubuntu

Jupyter也正常

Ubuntu

相当ok

Ubuntu

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

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

Ubuntu

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

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

Ubuntu

需要再安装一下

Ubuntu

点击这里

Ubuntu

安装

Ubuntu

我麻了...

Ubuntu

这次有了

Ubuntu

命令行可以进去了

Ubuntu

这个是调试的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"apt install ros-foxy-rviz* ros-foxy-rqt*

 

这些就是脚本了

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

Ubuntu

核心的代码就这些

Ubuntu

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

Ubuntu

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

 

source /opt/ros/foxy/setup.bash

 

这个

 

source ~/.bashrc

 

然后环境生效

 

ros2 run demo_nodes_cpp talker

 

Ubuntu

Ubuntu

一发一收,搞完扯呼

Ubuntu

看下本地的地址

Ubuntu

ros2已经注册好了

Ubuntu

帮助的命令

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

 

Ubuntu

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

Ubuntu

这个是安装好的

 

source /opt/ros/noetic/setup.bash

 

这里是ros1写入的配置文件

 

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

 

我这里两句写反了,自己换过来

Ubuntu

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

 

Ubuntu

写入bashrc里面,在打开新的Terimal后会有一个切换的选择

Ubuntu

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

 

 sudo apt install python3-rosdep2

 

 

rosdep update

 

 

sudo apt install python3-roslaunch

 

 

sudo apt install python3-rostopic

 

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

 

sudo apt install ros-foxy-ros1-bridge

 

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

  
      审核编辑:彭静

 

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分