一、简介
这个系列的文章是笔者在自学ROS的过程中的记录,由于装双系统切换比较麻烦,笔者采用了虚拟机的办法
二、Ubuntu的安装
①虚拟机方式
1.下载安装虚拟机
VMware16是一款功能超级强大的电脑虚拟机软件,通过这款软件,我们就可以在原有的系统上再运行其它的操作系统,包括了Windows、Linux等等,首先下载并安装虚拟机,不提供下载资源
2.下载Ubuntu22.04镜像
Ubuntu22.04LTS-amd64
Ubuntu22.04LTS-RaspberryPi
3.在VMware内安装Ubuntu22.04
在VMware里新建虚拟机,镜像文件选择为下载好的ubuntu-22.04-desktop-amd64.iso
按照自身需求选择选项,笔者使用的AMD CPU 需要在bios里开启 AMD-V功能才可以使用虚拟机功能
如果有其他报错就按照报错的提示上百度找报错信息做修改
②盘烧录方式
1.准备microSD卡
2.下载Ubuntu镜像
Ubuntu22.04LTS-amd64
Ubuntu22.04LTS-RaspberryPi
3.使用balenaEtcher将镜像烧录至microSD卡
4.插入树莓派等设备开机使用
三、Ubuntu环境配置
0.修改显示设置(对于独立屏幕设备)
在config中添加以下内容:
(以微雪的5inch HDMI AMOLED为例,其他屏幕设备配置有所不同,需咨询具体厂家)
hdmi_force_hotplug=1
config_hdmi_boost=10
disable_overscan=1
hdmi_group=2
hdmi_mode=87
hdmi_timings=960 0 190 4 32 544 0 10 10 12 0 0 0 60 0 41000000 3
1. 关闭 sudo 密码
命令行经常会使用到sudo命令,关闭sudo密码可以不用每次都输入密码
Ctrl+Alt+T打开终端
在终端输入命令sudo visudo,打开 visudo;
sudo visudo
在文本中找到 %sudo ALL=(ALL:ALL) ALL 这一行
修改为%sudo ALL=(ALL:ALL) NOPASSWD:ALL
%sudo ALL=(ALL:ALL) NOPASSWD:ALL
2.配置网络环境(仅虚拟机)
虚拟机环境网络经常会有问题,显示无wifi适配器,此处以windows为例,打开‘网络和Internet设置’→更改适配器选项→选中WLAN并右键→打开属性→选中‘共享’,勾选‘允许其他网络的用户通过此计算机的Internet’来连接,并在下方‘家庭网络连接’选中 VMware Network Adapter VMnet8
切换到VMware,打开左上角‘编辑’,打开‘虚拟网络编辑器’,选择‘桥接模式’,选择自己本机的适配器
如果使用以太网有线连接可忽视(2.配置网络环境)
3.修改源
sudo gedit /etc/apt/sources.list
备份内容并修改为
# 本镜像仅包含 32/64 位 x86 架构处理器的软件包,在 ARM(arm64, armhf)、PowerPC(ppc64el)、RISC-V(riscv64) 和 S390x 等架构的设备上(对应官方源为ports.ubuntu.com)请使用 ubuntu-ports 镜像。
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
如果是树莓派等arm架构处理器设备,则修改内容为ubuntu-ports
通过如下命令查看架构
uname -a
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
可选的一键更改源:
sudo sed -i "s#ports.ubuntu.com#mirrors.ustc.edu.cn#g" sources.list
4.更新软件
在终端中执行检查更新
sudo apt update
然后执行更新
sudo apt upgrade
5.其他配置
安装PIP
sudo apt install pip
配置pip源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
配置github加速
sudo apt install cgit
git config --global url."https://gitclone.com/".insteadOf https://
安装命令行管理工具terminator
sudo apt install terminator
安装屏幕保护工具
sudo apt-get install xscreensaver
安装屏幕录制工具
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update
sudo apt-get install obs-studio
obs
安装微信
在下载目录下执行
sudo dpkg -i ukylin-wine_70.6.3.25_amd64.deb
sudo dpkg -i ukylin-wechat_3.0.0_amd64.deb
四、安装ROS
①安装ROS1 Noetic (只需ROS2可跳过)
如果需要安装ROS1 Noetic
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.更新软件源
sudo apt update
4.安装桌面完整版 : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知
sudo apt install ros-noetic-desktop-full
5.安装完后再执行一次以解压
sudo apt install ros-noetic-desktop-full
6.初始化rosdep(rosdep用于解决功能包安装系统依赖,是ROS必须的组件)
sudo rosdep init
rosdep update
首先安装pip并安装rosdepc
sudo apt-get install python3-pip
sudo pip install rosdepc
然后使用国内版rosdepc
sudo rosdepc init
rosdepc update
6、设置环境变量(bash)
由于后续会频繁在终端中输入ros命令,设置环境变量方便之后使用
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
7.测试
ROS环境已经配好,开个core测试能不能进,如果想多测试一下可以跑个turtle
roscore
② 安装ROS2 Humble
一键安装:
wget http://fishros.com/install -O fishros && . fishros
手动安装:
1、添加软件源-sources.list
echo "deb [arch=$(dpkg --print-architecture)] https://repo.huaweicloud.com/ros2/ubuntu/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
2.添加密钥
sudo apt install curl gnupg2 -y
curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -
3.更新软件源
sudo apt update
4.安装桌面完整版
sudo apt install ros-humble-desktop
5.安装其他依赖
sudo apt install python3-argcomplete -y
6.配置ROS环境变量
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
7.初始化rosdep(rosdep用于解决功能包安装系统依赖,是ROS必须的组件)
sudo pip install rosdepc
然后使用国内版rosdepc
sudo rosdepc init
rosdepc update
对于某新建的工作空间,如果希望添加到环境变量,可以使用:
echo "source /home/ubuntu/ros2_ws/install/setup.bash" >> ~/.bashrc
/home/ubuntu/ros2_ws/为工作空间的路径
pwd # 查看当前路径