ROS在ubuntu18.04LTS上的安装我录屏放到B站上了
ROS安装(包含终端一些配置)librealsense安装realsense-ros安装录屏_哔哩哔哩_bilibili
============================
对于不同平台可以安装不同的,树莓派这种计算能力低的安装ROS-Base就可以,之前我在其他地方就看到,就是不装ROS图形那些东西什么的。笔记本上或者TX2上装Desktop-Full install就好,TX2的计算性能还是足够的。
ZN无人机第一期11节
这里也这么说了
使用ROS的机器人 – 在树莓派Pi2上安装ROS – 《PX4中文维基》 – 书栈网 · BookStack
这是我随便搜到的一个树莓派装ROS的教程里说的。
1.4 树莓派3B+安装ROS平台 – 知乎
=========================================================================================
下面是我在树莓派的ubuntu 18.04 meta上装ROS的记录(实际就是按照ROS官方给的ROS-melodic的教程来,除了一些比如镜像源修改下,其他的都一样)
摘自博文:ubuntu mate 18.04官网下载,烧录及安装 SSH VNC ROS MAVROS librealsense realsense-ros vision_to_mavros(我自己亲自弄的)_TYINY的博客-CSDN博客
可以参考古月的ROS21讲里的ROS安装视频
ROS安装步骤–古月讲的_TYINY的博客-CSDN博客_ros安装古月
【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程_哔哩哔哩_bilibili
实际操作发现古月的这个暗转教程有坑的,他那添加的是Ubuntu的官方源不是国内的镜像源!!!!!!说都没说!!!!!看书发现他写在书上,我看视频里他后来那都是阿里云的链接以为他给的源就是国内的,实际不是!!!!
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'
果然换了中科大的源速度立马快N倍,而不是几kb,不然一个update半个小时都没完。
实际下ROS时也是去中科大的源下了,只需要把古月的第一句改为上面那一句。
下ROS用家里wifi太慢了我最后选择树莓派连我的手机热点,而且电脑和树莓派同时连手机热点。你在树莓派终端上ifconfig得到树莓派的wifi的ip地址之后(也是192.168..),是可以在自己电脑上ssh的。用自己手机热点就飞快多了。我感觉你到时候树莓派装在无人机上,和电脑wifi相连,也应该可以手机热点。当然用手机热点这也是古月的ROS安装视频里面说了提醒我的。我估计装librealsense的时候用手机热点也好一些。
sudo apt install ros-melodic-desktop 这步连手机热点从下载到安装当然都是它自动进行用了半个小时左右,很难想象不用热点是上面后果,靠家里wifi几KB每秒的速度。还有中途出现一个说什么让你重启的,我选了yes,但实际它也没有重启又继续运行下去了,不知道什么意思。没见别人说有这一步骤,但是似乎也没有影响,选个yes然后它又继续正常安装了。中途没有任何报错,之前用家里wifi下的时候还报错过上面连不上服务器估计是网太慢了,总之用手机热点弄没有任何问题。
sudo rosdep init 这个运行后显示,可能是因为古月装的是desktop-full 而我装的是desktop,少了一些东西?
于是我先跳过rosdep这两个命令,直接去设置环境变量,
运行完设置环境变量那两个语句,然后就可以一个是先输入ros再双击TAB键可以看到ROS的一些命令行工具(如果环境变量没有设置好,这些系统是找不到的),再一个是直接输入roscore命令,可以启动ROS。我已经弄成了。自此ROS就算装好了,
我这里roscore后输出的信息和古月的ROS书上写的一样
古月的最后一个命令,不是必须的,到上面为止ROS 已经装好了,古月的最后一个命令,是说为了方便日后的开发,可以装一下。不过我发现这步也是ROS官方教程要求的,那我也装上吧。
上面没有弄的rosdep我发现ROS的官方教程有些,我觉得我还是有必要把它弄一弄。
我现在知道为什么我那里说找不到rosdep,官网现在的教程是要你自己先装,古月的那个可能已经过时了,古月的那个中途弄rosdep是和ros kinetic的教程一样,kinetic的教程里是这样的,但是melodic的教程里是放再最后,而且要自己先安装。
melodic/Installation/Ubuntu – ROS Wiki
不过我在运行
sudo rosdep init
这个命令显示报错,说一个Github的网站连不上,网络原因么?我此时连的热点,莫非需要代理?
网上搜了下这个问题很常见,确实需要代理。考虑到后面装Librealsense应该也需要代理,所我先把终端代理弄好。
rosdep init和rosdep update出现问题解决_Bryantaoli的博客-CSDN博客
我实现终端代理后,再运行sudo rosdep init就成功了,没有说那个网站连不上了,
当然实际运行是 sudo proxychains rosdep init
不对,好像还是不行,我试着直接浏览器打开那个网址根本打开不,可能就是那个网站的原因!!!!!网址打不开啊,我自己的笔记本开了代理的,这样浏览器都打不开肯定有问题。
我过了几个小时再这么弄又好了!!!现在是凌晨0点52分
看这前后两个同样地命令,一个失败,一个成功,当然前后隔了几个小时,中途打电话去了。还有有没有方法能导出这些记录的?我在这篇博文写了 :https://blog.csdn.net/sinat_16643223/article/details/108091479
然后我进一步运行最后一个命令 rosdep update 直接运行也是报错了,连不上,所以我加为 proxychains4 rosdep update 然后就一切顺利,全是ok,弄完了。看来终端代理真的非常重要!!!!!!
下面这个截图非常清晰地反应了这个过程。
至此我的ROS安装应该就真正完成了!!!!
这个命令我之前运行了,而且ROS melodic的教程是把它放在rosdep之前的,我应该照着做了,也看到命令行记录李敏又这个命令了,
这里我再次强调,跟着ROS melodic的官方教程来,你会发现连古月的ROS的教程可能都不对,原本你这么信赖的,当然他帮助了我很好理解里面的安装步骤,再去看官方的安装步骤好些,直接看官方的安装步骤可能也不太好,有的可能不明白。
melodic/Installation/Ubuntu – ROS Wiki
8月19日凌晨0点58分,
所需要的命令我放在这(全程连手机热点,按照ROS melodic的官方教程来http://wiki.ros.org/melodic/Installation/Ubuntu
部分步骤需要终端代理(两个加了proxychains4的,如果加了代理不行可以过一阵子再试试,可能就好了,终端代理的方法我写在另一篇博文里了 :https://blog.csdn.net/sinat_16643223/article/details/108086672)
下面这个也证实了,确实rosdep那两个命令也就是最后两个命令需要代理!
Ubuntu助手 — 一键自动安装软件,一键进行系统配置
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'
sudo apt-key adv –keyserver 'hkp://keyserver.ubuntu.com:80' –recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential (这步里面的python-rosdep是我2020.11.10后来加上的,我认为是我当时写的时候漏写了,实际应该是装了的,官方教程里也是有这个,你这步不装python-rosdep,官方教程里下一步也是要你装python-rosdep这个,所以我觉得我当时写的这个所有的命令应该少写了python-rosdep的安装,所以加上去,我实际应该是装了,不装怎么完成下面两步呢,我当时应该是复制古月的这步命令所以里面没有,而古月它是按照ros的kinect版本来的,他的ubuntu版本是16.04,有些许不同,还是实际以ROS官方的ROS melodic的安装教程为准,我实际又在我电脑上这么装了一遍没有问题(当然电脑上装和树莓派不同的地方第四条命令稍微改下,因为可以装更全更大的ROS,可以改为sudo apt install ros-melodic-desktop-full)。所以这条命令按照现在这个加了python-rosdep的来。)
proxychains4 sudo rosdep init
proxychains4 rosdep update
下面附上 http://wiki.ros.org/melodic/Installation/Ubuntu 也就是ROS官方的ROS melodic的安装教程的截图
但是我树莓派要确定装的是ROS的哪种。首先参考我这篇博文:ROS的安装(包含文字和视频教程,我的ROS安装教程以这篇为准)_TYINY的博客-CSDN博客
由于我看到APM的那个T265树莓派的视频里面看到他们用了rviz,所以我觉得装destop 不装destop-full,另外有个树莓派教程也是装的desktop。
[树莓派]Ubuntu MATE 18.04安装ROS环境_TYINY的博客-CSDN博客
=====================================================================
2021.9.19
关于 sudo rosdep init 和rosdep update的解决(注意rosdep update不建议前面加sudo ,eos官网给的安装命令里面rosdep update前面也是没加sudo的,rosdep init前面加了sudo 。如果前面运行了 sudo rosdep update,想改回运行rosdep update,需要先运行一下 sudo rosdep fix-permissions 这个命令,如果你运行了sudo rosdep update终端会提示你的,可见下面第一张截图,如果你运行了sudo rosdep update,直接再运行rosdep update是会报错的,可见下面第二章截图,所以必须要先运行一下sudo rosdep fix-permissions )
虽然我之前用代理的方式解决了,但是弄代理过程我现在嫌麻烦,我搜下rosdep的作用感觉不装也不太好。
之前肖昆给的这种方法现在已经不太行了,别的博文也说到了这个方法现在渐渐不行了,我也是用了,rosdep update依旧timeout ,我用蓝灯也依旧timeout。连手机热点也是不行。
不过我得说下肖昆这种方法我 sudo rosdep init 是成功了的 rosdep update不行,是这样子。
sudo rosdep init 成功的终端显示是这样的
https://mp.weixin.qq.com/s/WYGUwcMuI6CvyklFZ7ZAyQ
解决ROS系统 rosdep update超时问题的新方法_leida_wt的博客-CSDN博客_rosdep update 超时
sudo rosdep init的解决方法比较简单,可以见:两篇文章都是差不多的方法ROS常见问题(一) 安装ROS时sudo rosdep init指令报错 最全解决方法 – 爱喝果珍的猫 – 博客园
rosdep update 的解决_全国快乐男生总冠军的博客-CSDN博客_rosdep update
rosdep update我是用这篇博文解决的(是这篇文章把握引过去的ROS安装过程中如何解决 rosdep update 命令出现错误 – 知乎
)
解决ROS系统 rosdep update超时问题的新方法_leida_wt的博客-CSDN博客_rosdep update 超时
这篇博文的截图我也放在这里
注意这一篇博文里面的这一条,我不需要执行,我执行这个运行rosdep反而还说我这个python文件有格式错误,我删掉加进入的这行rosdep update成功了,所以不需要加上这行。
在/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 第204行添加如下代码gbpdistro_url = “https://ghproxy.com/” + gbpdistro_url
文字我也复制过来,方便日后再操作好复制里面的地址命令等等。
由于近期国内Github Raw的可用IP越来越少,通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,本文通过修改rosdep源码中下载资源的函数来解决这一问题。
网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题。
首先定位rosdep资源下载函数。从报错信息中得知,该函数名为download_rosdep_data,位于/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py。我们修改这一函数,添加:
url="https://ghproxy.com/"+url
应用ghproxy的代理服务。
用同样的方法修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py里面的DEFAULT_INDEX_URL(感谢评论区@p4227117的补充)。
即将DEFAULT_INDEX_URL 进行如下替换:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
除此处外,下述文件中也含有github地址,分别是:
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
均可通过在地址前添加https://ghproxy.com/前缀来应用代理服务。
2021.7.1补充:
对于第五个地址[https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml]报错的问题,请参考评论区@zgkjddk的方法:
在/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 第204行添加如下代码gbpdistro_url = “https://ghproxy.com/” + gbpdistro_url
rosdep update成功的截图
2021.10.25
关于rosdep,这里给了个不用daili的方法,似乎很简单。下次可以试一下。
本文之后,世上再无rosdep更新失败问题!如果有….小鱼就…_TYINY的博客-CSDN博客