Skip to content

Latest commit

 

History

History
47 lines (31 loc) · 3.94 KB

README.md

File metadata and controls

47 lines (31 loc) · 3.94 KB

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.