ROS 学习记录1

记录 ROS 学习过程 Part1。
主要内容:ROS 安装。

学习参考课程

【古月居】古月·ROS入门21讲 | 一学就会的ROS机器人入门教程
强烈推荐【Autolabor初级教程】ROS机器人入门

ROS 安装

Linux 系统版本:Ubuntu 20.04.1,ROS 版本为 ROS1 的终极版本: noetic,支持 Python3。

配置ubuntu的软件和更新

打开“软件和更新”对话框,确保勾选了"restricted", "universe", 和 "multiverse"。

设置安装源

官方安装源:

1
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
国内清华镜像:
1
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'
国内中科大镜像:
1
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

设置 key

1
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

安装

1
2
sudo apt update		#更新 apt
sudo apt install ros-noetic-desktop-full #安装 Desktop-Full

出现“N: 忽略‘ros-latest.listsudo’(于目录‘/etc/apt/sources.list.d/’),鉴于它的文件扩展名无效”

解决方法:

1
sudo rm -f /etc/apt/sources.list.d/ros-latest.listsudo

终端配置代理

我在系统中设置了代理,于是直接使用官方源,结果不管怎么 update 和install 都因为连接超时卡在了 96%。于是我直接访问对应网址,轻松连上,便考虑是否是终端未代理的问题。
搜了一下,确实如此:SS/Clash 等一般是 web 代理,终端无法使用,需要单独配置代理。
方法如下:

1
sudo gedit ~/.bashrc		#编辑 .bashrc 文件
在最后加上:
1
2
alias proxy-on='export http_proxy=127.0.0.1:7890;export https_proxy=$http_proxy'
alias proxy-off='unset http_proxy;unset https_proxy'
保存退出后执行下面命令使文件生效:
1
source ~/.bashrc
现在使用命令proxy-onproxy-off便可开关代理。

该命令只在当前终端生效,重新打开终端需要重新执行 proxy-on。

使用curl -L www.google.com可以检查代理是否开启,从下图可看出,我们本次请求网站页面成功返回了谷歌起始页的 HTML 代码。
也可以使用curl cip.cc查看 IP 来检查。

访问 google.com 时会自动将地址重定向到 google.com.hk,故执行curl www.google.com会出现 302 Moved 提示。

apt 配置代理

终端配置代理后,还是卡在了 96%。
查找发现 export 中 http_proxy 和 https_proxy 方式只是修改终端中的 http 与 https 的代理方式,而 apt install 有自己独立的配置文件,配置终端代理后 apt 也是直接连接。 所以要进行 apt 代理配置:

1
sudo touch /etc/apt/apt.conf.d/proxy.conf	#创建新的配置文件 proxy.conf
在 proxy.conf 文件里添加:
1
2
3
4
Acquire {
HTTP::proxy "http://127.0.0.1:7890";
HTTPS::proxy "http://127.0.0.1:7890";
}
记得将 7890 改为自己的端口。
保存关闭后重新 apt install,顺利下载安装完成。

配置环境变量

配置环境变量,方便在任意终端中使用 ROS。

1
2
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
至此便可运行roscore进行测试。

安装构建依赖

noetic 最初发布时,和其他历史版本稍有差异的是:没有安装构建依赖这一步骤。随着 noetic 不断完善,官方补齐了这一操作。

1
2
3
4
5
6
7
#安装构建依赖的相关工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep

#初始化 rosdep
sudo rosdep init
rosdep update

rosdep init 时出现 Website may be down

点此找到 raw.githubusercontent.com 对应 IP。
接下来修改 hosts 文件:

1
2
3
4
sudo gedit /etc/hosts

#添加如下内容
185.199.108.133 raw.githubusercontent.com
重新执行rosdep init即可。
执行成功:

参考文章

Ubuntu install of ROS Noetic
【Autolabor初级教程】ROS机器人入门课程文档
How to Set the Proxy for APT on Ubuntu 18.04
Terminal(终端)使用代理进行连接
最详细的ros安装(包含所有相关依赖文件)

-------------------------- --------------------------

本文标题:ROS 学习记录1

文章作者:reman

发布时间:2022年07月28日 - 09:11:58

最后更新:2022年08月18日 - 12:49:02

原始链接:https://zcw-blog.top/posts/20220728a1/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请注明出处。