官网的安装教程:http://wiki.ros.org/cn/ROS/Installation
1、设置sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2、设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、安装
首先,确保你的 Debian 包索引是最新的:
sudo apt update
安装桌面完整版:包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包
sudo apt install ros-melodic-desktop-full
这时如果报错E: Unable to locate package ros-kinetic-desktop-full
解决:首先检查ubuntu的版本跟ros的版本是不是对应的,Ubuntu18.04对应melodic,Ubuntu16.04对应kinetic,Ubuntu20.04对应noetic。若版本没有问题,换个密钥试试。还是不行就添加ROS软件源。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
参考博文:https://blog.csdn.net/weixin_42606990/article/details/103333499
安装完成后,避免后面出现sudo rosdep:找不到命令提示,这里需要执行如下命令:
sudo apt install python-rosdep
4、初始化rosdep
sudo rosdep init
- 若出现错误:
解决办法:sudo getdit /etc/hosts
然后在文件末尾添加:151.101.84.133 raw.githubusercontent.com(域名对应的ip地址可能会变)
参考博文:https://blog.csdn.net/u013468614/article/details/102917569
可以看一下这篇文章,后面的评论里面也有一些解决办法。
修改后可以先连手机热点试一试,不行的话再用下面的方法。出现这个问题的原因主要是被墙了,所以解决思路:
1)用tizi使用配置代理,用的是proxychains4,Ubuntu18.04安装:sudo apt-get install proxychains4(Ubuntu16.04用命令行安装不了,需要git下载安装包,教程网上有)
代理配置:sudo vim /etc/proxychains4.conf
在文件末行注释掉sock4,然后添加自己的代理的ip和端口号,clash的端口号一般是7890
配置完成后验证:
sudo apt-get install httping
proxychains4 httping google.com
配置成功,然后运行: sudo proxychains4 rosdep init 进行初始化
2)推荐方法!!!将用到的文件下载到本地,然后修改源文件中的链接,指向本地仓库,即可解决,参考博文: https://blog.csdn.net/qq_35822136/article/details/106320587?spm=1001.2014.3001.5501
如果上面步骤完成后sudo rosdep init出现如下错误:
解决办法
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
然后重新运行 sudo rosdep init
5、执行rosdep update更新
rosdep update
- 如果出现如下错误
解决办法:大概是网络问题, 多执行几次 rosdep update 命令就可以了
6、设置环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
7、构建工厂依赖
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
8、启动roscore
- 若出现如下错误:
usrname:~$ roscore
Command 'roscore' not found, but can be installed with:
sudo apt install python-roslaunch
参考博文:https://blog.csdn.net/jdx130/article/details/107647324
https://blog.csdn.net/xiangxianghehe/article/details/78830477
解决办法:逐条运行如下命令,
usrname:~$ git clone https://github.com/ros/catkin.git
usrname:~$ cd catkin
usrname:~/catkin$ git branch melodic-devel
usrname:~/catkin$ mkdir build
usrname:~/catkin$ cd build
usrname:~/catkin/build$ cmake ..
usrname:~/catkin/build$ make
usrname:~/catkin/build$ sudo make install
usrname:~/catkin/build$ cd ..
usrname:~/catkin$ sudo python2 setup.py install
usrname:~/catkin$ sudo python3 setup.py install (这一步可能报错,只需要按照指示做就好了,比如缺少catkin_pkg 模块,请采用pip3 install catkin_pkg安装)
usrname:~/catkin$ mkdir catkin_ws (非必要,可以跳过的,其实没有作用,用来做ROS的工作空
间的)
usrname:~/catkin$ mkdir src(我是cd catkin_ws再创建src的,应该也能直接在catking里创建)
usrname:~/catkin$ catkin_make
usrname:~/catkin$ sudo apt install ros-melodic-desktop-full
usrname:~/catkin$ rosdep update
usrname:~/catkin$ cd
usrname:~$ source ~/.bashrc
然后重新输入roscore命令,如果出现如下报错信息:
这个问题是由于该路径下ros文件权限造成的。
输入以下命令修改权限:
sudo chmod 777 -R ~/.ros/
然后再次输入roscore就ok了。