由于Stanford Pupper官网所给手册中提供的系统镜像安装后,在后续搭建软件环境过程中会出现“软件源连接超时”“版本不匹配”等问题,自己实在没有办法将环境搭建好,所以采用Raspberry官网提供的系统镜像安装系统,并参照Stanford Pupper官网所给压缩包中的安装脚本(install.sh)文件内容,逐一安装所需依赖。
现将安装过程记录如下(好记性不如烂笔头),事实是在写博客的过程中,有些操作步骤已经离我而去了。所以大家在操作过程中如果遇到问题,欢迎留言,我们一起回忆并加以解决:)
操作约定
- 树莓派型号为 Raspberry Pi 3 Model B+,以下操作过程中简记为“树莓派3”。
- 树莓派3登录用户名 pi,密码 raspberry。
- 树莓派3主机名:raspberrypi。
- 操作用笔记本(以下操作过程中简记为“笔记本”)的系统版本:Windows 10 企业版(64位) LTSC
- ssh与sftp连接工具:MobaXterm(Home Edition)。
- 树莓派3接入的wifi能够连通外网,操作用的笔记本电脑wifi已经打开。
关闭 树莓派3
sudo shutdown now
重启 树莓派3
sudo reboot
下载 Raspberry Pi OS (32-bit) with desktop and recommended software
下载链接:
https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2020-08-24/2020-08-20-raspios-buster-armhf.zip。
解压到2020-08-20-raspios-buster-armhf文件夹中。
下载 Win32DiskImager
下载链接:https://win32diskimager.download/Win32DiskImager-1.0.0-src.zip
第一步:
- 在Windows系统中利用Window2DiskImage将
2020-08-20-raspios-buster-armhf
文件夹中的2020-08-20-raspios-buster-armhf.img
镜像文件写入sd卡,写入结束后在sd卡中识别出来的卷标为boot
的分区中新建文件ssh,文件的扩展名及内容均为空。
将sd卡插入树莓派3,上电树莓派3。通过以下操作获取树莓派3的ip地址。
注意:树莓派3初始默认是通过dhcp动态获取ip,因此每次连接时的ip地址会存在不固定的情况。 - 将笔记本连接wifi,并记录wifi的ssid与passsword,确保笔记本可以连通外网。在这一步操作中,笔记本的有线连接不需要做设置。
然后通过网线将笔记本和树莓派3连接起来,在Windows桌面,移动鼠标指针指向任务栏右侧的网络连接图标,单击右键,选择“打开’网络和Internet’设置”,打开“设置”对话框,单击“更改适配器选项”。 - 在打开的“网络连接”窗口中,右键单击处于连接状态的无线网络,选择“属性” ,在“属性” 对话框中单击"共享"选项卡,勾选"允许其他网络用户通过此计算机的Internet连接来连接(N)""允许其他网络用户控制或禁用共享的Internet连接(O)“,单击”确定“。
- 按下
win+R
,在”运行“对话框中输入”cmd",打开命令提示符窗口。在其中输入arp -a
,回车后注意查找mac
地址开头为b8
的网卡对应的ip地址。如果没有找到,就重启树莓派3,然后等待1分钟时间后再尝试。 - 查到树莓派3的ip地址后,将笔记本有线连接的ip地址更改为与树莓派3在同一个网段。
第二步
利用MobaXterm通过ssh连上树莓派3,在终端输入sudo raspi-config
,打开树莓派3的“Raspberry Pi Software Configuration Tool(raspi-config)
”,通过键盘选择“2 Netwoks Options
”,接着选择“N2 wireless LAN
”,然后输入SSID
和passphrase
,将树莓派3连接上SSID
指定的wifi。最后,通过执行以下命令ping www.baidu.com
,确认树莓派3已经通过wifi连上外网。
将树莓派3中的python版本升级为3.7。
- 安装 python3
sudo apt install python3
- 卸载 python2.7
sudo apt remove python
- 自动清理 python2.7 的依赖
sudo apt autoremove
- 删除原来 python 的链接
sudo rm /usr/bin/python
- 创建新链接指向之前安装的 python3.7
sudo ln -s /usr/bin/python3.7 /usr/bin/python
- 查看 python 版本
python
安装后续过程需要的依赖
- 准备工作
sudo dpkg-reconfigure tzdata
sudo apt-get install python3-distutils
- 安装setuptools
sudo wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz
sudo tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6/
sudo python3 setup.py build
sudo python3 setup.py install
- 安装pip3
sudo wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz
sudo tar -zxvf pip-8.0.2.tar.gz
cd pip-8.0.2/
sudo python3 setup.py build
sudo python3 setup.py install
- 升级pip3版本
sudo pip3 install --upgrade pip -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
- 查看当前pip3版本
pip3 --version
- 安装libatlas-base-dev
sudo apt-get install libatlas-base-dev
- 安装numpy transforms3d pigpio pyserial
sudo pip install numpy transforms3d pigpio pyserial
- 如果安装过程报错,可以尝试分别安装numpy、transforms3d
sudo apt install python3-numpy
sudo pip3 install transforms3d
第三步
1. 下载stanfordroboticsclub/UDPComms
下载地址:https://github.com/stanfordroboticsclub/UDPComms/archive/master.zip。
下载完毕后,解压到UDPComms文件夹中(注意文件夹名最好设置为UDPComms,以便匹配安装时的脚本文件,后续的压缩包也需注意同样的问题。)
2. 下载stanfordroboticsclub/uDHCPd
下载地址:https://github.com/stanfordroboticsclub/uDHCPd/archive/master.zip。
下载完毕后,解压到uDHCPd文件夹中。
3. 下载stanfordroboticsclub/PupperCommand
下载地址:https://github.com/stanfordroboticsclub/PupperCommand/archive/master.zip。
下载完毕后,解压到PupperCommand文件夹中。
4. 下载stanfordroboticsclub/PS4
下载地址:Joystickhttps://github.com/stanfordroboticsclub/PS4Joystick/archive/master.zip。
下载完毕后,解压到PS4Joystick文件夹中。
5.下载joan2937/pigpio
下载地址:https://github.com/joan2937/pigpio/archive/v74.zip。
下载完毕后,解压到pigpio-74文件夹中。
6.上传解压后的文件夹到树莓派3
利用MobaXterm通过sftp将文件夹“UDPComms”“uDHCPd”“PupperCommand”“pigpio-74”上传到树莓派3的/pi/home/文件夹下。
第四步
- 安装UDPComms
cd ~
sudo bash UDPComms/install.sh
- 安装uDHCPd
cd ~
sudo bash uDHCPd/install.sh
- 安装PupperCommand
cd ~
cd PupperCommand
sudo bash install.sh
- 安装PS4Joystick
cd ~
cd PS4Joystick
sudo bash install.sh
cd ~
sudo systemctl enable joystick
- 安装pigpio-74
cd ~
cd pigpio-74
make
sudo make install
- 创建新链接指向之前安装的robot.service
cd ~
cd StanfordQuadruped
sudo ln -s ./robot.service /etc/systemd/system/
- 加载监视进程,启动robot服务
sudo systemctl daemon-reload
sudo systemctl enable robot
sudo systemctl start robot
- 重启树莓派3
sudo reboot
- 等待约1分钟时间,然后查看PS4手柄及robot服务加载情况
sudo systemctl status joystick
sudo systemctl status robot
- 如果PS4手柄开启并尝试配对后,树莓派3长时间扫描不到,执行以下命令打开蓝牙
sudo hciconfig hci0 up
- 如果joystaick和robot服务不正常,通过以下命令重启其服务
sudo systemctl restart joystick
sudo systemctl restart robot
结尾
树莓派3与笔记本之间的连接方式及关系:
- 在未获取树莓派3所获取ip前,笔记本通过共享wifi的方式等待树莓派3通过wifi接入,然后利用arp命令获取树莓派3的ip。
- 在获取了树莓派3的ip后,笔记本通过网线利用ssh(也可以采用vnc方式)与树莓派3通信;树莓派3通过笔记本共享的wifi接入Internet。