Ubuntu18.04 搭建ros环境

2023-10-29

目录

一、查询版本

二、配置Ubuntu软件库

三、安装

1、设置安装源和密钥

2、更新可用软件包列表

问题

问题

3、安装

4、初始化

问题

5、更新

6、添加环境变量

7、安装rosinstall

8、安装catkin编译器

9、实例测试

参考文章


本文基于Ubuntu18.04从零开始搭建orb slam3及数据集测试一文中的环境继续搭建。

一、查询版本

lsb_release -a

  

不同版本的Ubuntu对应不同版本的ros,注意安装的时候要对应清楚。 

Ubuntu ROS DATE
14.04 LTS indigo lgloo

2014.7

16.04 LTS Kinetic Kame 2016.3
18.04 LTS Melodic Morenia 2018.3
20.04 LTS Noetic Ninjemys 2020.3
Foxy Fitzroy 2020.6
Galactic Geochelone 2021.3
Humble Hawksbill 2022.3
22.04 LTS Humble Hawksbill 2022.3
Iron Irwini 2023.3

Noetic Ninjemys 是ROS1的最后一个版本,以后的ROS都是ROS2,官方ROS1不支持Ubuntu22.04版本了

二、配置Ubuntu软件库

打开软件和更新

 

在弹出页面勾选 main , restricted , universe 和 multiverse

三、安装

1、设置安装源和密钥

添加安装源(建议用清华的)

#国内安装源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
#清华安装源
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

2、更新可用软件包列表

sudo apt update

如果安装的是国内安装源,会出现一些error,比较麻烦

问题:

 解决办法:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9165938D90FDDD2E
问题:

原因:口令错误,没办法连接服务器

解决办法:换个安装源

解决完以后重新更新

3、安装

sudo apt-get install ros-melodic-desktop-full

4、初始化

sudo apt install python-rosdep
sudo rosdep init
问题:

 解决办法:

cd /etc
sudo gedit hosts

打开一个文本文档,在末尾加上:

151.101.84.133 raw.githubusercontent.com

 

保存并关闭,然后继续初始化

cd ..
sudo rosdep init

 初始化成功

5、更新

rosdep update

由于网络不稳定可能会更新失败,多试几次就好了 

6、添加环境变量

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

7、安装rosinstall

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

8、安装catkin编译器

sudo apt-get install ros-melodic-catkin python-catkin-tools

9、实例测试

打开终端快捷键:ctrl+alt+T

在第一个终端输入:

roscore

 维持这个界面不要关,快捷键打开第二个终端输入:

rosrun turtlesim turtlesim_node

可视化界面不要关,快捷键打开第三个终端输入:

rosrun turtlesim turtle_teleop_key

此时就可以用键盘方向键控制乌龟移动了,注意当前窗口选择第三个终端,而不是选择可视化界面

如果乌龟可以顺利移动,说明安装成功

参考文章

ubuntu18.04安装ros-melodic(详细有图,绝对能安装成功)

Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤) 

