树莓派4B(4G/8G)安装Ubuntu18.04桌面版+ROS(Melodic)+Realsense SDK(T265+D400系列)


前言

最近更新了一点方法,顺序可能有点乱,大家将就看
在这只是记录一下自己的轨迹,只能保证以下内容是自己实践过的,以下内容没什么过多的原理介绍,估计来我这遛弯的都是在别的博主那看了不少的文章了,我也就不介绍了。
在安装过程中,遇到什么问题,欢迎留言讨论,
如果你想使用树莓派3B+ 可以参考这篇文章,很全博主:TYINY

FileZilla
win电脑软件,可以在同局域网内,通过IP地址,树莓派的用户名,密码,可以两者之间互相传输文件。
附网盘链接:https://pan.baidu.com/s/1Kw09GvhxD7o871dY0FA-0w
提取码:0000

vncviewer
win电脑软件,可以在同局域网内,通过IP地址,树莓派的用户名,密码,远程登录树莓派桌面。
附网盘链接:https://pan.baidu.com/s/18_tvVH8Q-FTJOjQIGBZdyg
提取码:0000

局域网IP扫描器
win电脑软件,扫面同局域网内所有IP地址
附网盘链接:https://pan.baidu.com/s/1hxQVjk5dq_X45CSroEVFoQ
提取码:0000


一、下载安装树莓派4B镜像(Ubuntu-mate-18.04)

1.树莓派4B服务器镜像

附上我的百度链接
链接:https://pan.baidu.com/s/1sR7kE_FPSo9EL_9xJ7RczQ
提取码:0000

树莓派4B通用服务器镜像,后期安装桌面


2.准备物品

2.1大于等于32G的闪迪内存卡
2.2树莓派4B (4G/8G均可)

避坑攻略:首选闪迪内存卡,或者其他大牌子,不然过段时间,莫名不能正常开机或者其他问题


3.镜像烧录

3.1软件下载

链接:https://pan.baidu.com/s/1kD5R6c_AH1FXGdlyiV5tpw
提取码:0000
链接:https://pan.baidu.com/s/1BaHHRTcrm9b2XvwJCi3gkQ
提取码:0000

3.2内存卡使用之前需要格式化!!!

打开软件 SDFormatter 显示盘符后,直接点击格式化,其他参数不需要修改。一定要选择好你要格式化的盘符,否侧格式化了其他盘,你就难受了。

3.3打开烧录软件 balenaEtcher 选择你要烧录的镜像,点 击Flash即可
大概三四分钟后就会烧录好,取决于你的内存卡读写速度,烧录完成之后不需要任何操 作,直接拔出内存卡即可。,左上方是绿色的,说明烧录正常,如果是 红色,你就得用软件格式化,重新烧录

3.4内存卡插入树莓派,第一次上电需要外接显示器,键盘,鼠标,以及一根网线。(如果 第一次通电没有正常显示的话,断开电源,重新上电即可。)

这里说一下要会看树莓派的电源旁边的两个指示灯,这部分适合不能正常开机的伙伴看,
树莓派 ACT LED 指示灯闪烁模式代表的状态


4.安装桌面基础软件

联网很简单,网线直插路由器。

4.1树莓派启动后,修改账号密码
会提示你输入账号:ubuntu(初始账号密码都是:ubuntu)
输入密码:ubuntu
输入当前密码:ubuntu,
你想设置的密码(好像最低8位字符,设个简单点的就行,以后会经常用,本人用的 123456789,)
再次确认你的密码

4.2首先查看你是否联网(方法很多,看自己爱好)

这里推荐输入:

ifconfig

这里可以看到部分有用的信息,在wlan0 下面可以看到你的IP地址,以后通 过ssh远程连接使用。
4.3树莓派更新软件
1)输入命令:

sudo apt-get update && sudo apt-get dist-upgrade -y

(命令解析: sudo apt-get update 是读取软件列表,然后保存在本地电脑 ;
sudo apt-get upgrade 本地已安装的软件,与刚下载的软件列表里对应软件进行对比, 如果发现已安 装的软件版本太低,就会提示你更新,一般也是半小时左右,中 间会提示你是否更新, YES/NO,选择y)
2)安装完成后输入:

