Code for my robot, Rizmo.
TODO
- Install OS:
- Write the Jetson Nano Developer Kit SD card image to a microSD card (instructions).
- Power up and install OS.
- Hostname:
rizmo
- Hostname:
- Remove unnecessary programs. Install updates.
- Setup SSH:
- Copy
~/.ssh/id_rsa.pub
of dev machine to~/.ssh/authorized_keys
on Jetson Nano. - Set permissions:
chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
- Copy
- Install and setup
pyenv
(instructions).- To update:
pyenv update
- To update:
- Install Python 3.12:
pyenv install 3.12 && pyenv global 3.12
- The latest version is installed and set to the default.
- Set the default audio IO device:
- List devices:
pactl list short sinks pactl list short sources
- Append lines to
/etc/pulse/default.pa
:set-default-sink <sink-name> set-default-source <source-name>
- List devices:
- Install the
jetson_inference
library:- Follow these instructions to install it from source to the system's Python 3.6 site packages.
- Create a Python 3.6 venv:
python3.6 -m venv --system-site-packages --symlinks venv36
- Update pip and make sure the lib can be imported:
. venv36/bin/activate pip install -U pip pip install -r requirements.py36.txt python -c "import jetson_inference"
git clone https://github.com/austin-bowen/rizmo.git
cd rizmo
python -m venv --symlinks venv
. venv/bin/activate
pip install -U pip
pip install -r requirements.txt
# For sounddevice lib
sudo apt install libportaudio2
# For serial communication
sudo usermod -aG dialout $USER
Setup git:
git config --global user.name "<name>"
git config --global user.email "<email>"
git config credential.helper store
# When trying to push, enter username, and paste personal access token
# generated from here: https://github.com/settings/tokens
Create file rizmo/secrets.py
with the following contents:
AWS_ACCESS_KEY_ID: str = ...
AWS_SECRET_ACCESS_KEY: str = ...
OPENAI_API_KEY: str = ...
# Install latest Python version
pyenv update
pyenv install 3.12
# Create new venv
mv venv venv.old
python -m venv --symlinks venv
. venv/bin/activate
python -V
# <verify it is using latest version>
# Install requirements
pip install -U pip
pip install -r requirements.txt
# <verify everything is working>
# Cleanup
rm -r venv.old
pyenv versions
pyenv uninstall <old-version>