一、ROS是什么
- ROS其实是一个伪操作系统,是基于Liunx操作系统的一个用于机器人各个节点之间通信的系统;ROS制定了一系列规则使得每个节点之间遵循相同的通信规则,使得每个人都可以有一个守则区遵守开发自己的节点,也能和别人开发的节点完美配合;
- 不同的Ubuntu系统支持不同的ROS版本;
参考视频:
- 机器人操作系统 ROS 快速入门教程_哔哩哔哩_bilibili
- 零基础,如何学习机器人操作系统ROS_哔哩哔哩_bilibili
二、Ubuntu系统的安装(双系统安装)
参考视频:
- 学习ROS,安装Ubuntu,虚拟机和双系统如何选择_哔哩哔哩_bilibili
- Windows 和 Ubuntu 双系统的安装和卸载_哔哩哔哩_bilibili
三、一些基础的Ubuntu命令
基础命令:
- ls:列出当前目录下的所有文件/文件夹
- ls -a:仅使用ls是不会列出当前目录下的隐藏文件的,需要加上参数-a
- mkdir + <文件夹名称>:在当前目录下建立一个新的文件夹
- cd + 路径:改变当前路径到指定位置
- cd + ~:直接回到主目录(=根目录-->home-->lkw)
- cd + ..:回到上一级目录
- gedit + <文件名>:gedit是一个Ubuntu自带的文本编辑器(Vim也是),使用这个指令可以在当前目录下创建一个新的文件/打开已有文件
- echo + <任意内容>:执行这行命令,就会在终端上显示指定的<任意内容>
- source + <文件名.sh>:在Linux中经常把一连串指令写到.sh文件中,通过source指令加载运行整个文件
介绍一个文件夹:
- .bashrc:是终端窗口的启动脚本(在主文家夹中,但是一个隐藏文件,需要使用ls -a才能看到);每次打开终端窗口的时候就会先执行这个脚本,完成一些环境变量的赋值工作;
Ubuntu的权限机制:
- sudo:在Ubuntu中每个用户只能操作自己“主文件夹”中的内容(对我来说就是lkw文件夹),在主文家夹外移动/删除/新建文件都会显示权限不足,这是一种保护机制,避免误删重要文件导致系统崩溃;但是通过在终端输入的指令前加上sudo前缀,可以使我们在执行这条终端命令时可以以管理员权限执行本条指令,使得权限扩大,可以在其他位置上进行修改;
参考视频:
- 从没接触过Ubuntu,如何上手ROS开发_哔哩哔哩_bilibili
四、安装ROS
注意:Ubuntu的版本是20.04,所需下载的ROS版本为Noetic
官网教程:noetic/Installation/Ubuntu - ROS Wiki
1. Configure your Ubuntu repositories:
- 作用:配置Ubuntu的软件仓库(软件源,即对 /etc/apt/sources.list 文件进行修改),这个文件在安装Ubuntu的时候已经自动自动配置好了;我们也可以通过添加阿里云的软件源来加快安装速度;
2. Setup your sources.list
- 作用:将ROS的安装源添加到这个 .list 文件中,相当于给Ubuntu装了个ROS的应用商店(注意命令里面给出的网站时国外网站,我们也可以使用提供的清华镜像源进行下载);
- 注意:第二步和第一步中配置的 .list 文件是不一样的;第一步中配置的是 /etc/apt/sources.list 文件;第二步配置的是 /etc/apt/sources.list.d/ros-latest.list 文件;
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3. Set up your keys
- 作用:设置安装密钥(从网上的服务器获取安装密钥);
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
4. Installation
- 作用:更新软件的索引列表 + 从更新后的索引列表中安装ROS(安装ROS主体);
sudo apt update
sudo apt install ros-noetic-desktop-full
5. Environment setup
- 作用:将ROS的环境设置脚本添加到终端程序的初始化脚本(/.bashrc)里;这样每次打开终端程序都会自动进行ROS系统环境的初始化;
- 解释:每次我们要使用ROS系统的时候(即在终端中运行 roscore 命令时),都需要预先在终端中输出环境初始化脚本;因为ROS这个操作系统时有很多依赖的功能包的,如果想要启动ROS,那就要先把依赖项启动完成,所以我们需要把这些依赖功能包所在的路径( /opt/ros/noetic/setup.bash )添加到终端启动文件中,使得ROS启动前终端可以找到这些软件包的位置,然后把这些软件包加载进去,这样才能成功启动ROS;
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
6. Dependencies for building packages
- 作用:rosdep初始化;对ROS的依赖包工具进行初始化,方便以后安装第三方的扩展软件包;
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo rosdep init
rosdep update
参考视频:机器人操作系统ROS的安装心得以及rosdep问题的处理_哔哩哔哩_bilibili
五、什么是ROS中的apt源
我的另一篇文章有详细的解释:
参考文献:
- 机器人操作系统 ROS 快速入门教程_哔哩哔哩_bilibili
- 零基础,如何学习机器人操作系统ROS_哔哩哔哩_bilibili
- 学习ROS,安装Ubuntu,虚拟机和双系统如何选择_哔哩哔哩_bilibili
- 从没接触过Ubuntu,如何上手ROS开发_哔哩哔哩_bilibili
- 机器人操作系统ROS的安装心得以及rosdep问题的处理_哔哩哔哩_bilibili
- APT源,ROS的软件包应用商店_哔哩哔哩_bilibili
- 在Github上寻找安装ROS软件包_哔哩哔哩_bilibili
- 8.ROS 开发神器 Visual Studio Code 的安装和设置_哔哩哔哩_bilibili
- 9.超级终端Terminator ROS开发得力助手_哔哩哔哩_bilibili