ROS 开发环境搭建(虚拟机版本)(一)
相关工具,以及镜像(以后有用)
链接:https://pan.baidu.com/s/1xgtp-XGFFNCACV_-0TJO2A
提取码:ar1w
1. 下载vm虚拟机(我选择的官方最新的vm虚拟机),安装好
2.安装百度网盘里面的ubuntu镜像 18版本的

然后下面没有什么好说的,会装镜像就会,不会的自己去搜索这么装镜像的吧。这真没有什么好说的。

后面配置,设置自己弄吧。一直弄好为止。这都不会,我也没有办法,找其他的文章如何安装吧。
安装好后的样子:

然后右键:点拍摄快照,如果后面弄坏虚拟机,恢复快照就可以回到现在的 这个样子

然后我们打开一个终端输入命令:
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'

命令解释:
这是一个在Unix/Linux终端中的命令,用于向系统的软件包管理器添加一个新的软件包源,特别是用于机器人操作系统(ROS)的软件包源。以下是该命令及其参数的解释:
sudo:该命令使用管理员权限运行后续命令,这是修改系统文件和目录所必需的。
sh -c:告诉终端将后续命令作为shell脚本运行,-c选项表示该命令应被视为单个参数。
'. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/lsb_release -csmain" > /etc/apt/sources.list.d/ros-latest.list':这是实际运行的命令,它执行以下操作:
- 前半部分
'. /etc/lsb-release &&',会读取/etc/lsb-release文件并设置与系统Linux发行版相关的环境变量。- 后半部分
echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/lsb_release -csmain" > /etc/apt/sources.list.d/ros-latest.list',创建一个名为ros-latest.list的新文件,并在该文件中写入一行包含ROS软件包源URL的内容,该URL是针对与从lsb_release -cs命令获取的系统发行版代号匹配的Ubuntu发行版的。echo命令将字符串"deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/lsb_release -csmain"写入该文件,这是APT软件包源行的有效格式。总之,该命令用于向系统的软件包管理器添加一个新的ROS软件包源,允许用户从该软件包源安装和更新ROS软件包。
sudo命令用于确保该命令具有必要的权限来修改系统文件,而sh -c命令用于在终端中作为shell脚本运行该命令。
继续执行以下命令:
sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
效果:

命令解释:
这是一个在Unix/Linux终端中的命令,用于将公钥添加到系统的APT密钥环中,以便验证从该公钥签名的软件包。以下是该命令及其参数的解释:
sudo:该命令使用管理员权限运行后续命令,这是修改系统文件和目录所必需的。apt-key:这是一个APT密钥管理器的命令,用于管理系统的密钥环。adv:这是一个选项,允许传递高级选项给APT密钥管理器。--keyserver 'hkp://pgp.mit.edu:80':这是一个选项,指定从哪个密钥服务器获取公钥。在这种情况下,它指定从MIT PGP Key Server获取公钥,hkp是指定密钥服务器协议的选项,pgp.mit.edu是指定密钥服务器的主机名或IP地址,80是指定密钥服务器的端口号。--recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654:这是一个选项,用于指定要添加到密钥环中的公钥的ID。在这种情况下,它指定了ROS软件包仓库的公钥ID。因此,这个命令的作用是从MIT PGP Key Server获取ROS软件包仓库的公钥,并添加到系统的APT密钥环中,以便在安装或更新ROS软件包时验证软件包的签名。
sudo命令用于确保该命令具有必要的权限来修改系统文件,而apt-key命令则允许管理系统的密钥环。
然后再执行:
sudo apt-get update
sudo apt-get install ros-melodic-desktop-full
效果:

等2000年吧,要梯子更快,因为那个文档就是用的外国的链接,只有软件是国内的
终于安装好了。2个小时
然后执行命令:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
这个命令的含义是将ROS(Robot Operating System)的Melodic版本的
setup.bash文件添加到当前用户的.bashrc文件中。具体来说,该命令的作用是向
~/.bashrc文件中添加一行文本,即source /opt/ros/melodic/setup.bash。这个文本行的含义是在bash shell启动时自动执行ROS Melodic的setup.bash文件,从而设置ROS环境变量和其他必要的配置。通过将
source /opt/ros/melodic/setup.bash添加到.bashrc文件中,您可以确保每次打开新的终端窗口或会话时,ROS环境变量和配置都会自动设置,而无需手动输入命令。需要注意的是,该命令假定您已经在系统中安装了ROS Melodic,并且
/opt/ros/melodic/setup.bash路径正确。如果您使用的是其他版本的ROS或其他路径,请相应地修改该命令中的路径和版本号。
效果:

两个终端分别运行:
roscore
rosrun turtlesim turtlesim_node
效果:


然后再开一个终端 :
rosrun turtlesim turtle_teleop_key


然后我们像刚刚那样再创建一个虚拟机快照,这样以后我们系统有问题,我们可以恢复到这里已经安装好了的ros的系统了。