sudo reboot 

(命令解析:更新完后,需要重新启动运行,就像王者农药,更新完要重新打开一 个道 理)
3)输入命令:

sudo apt-get install ubuntu-mate-desktop

(命令解析:安装桌面环境,只需要一个命令就可以了哈,然后静静等待半小时左 右, 网速,树莓派运行速度都有很大的关系)

4)安装完成后输入:

sudo reboot 

4.4换源(也可以按网上其他教程操作)可做可不做!!
注意:(换不换均可,能搭梯子的小伙伴不需要操作,没有梯子的小伙伴建议换源,之所以要换源,是因为Ubuntu的服务器在外国,你访问会很慢,下载东西也慢,所以要换国内的镜像源,比如阿里,清华,等等,网上有说按地理位置分布选择适合自己的源,小伙伴可以找找资源哈。)

输入命令

sudo nano /etc/apt/sources.list 

将里面的内容换成你想换的镜像源

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe

Ctrl+o:保存
回车 确认
Ctrl+x 退出

sudo apt update 
sudo apt dist-upgrade 
sudo apt clean

换完源后多半会有很多报错,比如说找不到密钥
你可以百度一下 sudo apt uodate 找不到密钥
多半都会是这条

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key //后面跟的是提示你缺少的密钥,大概十几位数,数字与大写英文混合

4.5安装 raspi-config

它的作用是配置你的树莓派系统。因为Ubuntu系统没有装,所以需要自己手动安装

4.5.1输入命令安装依赖:

sudo apt install whiptail parted lua5.1 alsa-utils psmisc

4.5.2输入命令下载raspi-config

wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200727_all.deb

4.5.3安装:

sudo dpkg -i raspi-config_20200727_all.deb

4.5.4检查是否缺少依赖

sudo apt-get -f -y install

4.5.5输入:

sudo raspi-config 

4.5.6通过方向键选择:Interfacing Options 回车确认 选择 SSH 确认 YES OK
最后选择 < Finish >

4.5.7然后重启:

sudo reboot 

5. 为了防止树莓派内存不够,需要增加交换空间,

5.1检查现有内存

free -m

5.2建立交换空间

cd /opt/
sudo mkdir swap
cd swap
sudo touch swap

5.3设置交换内存大小,根据自己的内存卡大小剩余空间设定,我用的64G卡,设了8G交换空间(我设的8G交换大小,1G=1024,自己算适合自己的)

sudo dd if=/dev/zero of=/opt/swap/swap bs=1024 count=8162000

要等很长时间才会返回结果,不要认为是卡了哦
要等很长时间才会返回结果,不要认为是卡了哦

5.4

sudo mkswap /opt/swap/swap    ///会有警告,不怕,正常现象

5.5启用交换空间

sudo swapon /opt/swap/swap

5.6查询有没有正常启用

free -m

在这里插入图片描述

显示已经建立,下一步写入分区

sudo nano /etc/fstab
在最后一行加入
/opt/swap/sawp    /swap     swap    defaults    0    0

Ctrl + O 保存,ctrl + x 退出

操蛋,我没设置好,每次重启得自己手动打开交换空间,
sudo su 
swapon /opt/swap/swap     开启
swapoff /opt/swap/swap     关闭

至此,树莓派安装镜像完。

二、安装ROS(Melodic二进制安装)

1下载ROS

官网:ROS

1.1下载安装:

添加ROS镜像源:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu 	$(lsb_release 	-sc) main" > 	/etc/apt/sources.list.d/ros-latest.list'

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

刷新安装列表:
sudo apt update

安装ROS桌面完整版:
sudo apt install ros-melodic-desktop-full

安装ROS常用软件:
sudo apt install python-rosdep python-rosinstall 	python-rosinstall-generator python-wstool 	build-essential
sudo apt-get install ros-melodic-rqt*
sudo apt-get install python-rosdep

