树莓派4B安装Ubuntu18.04系统并安装ROS【2022-09-09】

2022年9月9日更新:
ros的安装教程整体上没有问题,rosdep update下载报错的url实际位置可能会出现变更,请根据实际情况来

文章目录

  • 前言
  • 一、制作并运行系统
    • 1.下载镜像
    • 2.制作系统
    • 3.修改文件
    • 4.运行系统
  • 二、更新阿里源并安装桌面
    • 1.配置网络
    • 2.更新阿里云源
    • 2.安装Gnome3桌面
  • 三、安装ROS
    • 1.安装源
    • 2.设置key
    • 3.更新
    • 4.安装ROS
    • 5.初始化rosdep
    • 6.rosdep update
    • 7.设置ROS环境变量
    • 8.构建依赖
    • 9.测试

前言


毕设要搞个机器人底盘,上位机用树莓派4B,考虑到ros和系统的兼容问题,给树莓派安装ubuntu18.04。树莓派官网的ubuntu系统以及是20以上了,网上的教程也有些落后,特开个新帖记录一下安装过程。

配置:树莓派4b 4GB、网线、32G SD卡和读卡器、显示屏、HDMI线。
软件:Win32DiskImager
安装的系统:Ubuntu18.04


一、制作并运行系统


1.下载镜像


我的树莓派是4GB的,所以用的是32位的镜像,8GB的可以去官网下载64位的镜像。建议都用32位的

Ubuntu18.04镜像:http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.5-preinstalled-server-armhf+raspi4.img.xz
64位的镜像:http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04.5-preinstalled-server-arm64+raspi4.img.xz

2.制作系统


插入SD卡,运行Win32DiskImager,软件会自动加载SD卡,选择镜像文件,然后点“写入”,等一会就可以了。
树莓派4B安装Ubuntu18.04系统并安装ROS【2022-09-09】_第1张图片

3.修改文件


镜像写入后不要着急插上树莓派,先修改文件,不然开不了机。

首先新建一个文件,文件名为SSH,不要加后缀。
接着删除config.txt里面的内容,将下面的内容粘贴进去:

start_x=1
max_usb_current=1
current_limit_override=0x5A000020
avoid_warnings=2
[all]
device_tree_address=0x03000000
enable_uart=1
cmdline=nobtcmd.txt
include syscfg.txt
include usercfg.txt

然后修改usercfg.txt文件,将下列内容粘贴进去:

hdmi_force_hotplug=1
config_hdmi_boost=4
hdmi_group=2
hdmi_mode=16
hdmi_drive=2
hdmi_ignore_edid=0xa5000080
disable_overscan=1

其中“hdmi_group”和“hdmi_mode”根据自己的屏幕分辨率修改: 树莓派 设置HDMI分辨率

4.运行系统


保存后将卡插入树莓派开机。然后根据提示输入账户密码进入系统,初始用户名和密码均为ubuntu,系统会提示再输入一次密码然后修改新密码。


二、更新阿里源并安装桌面


1.配置网络


我的是网线,直接插上就可以了,wifi可以等装上桌面再连接。没有网线就得先配置wifi,怎么配置可以自己百度,或者有空再写。

2.更新阿里云源


以下操作都需要权限,先进入root用户,可以省很多事情。

sudo su

打开source.list文件

vim /etc/apt/source.list

删除里面deb前面的注释号“#”,然后http改成https,将后面的网址换成阿里云。
如下:

deb https://mirrors.aliyun.com/ubuntu-ports bionic main restricted
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic main restricted
deb https://mirrors.aliyun.com/ubuntu-ports bionic-updates main restricted
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic-updates main restricted
deb https://mirrors.aliyun.com/ubuntu-ports bionic universe
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic universe
deb https://mirrors.aliyun.com/ubuntu-ports bionic-updates universe
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic-updates universe
deb https://mirrors.aliyun.com/ubuntu-ports bionic multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic multiverse
deb https://mirrors.aliyun.com/ubuntu-ports bionic-updates multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic-updates multiverse
deb https://mirrors.aliyun.com/ubuntu-ports bionic-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic-backports main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu-ports bionic-security main restricted
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic-security main restricted
deb https://mirrors.aliyun.com/ubuntu-ports bionic-security universe
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic-security universe
deb https://mirrors.aliyun.com/ubuntu-ports bionic-security multiverse
deb-src https://mirrors.aliyun.com/ubuntu-ports bionic-security multiverse

2.安装Gnome3桌面


apt install ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y

接下来就是15分钟到等待时间,具体取决于你的网速。然后重启就可以进入桌面了。
开机后设置wifi和中文输入法,配置VNC。


三、安装ROS


1.安装源


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'

2.设置key


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

3.更新


sudo apt-get update

出现类似Could not open lock file的锁错误,可以尝试用下面方法解决,然后重新执行更新:

sudo rm /var/lib/apt/lists/lock
sudo apt-get update

4.安装ROS


sudo apt-get install ros-melodic-desktop-full 

5.初始化rosdep


sudo rosdep init

这里可能会有两个报错
错误1:rosdep command not found, 可以参考如下解决方法,然后再次初始化。

sudo apt install python-rosdep
sudo rosdep init

错误2:ERROR: cannot download default sources list from,这个需要修改hosts文件:

sudo gedit /etc/hosts

用浏览器打开https://www.ipaddress.com,然后搜索raw.githubusercontent.com,将解析到的IP全部放进hosts文件里:
树莓派4B安装Ubuntu18.04系统并安装ROS【2022-09-09】_第2张图片
树莓派4B安装Ubuntu18.04系统并安装ROS【2022-09-09】_第3张图片
再次执行:

sudo rosdep init

6.rosdep update


上面没问题接下来我们再执行:

rosdep update

报错:下载超时
由于近期国内Github Raw的可用IP越来越少,通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,这里我们通过修改下载函数指向的url,让其通过代*理https://ghproxy.com/来进行下载。

首先定位rosdep资源下载函数。

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

注:Ubuntu20以上如果发现文件打开是空白,尝试把python2.7改成python3

找到函数download_rosdep_data,在函数第一行添加,保存退出:

url=“https://ghproxy.com/”+url

修改/usr/lib/python2.7/dist-packages/rosdistro/__ init __.py
(init前后是个两个下划线,这里因为编辑原因加了空格)

里面的DEFAULT_INDEX_URL(在地址前添加https://ghproxy.com/前缀):

DEFAULT_INDEX_URL = ‘https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’

接着用同样的方法修改下面的文件(文件因为时间问题可能会出现内容变更,行数仅供参考,可以在文件内按Ctrl+F搜索’‘https://raw.github’'进行一个大致的定位):
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行

sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py

然后再次update,多试几次,成功。

rosdep update

树莓派4B安装Ubuntu18.04系统并安装ROS【2022-09-09】_第4张图片

7.设置ROS环境变量


echo "source /opt/ros/melodic/setup.bash">> ~/.bashrc
source ~/.bashrc

8.构建依赖


sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

9.测试


roscore
rosrun turtlesim turtlesim_node

PS:本文参考文章
参考文章 1
参考文章 2

你可能感兴趣的:(教程,ubuntu,linux)