基于Ubuntu20.04安装ROS系统

文章目录

  • 一、ROS简介
  • 二、ROS安装
  • 三、ROS安装测试
  • 四、安装问题解决
    • 1. sudo rosdepc init:找不到命令
    • 2. ERROR: cannot download default sources list from...
    • 3. Command 'roscore' not found...
    • 4. Resource not found: roslaunch...


一、ROS简介

ROS是用于编写机器人软件程序的一种具有高度灵活性的软件架构。它包含了大量工具软件、库代码和约定协议,旨在简化跨机器人平台创建复杂、鲁棒的机器人行为这一过程的难度与复杂度。

随着机器人领域的快速发展和复杂化,代码的复用性和模块化的需求原来越强烈,而已有的开源机器人系统又不能很好的适应需求。2010年Willow Garage公司发布了开源机器人操作系统ROS(robot operating system),很快在机器人研究领域展开了学习和使用ROS的热潮。

在这里插入图片描述

二、ROS安装

  • 1. 第一步,配置软件库
    在主界面左下角“显示应用程序中”选择“软件和更新”,参考如下配置
    在这里插入图片描述
  • 2. 第二步,添加ROS软件源
    在终端中输入如下指令:
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'
  • 3. 第三步,添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  • 4. 第四步,更新系统
sudo apt-get update

在这里插入图片描述

  • 5. 第五步,安装ROS
sudo apt install ros-noetic-desktop-full

在这里插入图片描述

  • 6. 第六步,初始化rosdep
sudo rosdepc init
rosdepc update

在这里插入图片描述
在这里插入图片描述

  • 7. 第七步,设置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
  • 8. 第八步,安装 rosinstall
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

在这里插入图片描述

三、ROS安装测试

①在第一个终端下输入:

roscore

②在第二个终端下输入:

rosrun turtlesim turtlesim_node

③在第三个终端下输入:

rosrun turtlesim  turtle_teleop_key

点击第三个窗口,用 ↑ ↓ ← →可控制小海龟走向
在这里插入图片描述
至此,ROS安装成功!

四、安装问题解决

1. sudo rosdepc init:找不到命令

在这里插入图片描述
解决方法:安装python3-rosdep2

sudo apt install python3-rosdep2

在这里插入图片描述

2. ERROR: cannot download default sources list from…

在这里插入图片描述
解决方法:

sudo pip install rosdepc

如果显示没有pip可以试试pip3:

sudo pip3 install rosdepc

如果pip3还没有就:

sudo apt-get install python3-pip 
sudo pip install rosdepc

在这里插入图片描述
在这里插入图片描述

3. Command ‘roscore’ not found…

在这里插入图片描述
解决方法:

sudo apt install python3-roslaunch

在这里插入图片描述

4. Resource not found: roslaunch…

在这里插入图片描述
解决方法:

sudo apt install ros-noetic-desktop-full

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/123360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

O(1) 时间插入、删除和获取随机元素

实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象 bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回 true ;否则,返回 false 。 bool remove(int val) 当元素 val 存在时&#xf…

C# 递归算法使用简介_常用整理

一、递归简介 递归算法是一种直接或者间接调用自身函数或者方法的算法。 递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。 递归本质是循环&a…

mysql如何查询数据出现的次数

在mysql中,可以利用select语句配合group by和count查询数据出现的次数,count能够返回检索数据的数目,语法为“select 列名,count(*) as count from 表名 group by 列名”。 count函数是用来统计表中或数组中记录的一个函数,count…

自定义控件的子控件布局(onLayout()方法)

onLayout()方法用于指定布局中子控件的位置,该方法通常在自定义的ViewGroup容器中重写。 重写onLayout()方法中的常用方法: getChildCount() 获取子控件数量 getChildAt( int index ) 获取指定index的子控件,返回View view.getVisibilit…

大语言模型系列

国产大模型开源一哥再登场,最强双语LLM「全家桶」级开源!340亿参数超越Llama2-70B 为什么说大模型训练很难? - 知乎 GitHub - jeinlee1991/chinese-llm-benchmark: 中文大模型能力评测榜单:覆盖百度文心一言、chatgpt、阿里通义千…

C#学习系列之继承

C#学习系列之继承 啰嗦继承使用特殊基类隐藏方法实际使用总结 啰嗦 基础学习。 继承 一个类派生于另一个基类型,它拥有该基础类型的所有成员字段和函数。A派生于B,继承A的所有东西,同时可以增加自己的东西。 使用 public class parent {p…

bootstrap.yml文件未加载

springcloud2020.X.X版本官方重构了bootstrap引导配置的加载方式 需要添加以下依赖才能提高bootstrap.yml文件加载的优先级 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-bootstrap</artifactId&g…

Spring-声明式事务

声明式事务 一、简介1、准备工作2、测试 二、声明式事务概念1、编程式事务2、声明式事务3、基于注解的声明式事务1.测试无事务情况2.加入事务①Transactional注解标识的位置②事务属性&#xff1a;只读③事务属性&#xff1a;超时④事务属性&#xff1a;回滚策略⑤事务属性&…

