目录
由于自己装过两次 ROS,但是重头再来一遍还是遇到了很多困难。尤其是当遇到以前遇到过的问题,我依然会手足无措,翻边互联网的边边角角,试很多遍错才能解决问题。于是便萌发了写下这个ROS安装指南的想法。
这里整理了我安装 ROS 的流程以及遇到的所有问题,也提供了有效的解决方式,如有其他问题或者补充,欢迎评论区留言给我。
希望此篇 blog 能够对你产生一些帮助OvO
我们在下载很多基础的工具请求的基本上是国外的服务器,这对于国内用户来说,无疑是非常糟糕的体验,其下载速度慢、请求失败往往成为很多刚入门Linux的小白最大的困扰。
不过好在国内有着稳定高速且免费的镜像网站,我们可以通过修改系统配置文件来享受这些优秀的网站资源。
清华源:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:https://mirrors.aliyun.com/pypi/simple
中科大:https://pypi.mirrors.ustc.edu.cn/simple/
这里我以 Ubuntu 20.04LTS 为例来配置 清华源
首先进入清华大学开源软件镜像站(https://mirrors.tuna.tsinghua.edu.cn)
在列表里选择自己的系统,这里我选择的是 Ubuntu,点击后面的问号图案

进入后选择自己的系统版本 20.04LTS

随即文本框中会生成你需要的 sources.list 文件内容,打开 Ubuntu 的终端,输入下面的命令
sudo apt update
# 将 sources.list 拷贝到桌面
cp /etc/apt/sources.list ~/Desktop
# 打开 sources.list 进行编辑
sudo gedit /etc/apt/sources.list
打开文件后,将里面的所有内容替换为之前网页内文本框里的内容,例如
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
然后保存关闭,这样清华源就配置好啦!
ROS 是机器人操作系统(Robot Operating System)的英文缩写,虽然叫做操作系统,但并不是真正意义上的操作系统,而是一个面向机器人的开源的开发平台。
它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数。
在前面的操作中,我们已经为完成了国内源的配置,这将会让我们后面的install 一路畅通。不过还需要再做一个准备,那就是配置公钥。
公钥是 Ubuntu 系统的一种安全机制,配置公钥让系统信任。
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
更新系统,确保自己的Debian软件包和索引是最新的。
sudo apt-get update
大家注意自己的 Ubuntu 版本,我的是 20.04 对应的是 ROS 版本是 noetic
大家也可以根据自己的 Ubuntu 版本去百度自己的对应的 ROS 版本
# Ubuntu 20.04
sudo apt install ros-noetic-desktop-full
# Ubuntu 18.04
sudo apt install ros-melodic-desktop-full
sudo rosdep init && rosdep update
如果这里出现了报错问题,可以跳转至该文章的4.1部分
这里容易出错,大家直接复制粘贴就好
注意对应自己的版本修改目录名
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
打开第一个终端窗口,运行 roscore
roscore
出现如下图的情况,就证明运行成功

打开第二个终端窗口,输入:
rosrun turtlesim turtlesim_node
当出现有一个海龟的窗口,证明运行成功了

打开第三个终端窗口,输入:
rosrun turtlesim turtle_teleop_key

出现这样的提示后,我们用鼠标聚焦第三个终端窗口,便可以通过按下 ↑ ↓ ← →键来对小海龟进行控制了。
到了这里,恭喜你已经完成了ROS的安装、配置且运行。
祝你日后的 ROS 学习也更加畅通无阻!
由于 rosdep update 请求的网站是 raw.githubusercontent.com,对于大部分人来说,该命令报错的原因主要是 timed out。
网上一般的方法都是通过修改 /etc/ros/rosdep/sources.list.d/20-default.list 的请求地址。但我自己通过这个方法并不能解决问题,报错中仍然出现请求 raw.githubusercontent.com 时出现 timed out。
好在有我们的 鱼香ROS 大神基于 rosdep 源码写的 rosdepc ,专门服务国内ROS用户。
rosdepc: https://zhuanlan.zhihu.com/p/398754989
文章里写的教程非常详细,大家可以直接去参考这篇文章。
Resource not found: roslaunch
ROS path [0]=/opt/ros/noetic/share/ros
ROS path [1]=/opt/ros/noetic/share
The traceback for the exception was written to the log file
注意将 noetic 替换为对应版本
sudo apt-get install ros-noetic-roslaunch
Command 'rosrun' not found, but can be installed with:
sudo apt install rosbash
我们按照提示输入
sudo apt install rosbash
发现根本不起作用
注意将 noetic 替换为对应版本
sudo apt install ros-noetic-rosbash
[rospack] Error: package 'turtlesim' not found
注意将 noetic 替换为对应版本
sudo apt-get install ros-noetic-turtlesim
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我打算为ruby脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn
我有一个奇怪的问题:我在rvm上安装了rubyonrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(
我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我试过重新启动apache,缓存的页面仍然出现,所以一定有一个文件夹在某个地方。我没有“公共(public)/缓存”,那么我还应该查看哪些其他地方?是否有一个URL标志也可以触发此效果? 最佳答案 您需要触摸一个文件才能清除phusion,例如:touch/webapps/mycook/tmp/restart.txt参见docs 关于ruby-如何在Ubuntu中清除RubyPhusionPassenger的缓存?,我们在StackOverflow上找到一个类似的问题: