Skip to content
Merged

Dev #13

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
7368dca
proposed changes to support webgui
Jepson2k Aug 28, 2025
289bdac
set speeds to old gui levels
Jepson2k Aug 28, 2025
66f0090
ok maybe a bit faster
Jepson2k Aug 28, 2025
b3f7b5f
change connection to non-blocking
Jepson2k Aug 28, 2025
850656d
switch prints to logging for easily configurable logging levels
Jepson2k Aug 29, 2025
a5f3d3f
simulate position feedback so testing without hardware is possible
Jepson2k Sep 2, 2025
7e500a0
add minimum one tick jog and anti-backlog
Jepson2k Sep 2, 2025
f565ba0
added streaming command to support command streaming for jogging
Jepson2k Sep 3, 2025
0add820
New trajectory generation + refactored headless_commander + (untested…
AlvarEhr Sep 5, 2025
cb95e8c
merge dev in
Jepson2k Sep 7, 2025
2adfff3
remove .pyc files
Jepson2k Sep 7, 2025
f03f4e9
reimplemented streaming and cartesian commands on latest dev
Jepson2k Sep 7, 2025
b11c3fa
restore jogging to original gui implementation
Jepson2k Sep 7, 2025
fcd2b35
Merge pull request #7 from Jepson2k/gui-support
AlvarEhr Sep 7, 2025
68b6ddb
formalize testing + fixing formatting error
Jepson2k Sep 7, 2025
591b904
switch to parol6 package
Jepson2k Sep 8, 2025
2d04978
bug fix
Jepson2k Sep 8, 2025
5346731
add missing functions
Jepson2k Sep 8, 2025
ff084ab
Merge pull request #8 from Jepson2k/additional-testing
AlvarEhr Sep 8, 2025
1067983
Merge pull request #9 from Jepson2k/robot_client_with_server_manageme…
AlvarEhr Sep 8, 2025
60abe72
remove unused imports, fix some types, further refactoring
Jepson2k Sep 8, 2025
13a5df3
fix imports
Jepson2k Sep 8, 2025
b6e6abd
formatting, removing unused imports and variables
Jepson2k Sep 8, 2025
8cc47dc
ok I tried to be smart with the sync facade but IDEs and type checker…
Jepson2k Sep 9, 2025
711ecf1
config for easy overrides and PAROL6 for hard set limit
Jepson2k Sep 11, 2025
40e386b
expose commond props
Jepson2k Sep 11, 2025
1f889e0
move command construction to wire.py
Jepson2k Sep 11, 2025
3b08d00
fix exports
Jepson2k Sep 11, 2025
76beca7
add base class for centralizing lifecycle
Jepson2k Sep 12, 2025
a445eec
abstract base command
Jepson2k Sep 12, 2025
6ef6047
split smooth motion monolith into separate files
Jepson2k Sep 12, 2025
e5f8df2
switch ik_helper to IK and remove unnecessary files
Jepson2k Sep 12, 2025
2d86966
move encoding and decoding to separate files
Jepson2k Sep 12, 2025
e418dd0
create trajectory file
Jepson2k Sep 12, 2025
3a5f145
update README
Jepson2k Sep 12, 2025
5bddd13
ok I think its completely refactored
Jepson2k Sep 14, 2025
86f0110
parol6 web gui fixes
Jepson2k Sep 14, 2025
8d99e48
bug fixes
Jepson2k Sep 14, 2025
c22ef32
implement simulator at the serial level
Jepson2k Sep 15, 2025
f2dc577
readme updates and server state command
Jepson2k Sep 15, 2025
c967ef6
remove com_port file
Jepson2k Sep 15, 2025
5b0f29f
towards zero-copy and better performance
Jepson2k Sep 16, 2025
edb1550
towards better performance
Jepson2k Sep 16, 2025
81b89d3
more performance
Jepson2k Sep 17, 2025
c428f3d
moving towards better ack strategy
Jepson2k Sep 17, 2025
654898d
numerous bug fixes
Jepson2k Sep 18, 2025
5d36fe9
removed host for ack policy
Jepson2k Sep 19, 2025
4b6e3ff
bug fixes and added basic simulator
Jepson2k Sep 20, 2025
02941a8
big ol re-write and big fixes
Jepson2k Sep 22, 2025
feeaa34
more refactoring and bug fixes
Jepson2k Sep 23, 2025
0227d60
bug fix
Jepson2k Sep 23, 2025
5d239ba
requirements updates
Jepson2k Sep 23, 2025
f857dde
more requirments updates
Jepson2k Sep 23, 2025
5d009ee
Merge pull request #10 from Jepson2k/further-parol6-package-refactoring
PCrnjak Sep 30, 2025
75232e7
Merge pull request #11 from Jepson2k/better_transport
PCrnjak Sep 30, 2025
8f552e4
checkpoint towards faster more robust kinematics
Jepson2k Oct 1, 2025
1d4cc9f
buttery smooth moves
Jepson2k Oct 2, 2025
e1541e8
Add robotics-toolbox-python as a proper submodule
Jepson2k Oct 2, 2025
5441189
towards faster kinematics
Jepson2k Oct 14, 2025
9c26697
remove submodule and put prebuilt binary urls in pyproject
Jepson2k Oct 15, 2025
a65f967
some more optimizations
Jepson2k Oct 15, 2025
4c0c560
using modified urdf for kinematics
Jepson2k Oct 19, 2025
73b022b
swappable tools
Jepson2k Oct 19, 2025
3442468
forgot some files
Jepson2k Oct 19, 2025
8c2fe93
run tests on push
Jepson2k Oct 19, 2025
5756b23
add action tracking
Jepson2k Nov 10, 2025
0890d5b
mypy type fixes and ruff formatting fixes
Jepson2k Nov 11, 2025
3fba08e
added context management
Jepson2k Nov 14, 2025
ad45a15
added mypy to pre-commit
Jepson2k Nov 14, 2025
b6bef07
make host and port immutable
Jepson2k Nov 14, 2025
eef3f52
fix x86_64 linux urls
Jepson2k Nov 14, 2025
1caa458
making more test-able
Jepson2k Nov 19, 2025
d36c1cd
fallback to unicast when multicast unavailable
Jepson2k Nov 19, 2025
7fb8672
multicast fail to unicast potential fix
Jepson2k Nov 20, 2025
81886c5
increase timeout for slow ci runners
Jepson2k Nov 20, 2025
4142cc1
skip accuracy tests which perform flaky on macos ci runners
Jepson2k Nov 20, 2025
e088c2a
add lint check
Jepson2k Nov 20, 2025
5a59a33
ruff, mypy, and timeout fixes
Jepson2k Nov 20, 2025
ea9537e
ruff format
Jepson2k Nov 20, 2025
7cec2f1
potential python 3.10 timeout fix
Jepson2k Nov 20, 2025
0c1c7c7
compute joint and cart enablement and send via status
Jepson2k Nov 21, 2025
f951112
updated readme and examples
Jepson2k Nov 24, 2025
6cf0f41
ruff fixes
Jepson2k Nov 24, 2025
07be344
Merge pull request #12 from Jepson2k/faster-kinematics
Jepson2k Nov 24, 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
70 changes: 70 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: tests

on:
push:
paths:
- '**'
pull_request:
paths:
- '**'

jobs:
lint:
name: Lint (ruff + mypy)
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: pip
cache-dependency-path: pyproject.toml
- name: Install dev dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
- name: Ruff (lint)
run: ruff check parol6
- name: Ruff (format check)
run: ruff format --check parol6
- name: MyPy
run: mypy parol6
test:
name: ${{ matrix.os }} / Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.10', '3.11']

steps:
- name: Checkout repository (with submodules)
uses: actions/checkout@v4

- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: pip
cache-dependency-path: pyproject.toml

- name: Upgrade pip and install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]" pytest-timeout

- name: Show environment
run: |
python -V
pip list

- name: Run tests (skip hardware)
env:
PYTHONUNBUFFERED: '1'
PYTHONUTF8: '1'
run: |
pytest
127 changes: 127 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# venv
venv/
ENV/
env/
.env
.venv

# virtualenv
# Use '.env' for consistency.
# .env

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static analyzer
.pytype/

# Cython debug symbols
cython_debug/

# VS Code
.vscode/

serial_port.txt
33 changes: 33 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
default_language_version:
python: python3.11

repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-yaml
- id: end-of-file-fixer
- id: trailing-whitespace
- id: check-merge-conflict
- id: check-added-large-files

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.9
hooks:
- id: ruff
args: ["--fix"]
- id: ruff-format

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.11.2
hooks:
- id: mypy
name: mypy (parol6)
files: ^parol6/
pass_filenames: false
args: ["parol6"]
stages: [commit, push]
additional_dependencies:
- numpy==1.26.4
- spatialmath-python==1.1.14
- scipy==1.11.4
Loading
Loading