diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ceb8485 --- /dev/null +++ b/LICENSE @@ -0,0 +1,17 @@ +Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande + +This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. +To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. + +You are free to: + +- Share — copy and redistribute the material in any medium or format +- Adapt — remix, transform, and build upon the material for any purpose, even commercially. + +Under the following terms: + +- Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. +- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. +- No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. + +This is a human-readable summary of (and not a substitute for) the license. See the full license text for more details. diff --git a/Package/python/publish.sh b/Package/python/publish.sh new file mode 100755 index 0000000..48934a9 --- /dev/null +++ b/Package/python/publish.sh @@ -0,0 +1,2 @@ +python setup.py sdist +twine upload dist/* diff --git a/Package/python/setup.py b/Package/python/setup.py new file mode 100644 index 0000000..fff8947 --- /dev/null +++ b/Package/python/setup.py @@ -0,0 +1,44 @@ +from setuptools import setup, find_packages + +with open("../../README.md", "r", encoding="utf-8") as fh: + long_description = fh.read() + +setup( + name="bellande_limit", + version="0.3.3", + description="Robots Limit", + long_description=long_description, + long_description_content_type="text/markdown", + author="RonaldsonBellande", + author_email="ronaldsonbellande@gmail.com", + packages=find_packages(where="src"), + package_dir={"": "src"}, + include_package_data=True, + install_requires=[ + "numpy", + ], + classifiers=[ + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + "Programming Language :: Python", + ], + keywords=["package", "setuptools"], + python_requires=">=3.0", + extras_require={ + "dev": ["pytest", "pytest-cov[all]", "mypy", "black"], + }, + package_data={ + 'bellande_limit': ['Bellande_Step'], + }, + entry_points={ + 'console_scripts': [ + 'bellande_limit_executable = bellande_limit.bellande_limit_executable:main', + 'bellande_limit_api = bellande_limit.bellande_limit_api:main', + ], + }, + project_urls={ + "Home": "https://github.com/Robotics-Sensors/bellande_limit", + "Homepage": "https://github.com/Robotics-Sensors/bellande_limit", + "documentation": "https://github.com/Robotics-Sensors/bellande_limit", + "repository": "https://github.com/Robotics-Sensors/bellande_limit", + }, +) diff --git a/Package/python/src/.gitignore b/Package/python/src/.gitignore new file mode 100644 index 0000000..3bd3f0d --- /dev/null +++ b/Package/python/src/.gitignore @@ -0,0 +1 @@ +bellande_step.egg-info diff --git a/Package/python/src/__init__.py b/Package/python/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index 3bd27dd..6cc1e15 100644 --- a/README.md +++ b/README.md @@ -1 +1,268 @@ -# bellande_limit \ No newline at end of file +# 📦 Bellande Limit + +![Demo GIF](bellande_limit_api_package.gif) + +## Preprint +- [![Preprint](https://img.shields.io/badge/Preprint-Bellande%20Step-0099cc?style=for-the-badge)](https://dapp.orvium.io/deposits/6650ccb8afb407dc8beb0ff2/view) + +# Preprint Citation +``` +Bellande, R. (2024). Efficient Step Function for Infinite Multi-Dimensional Node Calculation within Model-Integrated Dimensional Space [version 1] [preprint]. Mathematics. +``` + + +## 🧙 Organization Website +- [![Organization Website](https://img.shields.io/badge/Explore%20Our-Website-0099cc?style=for-the-badge)](https://robotics-sensors.github.io) + +## 🧙 Organization Github +- [![Organization Github ](https://img.shields.io/badge/Explore%20Our-Github-0099cc?style=for-the-badge)](https://github.com/Robotics-Sensors) + +# Author, Creator and Maintainer +- **Ronaldson Bellande** + +## Bellande Limit Executables & Models +- [![Bellande Limit Models & Executables ](https://img.shields.io/badge/Bellande%20Step-Models/Executables-0099cc?style=for-the-badge)](https://github.com/Artificial-Intelligence-Computer-Vision/bellande_step_models_executables) + +# API HTTP Usability (BELLANDE FORMAT) +``` +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# GNU General Public License v3.0 or later + +url: https://bellande-robotics-sensors-research-innovation-center.org + +endpoint_path: + bellande_limit: /api/Bellande_Limit/bellande_limit + +Bellande_Framework_Access_Key: bellande_web_api_opensource +``` + +# API HTTP Usability (JSON FORMAT) +``` +{ + "license": [ + "Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande", + "This program is free software: you can redistribute it and/or modify", + "it under the terms of the GNU General Public License as published by", + "the Free Software Foundation, either version 3 of the License, or", + "(at your option) any later version.", + "", + "This program is distributed in the hope that it will be useful,", + "but WITHOUT ANY WARRANTY; without even the implied warranty of", + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the", + "GNU General Public License for more details.", + "", + "You should have received a copy of the GNU General Public License", + "along with this program. If not, see .", + "GNU General Public License v3.0 or later" + ], + "url": "https://bellande-robotics-sensors-research-innovation-center.org", + "endpoint_path": { + "bellande_limit": "/api/Bellande_Limit/bellande_limit" + }, + "Bellande_Framework_Access_Key": "bellande_web_api_opensource" +} +``` + +# API Payload Example +``` +{ + "node0": [0, 0, 0], + "node1": [100, 100, 100], + "goal": [200, 200, 200], + "search_radius": 50, + "sample_points": 20, + "auth": { + "authorization_key": "bellande_web_api_opensource" + } +} +``` + +# 🧙 Website Bellande API Testing +- [![Website API Testing](https://img.shields.io/badge/Bellande%20API-Testing-0099cc?style=for-the-badge)](https://bellanderoboticssensorsresearchinnovationcenterwebsite-kot42qxp.b4a.run/api/bellande_step_experiment) + +# Quick Bellande API Testing +``` +curl -X 'POST' \ + 'https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Limit/bellande_limit' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -d '{ + "node0": [0, 0, 0], + "node1": [100, 100, 100], + "goal": [100, 100, 100], + "search_radius": 50, + "sample_points": 20, + "auth": { + "authorization_key": "bellande_web_api_opensource" + } + }' +``` + +# BS(Bellande Step) Algorithm API +## Experiment 1 -- Limit = 1 + +| ![2D](graphs_charts/graph_charts_1/2D_Space.png) *Figure 2D* | ![3D](graphs_charts/graph_charts_1/3D_Space.png) *Figure 3D* | ![4D](graphs_charts/graph_charts_1/4D_Space.png) *Figure 4D* | +|:------------------------------------------------------------:|:------------------------------------------------------------:|:------------------------------------------------------------:| +| ![5D](graphs_charts/graph_charts_1/5D_Space.png) *Figure 5D* | ![6D](graphs_charts/graph_charts_1/6D_Space.png) *Figure 6D* | ![7D](graphs_charts/graph_charts_1/7D_Space.png) *Figure 7D* | +| ![8D](graphs_charts/graph_charts_1/8D_Space.png) *Figure 8D* | ![9D](graphs_charts/graph_charts_1/9D_Space.png) *Figure 9D* | ![10D](graphs_charts/graph_charts_1/10D_Space.png) *Figure 10D* | + + +## Experiment 2 -- Limit = 25 + +| ![2D](graphs_charts/graph_charts_25/2D_Space.png) *Figure 2D* | ![3D](graphs_charts/graph_charts_25/3D_Space.png) *Figure 3D* | ![4D](graphs_charts/graph_charts_25/4D_Space.png) *Figure 4D* | +|:-------------------------------------------------------------:|:-------------------------------------------------------------:|:-------------------------------------------------------------:| +| ![5D](graphs_charts/graph_charts_25/5D_Space.png) *Figure 5D* | ![6D](graphs_charts/graph_charts_25/6D_Space.png) *Figure 6D* | ![7D](graphs_charts/graph_charts_25/7D_Space.png) *Figure 7D* | +| ![8D](graphs_charts/graph_charts_25/8D_Space.png) *Figure 8D* | ![9D](graphs_charts/graph_charts_25/9D_Space.png) *Figure 9D* | ![10D](graphs_charts/graph_charts_25/10D_Space.png) *Figure 10D* | + + +## Experiment 3 -- Limit = 50 + +| ![2D](graphs_charts/graph_charts_50/2D_Space.png) *Figure 2D* | ![3D](graphs_charts/graph_charts_50/3D_Space.png) *Figure 3D* | ![4D](graphs_charts/graph_charts_50/4D_Space.png) *Figure 4D* | +|:-------------------------------------------------------------:|:-------------------------------------------------------------:|:-------------------------------------------------------------:| +| ![5D](graphs_charts/graph_charts_50/5D_Space.png) *Figure 5D* | ![6D](graphs_charts/graph_charts_50/6D_Space.png) *Figure 6D* | ![7D](graphs_charts/graph_charts_50/7D_Space.png) *Figure 7D* | +| ![8D](graphs_charts/graph_charts_50/8D_Space.png) *Figure 8D* | ![9D](graphs_charts/graph_charts_50/9D_Space.png) *Figure 9D* | ![10D](graphs_charts/graph_charts_50/10D_Space.png) *Figure 10D* | + + +## Experiment 4 -- Limit = 75 + +| ![2D](graphs_charts/graph_charts_75/2D_Space.png) *Figure 2D* | ![3D](graphs_charts/graph_charts_75/3D_Space.png) *Figure 3D* | ![4D](graphs_charts/graph_charts_75/4D_Space.png) *Figure 4D* | +|:-------------------------------------------------------------:|:-------------------------------------------------------------:|:-------------------------------------------------------------:| +| ![5D](graphs_charts/graph_charts_75/5D_Space.png) *Figure 5D* | ![6D](graphs_charts/graph_charts_75/6D_Space.png) *Figure 6D* | ![7D](graphs_charts/graph_charts_75/7D_Space.png) *Figure 7D* | +| ![8D](graphs_charts/graph_charts_75/8D_Space.png) *Figure 8D* | ![9D](graphs_charts/graph_charts_75/9D_Space.png) *Figure 9D* | ![10D](graphs_charts/graph_charts_75/10D_Space.png) *Figure 10D* | + + +## Experiment 5 -- Limit = 100 + +| ![2D](graphs_charts/graph_charts_100/2D_Space.png) *Figure 2D* | ![3D](graphs_charts/graph_charts_100/3D_Space.png) *Figure 3D* | ![4D](graphs_charts/graph_charts_100/4D_Space.png) *Figure 4D* | +|:--------------------------------------------------------------:|:--------------------------------------------------------------:|:--------------------------------------------------------------:| +| ![5D](graphs_charts/graph_charts_100/5D_Space.png) *Figure 5D* | ![6D](graphs_charts/graph_charts_100/6D_Space.png) *Figure 6D* | ![7D](graphs_charts/graph_charts_100/7D_Space.png) *Figure 7D* | +| ![8D](graphs_charts/graph_charts_100/8D_Space.png) *Figure 8D* | ![9D](graphs_charts/graph_charts_100/9D_Space.png) *Figure 9D* | ![10D](graphs_charts/graph_charts_100/10D_Space.png) *Figure 10D* | + + + +# Check Out Research Organization for open-source/semi-open-source API +- https://robotics-sensors.github.io +- Check out website for more information avaliable open-source API + +# Package via Executable +- Infinite Space + +``` +bellande_step "[0, 0, 0]" "[100, 100, 100]" 75 3 +``` +# API in api_docs +- 2D Space +- 3D Space +- 4D Space +- 5D Space +- 6D Space +- 7D Space +- 8D Space +- 9D Space +- 10D Space + + +# Can also checkout portion of the docs at [Portion API DOCS](https://github.com/Robotics-Sensors/bellande_robots_step/blob/main/api_docs.md) +### ✔️ confirmed versions +- `The step function efficiently computes the next step towards a target node within a specified distance limit.` + +## Usage 2D Space + +Suppose you have two nodes representing positions in a 2D space: +- `node0` at coordinates `(0, 0)` +- `node1` at coordinates `(5, 5)` + +You want to compute the next step from `node0` towards `node1` while limiting the maximum distance to 3 units. + +```python +# Define Import +from bellande_step.bellande_step_2d import bellande_step_2d + +# Define the nodes +node0 = Node2D(0, 0) +node1 = Node2D(5, 5) + +# Compute the next step within a distance limit of 3 units +next_step = bellande_step_2d(node0, node1, limit=3) + +# Output the coordinates of the next step +print("Next Step Coordinates:", next_step.coord) +``` + +## Usage 3D Space + +Suppose you have two nodes representing positions in a 3D space: +- `node0` at coordinates `(0, 0, 0)` +- `node1` at coordinates `(5, 5, 5)` + +You want to compute the next step from `node0` towards `node1` while limiting the maximum distance to 3 units. + +```python +# Define Import +from bellande_step.bellande_step_3d import bellande_step_3d + +# Define the nodes +node0 = Node3D(0, 0, 0) +node1 = Node3D(5, 5, 5) + +# Compute the next step within a distance limit of 3 units +next_step = bellande_step_3d(node0, node1, limit=3) + +# Output the coordinates of the next step +print("Next Step Coordinates:", next_step.coord) +``` + +### Avaliable +- 2D Space +- 3D Space +- 4D Space +- 5D Space +- 6D Space +- 7D Space +- 8D Space +- 9D Space +- 10D Space + + +## Website PYPI +- https://pypi.org/project/bellande_limit + +### Installation +- `$ pip install bellande_limit` + +### Upgrade (if not upgraded) +- `$ pip install --upgrade bellande_limit` + +``` +Name: bellande_limit +Version: 0.3.0 +Summary: Computes the next step towards a target node +Home-page: github.com/RonaldsonBellande/bellande_robot_step +Author: Ronaldson Bellande +Author-email: ronaldsonbellande@gmail.com +License: GNU General Public License v3.0 +``` + +## Published Paper +``` +Coming Soon +``` + +## Preprint +- [![Preprint](https://img.shields.io/badge/Preprint-Bellande%20Step-0099cc?style=for-the-badge)](https://dapp.orvium.io/deposits/6650ccb8afb407dc8beb0ff2/view) + + +## License +This Algorithm or Models is distributed under the [Creative Commons Attribution-ShareAlike 4.0 International License](http://creativecommons.org/licenses/by-sa/4.0/), see [LICENSE](https://github.com/RonaldsonBellande/bellande_step/blob/main/LICENSE) and [NOTICE](https://github.com/RonaldsonBellande/bellande_step/blob/main/LICENSE) for more information. diff --git a/configs/bellande/http_configs.bellande b/configs/bellande/http_configs.bellande new file mode 100644 index 0000000..daed5af --- /dev/null +++ b/configs/bellande/http_configs.bellande @@ -0,0 +1,21 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# GNU General Public License v3.0 or later + +url: https://bellande-robotics-sensors-research-innovation-center.org + +endpoint_path: + bellande_limit: /api/Bellande_Limit/bellande_limit + +Bellande_Framework_Access_Key: bellande_web_api_opensource diff --git a/configs/bellande/tcp_configs.bellande b/configs/bellande/tcp_configs.bellande new file mode 100644 index 0000000..18f9370 --- /dev/null +++ b/configs/bellande/tcp_configs.bellande @@ -0,0 +1,21 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# GNU General Public License v3.0 or later + +url: tcp://bellande-robotics-sensors-research-innovation-center.org + +endpoint_path: + bellande_limit: /api/Bellande_Limit/bellande_limit + +Bellande_Framework_Access_Key: bellande_web_api_opensource diff --git a/configs/bellande/tls_configs.bellande b/configs/bellande/tls_configs.bellande new file mode 100644 index 0000000..af97eca --- /dev/null +++ b/configs/bellande/tls_configs.bellande @@ -0,0 +1,21 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# GNU General Public License v3.0 or later + +url: tls://bellande-robotics-sensors-research-innovation-center.org + +endpoint_path: + bellande_limit: /api/Bellande_Limit/bellande_limit + +Bellande_Framework_Access_Key: bellande_web_api_opensource diff --git a/configs/json/http_configs.json b/configs/json/http_configs.json new file mode 100644 index 0000000..688244f --- /dev/null +++ b/configs/json/http_configs.json @@ -0,0 +1,23 @@ +{ + "license": [ + "Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande", + "This program is free software: you can redistribute it and/or modify", + "it under the terms of the GNU General Public License as published by", + "the Free Software Foundation, either version 3 of the License, or", + "(at your option) any later version.", + "", + "This program is distributed in the hope that it will be useful,", + "but WITHOUT ANY WARRANTY; without even the implied warranty of", + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the", + "GNU General Public License for more details.", + "", + "You should have received a copy of the GNU General Public License", + "along with this program. If not, see .", + "GNU General Public License v3.0 or later" + ], + "url": "https://bellande-robotics-sensors-research-innovation-center.org", + "endpoint_path": { + "bellande_limit": "/api/Bellande_Limit/bellande_limit" + }, + "Bellande_Framework_Access_Key": "bellande_web_api_opensource" +} diff --git a/configs/json/tcp_configs.json b/configs/json/tcp_configs.json new file mode 100644 index 0000000..b8e1488 --- /dev/null +++ b/configs/json/tcp_configs.json @@ -0,0 +1,23 @@ +{ + "license": [ + "Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande", + "This program is free software: you can redistribute it and/or modify", + "it under the terms of the GNU General Public License as published by", + "the Free Software Foundation, either version 3 of the License, or", + "(at your option) any later version.", + "", + "This program is distributed in the hope that it will be useful,", + "but WITHOUT ANY WARRANTY; without even the implied warranty of", + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the", + "GNU General Public License for more details.", + "", + "You should have received a copy of the GNU General Public License", + "along with this program. If not, see .", + "GNU General Public License v3.0 or later" + ], + "url": "tcp://bellande-robotics-sensors-research-innovation-center.org", + "endpoint_path": { + "bellande_limit": "/tcp/Bellande_Limit/bellande_limit" + }, + "Bellande_Framework_Access_Key": "bellande_tcp_api_opensource" +} diff --git a/configs/json/tls_configs.json b/configs/json/tls_configs.json new file mode 100644 index 0000000..2f3f226 --- /dev/null +++ b/configs/json/tls_configs.json @@ -0,0 +1,23 @@ +{ + "license": [ + "Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande", + "This program is free software: you can redistribute it and/or modify", + "it under the terms of the GNU General Public License as published by", + "the Free Software Foundation, either version 3 of the License, or", + "(at your option) any later version.", + "", + "This program is distributed in the hope that it will be useful,", + "but WITHOUT ANY WARRANTY; without even the implied warranty of", + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the", + "GNU General Public License for more details.", + "", + "You should have received a copy of the GNU General Public License", + "along with this program. If not, see .", + "GNU General Public License v3.0 or later" + ], + "url": "tls://bellande-robotics-sensors-research-innovation-center.org", + "endpoint_path": { + "bellande_limit": "/tls/Bellande_Limit/bellande_limit" + }, + "Bellande_Framework_Access_Key": "bellande_tls_api_opensource" +} diff --git a/git_scripts/.gitignore b/git_scripts/.gitignore new file mode 100644 index 0000000..e5a7a9c --- /dev/null +++ b/git_scripts/.gitignore @@ -0,0 +1,3 @@ +fix_errors.sh +push.sh +repository_recal.sh diff --git a/run_api.bellos b/run_api.bellos new file mode 100755 index 0000000..5533173 --- /dev/null +++ b/run_api.bellos @@ -0,0 +1,16 @@ +curl -X 'POST' \ + 'https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Limit/bellande_limit' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -d '{ + "node0": [0, 0, 0], + "node1": [100, 100, 100], + "goal": [200, 200, 200], + "search_radius": 50, + "sample_points": 20, + "auth": { + "authorization_key": "bellande_web_api_opensource" + } + }' + +echo "" diff --git a/run_api.sh b/run_api.sh new file mode 100755 index 0000000..5533173 --- /dev/null +++ b/run_api.sh @@ -0,0 +1,16 @@ +curl -X 'POST' \ + 'https://bellande-robotics-sensors-research-innovation-center.org/api/Bellande_Limit/bellande_limit' \ + -H 'accept: application/json' \ + -H 'Content-Type: application/json' \ + -d '{ + "node0": [0, 0, 0], + "node1": [100, 100, 100], + "goal": [200, 200, 200], + "search_radius": 50, + "sample_points": 20, + "auth": { + "authorization_key": "bellande_web_api_opensource" + } + }' + +echo ""