Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0636820
Fix wrong sensor reference value type
AaronPB Sep 30, 2024
bd75331
Update project setup documentation
AaronPB Dec 1, 2024
05bc021
Reorder TIP in readme file
AaronPB Dec 1, 2024
70252cd
Update COP params, build also COP graphs for 8-sensor platforms
AaronPB Dec 1, 2024
1fb957f
Update configuration files with new platform calibrations
AaronPB Dec 2, 2024
16d2b08
Fix wrong matrix shapes
AaronPB Dec 2, 2024
d01ee0b
Enable platform COPs with 8 sensors
AaronPB Dec 3, 2024
7acafd5
Rewrite negative slope values to positives and tare information
AaronPB Dec 3, 2024
b24fbe2
Fix wrong conditionals for COP plots
AaronPB Dec 14, 2024
0018300
Change docs site to MkDocs with Material theme
AaronPB Mar 16, 2025
a2d15e7
Update docs URL and add Material MkDocs support badge
AaronPB Mar 16, 2025
0b0dd69
Update docs home page and README
AaronPB Mar 17, 2025
2c9d4b6
Include project information and update mkdocs
AaronPB Mar 17, 2025
a376be5
Include mermaid addon
AaronPB Mar 19, 2025
0c0b111
Update homepage images and content
AaronPB Mar 19, 2025
9163357
Update badge styles and include acknowledgements
AaronPB Mar 23, 2025
d2c0cac
Update homepage content and official banners
AaronPB Mar 23, 2025
6e0c1e0
Enhance some badges
AaronPB Mar 27, 2025
6c4afd2
Include dark mode banners
AaronPB Mar 27, 2025
831716b
Update vulnerable python module versions
AaronPB Mar 27, 2025
369510a
Update homepage with dockerized version.
AaronPB Mar 31, 2025
70f0287
Update README with dockerized app
AaronPB Mar 31, 2025
190b65c
Update homepage docker commands.
AaronPB Apr 4, 2025
b4de9f3
Move software docs to subfolders to include future docker-app docs
AaronPB Apr 4, 2025
cc7952f
Include streamlit app version into docs and project page information
AaronPB Apr 6, 2025
8f09709
Add IMU WSL kernel module information in docs and code highlight
AaronPB Apr 7, 2025
c8e70ac
Update some usefull information for docker app version in docs
AaronPB Apr 7, 2025
747f78c
Update docker version urls and run arguments
AaronPB Apr 9, 2025
f97afeb
Add exit command indication to leave wsl
AaronPB Apr 19, 2025
fedbe45
Include user to dialout group command in order to read USB devices
AaronPB Apr 19, 2025
bf9f117
Include FP fabrication drawings and software general pages
AaronPB Apr 20, 2025
dbec0a6
Simplify some content in legacy_qt index page
AaronPB May 1, 2025
f0967a6
Better explanation of software versions in homepage
AaronPB May 1, 2025
63ebf80
Include research section in docs project page
AaronPB May 5, 2025
02f1882
Relocate buttons and reduce article abstract content in research page
AaronPB May 5, 2025
182b2d4
Upload project details to documentation page
AaronPB May 6, 2025
6459c4a
Migrate project requirements to uv
AaronPB May 11, 2025
3255e7f
Update setup steps with uv and add devcontainer for documentation edits
AaronPB May 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM squidfunk/mkdocs-material:latest

RUN adduser -D -h /home/vscodeuser vscodeuser

WORKDIR /docs

RUN chown -R vscodeuser:vscodeuser /docs

USER vscodeuser
25 changes: 25 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "force-platform-docs",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
"runArgs": [
"--name", "vsc-force-platform-docs"
],
"remoteUser": "vscodeuser",
// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-python.vscode-pylance",
"ms-python.python",
"ms-python.debugpy",
"naumovs.color-highlight",
"davidanson.vscode-markdownlint"
]
}
}
}
29 changes: 29 additions & 0 deletions .github/workflows/project_docs_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: MkDocs page CI
on:
push:
branches:
- master
- develop
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Configure Git Credentials
run: |
git config user.name github-actions[bot]
git config user.email 41898282+github-actions[bot]@users.noreply.github.com
- uses: actions/setup-python@v5
with:
python-version: 3.x
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
key: mkdocs-material-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-material-
- run: pip install mkdocs-material
- run: mkdocs gh-deploy --force
Empty file added .nojekyll
Empty file.
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.10
91 changes: 68 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
<p align="center">
<a href="#readme"><img alt="Force platform reader logo" src="images/project_logo.svg"></a>
<a href="#readme"><img alt="Force platform reader logo" src="docs/assets/project_logo_name.png"></a>
</p>
<p align="center">
<a href="#readme"><img alt="Python tested versions" src="https://img.shields.io/badge/python-3.10_3.11-blue.svg"></a>
<a href="https://github.com/psf/black"><img alt="Python formatter" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
<a href="https://github.com/AaronPB/force_platform/actions/workflows/project_test.yaml"><img alt="Project test status" src="https://github.com/AaronPB/force_platform/actions/workflows/project_test.yaml/badge.svg"></a>
<a href="docs/home.md"><img alt="Documentation link" src="https://img.shields.io/badge/docs-available-limegreen.svg"></a>
<a href="#readme"><img alt="Python tested versions" src="https://img.shields.io/badge/python-3.10_3.11-blue?style=flat-square"></a>
<a href="https://github.com/psf/black"><img alt="Python formatter" src="https://img.shields.io/badge/code%20style-black-000000?style=flat-square"></a>
<a href="https://github.com/AaronPB/force_platform/actions/workflows/project_test.yaml"><img alt="Project test status" src="https://img.shields.io/github/actions/workflow/status/AaronPB/force_platform/project_test.yaml?branch=develop&logo=github&label=project_test&style=flat-square"></a>
<a href="https://aaronpb.github.io/force_platform/"><img alt="Documentation link" src="https://img.shields.io/badge/docs-available-44CC11?logo=materialformkdocs&logoColor=white&style=flat-square"></a>
<a href="https://squidfunk.github.io/mkdocs-material/"><img alt="MkDocs material theme support" src="https://img.shields.io/badge/Material_for_MkDocs-526CFE?style=flat-square"></a>
</p>

## Information
Expand All @@ -17,6 +18,7 @@ This project is part of the author's master's thesis in industrial engineering a
![Main UI](docs/images/mainUI.png)

It supports currently the following sensor types:

- Phidget-Bridge compatible load sensors. (Requires Phidget dependency).
- Phidget encoders. (Requires Phidget dependency).
- Taobotics IMU sensors. (Requires MRPT dependency).
Expand All @@ -26,42 +28,85 @@ It supports currently the following sensor types:

Program documentation is available to learn how the program works and its usage.

