当前位置: 首页 > news >正文

SLAM从入门到精通(ROS安装)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        ROS科研上面用的多,实际生产其实用的也不少。它本身还是很好的应用框架。当然,它对于很多初学的同学来说还是很友好的。学完之后,可以直接port到嵌入式设备上面进行使用。只是,如果要把ROS真正部署到实际的项目中,有几个问题需要解决。

        第一个问题,那就是学会添加功能补丁、修补bug。很多的开源包,或多或少有一点bug,这些代码当初只是为了科研使用,本身并没有考虑那么仔细。所以,要为了杜绝各种corner case失效的情况,就必须要对之前代码中没有考虑的情形加上patch补丁,这样系统才能稳定运行。

        第二个问题,那就是性能优化和提高。之前所有的代码几乎都是由cpu完成的,而ROS服务的领域是机器人,这中间对于速率和性能其实是有要求的。所以简简单单port c++代码,有的时候效果并不好,所以这个时候就要修会使用硬件条件来加速。该升级cpu升级cpu,该转移到fpga计算转移到fpga,该使用gpu使用gpu,反正只要能提高实时性,大家可以根据自己的情况灵活进行处理。

        第三个问题,添加新算法、新设备。ROS本身只是一个框架,不一定能包含所有的算法和设备驱动。所以这个时候,我们看到了新的paper,发现了更好的传感器设备,就要学会自己在ROS平台上开发算法和驱动设备。这样ROS不再是一个简简单单的科研平台,它还具有了生产属性,可以为我们实际生产环境所使用了。

        今天我们就来看看,如何安装ROS。

1、安装ubuntu

        ROS本身是建立在linux系统之上的,所以在此之前,我们需要先安装一个linux系统。这里,可以选择ubuntu 20.04 64位系统,用virtualbox进行安装。

        有一点需要注意的就是,ROS涉及的软件和测试包比较多,所以空间最好大一点。省的后期出现空间不够的情况下。一般情况下认为,不能低于30G大小。

2、打开virtualbox的增强模式

        在ubuntu虚拟机里面安装增强模式之后,虚拟机就可以全屏显示了。

        

3、打开virtualbox双向拷贝功能

        打开了双向拷贝,不管是host往虚拟机拷贝字符,还是虚拟机往host拷贝字符,就都非常方便了。

4、打开软件更新,将软件源设置成ustsc

        换软件源,主要是为了ubuntu下面apt-get下载的速度可以更快。这样就不必要到ubuntu的官网去下载软件了。

5、添加ROS源和keys

        之前的软件源是为了下载一般的软件,但是不一定有ROS软件。所以这里还需要添加ROS源和keys。首先,添加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'

        接着配置keys,

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

        这个时候,没有什么问题的话,就可以update一下了,

sudo apt-get update

6、安装ROS软件

        每一个ubuntu都有一个匹配的ROS,而ubuntu 20.04匹配的版本就是noetic。所以我们直接安装noetic全家桶就可以了。安装的软件包比较多,一般会有1000多个,稍微等待下即可。

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

7、在启动脚本里面添加ROS环境设置

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

8、安装构建依赖项

        有一部分开发可能涉及到python脚本的编写。所以这部分软件也需要安装下,

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

9、安装rosdepc并初始化

        安装ROS系统第一次用的时候,一般需要rosdep设置下。但是rosdep执行的时候,通常会被hang注,这主要是因为相关的资源无法从国外下载。所以,这里可以通过rosdepc来替代,效果是一样的,

sudo apt-get install python3-pip
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update

10、启动熟悉的小乌龟程序

        学过ROS的同学都知道,一般确认ROS有没有安装好,启动一下小乌龟程序就好了。第一步,启动roscore,

roscore

        第二步,打开含有小乌龟的界面,

rosrun turtlesim turtlesim_node

        完成这一步,如果没有什么问题的话,就会看到小乌龟的界面,

        第三步,打开控制程序,

rosrun turtlesim turtle_teleop_key

        有了这三个程序,我们就可以让小乌龟动起来了。如果小乌龟没有问题,那代表ROS真的安装好了。

相关文章:

SLAM从入门到精通(ROS安装)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 ROS科研上面用的多,实际生产其实用的也不少。它本身还是很好的应用框架。当然,它对于很多初学的同学来说还是很友好的。学完…...

Linux 下spi设备驱动

参考: Linux kernel 有关 spi 设备树参数解析 Linux kernel 有关 spi 设备树参数解析 - 走看看 Linux SPI驱动框架(1)——核心层 Linux SPI驱动框架(1)——核心层_linux spi驱动模型_绍兴小贵宁的博客-CSDN博客 Linux SPI驱动框架(2)——控制器驱动层 Linux SPI驱…...

一:图形的位置和尺寸测量

绘制的基本要素: onDraw(Canvas):是用来重写的 Canvas:实际执行绘制的 Paint:调整粗细和颜色等 坐标系:以屏幕左上角为原点,向右、向下为正向数值的坐标系 尺寸单位:在绘制过程中所有的尺寸单位都是px…...

rtthread下基于spi device架构MCP25625驱动

1.CAN驱动架构 由于采用了RTT的spi device架构,不能再随心所遇的编写CAN驱动 了,之前内核虽然采用了RTT内核,但是驱动并没有严格严格按RTT推荐的架构来做,这次不同了,上次是因为4个MCP25625挂在了4路独立的SPI总线上&…...

Open3D 点云投影到圆柱(python详细过程版)

