Note that certain things mentioned above are not necessarily mandatory:
Configuring WiFi
Networking is mandatory.
The type of network connection depends on what you have and need.
WiFi is optional and you can use a wired Ethernet connection for the setup and configuration as it might be faster. However, you’re going to have to set up WiFi eventually, unless you want your robot to be dragging a network cable everywhere it goes!
Being connected to a robot
This is optional, but almost anything that you might do to test the installation requires the use of the robot, such as reading sensors or moving servos. Additionally, once the robot’s software is fully installed and functioning properly, the robot’s LEDs, (antenna and power), will begin responding which helps verify correct and complete installation.
SSH into the robot
If you’re doing a headless installation, absolutely.
However you can also do this with a keyboard, monitor, and mouse - or a RealVNC remote connection if you enable VNC in raspi-config.
Note that this step is a mandatory step, even if there is nothing to update. Don’t ask me why, but I’ve had trouble installing the GoPiGo libraries on various platforms and an update/upgrade cycle fixed it.
* Rebooting is required only if any changes were made.
Done installing RFR_Tools
Cloning into 'GoPiGo3'...
remote: Enumerating objects: 389, done.
remote: Counting objects: 100% (389/389), done.
remote: Compressing objects: 100% (333/333), done.
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: CANCEL (err 8)
fatal: the remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
./update_gopigo3.scr: line 193: cd: /home/pi/Dexter/GoPiGo3: No such file or directory
. . . . and as a consequence, nothing installs correctly.
I have also noticed the early abend when running the git clone http://www.github.com/DexterInd/GoPiGo3.git /home/pi/Dexter/GoPiGo3 command too.
There needs to be a way to guarantee a good download - maybe an rsync from somewhere?
Update:
Failures continue.
I can download entire Linux images from everywhere, my wife can watch Russian movies in full HD, and my granddaughters can team-play some wild on-line game with their father, but I can’t do a git clone? This is NUTS!
For whatever reason, my ISP is choking on curl and get clone requests. I ended up using my cell phone’s internet by setting up a “mobile hotspot”.
To make things easier, I:
Created an “installation” script that automates the steps that @cyclicalobsessive created above.
Pre-fetched the installation scripts curl’d by the commands as written - so instead of curl’ing them, they’re right here.
I modified these installation scripts to remove the “silent” and “quiet” parameters from various things, so that progress, (and errors!), are more easily seen.
Unpack all three files into the pi user’s home directory,[1] verify that they’re executable, and run the Install_GoPiGp3 script from a terminal window.
The script stops after each step so that you can CTL-C out if that step fails. It also offers to reboot to finalize the installation after everything’s done. CTL-C out if you don’t want to reboot just then.
Looking at the scripts, it looks like making them work for any user shouldn’t be that difficult since the “pi” user’s username is already stored in a variable. All I have to do is figure out how to get the output from whoami into that variable and we’re golden! (Famous last words. . . .)
But the install as a non-pi user will need to create /home/pi/Dexter/ and put gpg3_config.json, and the serial numbers file there as expected by the gopigo3.py class.
And there might be some pi paths in the 99-rules file IIRC
And the ip announce feature perhaps, but that might use the user home dir