Installation Guide
This page summarizes the installation flow from the main repository README and adds direct links to each agent README.
1. Clone Repository
git clone https://github.com/mmtlab/instrumented_crutches_mads.git
cd instrumented_crutches_mads
2. Build and Install Agents
Each agent is installed separately. Build only the services required by each crutch role:
- Master crutch (right): web_server, coordinator, status_handler, hdf5_writer, eye_tracker, tip_loadcell, handle_loadcell, ppg, ups
- Slave crutch (left): tip_loadcell, handle_loadcell, ppg, ups
3. Configure mads.ini
Review settings (for example loadcell scaling values), then copy the template configuration:
sudo cp templates/mads.ini /usr/local/etc/
Ensure write permissions for the data folder used by web_server and hdf5_writer (default: web_server/data):
sudo chown -R $USER:$USER ~/instrumented_crutches_mads/web_server/data
chmod -R u+rwX ~/instrumented_crutches_mads/web_server/data
4. Enable Services
Copy and enable systemd service files according to the crutch role.
Master Crutch (Right)
sudo cp templates/mads-broker.service templates/mads-web_server.service templates/mads-coordinator.service templates/mads-status_handler.service templates/mads-hdf5_writer.service templates/mads-eye_tracker.service templates/mads-network_handler.service templates/right/mads-tip_loadcell.service templates/right/mads-handle_loadcell.service templates/right/mads-ups.service templates/right/mads-ppg.service /etc/systemd/system/
sudo systemctl enable mads-broker.service mads-web_server.service mads-coordinator.service mads-status_handler.service mads-hdf5_writer.service mads-tip_loadcell.service mads-handle_loadcell.service mads-eye_tracker.service mads-network_handler.service mads-ups.service mads-ppg.service
Slave Crutch (Left)
sudo cp templates/left/mads-tip_loadcell.service templates/left/mads-handle_loadcell.service templates/left/mads-ups.service templates/left/mads-ppg.service /etc/systemd/system/
sudo systemctl enable mads-tip_loadcell.service mads-handle_loadcell.service mads-ups.service mads-ppg.service
Use the service templates in templates/left and templates/right for correct side-specific setup.
5. Configure Network
On the master Raspberry Pi, create a hotspot:
sudo nmcli device wifi hotspot ssid <network-name> password <network-password>
On the slave Raspberry Pi, configure auto-connect to that hotspot:
sudo nmcli connection modify <connection-name> connection.autoconnect yes
sudo nmcli connection up <connection-name>
6. Configure Time Synchronization (Chrony)
sudo apt install chrony
sudo cp templates/chrony.conf /etc/chrony/
sudo systemctl enable chrony
sudo systemctl restart chrony
Run this on both crutches. The default chrony.conf uses 10.42.0.1 as NTP server; update it if your hotspot IP differs.
Agent README Links
Use the following README files for per-agent build and runtime details:
- Main repository README
- web_server/README.md
- coordinator/README.md
- status_handler/README.md
- hdf5_writer/README.md
- eye_tracker/README.md
- tip_loadcell/README.md
- handle_loadcell/README.md
- ppg/README.md
- ups/README.md
Case Files
Acquisition board case STL files are available in templates/case.