ROS学习笔记-1 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu18.04 搭建ros环境 的相关文章

  • Java 内存错误:无法创建新的本机线程

    运行 java 服务器时 我在 UNIX 服务器上收到此错误 Exception in thread Thread 0 java lang OutOfMemoryError unable to create new native threa
  • copy_from_user() 错误:目标大小太小

    我正在为内核模块编写 ioctl 处理程序 我想从用户空间复制数据 当我编译禁用优化的代码时 O0 gflags 编译器返回以下错误 include linux thread info h 136 17 error call to bad
  • 将 file.lib 构建为可在 linux 上使用的 file.a

    我正在尝试将 api 从 Windows 移植到 Linux 到目前为止 我已经完成了 file cpp 和 file h 的工作 但我仍然有一个指定给 Windows 的库 lib 这是 api 工作所必需的 我怎样才能从这个库构建一个可
  • 如何从内部找到C++ Linux程序的完整路径?

    我有这个要求 我需要从内部找到 C 程序的完整路径 对于Windows 我有以下解决方案 argv 0 可能包含也可能不包含完整路径 但我需要确定 TCHAR drive MAX DRIVE dir MAX DIR base MAX FNA
  • 如何删除名称最大的目录?

    我有一个包含子目录的目录 其中一些名称是数字 不看的话 我不知道数字是多少 如何删除名称最大的子目录 我认为解决方案可能会将子目录按相反顺序排序 并选择以数字开头的第一个子目录 但我不知道该怎么做 感谢您的帮助 cd yourdir go
  • 您会为 Linux 推荐哪种甘特图/项目管理工具? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我需要一个可在 Linux 中运行并具有甘特图的项目管理工具 它不一定是免费的 只是不贵 我不在乎它如何存储我提供的信息 只要我可以访问它即可 我一定
  • 使用 SED 将单词的第一个字母大写

    如何将单词的第一个字母替换为大写字母 例如 Trouble me Gold rush brides into Trouble Me Gold Rush Brides 这一行应该做到这一点 sed e s b u 1 g
  • 如何在 Linux/Unix 上根据文件类型添加文件扩展名?

    这是一个关于 Unix shell 脚本 任何 shell 的问题 但任何其他 标准 脚本语言解决方案也将受到赞赏 我有一个充满文件的目录 其中文件名是这样的哈希值 fd73d0cf8ee68073dce270cf7e770b97 fec8
  • Laravel:调用未定义的函数 Symfony\Component\Console\mb_convert_variables()?

    我正在运行普通 Amazon EC2 服务器 我自己安装了 PHP 5 5 21 我的 Web 应用程序是基于 Laravel 构建的 几个星期以来 一切都进展顺利 然而 现在 当运行 Laravel 命令来更新数据库架构时 php 工匠迁
  • 真实设备中的 Android strace

    我有以下情况 我想监控Android手机上的系统调用 所以 我编写了一个脚本来做到这一点 使用 Android 模拟器可以完美地工作 将应用程序的痕迹写入我的 Ubuntu 上的特定文件中 问题是当我连接一个真实的手机来分析它时 它在结果文
  • RTNETLINK回答:没有这样的文件或目录错误

    1 ETH 1 2 LATENCY 2 3 LOSS 3 4 JITTER 4 5 BW 5 6 sudo sbin tc qdisc del dev eth0 root 7 sudo sbin tc qdisc add dev eth0
  • 如何使用 C 程序获取机器的 MAC 地址?

    这个问题和这个问题完全一样 如何使用 C 程序获取机器的 MAC 地址 https stackoverflow com questions 1779715 how to get mac address of your machine usi
  • 在 bash 脚本中设置变量[重复]

    这个问题在这里已经有答案了 test sh 包含 A 1 B 2 我将 test sh 设置为 chmod 777 我用两个参数启动脚本 test sh first last 然后我通过输入以下内容对其进行了测试 echo FirstVar
  • Linux:如何调试 SIGSEGV?如何追踪错误源?

    我的火狐浏览器从今天开始崩溃了 我没有更改系统或 Firefox 配置上的任何内容 I use strace ff o dumpfile txt firefox来追踪问题 这没什么大帮助 我在两个生成的进程转储中看到了段错误 但我怎样才能t
  • seq 使用逗号作为小数点分隔符

    我注意到一个奇怪的现象seq我的一台计算机 Ubuntu LTS 14 04 上的行为 不是使用点作为小数点分隔符 而是使用逗号 seq 0 0 1 0 2 0 0 0 1 0 2 我的另一台 PC 上相同版本的 seq 8 21 给出了正
  • 为什么python请求默认不使用系统ssl证书?

    背景 我正在尝试Ubuntu 18 04 1 LTS 使用 next 安装自签名证书 cp rf my crt usr local share ca certificates update ca certificates 一切正常 因为现在
  • 从多个进程附加到单个文件的“线程安全”?

    假设我有 X 个进程打开文件 Y 进行追加 每个进程一次只写入一行 带有 n 真正的日志条目 文件 Y 中的每一行是否保证不会错误地交错 更新 本地附加文件系统 问题取决于正在进行什么类型的写入 如果您使用带缓冲的标准 I O 这通常是大多
  • __NR_gettid 和 SYS_gettid 之间的区别

    我只是在寻找在 Linux 中获取唯一线程 ID 的方法 我发现的方法是将两个参数中的任何一个作为参数进行系统调用 NR gettid OR SYS gettid 有人能解释一下它们之间有何不同吗 Nothing in
  • Ubuntu:无法通过套接字“/var/run/mysqld/mysqld.sock”连接到本地 MySQL 服务器 (2)

    我有 Ubuntu 14 04 安装了 LAMP 并运行 Owncloud 的服务器 我尝试安装文书工作 https github com twostairs paperwork wiki Installing Paperwork on U
  • 使用 tac 和 sed 反转文件

    我有一个用例 我需要搜索并替换文件中最后一次出现的字符串并将更改写回文件 下面的案例是该用例的简化版本 我正在尝试反转该文件 进行一些更改 再次将其反转并写入该文件 我为此尝试了以下代码片段 tac test sed s a b sed i

