Skip to content

Commit

Permalink
Reproducibility / Rebranding to MI-HGNN / Match MorphoSymm
Browse files Browse the repository at this point in the history
Reproducibility / Rebranding to MI-HGNN
  • Loading branch information
DanielChaseButterfield authored Aug 27, 2024
2 parents 316770a + 7cc7d57 commit 16c73cf
Show file tree
Hide file tree
Showing 27 changed files with 1,279 additions and 483 deletions.
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
# MI-HGNN for contact estimation/classification
This repository implements a Morphologically-inspired Heterogeneous graph neural network for estimating contact information on the feet of a quadruped robot.

## Environment Setup
To get started, setup a Conda Python environment with Python=3.11, and run the following command to install the necessary dependencies:
## Installation
To get started, setup a Conda Python environment with Python=3.11:
```
pip install -r requirements.txt
conda create -n mi-hgnn python=3.11
conda activate mi-hgnn
```

## Installation
Then, install the library with the following command:
Then, install the library (and dependencies) with the following command:
```
pip install .
```

Note, if you have any issues with setup, refer to the `environment_files/README.md` so you can install the exact libraries we used.

## URDF Download
The necessary URDF files are part of git submodules in this repository, so run the following commands to download them:
```
Expand Down
3 changes: 3 additions & 0 deletions environment_files/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
## Environment Files

In case you have difficulty installing the libraries, this folder contains verbose `requirements.txt` files and `conda_env.yml` to provide the exact versions of all the libraries used during training.
100 changes: 100 additions & 0 deletions environment_files/conda_env.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: mi-hgnn
channels:
- defaults
dependencies:
- _libgcc_mutex=0.1=main
- _openmp_mutex=5.1=1_gnu
- bzip2=1.0.8=h5eee18b_6
- ca-certificates=2024.7.2=h06a4308_0
- ld_impl_linux-64=2.38=h1181459_1
- libffi=3.4.4=h6a678d5_1
- libgcc-ng=11.2.0=h1234567_1
- libgomp=11.2.0=h1234567_1
- libstdcxx-ng=11.2.0=h1234567_1
- libuuid=1.41.5=h5eee18b_0
- ncurses=6.4=h6a678d5_0
- openssl=3.0.14=h5eee18b_0
- pip=24.2=py311h06a4308_0
- python=3.11.9=h955ad1f_0
- readline=8.2=h5eee18b_0
- setuptools=72.1.0=py311h06a4308_0
- sqlite=3.45.3=h5eee18b_0
- tk=8.6.14=h39e8969_0
- wheel=0.43.0=py311h06a4308_0
- xz=5.4.6=h5eee18b_1
- zlib=1.2.13=h5eee18b_1
- pip:
- aiohappyeyeballs==2.3.6
- aiohttp==3.10.3
- aiosignal==1.3.1
- appdirs==1.4.4
- contourpy==1.2.1
- cycler==0.12.1
- cython==0.29.37
- docker-pycreds==0.4.0
- filelock==3.15.4
- fonttools==4.53.1
- freetype-py==2.4.0
- frozenlist==1.4.1
- fsspec==2024.6.1
- gdown==5.2.0
- imageio==2.35.0
- jinja2==3.1.4
- joblib==1.4.2
- kiwisolver==1.4.5
- lightning==2.2.1
- lightning-utilities==0.11.6
- lz4==4.3.3
- markupsafe==2.1.5
- matplotlib==3.8.3
- mi-hgnn==0.1.0
- mpmath==1.3.0
- multidict==6.0.5
- names==0.3.0
- networkx==3.2.1
- numpy==1.26.4
- nvidia-cublas-cu12==12.1.3.1
- nvidia-cuda-cupti-cu12==12.1.105
- nvidia-cuda-nvrtc-cu12==12.1.105
- nvidia-cuda-runtime-cu12==12.1.105
- nvidia-cudnn-cu12==8.9.2.26
- nvidia-cufft-cu12==11.0.2.54
- nvidia-curand-cu12==10.3.2.106
- nvidia-cusolver-cu12==11.4.5.107
- nvidia-cusparse-cu12==12.1.0.106
- nvidia-nccl-cu12==2.19.3
- nvidia-nvjitlink-cu12==12.6.20
- nvidia-nvtx-cu12==12.1.105
- pandas==2.2.1
- pillow==10.4.0
- protobuf==4.25.4
- pycollada==0.8
- pyglet==2.0.17
- pyopengl==3.1.7
- pyparsing==3.1.2
- pyribbit==0.1.46
- pysocks==1.7.1
- pytorch-lightning==2.4.0
- pyyaml==6.0.2
- rosbags==0.9.22
- ruamel-yaml==0.18.6
- ruamel-yaml-clib==0.2.8
- scikit-learn==1.4.1.post1
- scipy==1.12.0
- sentry-sdk==2.13.0
- setproctitle==1.3.3
- sympy==1.13.2
- threadpoolctl==3.5.0
- torch==2.2.1
- torch-geometric==2.5.0
- torchmetrics==1.3.2
- torchvision==0.17.1
- trimesh==4.4.6
- triton==2.2.0
- typing-extensions==4.12.2
- tzdata==2024.1
- urchin==0.0.27
- wandb==0.16.6
- yarl==1.9.4
- zstandard==0.23.0
prefix: /home/dlittleman/miniconda3/envs/mi-hgnn
223 changes: 223 additions & 0 deletions environment_files/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
actionlib==1.14.0
aiohappyeyeballs==2.3.6
aiohttp==3.10.3
aiosignal==1.3.1
angles==1.9.13
appdirs==1.4.4
attrs==23.1.0
base58==2.1.1
bcrypt==4.0.1
beautifulsoup4==4.12.2
bondpy==1.8.6
camera-calibration==1.17.0
camera-calibration-parsers==1.12.0
catkin==0.8.10
certifi==2023.5.7
cffi==1.15.1
charset-normalizer==3.1.0
click==8.1.3
contourpy==1.2.1
controller-manager==0.20.0
controller-manager-msgs==0.20.0
cryptography==41.0.1
cv-bridge==1.16.2
cycler==0.12.1
Cython==0.29.37
diagnostic-analysis==1.11.0
diagnostic-common-diagnostics==1.11.0
diagnostic-updater==1.11.0
distro==1.8.0
docker==6.1.3
docker-pycreds==0.4.0
dockerpty==0.4.1
dockertown==0.2.2
docopt==0.6.2
dt-authentication-daffy==0.1.16
dt-data-api-daffy==1.2.0
dtproject==0.0.5
duckietown-docker-utils-daffy==6.1.1
duckietown-shell==5.5.8
dynamic-reconfigure==1.7.3
ecdsa==0.18.0
filelock==3.15.4
fonttools==4.53.1
freetype-py==2.4.0
frozenlist==1.4.1
fsspec==2024.6.1
future==0.18.3
gazebo_plugins==2.9.2
gazebo_ros==2.9.2
gdown==5.2.0
gencpp==0.7.0
geneus==3.0.0
genlisp==0.4.18
genmsg==0.6.0
gennodejs==2.0.2
genpy==0.6.15
gitdb==4.0.10
GitPython==3.1.31
humanfriendly==10.0
idna==3.4
ifaddr==0.2.0
image-geometry==1.16.2
imageio==2.35.0
interactive-markers==1.12.0
Jinja2==3.1.4
joblib==1.4.2
joint-state-publisher==1.15.1
joint-state-publisher-gui==1.15.1
jsonschema==3.2.0
kiwisolver==1.4.5
laser_geometry==1.6.7
lightning==2.2.1
lightning-utilities==0.11.6
lxml==4.9.2
lz4==4.3.3
MarkupSafe==2.1.5
matplotlib==3.8.3
message-filters==1.16.0
mi_hgnn @ file:///home/dlittleman/state-estimation-gnn
mpmath==1.3.0
multidict==6.0.5
names==0.3.0
networkx==3.2.1
numpy==1.26.4
nvidia-cublas-cu12==12.1.3.1
nvidia-cuda-cupti-cu12==12.1.105
nvidia-cuda-nvrtc-cu12==12.1.105
nvidia-cuda-runtime-cu12==12.1.105
nvidia-cudnn-cu12==8.9.2.26
nvidia-cufft-cu12==11.0.2.54
nvidia-curand-cu12==10.3.2.106
nvidia-cusolver-cu12==11.4.5.107
nvidia-cusparse-cu12==12.1.0.106
nvidia-nccl-cu12==2.19.3
nvidia-nvjitlink-cu12==12.6.20
nvidia-nvtx-cu12==12.1.105
packaging==23.1
pandas==2.2.1
paramiko==3.2.0
pillow==10.4.0
progressbar2==4.2.0
protobuf==4.25.4
psutil==5.9.5
pycollada==0.8
pycparser==2.21
pydantic==1.10.9
pyglet==2.0.17
PyNaCl==1.5.0
PyOpenGL==3.1.7
pyparsing==3.1.2
pyribbit==0.1.46
pyrsistent==0.19.3
PySocks==1.7.1
python-dateutil==2.8.2
python-dotenv==0.21.1
python-qt-binding==0.4.4
python-utils==3.6.0
pytorch-lightning==2.4.0
pytz==2023.3
PyYAML==6.0.2
qt-dotgraph==0.4.2
qt-gui==0.4.2
qt-gui-cpp==0.4.2
qt-gui-py-common==0.4.2
requests==2.31.0
resource_retriever==1.12.7
rosbag==1.16.0
rosbags==0.9.22
rosboost-cfg==1.15.8
rosclean==1.15.8
roscreate==1.15.8
rosgraph==1.16.0
roslaunch==1.16.0
roslib==1.15.8
roslint==0.12.0
roslz4==1.16.0
rosmake==1.15.8
rosmaster==1.16.0
rosmsg==1.16.0
rosnode==1.16.0
rosparam==1.16.0
rospy==1.16.0
rosservice==1.16.0
rostest==1.16.0
rostopic==1.16.0
rosunit==1.15.8
roswtf==1.16.0
rqt-console==0.4.12
rqt-image-view==0.4.17
rqt-logger-level==0.4.12
rqt-moveit==0.5.11
rqt-reconfigure==0.5.5
rqt-robot-dashboard==0.5.8
rqt-robot-monitor==0.5.15
rqt-runtime-monitor==0.5.10
rqt-rviz==0.7.0
rqt-tf-tree==0.6.4
rqt_action==0.4.9
rqt_bag==0.5.1
rqt_bag_plugins==0.5.1
rqt_dep==0.4.12
rqt_graph==0.4.14
rqt_gui==0.5.3
rqt_gui_py==0.5.3
rqt_launch==0.4.9
rqt_msg==0.4.10
rqt_nav_view==0.5.7
rqt_plot==0.4.13
rqt_pose_view==0.5.11
rqt_publisher==0.4.10
rqt_py_common==0.5.3
rqt_py_console==0.4.10
rqt_robot_steering==0.5.12
rqt_service_caller==0.4.10
rqt_shell==0.4.11
rqt_srv==0.4.9
rqt_top==0.4.10
rqt_topic==0.4.13
rqt_web==0.4.10
ruamel.yaml==0.18.6
ruamel.yaml.clib==0.2.8
rviz==1.14.25
scikit-learn==1.4.1.post1
scipy==1.12.0
sensor-msgs==1.13.1
sentry-sdk==2.13.0
setproctitle==1.3.3
six==1.16.0
smach==2.5.2
smach-ros==2.5.2
smclib==1.8.6
smmap==5.0.0
soupsieve==2.4.1
sympy==1.13.2
termcolor==2.3.0
texttable==1.6.7
tf==1.13.2
tf-conversions==1.13.2
tf2-geometry-msgs==0.7.7
tf2-kdl==0.7.7
tf2-py==0.7.7
tf2-ros==0.7.7
threadpoolctl==3.5.0
topic-tools==1.16.0
torch==2.2.1
torch_geometric==2.5.0
torchmetrics==1.3.2
torchvision==0.17.1
tqdm==4.65.0
trimesh==4.4.6
triton==2.2.0
typer==0.9.0
typing_extensions==4.12.2
tzdata==2024.1
urchin==0.0.27
urllib3==2.0.3
wandb==0.16.6
websocket-client==0.59.0
whichcraft==0.6.1
xacro==1.14.18
yarl==1.9.4
zeroconf==0.66.0
zstandard==0.23.0
23 changes: 21 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,32 @@ requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "grfgnn"
name = "mi_hgnn"
version = "0.1.0"
dependencies = [
"numpy==1.26.4",
"matplotlib==3.8.3",
"networkx==3.2.1",
"urchin==0.0.27",
"torch==2.2.1",
"torchvision==0.17.1",
"torchmetrics==1.3.2",
"torch_geometric==2.5.0",
"pandas==2.2.1",
"rosbags==0.9.22",
"lightning==2.2.1",
"wandb==0.16.6",
"scipy==1.12.0",
"names==0.3.0",
"scikit-learn==1.4.1.post1",
"gdown==5.2.0"
]
authors = [
{ name="Daniel Butterfield", email="[email protected]" },
{ name="Jackson Cheng", email="[email protected]" },
{ name="Lu Gan", email="[email protected]" },
]
description = "A graph neural network implementation that learns to estimate contact state on a robotic quadruped."
description = "A Morphological-Informed Heterogeneous graph neural network implementation that learns to estimate contact state on a robotic quadruped."
readme = "README.md"
requires-python = ">=3.11"
classifiers = [
Expand Down
Loading

0 comments on commit 16c73cf

Please sign in to comment.