目录 一、算法原理1、圆柱方程2、投影原理二、代码实现三、结果展示1、原始点云2、投影结果四、参考链接一、算法原理 1、圆柱方程 圆柱方程可以表示为: ( x − x...

Unity实战(10):如何将某个相机的画面做成贴图(RenderTexture)

目录 前言 一、创建物体、材质与相机 二、将RenderTexture赋给材质 2.1 修改rt1的一些属性 2.2 将rtMat1材质的shader改为Unlit/Texture,并将rt1赋给这个材质 三、效果呈现 前言 本文记录如何将某个相机的画面做成贴图,即游戏某些场景中小地图做法…...

STL- 函数对象

1 函数对象 1.1 函数对象概念 概念: 重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 1.2 函数对象…...

前端 JS 经典:上传文件

重点&#xff1a;multipart/form-data 后端识别上传类型必填 1. form 表单上传 <!-- enctype"multipart/form-data" 这个必填 --> <form action"http://127.0.0.1:8080/users/avatar" method"post" enctype"multipart/form-data…...

数据分析面试

数据分析相关的职位面试可以拆解为以下三块&#xff1a; 1&#xff09;技术基础 2&#xff09;项目经验提问 3&#xff09;业务问题 【数据分析与挖掘&#xff08;二&#xff09;】面试题汇总(附答案)_数据分析面试常见问题及答案_youthlost的博客-CSDN博客 我裸辞去面试p…...

Open3D(C++) 整体最小二乘拟合平面

目录 一、算法原理1、算法过程2、参考文献二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。 一、算法原理 1、算法过程 最小二乘拟合平面认为点云数据系数矩阵不存在误差,然而由于观测条件的限制,观测向量、系数矩阵都有可能存在误差,那么最小二乘方法就不再是最…...

【android12-linux-5.1】【ST芯片】【RK3588】【LSM6DSR】HAL源码分析

一、环境介绍 RK3588主板搭载Android12操作系统,内核是Linux5.10,使用ST的六轴传感器LSM6DSR芯片。 二、芯片介绍 LSM6DSR是一款加速度和角速度(陀螺仪)六轴传感器,还内置了一个温度传感器。该芯片可以选择I2C,SPI通讯,还有可编程终端,可以后置摄像头等设备,功能是很…...

MT8788安卓核心板详细参数_MTK安卓主板开发板智能通讯模块

MT8788安卓核心板集成了一个高效的12nm SoC&#xff0c;内置4G LTE调制解调器&#xff0c;将强大的硬件与到处可连接的全面功能设计相结合。 MTK8788智能终端具备许多功能&#xff0c;包括4G、2.4G/5G双频WiFi、蓝牙4.2BLE、2.5W功放、USB、mipi屏接口、三路摄像头接口、GPS和…...

C++String模拟实现

实际上string没什么可讲&#xff0c;主要是对string函数的运用与理解&#xff0c;与其写库函数如何用&#xff0c;不如直接去看c库函数来得好。 以下是自己实现string功能函数。但没对string库中的全部函数进行实现&#xff0c;而是实现主要使用的。 .cpp内是用来测试函数功能…...

Java 设置免登录请求接口被拦截问题

1、在设置免登录时&#xff0c;前端将请求的路由添加到白名单后&#xff0c;请求接口还是被拦截到了&#xff0c;将请求接口也设置后还是会被拦截跳转到登录页面 通过JAVA 注解 Anonymous 进行设置匿名访问就可以了...

(其他) 剑指 Offer 67. 把字符串转换成整数 ——【Leetcode每日一题】

❓ 剑指 Offer 67. 把字符串转换成整数 难度&#xff1a;中等 写一个函数 StrToInt&#xff0c;实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。 首先&#xff0c;该函数会根据需要丢弃无用的开头空格字符&#xff0c;直到寻找到第一个非空格的字符为…...

【MySQL】一文详解MySQL,从基础概念到调优

作者简介 前言 博主之前写过一个MySQL的系列&#xff0c;从基础概念、SQL到底层原理、优化&#xff0c;专栏地址&#xff1a; https://blog.csdn.net/joker_zjn/category_12305262.html?spm1001.2014.3001.5482 本文会是这个系列的清单&#xff0c;拉通来聊一聊Mysql从基础概…...

机器学习——boosting之提升树

提升树和adaboost基本流程是相似的 我看到提升树的时候&#xff0c;懵了 这…跟adaboost有啥区别&#xff1f;&#xff1f;&#xff1f; 直到看到有个up主说了&#xff0c;我才稍微懂 相当于&#xff0c;我在adaboost里的弱分类器&#xff0c;换成CART决策树就好了呗&#xff1…...

解决Spring Boot启动错误的技术指南

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

使用Spring Security保障你的Web应用安全

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…...

PostgreSQL本地化

本地化的概念 本地化的目的是支持不同国家、地区的语言特性、规则。比如拥有本地化支持后&#xff0c;可以使用支持汉语、法语、日语等等的字符集。除了字符集以外&#xff0c;还有字符排序规则和其他语言相关规则的支持&#xff0c;例如我们知道(‘a’,‘b’)该如何排序&…...

MySQL——日志

日志的作用 1.用来排错 2.用来做数据分析 3.了解程序的运行情况&#xff0c;是否健康--》了解MySQL的性能&#xff0c;运行情况 分类 mysql很多有类型的日志&#xff0c;按照组件划分的话&#xff0c;可以分为 服务层日志 和 存储引擎层日志 &#xff1a; - 服务层…...

玩转Mysql系列 - 第18篇:流程控制语句(高手进阶)

这是Mysql系列第18篇。 环境&#xff1a;mysql5.7.25&#xff0c;cmd命令中进行演示。 代码中被[]包含的表示可选&#xff0c;|符号分开的表示可选其一。 上一篇存储过程&自定义函数&#xff0c;对存储过程和自定义函数做了一个简单的介绍&#xff0c;但是如何能够写出复…...

LED屏幕电流驱动设计原理

LED电子显示屏作为户外最大的应用产品&#xff0c;是大型娱乐&#xff0c;体育赛事&#xff0c;广场大屏幕等场所不可或缺的产品&#xff0c;从单双色简单的文字展示到今天的高清全彩&#xff0c;显示屏的技术一直都在进步&#xff0c;全球80%的LED电子显示屏皆产自于中国。显示…...

shell知识点复习

1、shell能做什么&#xff08; Shell可以做任何事(一切取决于业务需求) &#xff09; 自动化批量系统初始化程序 自动化批量软件部署程序 应用管理程序 日志分析处理程序 自动化备份恢复程序 自动化管理程序 自动化信息采集及监控程序 配合Zabbix信息采集 自动化扩容 2、获取当…...

【Sentinel Go】新手指南、流量控制、熔断降级和并发隔离控制

随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开…...

iOS自定义滚动条

引言 最近一直在做数据通信相关的工作&#xff0c;导致了UI上的一些bug一直没有解决。这两天终于能腾出点时间大概看了一下Redmine上的bug&#xff0c;发现有很多bug都是与系统滚动条有关系的。所以索性就关注一下这个小小的滚动条。 为什么要自定义ScrollIndictor 原有的Scrol…...

C++知识点2:把数据写进switch case结构,和写进json结构,在使用上有什么区别

将数据存储在Switch Case结构和JSON结构中有明显的区别&#xff0c;它们用于不同的目的和方式。以下是它们之间的主要区别&#xff1a; 1、用途和结构&#xff1a; Switch Case结构&#xff1a;Switch Case是一种条件语句&#xff0c;通常用于根据条件执行不同的代码块。它通常…...

肖sir__linux详解__003(vim命令)

linux 文本编辑命令 作用&#xff1a;用于编辑一个文件 用法&#xff1a;vim 文件名称 或者vi &#xff08;1&#xff09;编辑一个存在的文档 例子&#xff1a;编辑一个file1文件 vim aa &#xff08;2&#xff09;编辑一个文件不存在&#xff0c;会先创建文件&#xff0c;再…...

瑞芯微RK3588开发板:虚拟机yolov5模型转化、开发板上python脚本调用npu并部署 全流程

目录 0. 背景1. 模型转化1.1 基础环境1.2 创建python环境1.3 将yolov5s.pt转为yolov5s.onnx1.4 将yolov5s.onnx转为yolov5s.rknn 2. 开发板部署2.1. c版本2.1. python版本&#xff08;必须是python 3.9&#xff09; 3. 性能测试 0. 背景 全面国产化&#xff0c;用瑞芯微rk3588…...

【Redis专题】RedisCluster集群运维与核心原理剖析

目录 课程内容一、Redis集群架构模型二、Redis集群架构搭建&#xff08;单机搭建&#xff09;2.1 在服务器下新建各个节点的配置存放目录2.2 修改配置&#xff08;以redis-8001.conf为例&#xff09; 三、Java代码实战四、Redis集群原理分析4.1 槽位定位算法4.2 跳转重定位4.3 …...

dj网站开发建设/网站关键词排名怎么优化

目前&#xff08;2019/07/10&#xff09;分为社区版和企业版。社区版使用 MIT 许可&#xff0c;企业版使用专有许可。 选择版本 历史版本&#xff1a;GitLab releases 安装版本&#xff1a;https://<your.domain.name>/help 目前&#xff08;2019/07/10&#xff09;官方强…...

wordpress html5 app/seo服务公司

最近老是用到导出功能&#xff0c;用别人写的工具类贼不爽&#xff0c;于是自己写了一个。 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></dependency><dependency><groupId>org.apache.poi&l…...

动态网站建设优缺点/网络推广seo公司

文章目录查看ip 在https://www.ipaddress.com中获取github.global.ssl.fastly.net和github.com的ip 添加配置 windows系统的hosts文件的位置如下&#xff1a;C:\Windows\System32\drivers\etc\hostsmac/linux系统的hosts文件的位置如下&#xff1a;/etc/hosts 140.82.113.4 git…...

如何生成一个网站/数字营销公司

爆炸入口 给定一颗带权值的&#xff0c;节点数为n的树&#xff0c;求树上路径最大异或和。 solution&#xff1a; 先dfs将所有点到根的异或和算出来。然后放进tire树中贪心。 #include<cstdio> #include<iostream> using namespace std; const int manx100010; int…...

我的网站怎么转网页呢/百度网址大全 官网

题目&#xff1a;输入三个整数x,y,z&#xff0c;请把这三个数由小到大输出。 Scanner scanner new Scanner(System.in);System.out.println("请输入三个数");int i scanner.nextInt();int j scanner.nextInt();int k scanner.nextInt();int temp 0;if (i>j)…...

o2o电子商务网站建设/手游推广平台有哪些

大家都知道&#xff0c;去美国留学申请名校并不是件容易的事儿&#xff0c;每年申请这类院校的同学不在少数&#xff0c;但能如愿以偿拿到录取通知书的群却少之又少&#xff0c;有同学疑问“我的本科院校很普通&#xff0c;有望申请美国名校吗&#xff1f;”&#xff0c;针对这…...