如果出现以下错误,
在这里插入图片描述

在“软件和更新“中,把这几个勾选上

在这里插入图片描述在这里插入图片描述

2ROS初始化

2.1最简单的办法

1

输入

curl http://fishros.com/tools/install/rosdepc | bash 

安装之后

然后你把rosdep两个命令里面的rosdep改成rosdepc  (下面两条作者修改过了,不用执行了。亲侧,以在刷一遍也没毛病)
sudo rosdepc init
sudo rosdepc update


最后
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
齐活

检查ROS是否安装成功,例程检测

代码如下

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
                                             分别打开三个终端,分别命令:
roscore                                    启动ros核心
rosrun turtlesim turtlesim_node           运行小乌龟例程
rosrun turtlesim turtle_teleop_key       运行小乌龟控制程序

然后将光标放在最后那个端口上,使用方向键就可以控制乌龟的运动方向,“q”退出程序

在这里插入图片描述


以下是常规办法,上面的方法通过,直接看第三部分就好了

1.2ROS初始化
ROS更新这一步是最难搞的,因为这需要连接国外的服务器,然后跟你刚下载的ROS文件做对比,你是否缺少文件,缺少依赖,因为服务器在国外,所以会经常连接不上,我们通过命令查看一下,到底要连接那些网址那?

输入

sudo nano /etc/ros/rosdep/sources.list.d/20-default.list

这里面有五个网址,都是:raw.githubusercontent.com
在这里插入图片描述

Ctrl+x 退出
那么,我们百度搜索raw.githubusercontent.com的IP地址,如下:截至我写这个教程时,这个网址当前IP地址为:185.199.109.133
所以,输入命令:

sudo nano /etc/hosts
185.199.109.133 raw.githubusercontent.com     //在最后加一句
Ctrl+o:保存
回车   确认
Ctrl+x  退出

2本人推荐总结三种方法

2.1翻墙

能翻墙的小伙伴直接

sudo rosdep init 

初始化完事按提示输入

sudo rosdep update 

即可

2.2寻找一个网络带宽比较高的路由器,

比如说学校的网,大企业的网,或者手机 热点,都是可以的。这个方法看运气,可能一次成功,也 可能三四个小时或者更长时间,总结那,就是看命!这是 个神学!最佳时间段为晚上十点以后到第二天八点半以 前!!!尝试一次换一个别人的热点,在尝试 ,再换回你的热点,这样效率高一点
我们多次运行sudo rosdep init 后,会出错,如下:
那么,输入命令:

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list 

删除 这个文件即可,然后重 新输入:

sudo rosdep init

初始化完 事按提示输入 sudo rosdep update 即可 , 99% 运行一次不会成功的,没关系,多试几次,一直输入:sudo rosdep update
尝试大概十次左右,你可以看一下你的执行情况,上面有提到,ROS更新时,要连 接国外的五个网址,你对比你的程序命令记录,每运行一次更新,都会有几个网址 可以连接,能够连接上三到四个网址,那这个方法可以继续下去,一直命令更新, 直到成功为止。如果每次更新,只能连接一两个网址,那就不要往下往下尝试了, 使用第三种方法吧

2.3替换目标文件

先解释一下这种方法的安装思路
首先下载当前ROS最新的列表文件,然后修改/etc/ros/rosdep/sources.list.d/20-default.list,把里面的内容改掉,这个文件原有内容是让你连接指定的网址,然后跟你下载的文件对比,看有没有缺少,按照这个思路,我们可以先下载文件列表,然后让他们两个之间对比
那么这样做到底好不好那?看完一下讲解,自行斟酌
优点:不需要漫长的等待,半个小时就能搞定,
缺点:以后你要更新,那么他将会对比你已经设定好的目录,不会跟官方最新的目录对比,除非你再次修改上面那个文件
本人建议:能用前两种方法最好,实在不行,再用这种方法,但是,也要给自己留条后路。

rosdep init/update 解决方法

需要注意的是,一定要写对你的文件路径,仔细看看你下载下来的文件都有哪些文件夹,这个作者写的很详细了,

