=====================
软件安装
=====================
.. contents:: :depth: 4
è®¾ç½®ä½ çš„æ ‘èŽ“æ´¾
------------------------------
* æ ‘èŽ“æ´¾4
* SDå¡ï¼ˆæŽ¨è32GB)
* æ ‘èŽ“æ´¾4电æºï¼ˆUSB-C接å£ï¼Œ5V,≥3A)
* 以太网线缆
å‡†å¤‡æ ‘èŽ“æ´¾çš„SDå¡
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
åœ¨ä½ çš„å°å¼æœº/笔记本电脑上æ“作:
1. å°†SD塿’å…¥ä½ çš„å°å¼æœº/笔记本电脑。
###############################################
2. 下载æ¤ç‰ˆæœ¬çš„Raspbian系统
#################################################################
使用 `æ¤ç‰ˆæœ¬ <https://slack-files.com/T0RAWRCGY-FQG7WTSBH-eb9549ed22>`_ ,以便大家使用相åŒç‰ˆæœ¬ã€‚解压该文件。
3. 使用 `etcher <https://www.balena.io/etcher/>`_ æ¥çƒ§å½•SDå¡ã€‚
##########################################################################################
* å¦‚æžœä½ ä½¿ç”¨æŽ¨èçš„etcher,这是å¯åЍèœå•。选择2019 - 09 - 26 - raspbian - buster - lite.img(解压文件内的文件)以åŠSDå¡ã€‚
.. image::../_static/flash1.JPG
:align: center
* SD塿£åœ¨çƒ§å½•的图片。
.. image::../_static/flash2.JPG
:align: center
* 完æˆï¼
.. image::../_static/flash3.JPG
:align: center
4. 打开SD塿–‡ä»¶ç³»ç»Ÿã€‚
###################################################################
æœ‰æ—¶ä½ çš„ç”µè„‘éœ€è¦ä¸€äº›æ—¶é—´æ¥è¯»å–SDå¡å¹¶æ˜¾ç¤ºå¯åŠ¨æ–‡ä»¶å¤¹ã€‚å¦‚æžœé—®é¢˜ä»ç„¶å˜åœ¨ï¼Œå¯ä»¥å°è¯•å–出SDå¡å†é‡æ–°æ’入。
.. image::../_static/sdboot.JPG
:align: center
5. 下载 `RPI - Setup仓库 <https://github.com/Nate711/RPI-Setup>`_ 的最新版本。
#####################################################################################################################
* 解压所有文件。
.. image::../_static/downloadrpi.jpg
:align: center
6. 将下载的仓库ä¸çš„æ‰€æœ‰æ–‡ä»¶ç§»åŠ¨åˆ°SDå¡ä¸ã€‚
#####################################################################
* 替æ¢ä»»ä½•冲çªçš„æ–‡ä»¶ï¼Œä½¿ä»“åº“ç‰ˆæœ¬è¦†ç›–åŽŸå§‹ç‰ˆæœ¬ã€‚çŽ°åœ¨ä½ å¯ä»¥åˆ 除压缩文件和已为空的文件夹。
.. image::../_static/replaceboot.JPG
:align: center
å¯ç”¨åŸºæœ¬åŠŸèƒ½
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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范围内的æŸä¸ªåœ°å€ï¼ˆå¦‚æžœä½ æ˜¯æ–¯å¦ç¦å¦ç”Ÿæœºå™¨äººå›¢é˜Ÿçš„一员,请从这个 `文档 <https://docs.google.com/spreadsheets/u/1/d/1pqduUwYa1_sWiObJDrvCCz4Al3pl588ytE4u-Dwa6Pw/edit?usp=sharing>`_ ä¸é€‰æ‹©ä¸€ä¸ªä¸ä¼šä¸Žå…¶ä»–系统冲çªçš„地å€ï¼‰
* å°†åç½‘æŽ©ç æ”¹ä¸ºï¼š255.255.255.0
* 路由器留空
* 与机器人网络æ–开连接åŽï¼Œè®°å¾—将这些设置改回原æ¥çš„状æ€ï¼Œå¦åˆ™è¯¥æŽ¥å£çš„ç½‘ç»œå°†æ— æ³•ä½¿ç”¨
2. ä»Žä½ çš„ç”µè„‘é€šè¿‡SSHè¿žæŽ¥åˆ°æ ‘èŽ“æ´¾ã€‚
######################################
è¿è¡Œ ``ssh pi@10.0.0.10`` ï¼ˆé»˜è®¤å¯†ç æ˜¯ ``raspberry`` )
.. image::../_static/sshimage.jpg
:align: center
3. 进入读写模å¼
####################################################################################################
在机器人的命令行ä¸è¿è¡Œ ``rw`` 。
确认终端æç¤ºç¬¦ä»¥(rw)ç»“å°¾ï¼Œè€Œä¸æ˜¯(ro)。
.. image::../_static/readwrite.JPG
:align: center
4. 获å–网络连接
#########################
获å–ç½‘ç»œè¿žæŽ¥æœ‰ä¸¤ç§æ–¹æ³•ï¼šåœ¨æ ‘èŽ“æ´¾ä¸Šä½¿ç”¨raspi-config工具,或者在将SD塿’å…¥æ ‘èŽ“æ´¾ä¹‹å‰ä¿®æ”¹SDå¡ä¸Šçš„wpa_supplicant文件。如果您在斯å¦ç¦å¤§å¦æ ¡å›ï¼Œè¯·éµå¾ªä¸‹ä¸€èŠ‚çš„è¯´æ˜Žï¼Œå› ä¸ºå˜åœ¨ç‰¹æ®Šè¦æ±‚。
如果您ä¸åœ¨æ–¯å¦ç¦å¤§å¦æ ¡å›ï¼Œå¯¹äºŽåˆå¦è€…æ¥è¯´ï¼Œä½¿ç”¨raspi-config工具更简å•,也更推è。然而,修改wpa_supplicantæ–‡ä»¶çš„å¥½å¤„æ˜¯ï¼Œæ‚¨æ— éœ€é€šè¿‡SSHç™»å½•åˆ°æ ‘èŽ“æ´¾å°±å¯ä»¥è®¾ç½®æ£ç¡®çš„网络设置。
a. 使用raspi-config工具的方法
通过SSHç™»å½•åˆ°æ ‘èŽ“æ´¾åŽï¼Œè¿è¡Œï¼š
::
sudo raspi-config
这将出现一个èœå•。进入“网络选项â€ï¼Œç„¶åŽé€‰æ‹©â€œWi-Fiâ€ï¼Œå¹¶è¾“入您的SSID(Wi-Fiå称,例如Netgearã€Linksys)和密ç 。
.. image::../_static/raspconfig1.JPG
:align: center
.. image::../_static/raspconfig2.JPG
:align: center
b. 修改wpa_supplicant文件的方法
按照 `æ¤é“¾æŽ¥ <https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md>`_ ä¸çš„æ–‡æ¡£è¯´æ˜Žç¼–辑 **/etc/wpa_supplicant/wpa_supplicant.conf**ï¼ŒæŸ¥çœ‹â€œå°†ç½‘ç»œè¯¦ç»†ä¿¡æ¯æ·»åŠ åˆ°æ ‘èŽ“æ´¾â€éƒ¨åˆ†ã€‚您也å¯ä»¥æŸ¥çœ‹è¿™ä¸ª `链接 <https://linux.die.net/man/5/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â€ã€‚
2. 测试网络连接。
######################################
::
ping www.google.com
输出应该如下所示:
.. image::../_static/pingresults.JPG
:align: center
å¦‚æžœæ— æ³•ping通,执行:
::
ifconfig
并检查wlan0éƒ¨åˆ†ï¼ŒæŸ¥çœ‹æ˜¯å¦æœ‰IP地å€å’Œå…¶ä»–调试信æ¯ã€‚
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``
7. 完æˆï¼
#########
ç»§ç»è¿›è¡Œæ ¡å‡†ã€‚