Git Product home page Git Product logo

o3de-humanworker-gem's Introduction

Apache License, Version 2.0

HumanWorker Gem for Open 3D Engine (O3DE)

A bit of context

  • Open 3D Engine - an open-source game & simulation engine. O3DE is extendable through modules called Gems. This is one of such Gems.
  • Robot Operating System (ROS) - an open-source middleware and, de facto, standard for robotics.
  • ROS2 Gem - an open-source module for O3DE that enables simulation for robotics using modern ROS.

Please refer to O3DE documentation to learn more about Gems and about registering Gems in the system and O3DE projects.

Requirements

Description

This gem contains animated human worker assets that can be easily imported into an O3DE project. The human worker can navigate between the waypoints in the scene and is visible to any robots that maneuver in the same area.

In particular, this gem contains the following components:

  • Human worker mesh with textures
  • Mesh animations of human standing
  • Mesh animations of human walking
  • O3DE components for basic navigation of the human worker in a scene

Human worker objects are delivered as O3DE prefabs, containing visual models and physics, along with the required O3DE components. Four prefabs are provided within the gem. The simplest one, HumanWorkerStatic.prefab, is a prefab combining mesh and textures. It can be used as a decoration in the scene. HumanWorker.prefab is additionally extended by animations. It does not contain any navigation-related components, therefore only idle animation is used in this case. HumanWorkerRobot.prefab is a prefab that can be used as a base for the fully functional non-player character (NPC) after adding the description of the scene (waypoints, etc.). HumanWorkerNavigation.prefab is an extension with placeholders for such descriptions that should be used in projects.

How to use the Gem: NavigationExample

NavigationExample.prefab prefab contains all the necessities to run the NPC in the scene. In particular, it consists of the animated mesh with textures, and the scene description in the format used by NPC navigation components. The scene description is added to HumanWorkerNavigation.prefab using O3DE prefab overrides.

  • HumanWorkerRobot is a human worker prefab with some navigational components included. The prefab is modified with the overrides to correctly link with the scene description.
  • Endpoints is a scene descriptor consisting of the ground truth positions used to build the path for the NPC. Two points are included in this example, but the number of points can be increased. All points need to be added to the HumanWorkerRobot prefab Npc Navigator component to correctly build the path.
  • HumanWorkerNavigationMesh is a scene descriptor component presenting the mesh where the NPC can move based on its movement capabilities and the scene itself. Please check Recast framework documentation for more details. Tunable parameters include the size of the bounding box for mesh calculation and NPC characteristics. Please note, that all Endpoints need to be within the bounding box.
  • DetourNavigation is a scene descriptor component for finding the path between the Endpoints within the navigation mesh.

This work is licensed under Apache License, Version 2.0. You may elect at your option to use the MIT License instead. Contributions must be made under both licenses.

o3de-humanworker-gem's People

Contributors

arturkamieniecki avatar jhanca-robotecai avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

spham-amzn

o3de-humanworker-gem's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.