相关文章:
ROS 开发环境搭建(虚拟机版本)(一)
相关工具,以及镜像(以后有用) 链接:https://pan.baidu.com/s/1xgtp-XGFFNCACV_-0TJO2A 提取码:ar1w 1. 下载vm虚拟机(我选择的官方最新的vm虚拟机),安装好 2.安装百度网盘里面的…...
vue3做项目是需要注意的事项
Vue.js是一款非常优秀的前端开发框架,其第三代版本Vue3已经发布了。Vue3在性能、体验和功能等方面有了很大的提升,因此它成为了前端工程师们关注的焦点之一。在使用Vue3做项目时,有一些需要注意的事项,以下是对这些注意事项的介绍…...
docker日志轮转
cat /etc/docker/daemon.json { "log-driver": "json-file", "log-opts": { "max-size": "250m", "max-file": "3" } }...
论文阅读_音频压缩_Encodec
论文信息 name_en: High Fidelity Neural Audio Compression name_ch: 高保真神经音频压缩 paper_addr: http://arxiv.org/abs/2210.13438 date_read: 2023-04-27 date_publish: 2022-10-24 tags: [‘深度学习’,‘音频’] author: Alexandre Dfossez, Meta AI, FAIR Team cod…...
第06章_多表查询
第06章_多表查询 多表查询,也称为关联查询,指两个或更多个表一起完成查询操作。 前提条件:这些一起查询的表之间是有关系的(一对一、一对多),它们之间一定是有关联字段,这个关联字段可能建立了…...
自学黑客(网络安全)有哪些技巧——初学者篇
很多人说,要想学好黑客技术,首先你得真正热爱它。 热爱,听着多么让人激情澎湃,甚至热泪盈眶。 但很可惜,“热爱”这个词对还没入门的小白完全不管用。 如果一个人还没了解过你就说爱你,不是骗财就是骗色…...
CMD与DOS脚本编程【第四章】
预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数,如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…...
Liunx安装Docker
Liunx在线安装Docker 简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不…...
docker:容器的数据卷
1 数据卷概念及作用 1.1 什么是容器数据卷 先来看看Docker的理念: 将应用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的容器之间希望有可能共享数据 Docker容器产生的数据,如果不通过…...
【TCP】对TCP三次握手的个人理解
三次握手 TCP 是面向连接的协议,所以使用 TCP 前必须先建立连接,而建立连接是通过三次握手来进行的。三次握手的过程如下图: 一开始,客户端和服务端都处于 CLOSE 状态。先是服务端主动监听某个端口,处于 LISTEN 状态 …...
squid的基本代理
一、Squid代理服务器的概述 squid 作为一款服务器代理工具,可以缓存网页对象,减少重复请求,从而达到加快网页访问速度,隐藏客户机真实IP,更为安全。 Squid主要提供缓存加速、应用层过滤控制的功能 1、squid代理的工…...
【从零开始写视觉SLAM】v0.1基于特征点的简单VO
v0.1版本的oSLAM实现了基于orb特征点的简单视觉里程计,通过连续两帧的rgbd数据实现相机相对位姿的估计。 #mermaid-svg-ibQfHFVHezQD5RWW {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ibQfHFVHezQD5RW…...
CentOS-7 安装 MariaDB-10.8
一、安装之前删除已存在的 Mysql/MariaDB 1 查找存在的 MariaDB # 注意大小写 rpm -qa | grep MariaDB # rpm -qa 列出所有被安装的rpm package (-qa:query all) rpm -qa | grep mariadb # grep (缩写来自Globally search a Regular Expre…...
Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1
Packet Tracer – 对 VLAN 实施进行故障排除 – 方案 1 地址分配表 设备 接口 IP 地址 子网掩码 交换机端口 VLAN PC1 NIC 172.17.10.21 255.255.255.0 S2 F0/11 10 PC2 NIC 172.17.20.22 255.255.255.0 S2 F0/18 20 PC3 NIC 172.17.30.23 255.255.255.0…...
五、c++学习(加餐1:汇编基础学习)
经过前面几节课的学习,我们在一些地方都会使用汇编来分析,我们学习汇编,只是学习一些基础,主要是在我们需要深入分析语法的时候,使用汇编分析,这样会让我们更熟悉c编译器和语法。 从这节课开始,…...
iOS正确获取图片参数深入探究及CGImageRef的使用(附源码)
一 图片参数的正确获取 先拿一张图片作为测试使用 图片参数如下: 图片的尺寸为: -宽1236个像素点 -高748个像素点 -色彩空间为RGB -描述文件为彩色LCD -带有Alpha通道 请记住这几个参数,待会儿我们演示如何正确获取。 将这张图片分别放在…...
Typescript 5.0 发布:快速概览
探索最令人兴奋的功能和更新 作为一种不断发展的编程语言,TypeScript 带来了大量的改进和新功能。在本文中,我们将深入探讨 TypeScript 的最新版本 5.0,并探索其最值得关注的更新。 1. 装饰器 TypeScript 5.0 引入了一个重新设计的装饰器系…...
【图像处理 】卡尔曼滤波器原理
目录 一、说明 二、它是什么? 2.1 我们可以用卡尔曼滤波器做什么? 2.2 卡尔曼滤波器如何看待您的问题...
YOLOv5 实例分割入门
介绍 YOLOv5 目标检测模型以其出色的性能和优化的推理速度而闻名。因此,YOLOv5 实例分割模型已成为实时实例分割中最快、最准确的模型之一。 在这篇文章中,我们将回答以下关于 YOLOv5 实例分割的问题: YOLOv5检测模型做了哪些改动,得到了YOLOv5实例分割架构?使用的 Prot…...
数字城市发展下的技术趋势,你知道多少?
提到数字城市、智慧城市大家都会感觉经常在耳边听到,但是要确切说出具体的概念还是有一点难度的。具体来说:数字城市是一个集合多种技术的系统,以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带,运用…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
