Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

d #5

Open
wants to merge 130 commits into
base: love
Choose a base branch
from
Open

d #5

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
130 commits
Select commit Hold shift + click to select a range
3230dec
Add PWD token option for YAML parsing
sea-bass Oct 25, 2022
c46083c
Small fix to printing robot location
sea-bass Oct 25, 2022
c336c76
Fix more display bugs with changing number of robots
sea-bass Oct 25, 2022
6c3817e
Fix PDDL standalone demo and unit test syntax (#36)
sea-bass Nov 27, 2022
82550fe
Convert Pose class to full 3D (#32)
Nov 27, 2022
4d07490
Document reference frame and rotation conventions. (#35)
Nov 27, 2022
6dc64ab
Fix pose print representation (#39)
sea-bass Dec 3, 2022
a2f5d26
Add max attempts to PDDLStream planning (#40)
sea-bass Dec 3, 2022
f710e8a
Use a multi-threaded executor and CB groups in the ROS interface (#38)
Dec 3, 2022
46f7c2c
Pin Shapely version to 1.8 (#41)
sea-bass Dec 13, 2022
be2455e
Fix PDDLStream planner retry logic (#42)
sea-bass Dec 13, 2022
e4e0592
Use `ROS_DISTRO` environment variable to unify Docker/CI (#43)
sea-bass Dec 14, 2022
fc84faa
Add matrix getters to Pose class (#48)
sea-bass Dec 28, 2022
88df69b
Use dict get() method in YAML loading utilities (#49)
sea-bass Jan 2, 2023
2e3d3c8
Grasp generation tools (#44)
sea-bass Jan 5, 2023
1944a7a
Use grasp generator in robot model and `pick_object()` action (#50)
sea-bass Jan 8, 2023
dba7efc
Grasp Generation in PDDLStream planning (#53)
sea-bass Jan 9, 2023
fe364ab
Switch to docker compose (#54)
sea-bass Jan 9, 2023
1964534
Add year 2023
sea-bass Jan 9, 2023
618c4c7
Add tests for world modelling tools. (#19)
ibrahiminfinite Jan 11, 2023
8f40083
Code formatting in CI (#59)
ibrahiminfinite Jan 12, 2023
90616bf
Short distance connect (#62)
ibrahiminfinite Jan 13, 2023
3583a5a
PDDLStream custom mappings, arbitrary args, and tuning (#61)
sea-bass Jan 13, 2023
f6a348a
Update badge icon link
sea-bass Jan 13, 2023
e41a65f
Fix domain name
sea-bass Jan 13, 2023
dad713e
Loop logic cleanup (#63)
Feb 4, 2023
ae440cf
Remove Descartes dependency, use Shapely plotting functionality (#52)
sea-bass Feb 4, 2023
b37340a
Enable Ctrl+C to stop the GUI (#65)
sea-bass Feb 5, 2023
d1e2017
Refactor demo_pddl_planner.py to avoid deadlock (#66)
Feb 5, 2023
e6bfeae
optimize graph creation
ibrahiminfinite Feb 24, 2023
adad13a
Faster point intersection
ibrahiminfinite Feb 24, 2023
d17ef42
optimize bounds update
ibrahiminfinite Feb 24, 2023
cb783ec
Type hinting -> Type checking
Feb 25, 2023
437dc65
more intersects_xy
Feb 25, 2023
8441adb
remove unused import
Feb 25, 2023
91b10e2
Support for removing
Feb 25, 2023
9398fa8
Fix last_room check
Feb 25, 2023
4463b19
Doc string and minor updates
Feb 25, 2023
1fc7267
Minor optimizations
ibrahiminfinite Feb 25, 2023
edc9fb1
Use `QThread` instead of regular threads so closing the GUI exits the…
sea-bass Mar 8, 2023
53a352d
Add license
sea-bass Mar 8, 2023
24a9039
Fix matplotlib artist removal for later versions (#74)
sea-bass Mar 10, 2023
ea7db18
Clean up imports and GUI interface (#75)
sea-bass Mar 10, 2023
d1caad2
Add grid based A-star (#71)
ibrahiminfinite Mar 11, 2023
738ba47
Simplify imports and clean up repo (#83)
sea-bass Mar 23, 2023
d434027
Unify world entity creation arguments (#87)
sea-bass Mar 29, 2023
8734f6b
Fix pyrobosim module import test (#90)
sea-bass Apr 16, 2023
33e3bb7
Mount Xauthority file to Docker container (#89)
sea-bass Apr 16, 2023
5772bae
Add modular planner interface. (#82)
ibrahiminfinite Apr 23, 2023
3786cb3
Add contributor guide (#92)
sea-bass May 15, 2023
6873e31
Add system tests for pyrobosim UI (#91)
sea-bass May 19, 2023
0f2caf5
Restore world graph planning capability (#106)
sea-bass May 24, 2023
80ca203
Fix entity resolution bugs from PickNik book club session (#107)
sea-bass May 25, 2023
57498ab
Separate standalone and ROS 2 setup instructions
sea-bass May 27, 2023
c5b1d23
Fix angular velocity limiting in trajectory executor (#108)
sea-bass May 28, 2023
7e3f0d0
Fix pytest errors in 22.04 Docker images (#110)
sea-bass May 28, 2023
444695e
Create test pip requirements file
sea-bass May 28, 2023
95882bc
Move graph based A* into `SearchGraph` (#109)
ibrahiminfinite Jun 11, 2023
d43109e
Remove ROS 2 Foxy support, add Iron support (#112)
sea-bass Jun 15, 2023
f0873e6
Fix robot name in multirobot ROS demo (#113)
sea-bass Jun 15, 2023
75b104a
Tune parameters for complex PDDLStream examples (#111)
sea-bass Jun 15, 2023
35099d6
Update pre-commit configuration (#114)
sea-bass Jun 15, 2023
9f3b98b
Do not publish task plan message if plan is None (#117)
sea-bass Jun 28, 2023
8ebdd64
Remove reference to world planner in `Robot` class (#119)
ibrahiminfinite Jul 4, 2023
e202fde
Fix small bug
sea-bass Jul 6, 2023
0779eba
Add missing path compression option in A* planner (#120)
ibrahiminfinite Jul 6, 2023
850e00a
Speed up planner plotting (#121)
sea-bass Jul 6, 2023
c4ebe0b
Fix circular imports in knowledge utilities
sea-bass Jul 9, 2023
990b2d0
Add missing import
sea-bass Jul 9, 2023
9548c79
Ensure world metadata is always set to blank dictionary
sea-bass Jul 9, 2023
0d654c3
Merge pull request #123 from sea-bass/fix-circular-imports
henrygerardmoore Jul 10, 2023
39098d1
Add basic colcon tests to `pyrobosim_ros` package (#124)
sea-bass Jul 12, 2023
42f6559
Version 1.0.0 and PyPi support (#125)
sea-bass Jul 16, 2023
ec3d81e
Adds Pose equivalency functions (#130)
JoshuaFutcher Jul 25, 2023
68c97cb
Add Robot class tests (#128)
sea-bass Jul 26, 2023
532208c
World knowledge tests (#126)
henrygerardmoore Jul 30, 2023
8ff8f83
Add coverage collection to tests (#131)
sea-bass Aug 6, 2023
caab869
Add Pose unit tests (#132)
sea-bass Aug 13, 2023
c3f9d0b
Small fixes to PDDL domain descriptions
sea-bass Aug 16, 2023
09e7166
Add nav action path to GUI nav trigger signal (#133)
sea-bass Aug 16, 2023
1edd6db
Unit tests for path and trajectory utilities (#134)
sea-bass Aug 22, 2023
548d23d
Unit tests for occupancy grid utilities (#136)
sea-bass Aug 22, 2023
7985285
Add unit tests for search graph (#137)
sea-bass Sep 2, 2023
e2f9b89
PR comment
sea-bass Sep 4, 2023
55ccbac
Add more coverage to `World` class tests (#138)
sea-bass Sep 4, 2023
95c3da4
Add unit tests for `TaskPlan` and `TaskAction` objects (#139)
sea-bass Sep 5, 2023
bdaa7d7
Add unit tests for polygon utilities (#140)
sea-bass Sep 6, 2023
46ed891
Add unit tests for world YAML loading utilities (#141)
sea-bass Sep 6, 2023
853a338
Add Gazebo export unit tests and remove Ignition mentions (#143)
sea-bass Sep 6, 2023
89e385b
Handle missing parent and invalid categories when adding locations an…
sea-bass Sep 6, 2023
5f39069
Split out CI jobs (#145)
sea-bass Oct 1, 2023
83c8080
Version 1.1.0 (#146)
sea-bass Oct 1, 2023
4b48834
Fix coverage base folder (#147)
sea-bass Oct 1, 2023
9071a54
Show coverage in PRs + fix ReadTheDocs build (#150)
sea-bass Oct 28, 2023
772db49
Simulate simple 2D robot dynamics (#151)
sea-bass Nov 4, 2023
65bbe82
Add robot velocity command ROS subscribers (#152)
sea-bass Nov 11, 2023
1ab3162
1.2.0 (#153)
sea-bass Dec 20, 2023
5969bde
Add PR write permissions to tests CI job (#156)
sea-bass Feb 4, 2024
4e3122e
Update path_planners.rst (#155)
akshayprsd Feb 4, 2024
af002cd
Set init for compose services (#157)
eholum Feb 6, 2024
6cb5276
Skip coverage comment for PRs from forks (#158)
eholum Feb 6, 2024
f1beacb
Update end year in README.md
sea-bass Feb 7, 2024
c43ff3e
Fix tests and cache containers for CI (#160)
eholum Feb 7, 2024
a862fba
Containerize the non-ros testing pipeline (#161)
eholum Feb 9, 2024
f989895
Pin pytest below 8.1.0 and fix warnings when creating entities with i…
sea-bass Mar 16, 2024
4555f21
Do not require PDDLStream for tests, switch to main repo (#163)
sea-bass Mar 17, 2024
5468516
Add Trajectory class (#164)
sea-bass Mar 18, 2024
efd0593
Set package version in Sphinx configuration (#165)
sea-bass Mar 18, 2024
8b2badf
Update pre-commit hooks and apply changes (#167)
sea-bass Apr 4, 2024
7055768
Add coverage badge to README (#168)
sea-bass Apr 4, 2024
6b4712f
Fix pip install in Ubuntu 24.04 Dockerfile (#170)
sea-bass Apr 27, 2024
74c3c65
Support ROS 2 Jazzy / Ubuntu 24.04 (#169)
sea-bass May 6, 2024
83ba5ac
Switch to PySide6 (#171)
sea-bass May 6, 2024
fb9dfa2
Use ROS actions to execute actions and task plans (#173)
sea-bass May 8, 2024
b6efd2c
Fix ros_interface.py constructor docstring and clean up scripts (#174)
sea-bass May 8, 2024
a5fefda
2.0.0 (#175)
sea-bass May 8, 2024
a2e3bdf
Update GitHub actions and pre-commit (#178)
sea-bass Jun 14, 2024
3ee93ee
Pin NumPy below 2.0.0 (#179)
sea-bass Jun 18, 2024
48614f4
Unpin NumPy and do not upgrade pip in scripts and CI (#180)
sea-bass Jun 27, 2024
e82b536
Make example files executable
sea-bass Jun 28, 2024
263ee24
Improve setup script experience (#183)
sea-bass Jul 2, 2024
11902a5
Add partial observability to robots (#187)
sea-bass Jul 4, 2024
c50df96
Allow path planning failures to fail navigate actions (#190)
sea-bass Jul 4, 2024
c6eec4a
Small fix to nav failure state tracking (#192)
sea-bass Jul 4, 2024
c329a4c
Cleanup navigation display and execution in GUI (#193)
sea-bass Jul 6, 2024
7853836
Fix GUI threading errors when clicking Navigate button (#195)
sea-bass Jul 6, 2024
eac222d
Flesh out tests for RRT and PRM planner (#196)
sea-bass Jul 8, 2024
1a53a80
Add hallway open and close capabilities (#198)
sea-bass Jul 10, 2024
b3f2c97
Allow tests CI job to be run manually
sea-bass Jul 10, 2024
e5a15be
Fix yaw setting in location nav poses (#201)
sea-bass Jul 11, 2024
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: 7 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
# Folders that don't need to be in the Docker build context.
# Files and folders that don't need to be in the Docker build context.
dependencies/
docker/Dockerfile
docs/
test/results/

# Metadata that definitely doesn't need to be in the Docker build context.
# Metadata that doesn't need to be in the Docker build context.
*/__pycache__/
*.egg-info
.dockerignore
.git/
.github/
.vscode/
82 changes: 0 additions & 82 deletions .github/workflows/actions.yml

This file was deleted.

15 changes: 15 additions & 0 deletions .github/workflows/format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: format

on:
# Run action on certain pull request events
pull_request:
types: [opened, synchronize, reopened, ready_for_review]

jobs:
pre-commit:
name: pre-commit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: pre-commit/action@v3.0.1
135 changes: 135 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
name: tests

on:
# Run action on certain pull request events
pull_request:
types: [opened, synchronize, reopened, ready_for_review]

# Nightly job on default (main) branch
schedule:
- cron: '0 0 * * *'

# Allow tests to be run manually
workflow_dispatch:

# Ensures that only one workflow runs at a time for this branch
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true

jobs:
# Build and test the base, non-ROS image
python-test:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Login to Docker Hub Registry
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PAT }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
- name: Build Docker image
uses: docker/build-push-action@v5
with:
file: docker/Dockerfile
target: pyrobosim
context: .
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:base
push: true
cache-from: |
type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:buildcache-base
cache-to: |
type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:buildcache-base,mode=max
- name: Run tests
run: |
docker run \
-w /opt/pyrobosim \
--volume ./test/results:/opt/pyrobosim/test/results:rw \
${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:base \
/bin/bash -c 'PYTHONPATH=./dependencies/pddlstream:$PYTHONPATH ./test/run_tests.bash'
- name: Pytest coverage comment
id: coverageComment
uses: MishaKav/pytest-coverage-comment@main
with:
pytest-coverage-path: ./test/results/pytest-coverage.txt
junitxml-path: ./test/results/test_results.xml
pytest-xml-coverage-path: ./test/results/test_results_coverage.xml
coverage-path-prefix: pyrobosim/pyrobosim/
# This will break on PRs from forks
if: ${{ !github.event.pull_request.head.repo.fork }}
- name: Create coverage badge
uses: schneegans/dynamic-badges-action@v1.7.0
with:
auth: ${{ secrets.COVERAGE_GIST_SECRET }}
# This comes from https://gist.github.com/sea-bass/3761a8aa05af7b0e8c84210b9d103df8#file-pyrobosim-test-coverage-json
gistID: 3761a8aa05af7b0e8c84210b9d103df8
filename: pyrobosim-test-coverage.json
label: coverage
message: ${{ steps.coverageComment.outputs.coverage }}
color: ${{ steps.coverageComment.outputs.color }}
namedLogo: python
# Only update this badge on main
if: github.ref == 'refs/heads/main'
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: test-results
path: test/results/
# Always publish test results even when there are failures.
if: ${{ always() }}

# Build and test with ROS 2
ros2-test:
strategy:
matrix:
ros_distro: [humble, iron, jazzy, rolling]

name: ros-${{ matrix.ros_distro }}-test
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Login to Docker Hub Registry
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PAT }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver: docker-container
- name: Build Docker image
uses: docker/build-push-action@v5
with:
file: docker/Dockerfile
target: pyrobosim_ros
context: .
build-args: |
ROS_DISTRO=${{ matrix.ros_distro }}
tags: ${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:${{ matrix.ros_distro }}
push: true
cache-from: |
type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:buildcache-${{ matrix.ros_distro }}
cache-to: |
type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:buildcache-${{ matrix.ros_distro }},mode=max
- name: Run tests
run: |
docker run \
--volume ./test/:/pyrobosim_ws/test/:rw \
--volume ./pytest.ini:/pyrobosim_ws/pytest.ini:rw \
${{ secrets.DOCKERHUB_USERNAME }}/pyrobosim:${{ matrix.ros_distro }} \
/bin/bash -c './test/run_tests.bash'
- name: Upload test results
uses: actions/upload-artifact@v4
with:
name: test-results-${{ matrix.ros_distro }}
path: test/results/
# Always publish test results even when there are failures.
if: ${{ always() }}
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Environment file written by setup scripts
pyrobosim.env

# Dependencies folder
dependencies/

Expand All @@ -14,6 +17,7 @@ docs/build/
docs/source/generated

# Test artifacts
**/.coverage
test/results/

# Temporary folders generated by PDDLStream
Expand Down
61 changes: 61 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
repos:

# Runs pre-commit hooks and other file format checks.
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-builtin-literals
- id: check-case-conflict
- id: check-docstring-first
- id: check-executables-have-shebangs
- id: check-json
- id: check-merge-conflict
- id: check-symlinks
- id: check-toml
- id: check-vcs-permalinks
- id: check-yaml
- id: debug-statements
- id: destroyed-symlinks
- id: detect-private-key
- id: end-of-file-fixer
- id: fix-byte-order-marker
- id: forbid-new-submodules
- id: mixed-line-ending
- id: name-tests-test
- id: requirements-txt-fixer
- id: sort-simple-yaml
- id: trailing-whitespace

# Autoformats Python code.
- repo: https://github.com/psf/black.git
rev: 24.4.2
hooks:
- id: black

# Finds spelling issues in code.
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell

# Finds issues in YAML files.
- repo: https://github.com/adrienverge/yamllint
rev: v1.35.1
hooks:
- id: yamllint
args:
[
"--no-warnings",
"--config-data",
"{extends: default, rules: {line-length: disable, braces: {max-spaces-inside: 1}}}",
]
types: [text]
files: \.(yml|yaml)$

# Checks links in markdown files.
- repo: https://github.com/tcort/markdown-link-check
rev: v3.12.2
hooks:
- id: markdown-link-check
5 changes: 4 additions & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,12 @@ build:

python:
install:
- requirements: docs/python_docs_requirements.txt
- method: pip
path: pyrobosim
- method: pip
path: pyrobosim_ros

# Build documentation in the Sphinx source directory
sphinx:
configuration: docs/source/conf.py
configuration: docs/source/conf.py
Loading