三 、二进制安装MAVROS

1.二进制安装MAVROS

代码如下

添加源:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

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

更新软件库
sudo apt update

安装MAVROS及功能包
sudo apt install ros-melodic-mavros ros-melodic-mavros-extras -y
sudo apt-get install python-catkin-tools python-rosinstall-generator -y
sudo apt install libpcl1 ros-melodic-octomap-*

wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
如果提示不能连接神魔的,往下看一点,若果能下载继续执行

chmod +x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh

上面说通过 wget 不能下载,我们百度搜索raw.githubusercontent.com的IP地址,如下:截至我写这个教程时,这个网址当前IP地址为:185.199.109.133
所以,输入命令:

sudo nano /etc/hosts
185.199.109.133 raw.githubusercontent.com     //在最后加一句
Ctrl+o:保存
回车   确认
Ctrl+x  退出
再翻上去继续执行

2.安装vision_to_mavros 包

代码如下

创建工作空间
mkdir -p ~/xxx_ws/src   (xxx自己规划)
cd ~/xxx_ws/src

下载文档
git clone https://github.com/hoangthien94/vision_to_mavros.git

cd ~/xxx_ws

catkin_make

cd

echo "source ~/xxx_ws/devel/setup.bash" >> ~/.bashrc

source ~/.bashrc



3.源码安装MAVROS

此部分看看即可,不需要操作

mkdir -p ~/px4_tools/catkin_ws/src
cd ~/px4_tools/catkin_ws

## Install dependencies
sudo apt-get install python-wstool python-rosinstall-generator python-catkin-tools -y

## Initialise wstool
wstool init ~/px4_tools/catkin_ws/src

## Build MAVROS
### Get source (upstream - released)
rosinstall_generator --upstream mavros | tee /tmp/mavros.rosinstall
### Get latest released mavlink package
rosinstall_generator mavlink | tee -a /tmp/mavros.rosinstall
### Setup workspace & install deps
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro melodic -y

./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
## Build!
catkin build
## Re-source environment to reflect new packages/build environment
echo "source ~/px4_tools/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

4.MAVROS 与 飞控通信

MAVROS 与 飞控通信的方法有很多,这里记录两种,分别是:数据线直插,tty转串口

4.1 数据线直插
将飞控与树莓派直接使用一根普通的数据线相接,就像飞控下载固件一样
树莓派查询端口

cd /dev
ls 
看有没有端口显示,多半是   ttyACM0,这期间除了鼠标键盘,不建议插其他的设备,以免你分不清,

在这里插入图片描述
4.2tty转串口
准备一个USB转TTL模块,买之前询问老板支不支持 921600 比特率,57600波特率也可以将就用,但是通信的数据量大了之后,会出很多错,

cd /dev
ls 
看有没有端口显示,多半是   ttyUSB0,这期间除了鼠标键盘,不建议插其他的设备,以免你分不清,

4.3修改launch文件

cd 
roscd mavros/launch
ls 你能看见很多launch文件

如果你用的APM 固件,就
sudo vim apm.launch


如果你用的PX4 固件,就
sudo vim px4.launch

在这里插入图片描述
把照片圈起来那句话修改掉,比如说,我用的数据线直插,
前面的不动,将 ttyUSB0 改成 ttyACM0 (根据上面你自己查到的端口号为主) 还有波特率也要改,改成与你飞空设置的一样,要不然没法通信,修改完成后,:wq! 保存退出

新打开一个终端,输入

roslaunch mavros px4.launch
或者
roslaunch mavros apm.launch

在这里插入图片描述
这样就是通信成功了,红色错误是 提示我飞控调参没调好,提示内容跟你在地面站看到的提示错误一样,

如果你经常使用数据线直插,偶尔使用USB串口连接,你可以使用下面这条命令,不需要上面那样修改文件


roslaunch mavros px4.launch fcu_url:=/dev/ttyUSB0:921600
同理  apm固件
roslaunch mavros apm.launch fcu_url:=/dev/ttyUSB0:921600

端口号肯定要用你自己的