随机推荐

  • postgreSQL12 主从

    Centos7 安装 postgreSQL 1 基础环境 2 部署主从 2 1 安装postgreSQL 2 2 主节点 2 3 从节点 3 验证主从 1 基础环境 操作系统 CentOS 7 7 PostgreSQL 12 1 主节点 1
  • mysql数据库备份类文件

  • 深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

    1 内联接 典型的联接运算 使用像 或 lt gt 之类的比较运算符 包括相等联接和自然联接 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行 例如 检索 students和courses表中学生标识号相同的所有行 2 外联接 外
  • MTK 底层耳机中断上报流程

    文章目录 前言 框架 硬件 背景知识 线控耳机原理图 检测电路解释 正文开始 软件 Linux 驱动代码流程 Android 前言 更新 加量不加价 框架 硬件 背景知识 国标耳机插头信号定义 lt lt lt 左声道 右声道 麦克 地 美
  • 【css

    linear gradient CSS函数创建一个由两种或多种颜色沿一条直线进行线性过渡的图像 其结果是
  • 初学React,做一个简易的滚动加载

    想做一个简单的滚动鼠标加载更多商品的功能 虽然有相关插件更方便 不过想手写一个简易版的 我把这个板块放在最下方 再下面就是一个小小的底部导航了 所以就判断滚动到页面底部就行 判断滚动到底部需要知道3个值 滚动的高度 可视区域的高度 滚动条内
  • 概率图模型&概率模型 及其应用

    文章目录 概率图模型 有向 vs 无向 概率模型 参数估计 隐变量估计 变分推断 应用例子1 BM RBM 应用示例2 概率图模型中网络结构估计 概率图模型 有向 vs 无向 概率图模型用图刻画一组随机变量之间的相关关系 有向 无环 图刻画
  • STM32移植mbedtls实现AES加解密

    前言 在实际的物联网项目开发中 经常需要将设备采集到的数据远程传输到服务器端 设备也会接收远程服务器端下发过来的数据 这便是数据交互 如果这些数据只是通过明文方式 进行交互 那么是不安全的 那么就需要将数据进行加密和解密了 本文讲基于mbe
  • GLSurfaceView 的onDrawFrame()频繁调用

    可用GlSurfaceView setRenderMode GLSurfaceView RENDERMODE WHEN DIRTY 和 GlSurfaceView setRenderMode GLSurfaceView RENDERMODE
  • Netty UDP 使用采坑

    使用Netty搭建UDP服务收集日志 使用过程中发现 部分日志接收不到 排查发现 都是大日志记录不到 后查询相关文档进行如下修改 EventLoopGroup workerGroup new NioEventLoopGroup 20 try
  • 创建随机点使用支持向量机进行分类(Arcgis+Envi)

    独自摸索是比较痛苦的 每周末两天才能碰巧挖出一个点 希望这篇文章能对你有所帮助 话不多说直接进入正题 首先在arcgis中导入图片 可能遇到此类情况 解决办法如下 双击图片 symbology RGB三通道选择波带 stretch选择拉伸方
  • Java自带排序函数sort()的使用方法

    import java util Arrays class Solution public int sortedSquares int nums int nums1 new int nums length for int i 0 i lt
  • git命令创建,合并,删除分支代码

    创建分支 1 git branch test 创建一个test的分支 2 git checkout test 切换到test分支 3 git add 4 git commit m 提交代码的说明 5 git remote add origi
  • 645.错误的集合(力扣leetcode) 博主可答疑该问题

    一 笔记部分 思路 1 可以用排序 先排序后连续两个相同 还有那个位置上缺了就是那个 2 转化为负数 先遍历一次先将每个元素所对应位置的树转化为负数 然后再遍历一次看那个是负数 就是出现了两次 再看索引的数字是否为负数 因为出现了的都是为负
  • go_命令行参数Args、flag

    Args os Args是一个string的切片 可以存储所有的命令行参数 在终端运行才行 func main args os Args for i v range args fmt Println 索引 i t数据 v 既然是切片 那就可
  • 2022年iOS上架及证书最新申请流程

    最近的15年 手机行业无论怎么变 ios系统依然还是占据着行业的榜首位置 而打包一个苹果的app 门槛则比较高 主要的原因在于苹果app的开发 打包时需要p12格式的证书文件和描述文件profile文件 在hbuilder和apicloud
  • 关于串口助手接收到数据,但显示的数据(16进制)为00的解决方法

    只需要把波特率调低就行
  • 直流电机控制 pwm 和 pid 算法

    下面的文章是我转载的 所以作者若是看到不允许转载 请给我留言或给我邮件 lushiliangcsdn 163 com 我会立即删除 转载原因 这篇文章把pid 算法解释的很详细 我担心以后这篇文章无故删除 才转载到我这边的 谢谢 转载来源于
  • 错误代码57049处理

    DB2 SQLSTATE 57049 处理过程 错误代码57049 修改 etc services 修改实例参数db2inst1参数 错误代码57049 db2 connect to 数据库 后报 SQLSTATE 57049 错误 SQL
  • Ubuntu18.04 搭建ros环境

    目录 一 查询版本 二 配置Ubuntu软件库 三 安装 1 设置安装源和密钥 2 更新可用软件包列表 问题 问题 3 安装 4 初始化 问题 5 更新 6 添加环境变量 7 安装rosinstall 8 安装catkin编译器 9 实例测