学了好久,然后依然很混乱,于是决定整理一下笔记
安装 Raspbian jessie
安装 Raspbian 非常简单,只需要三步:
- 下载镜像
- 写入TF卡(MicroSD)
- 开启SSH
下载镜像
首先打开树莓派官网,点击 DOWNLOADS,然后选择 RASPBIAN,来到Raspbian下载页面,下载 RASPBIAN JESSIE WITH PIXEL 的种子。通过种子来下载会快一些,而且下载后不需要校验。
写入TF卡
官方推荐使用Etcher来写入,试用了一下,简单快捷,不过有的情况会出错,没有查出来原因。
- 下载 Etcher 并安装。
- 把TF卡插入读卡器并连接电脑。
- 打开 Etcher ,从硬盘上选择刚才下载的镜像。
- 选择你要写入的TF卡。
- 检查确认你的选项,并点击“Flash!”开始写入。
写入时系统可能会提示驱动器未格式化,千万不要格式化
写入完成后,可以看到TF卡有两个分区(驱动器):一个是启动分区,可以打开;另一个是系统分区,Windows不能识别,显示未格式化。
开启SSH
单独为树莓派3准备一套键鼠和显示器是很奢侈的事情,所以开启SSH就变成了通常做法。
打开启动分区,在里面新建一个文件夹,命名为 SSH 。
~回顾一下
上面大部分内容其实都是在解释说明,要做的其实很少,只有以下3步:
- 去官网下载镜像
- 安装Etcher,并把镜像写入TF卡
- 在启动分区新建一个名为 SSH 的文件夹
配置 Raspbian
配置时需要说明的更多一些,但其实要做的东西也很少,熟悉之后几分钟就能搞定。
在这部分需要做的事情是:
- 将树莓派接入网络
- 设置SSH
- 更改Host和密码
- 设置语言与时区
- 调整分辨率并开启VNCServer
- 配置FTP
将树莓派接入网络
注意,在这部分,你最好使用路由器来建立局域网。
一开始如果能用键鼠和显示器,就能很轻松的连接上无线网络。如果没有,也可以先通过网线将树莓派连接入局域网(需要有DHCP分配IP地址,所以校园网不行)。
接好网线后,装上刚才制作好的TF卡,然后连接电源。大约20秒后,就可以通过SSH访问树莓派了。
Windows下常用的SSH软件是PuTTY,但是这个官网是“不存在的”,所以从这里下载。绿色软件,解压即可使用。
运行putty.exe,填入主机名称 raspberrypi,点击 open 按钮,即可开启链接。
首次连接会提示Host key未知(或不一致),因为是自己的树莓派,添加即可。
Paste_Image.png提示 login as: 时,输入用户名 pi
提示 pi@raspberrypi's password: 时,输入密码,默认是raspberry
登录成功是这样的:
Paste_Image.png这时,树莓派的命令行界面(终端)就显示在putty中了,在putty中的操作和在树莓派上直接操作的效果是一样的。输入exit可以退出终端,如果putty界面关闭,终端内运行的命令也都会结束。
配置SSH
生成SSH的密钥
因为使用PuTTY登陆,所以此时最好使用PuTTY自带的生成器来生成密钥。打开puttygen.exe,并选择Generate,之后会提示在空白处随意移动鼠标以生成随机数。
Paste_Image.png之后会显示生成的密钥信息,如下图:
Paste_Image.png
图中①是公钥(锁),私钥(钥匙)并不会显示出来。在②处设置使用此私钥时需要输入的密码(可以不设置密码),在③处保存私钥,一般不需要保存公钥(因为载入私钥后就会显示公钥)。
设置SSH公钥
存储私钥后复制①处的公钥,然后在putty界面中依次输入以下命令:
$ mkdir ~/.ssh
$ echo ssh-rsa AAAAB3……把本行ssh到最后的部分替换成自己的公钥……8xyFzQ== rsa-key-20170521
$ chmod 600 ~/.ssh/authorized_keys
$ chmod 700 ~/.ssh
** 解释一下上面的命令:**
- $ 表示行首的提示符,在终端会以“用户名@计算机名: 路径 $”的格式显示,比如 pi@raspberrypi:~ $,表示用户pi在计算机raspberrypi上,当前路径是pi的home目录。
~ 表示用户的home目录,也就是每个用户自己的主目录,用户所有的文件都会存在这个主目录下面。
/ 表示系统的根目录,所有的文件都“放”在这个根目录下面。
在教程中为了避免混乱,一般不写$之前的信息,写$以区分每一行命令。 - 以$开头的每一行都是一行命令,一行命令会包含命令与参数。
每一行命令第一个空格之前是命令,之后是参数,参数以空格分隔。一个命令可以使用参数调用另一个命令。
使用 “man 命令名”,可以查看命令的使用方法;也可以使用“命令名 --help” 来查看帮助。 - 如果一行命令执行中不需要输入内容,比如确定yes or no,那么可以将这样的多行命令同时复制入putty,在putty中,右键为粘贴,左键框选复制。上面这几行内容都没有确认提示,所以可以先在笔记中编辑好,然后一起复制到终端里,注意最后一行可能需要手动回车。
- 上面使用的几条命令中:
mkdir 的功能是建立目录,
echo显示内容,常与 > 或者 >> 配合使用来更改文件内容。> 功能是将输出内容保存为文件,>> 功能是将输出内容追加到文件。
chmod 的功能是改变文件或目录属性。
上述命令执行后,可以新打开一个putty,使用私钥登陆。
测试使用私钥登陆
先填入主机名,
Paste_Image.png
先填入主机名,然后在putty的左侧选择 Connection 中 SSH 的 Auth,在右侧最下方 Private key file for authentication中选择刚才保存的私钥。点右下角Open,启动终端,在输入用户名后若显示 Authenticating with public key "……" 则说明私钥认证成功。若私钥没有密码,则直接登陆成功。若有密码,则提示输入:
Paste_Image.png若使用私钥登陆成功,则可以关闭SSH的密码登陆,以提高安全性。
$ sudo nano /etc/ssh/sshd_config
找到:
PasswordAuthentication yes
修改为:
PasswordAuthentication no
按Ctrl+X退出,按y保存,回车确定保存名称。
nano 是 linux 中常用的文本编辑器,没有vim那么高大上,但是简单易用。
更改设置后重启ssh服务以使设置生效。
$ sudo systemctl restart ssh.service
更改Host和密码
在网络中,每个计算机都拥有自己唯一的名称(主机名 Hostname,常简称Host),树莓派系统默认的Host是raspberrypi,不具有唯一性,因此需要修改这个值。树莓派有更改设置的命令行程序raspi-config
$ sudo raspi-config
Paste_Image.png
选择第一项更改密码,确认后,输入密码回车,再次输入密码回车。成功会显示密码更改成功。确认后返回程序主界面。
Paste_Image.png选择第二项更改 Hostname ,提示只能使用小写字母及0~9的数字及连字符 -,确认后输入,按回车确认。
设置语言与时区
选择第四项 Localisation Options
Paste_Image.png其中第一项是更改语言设置,第二项是更改时区。
按空格取消或选中选项,选中zh_CN.UTF-8
按 Tab键 移动光标至 Ok,回车。
按下键移动光标至zh_CN.UTF-8,回车。
稍等片刻后会返回设置界面。
开启VNCServer并调整分辨率
选择第5项 Interfacing Options
其中第3项是开启VNCServer(远程桌面)
选择第3项,并移动到Yes,回车。确认后返回主界面。
选择第7项 Advanced Options
其中第5项是更改分辨率
选择第5项,选择1280x720,回车。确认后返回主界面。
按Tab键移动到Finish,回车,会提示重启,选择Yes,回车。
由于树莓派重启,终端连接断开,会提示网络连接意外断开,如下图:
Paste_Image.png
确认后PuTTY会进入非激活状态,关闭窗口,如下图:
Paste_Image.png
配置连接设置
重新打开putty.exe,输入新的主机名,设置私钥。
在左侧 Connection 中选择 Data ,在右侧中第一项中输入自动登陆用户名 pi 。
在左侧选择 Session,在 Save Sessions 中输入登录设置名称,点右侧Save保存设置。
Paste_Image.png然后双击配置名启动终端。
设置VNC Viewer并连接无线网络
我们常用VNC Viewer来连接树莓派,来使用桌面功能。
新建一个链接,并在VNC Server中输入主机名,点Ok开启链接
会提示认证失败,可能不安全,点继续。
然后输入登录的用户名和密码。
Paste_Image.png
在右上角设置无线连接,选择自己的网络,并输入密码。
配置FTP
执行下列命令以安装vsftpd FTP服务器
$ sudo apt update
$ sudo apt install vsftpd -y
$ sudo service vsftpd start
$ sudo nano /etc/vsftpd.conf
找到以下项,并更改。# 开头的行表示注释,常用#来关闭某项设置,可以删除设置前的 #,以使该项生效。
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
$ sudo service vsftpd restart
之后可以使用WinSCP等软件以FTP方式登录树莓派。
建议在配置完后备份TF卡。
安装 ROS Kinetic
调整页面文件大小
增加页面文件大小是为了解决编译时内存不足的问题。
$ sudo nano /etc/dphys-swapfile
找到 CONF_SWAPSIZE ,并将值修改为2048,保存退出并重启树莓派。
配置源
$ sudo sh -c 'echo "deb https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
然后更新一下
$ sudo apt-get update
$ sudo apt-get upgrade
安装依赖
$ sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
然后初始化一下
$ sudo rosdep init
$ rosdep update
编译源码
首先建立工作空间
$ mkdir -p ~/ros_catkin_ws
$ cd ~/ros_catkin_ws
然后配置一下安装文件,初始化工作空间,并下载源码
$ rosinstall_generator desktop rosserial perception joystick_drivers --rosdistro kinetic --deps --wet-only --exclude perception_pcl --tar > kinetic-custom_ros.rosinstall
$ wstool init src kinetic-custom_ros.rosinstall
$ wstool update -t src
为源码添加依赖
$ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y -r --os=debian:jessie
$ sudo cp /usr/share/cmake-2.8/Modules/FindEigen3.cmake /usr/share/cmake-3.6/Modules/
开始编译
$ sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/kinetic
编译之后添加ROS配置到bash启动项
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ echo "export EDITOR='nano -w'" >> ~/.bashrc
如果不用蓝牙,可以选择Ubuntu Mate
安装可以按照x64下面的Ubuntu安装,会简单很多。
$ sudo sh -c 'echo "deb https://mirrors.tuna.tsinghua.edu.cn/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 421C365BD9FF1F717815A3895523BAEEB01FA116
$ sudo apt-get update
$ sudo apt-get install ros-kinetic-desktop-full
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt install python-rosinstall
网友评论