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

Added requirements.txt file for dependency management #130

Open
wants to merge 19 commits into
base: old_manager
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
112 changes: 111 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,111 @@
# RoboticsApplicationManager
# Robotics Application Manager (RAM) Repository

## Overview

This repository provides a framework for managing the lifecycle of robotics applications, enabling their remote execution, communication, and state management. It offers the following key features:

- *Remote execution of robotics applications*
- *Communication with applications through WebSocket servers*
- *State management using a state machine*
- *Process management for applications and ROS environments*
- *Introspection data about the system*
- *Logging for tracking application activity*

## Key Components

- **Manager (manager.py):**
- Orchestrates application states (idle, connected, ready, running, paused)
- Handles external commands (start, stop, load code, pause, resume, terminate, disconnect)
- Launches applications and ROS environments
- Interacts with applications through a defined interface
- Provides introspection data about the system

- **Communication Modules:**
- *WebSocket Servers (consumer.py, new_consumer.py):* Facilitate communication with clients
- *JavaScript Client Library (comms_manager.js):* Enables client-side interaction

- **Application Interface:**
- *Robotics Python Application Interface (robotics_python_application_interface.py):* Defines methods for loading code, managing execution, monitoring status, and receiving updates

- **Utility Functions:**
- *Process Utilities (process_utils.py):* Handle process management, class loading, and system state checks
- *Logging (log_manager.py):* Tracks application activity and potential issues
- *Docker Thread (docker_thread.py):* Runs Docker commands in separate threads for enhanced control

**## Usage**

1. **Prerequisites:**
- Python 3.x: [https://www.python.org/downloads/](https://www.python.org/downloads/)
- Required libraries (listed in `requirements.txt`)

2. **Installation:**
```bash
pip install -r requirements.txt
```

3. **Starting the Manager:**

Run the following command:

```bash
python manager.py
```

4. **Connecting a Client:**
- Use the provided JavaScript client library to connect to the WebSocket server and interact with the Manager.


## Contributing

### Organizational Guidelines:


**1. Fork:**
* Create a fork of this repository within the organization's GitHub account.


**2. Branch:**
* Create a descriptively named branch for your changes.


**3. Coding Style:**
* Adhere to the organization's coding style guidelines [link to guidelines](https://github.com/JdeRobot).


**4. Testing:**
* Write thorough unit tests for any new code or modifications.


**5. Code Review:**
* Request code reviews from appropriate team members before merging.


**6. Pull Request:**
* Create a pull request to merge your changes into the main repository.


**7. Address Feedback:**
* Responsively address comments and feedback from reviewers.


## Additional Contribution Tips:

**1. Familiarize with Project Structure:**
* Review the repository structure to understand component relationships.


**2. Communicate:**
* Ask questions and discuss ideas with team members through issue trackers or designated channels.


**3. Document Changes:**
* Clearly explain the purpose and impact of your modifications in pull requests.


**4. Test Thoroughly:**
* Ensure your changes don't introduce regressions or unexpected behavior.


## License

This project is licensed under the MIT License. See the [LICENSE](https://opensource.org/licenses/MIT) file for more details. [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
53 changes: 53 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
pipreqs-0.5.0
asttokens-2.4.1
attrs-23.2.0
backcall-0.2.0
beautifulsoup4-4.12.3
bleach-6.1.0
certifi-2024.2.2
charset-normalizer-3.3.2
colorama-0.4.6
decorator-5.1.1
defusedxml-0.7.1
docopt-0.6.2
executing-2.0.1
fastjsonschema-2.19.1
idna-3.6
ipython-8.12.3
jedi-0.19.1
jinja2-3.1.3
jsonschema-4.21.1
jsonschema-specifications-2023.12.1
jupyter-client-8.6.0
jupyter-core-5.7.1
jupyterlab-pygments-0.3.0
markupsafe-2.1.5
matplotlib-inline-0.1.6
mistune-3.0.2
nbclient-0.9.0
nbconvert-7.16.2
nbformat-5.9.2
packaging-24.0
pandocfilters-1.5.1
parso-0.8.3
pickleshare-0.7.5
platformdirs-4.2.0
prompt-toolkit-3.0.43
pure-eval-0.2.2
pygments-2.17.2
python-dateutil-2.9.0.post0
# pywin32-306
pyzmq-25.1.2
referencing-0.33.0
requests-2.31.0
rpds-py-0.18.0
six-1.16.0
soupsieve-2.5
stack-data-0.6.3
tinycss2-1.2.1
tornado-6.4
traitlets-5.14.1
urllib3-2.2.1
wcwidth-0.2.13
webencodings-0.5.1
yargs-0.1.9