Skip to content

HermiSim is a robotics simulation suite for loading URDF/XML files, rendering 3D environments, and running physics-based simulations with PyBullet. It features 3D visualization, sensor data simulation, and full control over simulations. Built with PyQt and modular in design, it’s ideal for robotics development and testing.

License

Notifications You must be signed in to change notification settings

HermiTech-LLC/HermiSim-DynamicsViewer

Repository files navigation

HermiSim-

A Robotics Simulation Suite

hsl


Table of Contents

  1. Overview
  2. Features
  3. Directory Structure
  4. Installation and Usage
  5. Components
  6. Additional Notes

img

Note

The missing QBox/QText element definitions and errors have been patched and defined.


Directory Structure

HERMISIM/
│
├──gui/
│ ├── styles.py
│ ├── main_window.py
│ ├── file_loader.py
│ ├── object_renderer.py
│ ├── simulation_controls.py
│ ├── sensor_data_viewer.py
│ ├── tabs/
│ │ ├── render_tab.py
│ │ ├── simulation_tab.py
│ │ ├── log_tab.py
│ │ ├── sensor_tab.py
├──physics_engine/
│ ├── engine.py
│ ├── simulation.py
│ ├── sensor.py
├──utils/
│ ├── urdf.py
├──tests/
└──main.py
└──README.md

screenshot


Overview

This Robotics Simulation Suite is an application designed for loading URDF/XML files, rendering objects in a 3D space, and running robotic simulations using a physics engine. The application supports multiple tabs and functionalities to provide a comprehensive simulation environment.

Features

  • Load URDF/XML Files: Load and parse URDF/XML files to simulate robots.
  • 3D Rendering: Visualize robots and environments in 3D using PyQt and PyBullet.
  • Physics Engine: Leverage PyBullet for realistic physics simulations.
  • Sensor Data: Simulate and display data from various sensors like IMU, Lidar, and Camera.
  • Simulation Controls: Start, stop, reset simulations, and control simulation speed.
  • Logs and Debugging: View logs for debugging and simulation insights.
  • Modular Design: The application is modular, allowing easy extension and maintenance.

Installation and Usage

  1. Install dependencies:

    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
  2. Run the application:

    python3 main.py

Components

main.py

  • Entry Point: Initializes the PyQt application, applies styles, and sets up the main window.

GUI Components

  • styles.py: Defines and applies visual styles using PyQt.
  • main_window.py: Hosts the main window, integrates tabs, and manages file loading.
  • file_loader.py: Loads and parses URDF/XML files for the simulation.
  • object_renderer.py: Renders robots and environments in a 3D space.
  • simulation_controls.py: Controls for starting, stopping, resetting simulations, and adjusting speed.
  • sensor_data_viewer.py: Displays real-time sensor data in a tabular format.

Tabs

  • render_tab.py: Visualization of robots and environments.
  • simulation_tab.py: Contains elements for controlling the simulation.
  • log_tab.py: Displays logs and debugging information.
  • sensor_tab.py: Manages and displays sensor-related data.

Physics Engine

  • engine.py: Manages connection to the PyBullet engine and handles simulation steps.
  • simulation.py: Controls simulation operations, including start, stop, reset, and sensor updates.
  • sensor.py: Simulates IMU, Lidar, Camera sensors, and provides realistic data.

Utilities

  • urdf.py: Provides a graphical interface for designing and generating URDF files, complete with real-time preview using PyBullet.

Additional Notes

  • Ensure that PyBullet and PyQt5 are correctly installed.
  • The application is designed to be modular, so new features and sensors can be easily added.

About

HermiSim is a robotics simulation suite for loading URDF/XML files, rendering 3D environments, and running physics-based simulations with PyBullet. It features 3D visualization, sensor data simulation, and full control over simulations. Built with PyQt and modular in design, it’s ideal for robotics development and testing.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages