2022/12/20重制,精简流程,直接去掉网络问题。
如果要装ROS2请看这篇博客:【安装】Ubuntu 20.04下快速安装ROS2 Foxy,这篇文章是装ROS1的。
为方便大家学习,如果安装ROS遇到的问题实在太多,也可以直接下载我提供给大家的、已经安装好ROS的Ubuntu虚拟机:下载链接, 提取码:1030。
虚拟机的使用说明也在这个文件夹下,虚拟机密码是3edcxsw2。
全过程录屏(虽然貌似没有必要就是说):
https://www.bilibili.com/video/BV1du411d7ho?p=3
Ubuntu20.04用的是focal
,以下是Ubuntu版本号和版本名称的对应关系:
版本号 | 版本名称 |
---|---|
18.04 | bionic |
20.04 | focal |
如果是其他版本想安装ROS,这篇博客中所有提到focal
的,都要替换成其他版本对应的版本名称。
例如:Ubuntu20.04安装ROS,需要使用
focal
;
Ubuntu18.04安装ROS,需要换成bionic
。
可以看到,上表中我将Ubuntu21.04、22.04划掉了,这是因为Noetic(也就是Ubuntu20.04对应的ROS版本名字)是ROS1发行版的最后一个版本,ROS1不再开发支持更高版本Ubuntu的ROS1版本。
因此,如果你在Ubuntu21.04、22.04安装ROS,你或许会在更新ros软件源或者其他软件源时,遇到如下错误:Err: 【你的软件源地址】 【版本名称】 Release/InRelease 404 Not Found
,例如:
Ign:2 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu impish InRelease
Err:3 http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu impish Release
404 Not Found [IP: 101.6.15.130 80]
所以如果你在Ubuntu21.04、22.04安装ROS,请将/etc/apt/sources.list.d/ros-latest.list
中的impish
/jammy
修改为focal
,再重新更新软件源sudo apt update
。
Ubuntu版本不一致,其实也都可以用这篇教程。
我针对这个问题在博客每一处会碰到版本问题的地方都用【蓝色小字】标注了。
只要是真的按我这篇的肯定不会碰到版本问题了。
终端输入密码的时候,出于《安全》考虑,不会直接显示输入内容!如下图所示:
此时,放心大胆输入即可!
Ubuntu iso文件的下载网站:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/
接下来是正式的安装步骤。
【重要!非常重要!】安装之前先快照,以防万一。
注意:focal是Ubuntu20.04的版本名,无论如何请改成自己的。
换成阿里云的,点击查看阿里云官方换源教程:
sudo sh -c 'echo "deb http://mirrors.aliyun.com/ubuntu/ focal main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ focal main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main multiverse restricted universe" > /etc/apt/sources.list'
注意:focal是Ubuntu20.04的版本名,如果版本低于Ubuntu20.04请改成自己的,如果高于请别改。
清华的:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ focal main" > /etc/apt/sources.list.d/ros-latest.list'
中科大的(慎用,2022年1月15日~1月22日据小伙伴们反应,解析不了cn.archive.ubuntu.com
):
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ focal main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
sudo apt update
sudo apt install ros-noetic-desktop-full -y
这一步进行时,最好不要在Ubuntu中使用别的软件,比如gedit
,有可能会出现异常。
这一步完成之后,最好是快照一下。
cn.archive.ubuntu.com
连接失败,然后无法下载。
请看第一步更换软件源,把/etc/apt/sources.list
的软件源换成阿里云的:
sudo sh -c 'echo "deb http://mirrors.aliyun.com/ubuntu focal main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-updates main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu focal-backports main multiverse restricted universe" > /etc/apt/sources.list'
然后再执行一次sudo apt update
,再重新执行:
sudo apt install ros-noetic-desktop-full -y
这一步完成之后,最好是快照一下。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
使环境变量生效
source ~/.bashrc
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool -y
sudo apt install python3-roslaunch -y
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
出现小海龟就说明没问题。到这一步也就差不多了。
这是因为之前安装不够全,应该再次:
sudo apt install ros-noetic-desktop-full -y
直到全装好。
原因如是:rosdep不初始化到底行不行_鱼香ROS。
rosdep只是个包管理工具,我说实话一直没用过它。
【鱼香ROS】改的rosdep,改成rosdepc了,我不知道他具体改了什么,但确实没网络问题了:
sudo apt install python3-pip -y
sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple rosdepc
sudo rosdepc init
sudo rosdepc update
因为我很少用rosdep,所以我觉得挺无所谓的,决定就用它了。
如果你不打算用这个,打算还是按老方法装,可以继续参考以下下文。
sudo rosdep init
可能遇到以下错误:
sudo apt install python3-rosdep
2022/12/19更新——根据ROS Answer的问答,这里不能装
rosdep2
,要装rosdep
:Missing packages after installing rosdep based on python3-rosdep2 in Noetic:
否则下一步rosdep update
就一直成功不了(恼)。
sudo gedit /etc/hosts
追加199.232.28.133 raw.githubusercontent.com
其中
199.232.28.133
可以换成别的IP地址。
具体哪个IP能用,可以在网站https://www.ipaddress.com/site/raw.githubusercontent.com中找找。有小伙伴反映185.199.108.133
是能用的。
sudo gedit /usr/lib/python3/dist-packages/rosdep/sources_list.py
修改DOWNLOAD_TIMEOUT = 15.0
的15.0
,改大,可为150。
删掉就行。
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
你或许正在进行rosdep update
,如果尝试过以上所有解决办法都无效,这一步可以略。
rosdep update
若出现错误,按sudo rosdep init
(上一步)出错处理。
如果不希望跳过这个步骤,可参考以下三篇博客任一方法,完成rosdep update
:
- 修改修改rosdep源码中下载资源的函数:解决ROS系统 rosdep update超时问题的新方法。
- 这篇博客2022年10月11日更新内容提到了如何解决
rosdep update
的问题:详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)。- ERROR: cannot download default sources list from。(这个方法我亲测,会因为yaml访问不了
file://
文件然后出错)
文章浏览阅读2w次,点赞7次,收藏51次。四个步骤1.创建C++ Win32项目动态库dll 2.在Win32项目动态库中添加 外部依赖项 lib头文件和lib库3.导出C接口4.c#调用c++动态库开始你的表演...①创建一个空白的解决方案,在解决方案中添加 Visual C++ , Win32 项目空白解决方案的创建:添加Visual C++ , Win32 项目这......_c#调用lib
文章浏览阅读4.6k次。苹方字体是苹果系统上的黑体,挺好看的。注重颜值的网站都会使用,例如知乎:font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC, Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, W..._ubuntu pingfang
文章浏览阅读159次。表单表单概述表单标签表单域按钮控件demo表单标签表单标签基本语法结构<form action="处理数据程序的url地址“ method=”get|post“ name="表单名称”></form><!--action,当提交表单时,向何处发送表单中的数据,地址可以是相对地址也可以是绝对地址--><!--method将表单中的数据传送给服务器处理,get方式直接显示在url地址中,数据可以被缓存,且长度有限制;而post方式数据隐藏传输,_html表单的处理程序有那些
文章浏览阅读1.2k次。使用说明:开启Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需要输入额外由手机客户端生成的一次性密码。实现Google Authenticator功能需要服务器端和客户端的支持。服务器端负责密钥的生成、验证一次性密码是否正确。客户端记录密钥后生成一次性密码。下载谷歌验证类库文件放到项目合适位置(我这边放在项目Vender下面)https://github.com/PHPGangsta/GoogleAuthenticatorPHP代码示例://引入谷_php otp 验证器
文章浏览阅读4.3k次,点赞5次,收藏11次。matplotlib.plot画图横坐标混乱及间隔处理_matplotlib更改横轴间距
文章浏览阅读2.2k次。①Storage driver 处理各镜像层及容器层的处理细节,实现了多层数据的堆叠,为用户 提供了多层数据合并后的统一视图②所有 Storage driver 都使用可堆叠图像层和写时复制(CoW)策略③docker info 命令可查看当系统上的 storage driver主要用于测试目的,不建议用于生成环境。_docker 保存容器
文章浏览阅读834次,点赞27次,收藏13次。网络拓扑结构是指计算机网络中各组件(如计算机、服务器、打印机、路由器、交换机等设备)及其连接线路在物理布局或逻辑构型上的排列形式。这种布局不仅描述了设备间的实际物理连接方式,也决定了数据在网络中流动的路径和方式。不同的网络拓扑结构影响着网络的性能、可靠性、可扩展性及管理维护的难易程度。_网络拓扑csdn
文章浏览阅读1.8k次,点赞5次,收藏8次。IOS系统Date的坑要创建一个指定时间的new Date对象时,通常的做法是:new Date("2020-09-21 11:11:00")这行代码在 PC 端和安卓端都是正常的,而在 iOS 端则会提示 Invalid Date 无效日期。在IOS年月日中间的横岗许换成斜杠,也就是new Date("2020/09/21 11:11:00")通常为了兼容IOS的这个坑,需要做一些额外的特殊处理,笔者在开发的时候经常会忘了兼容IOS系统。所以就想试着重写Date函数,一劳永逸,避免每次ne_date.prototype 将所有 ios
文章浏览阅读5.3k次。方法一:用PLSQL Developer工具。 1 在PLSQL Developer的sql window里输入select * from test for update; 2 按F8执行 3 打开锁, 再按一下加号. 鼠标点到第一列的列头,使全列成选中状态,然后粘贴,最后commit提交即可。(前提..._excel导入pl/sql
文章浏览阅读83次。Git常用命令速查手册1、初始化仓库git init2、将文件添加到仓库git add 文件名 # 将工作区的某个文件添加到暂存区 git add -u # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,不处理untracked的文件git add -A # 添加所有被tracked文件中被修改或删除的文件信息到暂存区,包括untracked的文件...
文章浏览阅读202次。分享119个ASP.NET源码总有一个是你想要的_千博二手车源码v2023 build 1120
文章浏览阅读1.8k次。版权声明:转载请注明出处 http://blog.csdn.net/irean_lau。目录(?)[+]1、缺省构造函数。2、缺省拷贝构造函数。3、 缺省析构函数。4、缺省赋值运算符。5、缺省取址运算符。6、 缺省取址运算符 const。[cpp] view plain copy_空类默认产生哪些类成员函数