2.9 KiB
2.9 KiB
RSIPI – Robot Sensor Interface Python Integration
RSIPI (Robot Sensor Interface Python Integration) is a comprehensive Python package designed to simplify and enhance the integration and control of KUKA robots using the Robot Sensor Interface (RSI). It provides intuitive APIs, real-time data visualisation, dynamic control capabilities, and easy logging, suitable for research, development, and deployment of advanced robotics applications.
🚀 Features
- Real-Time Control: Seamless communication with KUKA RSI.
- Dynamic Variable Updates: Update robot parameters dynamically during runtime.
- CSV Logging: Record all robot interactions and sensor data for easy analysis.
- Live Graphing: Real-time visualisation of position, velocity, acceleration, and force.
- Command-Line Interface (CLI): User-friendly terminal-based robot interaction.
- Python API: Easily integrate RSIPI into custom Python applications.
📂 Project Structure
RSI-PI/
├── src/
│ └── RSIPI/
│ ├── rsi_api.py
│ ├── rsi_client.py
│ ├── network_process.py
│ ├── config_parser.py
│ ├── xml_handler.py
│ ├── rsi_config.py
│ ├── cli.py
│ ├── graphing.py
│ └── test_rsipi.py
├── RSI_EthernetConfig.xml
├── setup.py
└── README.md
⚙️ Installation
To install RSIPI, clone the repository and use pip:
git clone <your-repo-url>
cd RSI-PI
pip install .
▶️ Getting Started
Quick example:
from RSIPI import RSIAPI
from time import sleep
# Initialise RSIAPI
api = RSIAPI("RSI_EthernetConfig.xml")
# Start RSI communication
api.start_rsi()
# Dynamically update a variable
api.update_variable("EStr", "RSIPI Test")
# Log data to CSV
api.start_logging("robot_data.csv")
sleep(10)
# Stop logging and RSI communication
api.stop_logging()
api.stop_rsi()
💻 Command-Line Interface
Start the CLI for interactive robot control:
python src/RSIPI/rsi_cli.py
Example CLI commands:
start: Start RSI communicationset EStr HelloWorld: Update variablelog start data.csv: Start logginggraph start position: Start live graphingstop: Stop RSI communication
📊 Graphing and Visualisation
RSIPI supports real-time plotting and analysis:
api.start_graphing(mode="position") # Real-time position graph
🧪 Running Tests
Tests are provided to verify all functionalities:
python -m unittest discover -s src/RSIPI -p "test_*.py"
📝 Citation
If you use RSIPI in your research, please cite it:
@misc{YourName2025RSIPI,
author = {Your Name},
title = {RSIPI: Robot Sensor Interface Python Integration},
year = {2025},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/yourusername/RSIPI},
}
📚 License
RSIPI is released under the MIT License.