《Effective C++》知识点(4)--设计与声明

18. 让接口容易被正确使用&#xff0c;不易被误用 18.1 好的接口很容易被正确使用&#xff0c;不容易被误用。你应该在你的所有接口中努力达成这些性质。任何接口如果要求客户必须记得做某些事情&#xff0c;就有着"不正确使用"的倾向。 18.2 "促进正确使用&quo…

文心一言 VS 讯飞星火 VS chatgpt (123)-- 算法导论10.4 4题

四、用go语言&#xff0c;对于一个含 n个结点的任意有根树&#xff0c;写出一个 O(n)时间的过程&#xff0c;输出其所有关键字该树以左孩子右兄弟表示法存储。 文心一言&#xff1a; 在计算机科学中&#xff0c;左孩子右兄弟表示法是一种用于表示树状结构的方法&#xff0c;其…

解决Maven打包Nacos时插件报错

Maven打包指令&#xff1a;mvn clean install -Dmaven.test.skiptrue -Dcheckstyle.skiptrue 在执行时报错&#xff0c;报错信息如下&#xff1a; Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.6.1:compile (default) on project nacos-consist…

gradle多模块依赖管理最佳实践

gradle多模块依赖管理最佳实践 多模块项目依赖管理定义子模块使用buildSrc定义插件SofastModulePluginOptional 依赖 增加dependencies子模块其他子模块web 多模块项目依赖管理 依赖管理是项目开发过程中必不可少的操作&#xff0c;在gradle如何优雅的管理多个模块依赖是一个非…

软考下午第一题 案列分析

期待分值 10&#xff0c;前三问12左右分&#xff0c;最后一题2、3分左右&#xff0c;重点在于拿下前面三题。 小心谨慎&#xff0c;不要大意。 数据流图 外部系统 数据存储 加工&#xff08;&#xff09;process 数据流 第二小题 说明给出存储名称&#xff0c;就使用该名称&…

k8s 1.28版本:使用StorageClass动态创建PV,SelfLink 问题修复

k8s中提供了一套自动创建 PV 的机制&#xff0c;就是基于 StorageClass 进行的&#xff0c;通过 StorageClass 可以实现仅仅配置 PVC&#xff0c;然后交由 StorageClass 根据 PVC 的需求动态创建 PV。 问题&#xff1a;   使用 k8s 1.28版本&#xff0c;通过 kubectl get pv…

走进国产机器人领军品牌华数机器人,共探数字化变革魔力

近日&#xff0c;纷享销客举办的“一院两司服务对接会暨走进纷享销客【数字化标杆】游学示范基地活动”在佛山顺利举行&#xff0c;本期活动走进华中数控旗下品牌、国家级专精特新“小巨人”企业华数机器人&#xff0c;特邀佛山华数机器人有限公司常务副总经理杨林、纷享销客广…

【vue3】样式穿透、完整新特性、动态css、css-module

一、样式穿透 vue2里面使用 /deep/ vue3里面使用 :deep() :deep(.el-input__inner){background-color: red; }二、完整新特性 :slotted() //parent.vue <template><div><p>这是父级</p><span></span><A><p class"red"…

高级深入--day44

Scrapy 和 scrapy-redis的区别 Scrapy 是一个通用的爬虫框架&#xff0c;但是不支持分布式&#xff0c;Scrapy-redis是为了更方便地实现Scrapy分布式爬取&#xff0c;而提供了一些以redis为基础的组件(仅有组件)。 pip install scrapy-redis Scrapy-redis提供了下面四种组件&a…

Unable to find GatewayFilterFactory with name TokenRelay

目录 问题分析解决方案参考文档开源项目微服务商城项目前后端分离项目 问题分析 Spring Cloud Gateway 网关作为代理资源服务器&#xff0c;需要将 JWT 传递给下游资源服务器&#xff0c;下面是网关的配置 spring:cloud:gateway:discovery:locator:enabled: true # 启用服务发…

Linux 块设备驱动实验

前面我们都是在学习字符设备驱动&#xff0c;本章我们来学习一下块设备驱动框架&#xff0c;块设备驱动是 Linux 三大驱动类型之一。块设备驱动要远比字符设备驱动复杂得多&#xff0c;不同类型的存储设备又 对应不同的驱动子系统&#xff0c;本章我们重点学习一下块设备相关驱…

.NET、VUE利用RSA加密完成登录并且发放JWT令牌设置权限访问

后端生成公钥私钥 使用RSA.ToXmlString(Boolean) 方法生成公钥以及私钥。 RSACryptoServiceProvider rSA new(); string pubKey rSA.ToXmlString(false);//公钥 string priKey rSA.ToXmlString(true);//私钥 后端将生成的公钥发送给前端 创建一个get请求&#xff0c;将…