Check it out [here](docs/home.md).
Check it out [here](https://aaronpb.github.io/force_platform/).

## Quick setup

To use this project, clone it and install the project requirements.

> [!TIP]\
> Do it in a virtual environment to avoid module installation issues (using `virtualenv`, for example).
> [!note]
> There is a simplified and **dockerized** version of the software!
>
> [Check it out in this repository](https://github.com/AaronPB/force-platform-app)

> This project is developed with Python v3.10.6
Install the dependencies and clone the project into your workspace.

Project requirements:
```bash
pip install -r requirements.txt
```
> [!WARNING]\
> The project has been developed and tested in Ubuntu 22.04 LTS. Phidget does support [Windows](https://www.phidgets.com/docs/OS_-_Windows#Quick_Downloads) and [MacOS](https://www.phidgets.com/docs/OS_-_macOS#Quick_Downloads), but Taobotics IMUs do not.

### Phidget dependency

For [Linux](https://www.phidgets.com/docs/OS_-_Linux#Quick_Downloads):

```bash
curl -fsSL https://www.phidgets.com/downloads/setup_linux | sudo -E bash - &&\
sudo apt-get install -y libphidget22
```

> For [Windows](https://www.phidgets.com/docs/OS_-_Windows#Quick_Downloads) or [MacOS](https://www.phidgets.com/docs/OS_-_macOS#Quick_Downloads)
> Phidget documentation of the [Linux Installer](https://www.phidgets.com/docs/OS_-_Linux#Quick_Downloads).

### MRPT dependency

For more information, refer to the [MRPT Documentation](https://docs.mrpt.org/reference/latest/download-mrpt.html#debian-ubuntu-ppa)

```bash
sudo add-apt-repository ppa:joseluisblancoc/mrpt
sudo apt install libmrpt-dev mrpt-apps
sudo add-apt-repository ppa:joseluisblancoc/mrpt &&\
sudo apt install libmrpt-dev mrpt-apps &&\
sudo apt install python3-pymrpt
```

> For more information, refer to the [MRPT Documentation](https://docs.mrpt.org/reference/latest/download-mrpt.html#debian-ubuntu-ppa).

### Project requirements

This project uses [UV](https://docs.astral.sh/uv/), a very powerfull tool to setup and manage python projects.

Install UV:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

Clone the `force_platform` repository and install the project requirements.

Clone using the web URL:

```bash
git clone https://github.com/AaronPB/force_platform.git
```

Or clone with SSH:

```bash
git clone git@github.com:AaronPB/force_platform.git
```

Install the project requirements, going to the project's folder and entering:

```bash
uv venv &&\
uv pip install -r uv.lock
```

> [!WARNING]\
> If you are using `virtualenv`, MRPT cannot be installed by pip. As a temporary solution, set `include-system-site-packages = true` in your `pyvenv.cfg` file.
> MRPT cannot be installed by pip. As a temporary solution, set `include-system-site-packages = true` in your `.venv/pyvenv.cfg` file.

### Run the sofware

Run it using the following command:

```bash
uv run python main.py
```

## Acknowledgements

This work has been funded by the "[Programa Operativo FEDER 2014-2020](https://www.miteco.gob.es/es/ministerio/servicios/ayudas-subvenciones/fondos_feder.html)" and the Andalusian "Consejería de Transformación Económica, Industria, Conocimiento y Universidades", under the project UAL2020-CTS-A2100.

<p align="center">
<a href="https://www.miteco.gob.es/es/ministerio/servicios/ayudas-subvenciones/fondos_feder.html"><img alt="EU and Junta de Andalucia logos" src="docs/assets/union_europea-junta_de_andalucia.png" width="500"></a>
</p>
10 changes: 5 additions & 5 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,7 @@ sensors:
max_weight: 2000N
calibration:
slope: 1721022.287
intercept: 0
intercept: 9.084240488658148
triax_y:
name: Triaxial_Y
type: SENSOR_LOADCELL
Expand All @@ -483,8 +483,8 @@ sensors:
serial_number: SN231206001
max_weight: 2000N
calibration:
slope: 19773710.18
intercept: 0
slope: 1771149.742
intercept: -7.513470975899034
triax_z:
name: Triaxial_Z
type: SENSOR_LOADCELL
Expand All @@ -496,5 +496,5 @@ sensors:
serial_number: SN231206001
max_weight: 2000N
calibration:
slope: 1771149.742
intercept: 0
slope: 1973710.18
intercept: -22.461957935716708
10 changes: 5 additions & 5 deletions custom_configs/full_sensor_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ sensors:
max_weight: 2000N
calibration:
slope: 1721022.287
intercept: 0
intercept: 9.084240488658148
triax_y:
name: Triaxial_Y
type: SENSOR_LOADCELL
Expand All @@ -489,8 +489,8 @@ sensors:
serial_number: SN231206001
max_weight: 2000N
calibration:
slope: 19773710.18
intercept: 0
slope: 1771149.742
intercept: -7.513470975899034
triax_z:
name: Triaxial_Z
type: SENSOR_LOADCELL
Expand All @@ -502,5 +502,5 @@ sensors:
serial_number: SN231206001
max_weight: 2000N
calibration:
slope: 1771149.742
intercept: 0
slope: 1973710.18
intercept: -22.461957935716708
Loading