A library that routes all communication to the N9 and UR3 robots via a secure middlebox.
Project description
# Niraapad Prototype for the CPS security project
## Dependencies
Python 3.7.3
Python package grpcio 1.32.0
Python package grpcio-tools 1.32.0
Python package protobuf 3.15.6
Python package tensorflow 2.4.1
The package may work with earlier versions of these depenencies, but this has not been tested.
## Styleguide
We try to follw the [Google Python Style Guide](https://google.github.io/styleguide/pyguide.html)
- In order to use a tool like [YAPF](https://github.com/google/yapf) (Yet Another Python Formatter) for auto-formatting:
Run yapf –style google -i -r -vv files . in the niraapad folder, or
Run yapf –style google -i -vv files <filepath> to format a specific file
## Build Steps
- Generate the gRPC stubs using one of the following methods:
Run scripts/compile_proto_files.sh script in bash
Run task build defined in .vscode/tasks.json in Visual Studio Code
## Testing Steps
- Test on a single machine using one of the following methods:
Run .niraapadtesttest_middlebox.py
Run task test defined in .vscode/tasks.json in Visual Studio Code
- Test on two machines as follows:
On the server machine, run .niraapadmiddleboxstart_server.py -P 1337 -K .niraapadkeysispy_cs_ubc_ca-S
On the client machine, run .niraapadtesttest_niraapad.py -D -H ispy.cs.ubc.ca -P 1337 -K .niraapadkeysispy_cs_ubc_ca-S
(Use .niraapadmiddleboxstart_server.py –help or .niraapadtesttest_niraapad.py –help for details)
#### Running UR simulator
Details on setting up UR simulator and connecting it with python script: https://github.com/ubc-systopia/cps-security-code/blob/main/docs/URsim_Setup.pdf
- Test on a single machine as follows:
Turn on the VMware Player and run the UR simulator virtual machine
Run the UR3 robot simulator and turn on the robot from the button on the bottom left
Run the test_init_vm test using niraapad/test/test_middlebox.py
- Test on two machines as follows:
TODO
## Distribution
- To distribute the niraapad package on Python Package Index:
Clean all old files related to distribution using rm -rf build/ dist/ *egg*
Update the version info in file __version__.py
Generate the distribution package using python3 setup.py sdist bdist_wheel
Run twine check dist/* to check for errors and warnings
If you want to test the final package, upload it first to TestPyPI server using twine upload –repository testpypi dist/*
The package can be installed from TestPyPI server using pip install -i https://test.pypi.org/simple/ niraapad==1.1.0
After the package is tested, upload it to the PyPI server using twine upload dist/*
Currently, Arpan Gujarati is the sole owner and maintainer of the niraapad package on Python Package Index
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.