四、Intel Realsense SDK的安装

1.先用 gcc -v 检查自己的gcc版本,一般会是gcc-7,如果不是 gcc-6需要先安装gcc-6

安装如下

sudo apt-get update 
sudo apt-get install build-essential software-properties-common -y 
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y  
sudo apt-get install gcc-snapshot -y 
sudo apt-get install gcc-6 g++-6 -y 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6

2.下面是安装Realsense SDK(建议使用二进制安装)

2.1安装依赖

cd 
sudo apt-get install git cmake libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
sudo apt install git libssl-dev libusb-1.0-0-dev pkg-config -y
sudo apt install cmake python3-dev raspberrypi-kernel-headers -y

2.2添加镜像源

密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

镜像源
sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

2.3安装

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils
sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg

2.4新建终端检测是否安装成功

realsense-viewer

未插
在这里插入图片描述
插上可以切换2D或者3D
在这里插入图片描述


3.Intel Realsense SDK源码安装(建议了解即可)

代码如下(示例):

cd ~
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense

# Install udev rules
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger

# Create the destination directory

mkdir build
cd build

# Remove extra files if this is not your first run
xarg sudo rm < install_manifest.txt
rm CMakeCache.txt
export CC=/usr/bin/gcc-6
export CXX=/usr/bin/g++-6

下面的一条一条的复制,要是想打成一行,就把 \去掉
cmake -D CMAKE_BUILD_TYPE="Release"\          
-D FORCE_LIBUVC=ON \
-D BUILD_PYTHON_BINDINGS=ON \
-D BUILD_EXAMPLES=true \
-D FORCE_RSUSB_BACKEND=ON \
-DBUILD_WITH_TM2=false \
-DIMPORT_DEPTH_CAM_FW=false \
-D BUILD_EXAMPLES=ON ..

sudo make uninstall 
make clean
make 
sudo make install   #执行者一条是会有一些报错,暂时先不管,我也不知道对后期的使用有没有影响,暂时先这样,有问题再说
sudo ldconfig

# Finally, reboot the pi:
sudo reboot

4.使用ROS包读取T265数据

4.1安装依赖

sudo apt-get install ros-melodic-ddynamic-reconfigure

4.2下载ROS realsense-ros包

创建工作空间
mkdir -p ~/xxx_ws/src   (xxx自己规划)
cd ~/xxx_ws/src
git clone https://github.com/IntelRealSense/realsense-ros.git
cd realsense-ros/
git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1`
cd ..
catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
启动测试demo,即可看到T265的位姿数据

在这里插入图片描述
4.3检查t265数据是否正常(使用两个终端)
代码如下(示例):

roslaunch realsense2_camera rs_t265.launch
rostopic echo /tf    (红圈是三维坐标,拿起t265动一动,观察数据是否准确,单位是  M   )

在这里插入图片描述
4.4建图相关依赖
建图模块依赖项安装

sudo apt-get install ros-melodic-rqt ros-melodic-rqt-common-plugins ros-melodic-rqt-robot-plugins -y

安装rtabmap:
sudo apt-get install ros-melodic-rtabmap*

安装Octomap:
sudo apt-get install ros-melodic-octomap-*

安装cartographer
sudo apt-get install ros-melodic-cartographer*

五、一条命令启动T265与树莓派与飞控之间的通信

这三个模块之间通信,一般需要运行这几条命令

分别打开三个端口
roslaunch realsense2_camera rs_t265.launch
roslaunch vision_to_mavros t265_tf_to_mavros.launch
sudo chmod a+rw /dev/ttyUSB0      /使用端口之前,要赋值
roslaunch mavros apm.launch  fcu_url:=/dev/ttyUSB0:57600

可以使用
roslaunch vision_to_mavros t265_all_nodes.launch
一次性启动这三条命令,省事的多,如果提示你安装roslaunch 
有可能是你真的没安装,
也可能是权限不对,
你需要切换到root操作

总结

肯定不能避免有些命令打错了,如有错误,请指正,谢谢,

  • 12
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值