软件安装
Contents
设置你的树莓派
树莓派4
SD卡(推荐32GB)
树莓派4电源(USB-C接口,5V,≥3A)
以太网线缆
准备树莓派的SD卡
在你的台式机/笔记本电脑上操作:
2. 下载此版本的Raspbian系统
使用 此版本 ,以便大家使用相同版本。解压该文件。
3. 使用 etcher 来烧录SD卡。
如果你使用推荐的etcher,这是启动菜单。选择2019 - 09 - 26 - raspbian - buster - lite.img(解压文件内的文件)以及SD卡。
SD卡正在烧录的图片。
完成!
4. 打开SD卡文件系统。
有时你的电脑需要一些时间来读取SD卡并显示启动文件夹。如果问题仍然存在,可以尝试取出SD卡再重新插入。
5. 下载 RPI - Setup仓库 的最新版本。
解压所有文件。
6. 将下载的仓库中的所有文件移动到SD卡中。
替换任何冲突的文件,使仓库版本覆盖原始版本。现在你可以删除压缩文件和已为空的文件夹。
启用基本功能
1. 开启你的树莓派。
从电脑中取出SD卡,插入你的树莓派。同时给树莓派接上电源。
如果你的树莓派无法启动,请尝试回到步骤3“使用etcher烧录SD卡”,并使用此版本的Rasbian系统代替:https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite - 2020 - 02 - 14/2020 - 02 - 13 - raspbian - buster - lite.zip
2. 配置你的电脑以通过SSH连接到机器人
若要使用以太网进行设置(推荐),将以太网线缆连接到你的电脑和树莓派。
进入你希望使用的网络接口(以太网/无线网络)的网络设置
将“配置IPv4”改为:手动
将你的IP地址改为10.0.0.X范围内的某个地址(如果你是斯坦福学生机器人团队的一员,请从这个 文档 中选择一个不会与其他系统冲突的地址)
将子网掩码改为:255.255.255.0
路由器留空
与机器人网络断开连接后,记得将这些设置改回原来的状态,否则该接口的网络将无法使用
2. 从你的电脑通过SSH连接到树莓派。
运行 ssh pi@10.0.0.10
(默认密码是 raspberry
)
4. 获取网络连接
获取网络连接有两种方法:在树莓派上使用raspi-config工具,或者在将SD卡插入树莓派之前修改SD卡上的wpa_supplicant文件。如果您在斯坦福大学校园,请遵循下一节的说明,因为存在特殊要求。 如果您不在斯坦福大学校园,对于初学者来说,使用raspi-config工具更简单,也更推荐。然而,修改wpa_supplicant文件的好处是,您无需通过SSH登录到树莓派就可以设置正确的网络设置。
使用raspi-config工具的方法
通过SSH登录到树莓派后,运行:
sudo raspi-config
这将出现一个菜单。进入“网络选项”,然后选择“Wi-Fi”,并输入您的SSID(Wi-Fi名称,例如Netgear、Linksys)和密码。
修改wpa_supplicant文件的方法
按照 此链接 中的文档说明编辑 /etc/wpa_supplicant/wpa_supplicant.conf,查看“将网络详细信息添加到树莓派”部分。您也可以查看这个 链接 。由于pi-init2的神奇功能,在树莓派开机之前,就可以从 /boot/appliance/etc/wpa_supplicant/wpa_supplicant.conf 编辑该文件。
4. [斯坦福学生专用] 在斯坦福获取网络连接
将树莓派接上电源(通过板载的微型USB接口)。通过SSH登录到树莓派。在登录行之后出现的欢迎消息中,查找树莓派的MAC地址,它会出现在“无线硬件MAC地址”这一行下面。记下该地址。
使用另一台计算机访问iprequest.stanford.edu。
使用您的斯坦福账号登录。
按照屏幕上的说明添加另一台设备:
第一页:设备类型:其他,操作系统:Linux,硬件地址:输入树莓派的MAC地址
第二页:品牌和型号:其他PC,有线硬件地址:删除已有的内容,无线硬件地址:输入树莓派的MAC地址
确认树莓派已连接到网络:
等待一封电子邮件(发送到您的斯坦福邮箱),通知设备已被接受
在树莓派上执行 sudo reboot
重启完成后,输入ping www.google.com并确保您能通过网络接收数据包
5. 安装必备组件
运行
sudo./install_packages.sh
如果IP地址仍然是10.0.0.10,系统会提示您更改它。树莓派的IP地址不应与您计算机的IP地址10.0.0.Y相同。
如果主机名仍然是raspberry,系统会提示您更改它。
系统会要求您输入当前时间和日期。如果您想自动设置时间和日期,可以跳到下一步。
运行
sudo./time_sync.sh
自动设置时间和日期。
RPI-Setup仓库的作用
启用ssh。由于密码保持不变(raspberry),ssh仅在以太网接口上启用。要在所有接口上启用它,请注释掉/boot/appliance/etc/ssh/sshd_config中的ListenAddress行。
将树莓派设置为通过以太网连接到机器人网络(10.0.0.X)
扩展SD卡文件系统
将文件系统设置为只读
准备连接到斯坦福的WiFi(详细信息见上文)
提供安装开发所需工具和仓库的脚本
在树莓派上安装斯坦福四足机器人软件
步骤
1. 通过SSH连接到树莓派
检查树莓派是否可以访问互联网。如果您在通过SSH连接到树莓派时遇到问题,请查看上一步中链接的设置树莓派以太网设置的说明。
ssh pi@10.0.0.Y
这里,“Y”是您在运行install_packages.sh脚本时为树莓派选择的IP地址。系统提示输入密码时,输入默认密码“raspberry”或您在install_packages.sh脚本中设置的密码。
如果您忘记了树莓派的IP地址,关闭树莓派,取出SD卡并插入您的计算机。 然后打开SD卡文件夹,进入以下文件夹:boot/appliance/etc/network/。 在文本编辑器中打开名为“interfaces”的文件。 在第19行,它应该显示IP地址为“address 10.0.0.x”。
3. 克隆此仓库(在树莓派上)
git clone https://github.com/stanfordroboticsclub/StanfordQuadruped.git
4. 安装依赖(在树莓派上)
cd StanfordQuadruped
sudo bash install.sh
5. 对机器人进行断电重启
拔掉电池,等待约30秒,然后再插回去。
6. 验证一切是否正常工作
如果您刚刚启动树莓派,等待约30秒,直到绿色指示灯停止闪烁。
通过SSH登录到机器人
运行
ssh pi@10.0.0.xx (其中xx是您为机器人选择的IP地址)
检查操纵杆服务的状态
运行
sudo systemctl status joystick
如果您尚未连接PS4控制器,它应该显示类似如下内容
pi@pupper(rw):~/StanfordQuadruped$ sudo systemctl status joystick ● joystick.service - Pupper Joystick service Loaded: loaded (/home/pi/PupperCommand/joystick.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-03-01 06:57:20 GMT; 1s ago Main PID: 5692 (python3) Tasks: 3 (limit: 4035) Memory: 7.1M CGroup: /system.slice/joystick.service ├─5692 /usr/bin/python3 /home/pi/PupperCommand/joystick.py └─5708 hcitool scan --flush Mar 01 06:57:20 pupper systemd[1]: Started Pupper Joystick service. Mar 01 06:57:21 pupper python3[5692]: [info][controller 1] Created devices /dev/input/js0 (joystick) /dev/input/event0 (evdev) Mar 01 06:57:21 pupper python3[5692]: [info][bluetooth] Scanning for devices
通过将PS4控制器置于配对模式,将其连接到树莓派。
要将其置于配对模式,同时按住分享按钮和圆形的Playstation按钮,直到它开始快速闪烁两次。
如果它开始缓慢闪烁一次,按住Playstation按钮,直到它停止闪烁,然后再试一次。
控制器连接后,再次检查状态
运行
sudo systemctl status joystick
现在它应该看起来像这样:
pi@pupper(rw):~/StanfordQuadruped$ sudo systemctl status joystick ● joystick.service - Pupper Joystick service Loaded: loaded (/home/pi/PupperCommand/joystick.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-03-01 06:57:20 GMT; 55s ago Main PID: 5692 (python3) Tasks: 2 (limit: 4035) Memory: 7.3M CGroup: /system.slice/joystick.service └─5692 /usr/bin/python3 /home/pi/PupperCommand/joystick.py Mar 01 06:57:20 pupper systemd[1]: Started Pupper Joystick service. Mar 01 06:57:21 pupper python3[5692]: [info][controller 1] Created devices /dev/input/js0 (joystick) /dev/input/event0 (evdev) Mar 01 06:57:21 pupper python3[5692]: [info][bluetooth] Scanning for devices Mar 01 06:58:12 pupper python3[5692]: [info][bluetooth] Found device A0:AB:51:33:B5:A0 Mar 01 06:58:13 pupper python3[5692]: [info][controller 1] Connected to Bluetooth Controller (A0:AB:51:33:B5:A0) Mar 01 06:58:14 pupper python3[5692]: running Mar 01 06:58:14 pupper python3[5692]: [info][controller 1] Battery: 50%
如果树莓派在一两分钟后仍找不到操纵杆,可能是树莓派的蓝牙控制器从未打开。运行
sudo hciconfig hci0 up
打开无线电。然后重启树莓派。
检查机器人服务的状态
运行
sudo systemctl status robot
输出会根据您运行各种程序的顺序而有所不同,但只需检查它是否没有任何红色文本显示失败。
如果它确实失败了,通常可以通过以下操作修复:
sudo systemctl restart robot