rvo2-3d

Optimal Reciprocal Collision Avoidance in Three Dimensions (C++)

https://github.com/snape/rvo2-3d

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary

Keywords

collision-avoidance cpp motion-planning robotics velocity-obstacles virtual-agents
Last synced: 6 months ago · JSON representation ·

Repository

Optimal Reciprocal Collision Avoidance in Three Dimensions (C++)

Basic Info
Statistics
  • Stars: 280
  • Watchers: 11
  • Forks: 66
  • Open Issues: 7
  • Releases: 2
Topics
collision-avoidance cpp motion-planning robotics velocity-obstacles virtual-agents
Created over 12 years ago · Last pushed 6 months ago
Metadata Files
Readme License Code of conduct Citation Codeowners Security Support Zenodo

README.md

Optimal Reciprocal Collision Avoidance in Three Dimensions

https://gamma.cs.unc.edu/RVO2/

DOI

We present a formal approach to reciprocal collision avoidance, where multiple independent mobile robots or agents need to avoid collisions with each other without communication among agents while moving in a common workspace. Our formulation, optimal reciprocal collision avoidance (ORCA), provides sufficient conditions for collision-free motion by letting each agent take half of the responsibility of avoiding pairwise collisions. Selecting the optimal action for each agent is reduced to solving a low-dimensional linear program, and we prove that the resulting motions are smooth. We test our optimal reciprocal collision avoidance approach on several dense and complex simulation scenarios workspaces involving thousands of agents, and compute collision-free actions for all of them in only a few milliseconds.

RVO2-3D Library is an open-source C++98 implementation of our algorithm in three dimensions. It has a simple API for third-party applications. The user specifies agents and their preferred velocities. The simulation is performed step-by-step via a simple call to the library. The simulation is fully accessible and manipulable during runtime. The library exploits multiple processors if they are available using OpenMP for efficient parallelization of the simulation.

Build Status

SPDX-FileCopyrightText: 2008 University of North Carolina at Chapel Hill
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

  https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Please send all bug reports to geom@cs.unc.edu.

The authors may be contacted via:

Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, Dinesh Manocha
Dept. of Computer Science
201 S. Columbia St.
Frederick P. Brooks, Jr. Computer Science Bldg.
Chapel Hill, N.C. 27599-3175
United States of America <!-- REUSE-IgnoreEnd -->

Owner

  • Name: Jamie Snape
  • Login: snape
  • Kind: user
  • Location: Cary, North Carolina

This account contains my academic work and personal website. Most current development is under my @jamiesnape account.

Citation (CITATION.cff)

# -*- mode: yaml; -*-
# vi: set ft=yaml:

#
# CITATION.cff
# RVO2-3D Library
#
# SPDX-FileCopyrightText: 2008 University of North Carolina at Chapel Hill
# SPDX-License-Identifier: CC-BY-SA-4.0
#
# Creative Commons Attribution-ShareAlike 4.0 International Public License
#
# You are free to:
#
# * Share -- copy and redistribute the material in any medium or format
#
# * ShareAlike -- If you remix, transform, or build upon the material, you must
#   distribute your contributions under the same license as the original
#
# * Adapt -- remix, transform, and build upon the material for any purpose, even
#   commercially.
#
# The licensor cannot revoke these freedoms as long as you follow the license
# terms.
#
# Under the following terms:
#
# * Attribution -- You must give appropriate credit, provide a link to the
#   license, and indicate if changes were made. You may do so in any reasonable
#   manner, but not in any way that suggests the licensor endorses you or your
#   use.
#
# * No additional restrictions -- You may not apply legal terms or technological
#   measures that legally restrict others from doing anything the license
#   permits.
#
# Notices:
#
# * You do not have to comply with the license for elements of the material in
#   the public domain or where your use is permitted by an applicable exception
#   or limitation.
#
# * No warranties are given. The license may not give you all of the permissions
#   necessary for your intended use. For example, other rights such as
#   publicity, privacy, or moral rights may limit how you use the material.
#
# Please send all bug reports to <geom@cs.unc.edu>.
#
# The authors may be contacted via:
#
# Jur van den Berg, Stephen J. Guy, Jamie Snape, Ming C. Lin, Dinesh Manocha
# Dept. of Computer Science
# 201 S. Columbia St.
# Frederick P. Brooks, Jr. Computer Science Bldg.
# Chapel Hill, N.C. 27599-3175
# United States of America
#
# <https://gamma.cs.unc.edu/RVO2/>
#

---
cff-version: 1.2.0
abstract: >-
  We present a formal approach to reciprocal collision avoidance, where
  multiple independent mobile robots or agents need to avoid collisions with
  each other without communication among agents while moving in a common
  workspace. Our formulation, optimal reciprocal collision avoidance (ORCA),
  provides sufficient conditions for collision-free motion by letting each
  agent take half of the responsibility of avoiding pairwise collisions.
  Selecting the optimal action for each agent is reduced to solving a
  low-dimensional linear program, and we prove that the resulting motions are
  smooth. We test our optimal reciprocal collision avoidance approach on
  several dense and complex simulation scenarios workspaces involving thousands
  of agents, and compute collision-free actions for all of them in only a few
  milliseconds.

  RVO2-3D Library is an open-source C++98 implementation of our algorithm in
  three dimensions. It has a simple API for third-party applications. The user
  specifies agents and their preferred velocities. The simulation is performed
  step-by-step via a simple call to the library. The simulation is fully
  accessible and manipulable during runtime. The library exploits multiple
  processors if they are available using OpenMP for efficient parallelization
  of the simulation.
authors:
  - address: >-
      201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
    affiliation: 'University of North Carolina at Chapel Hill'
    city: 'Chapel Hill'
    country: US
    family-names: Berg
    given-names: Jur
    name-particle: 'van den'
    post-code: 27599
    region: NC
  - address: >-
      201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
    affiliation: 'University of North Carolina at Chapel Hill'
    city: 'Chapel Hill'
    country: US
    family-names: Guy
    given-names: 'Stephen J.'
    orcid: 'https://orcid.org/0000-0001-8986-5817'
    post-code: 27599
    region: NC
    website: 'https://www-users.cse.umn.edu/~sjguy/'
  - address: >-
      201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
    affiliation: 'University of North Carolina at Chapel Hill'
    city: 'Chapel Hill'
    country: US
    family-names: Snape
    given-names: Jamie
    orcid: 'https://orcid.org/0000-0002-3326-9765'
    post-code: 27599
    region: NC
    website: 'https://www.jamiesnape.io/'
  - address: >-
      201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
    affiliation: 'University of North Carolina at Chapel Hill'
    city: 'Chapel Hill'
    country: US
    family-names: Lin
    given-names: 'Ming C.'
    orcid: 'https://orcid.org/0000-0003-3736-6949'
    post-code: 27599
    region: NC
    website: 'https://www.cs.umd.edu/people/lin/'
  - address: >-
      201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
    affiliation: 'University of North Carolina at Chapel Hill'
    city: 'Chapel Hill'
    country: US
    family-names: Manocha
    given-names: Dinesh
    orcid: 'https://orcid.org/0000-0001-7047-9801'
    post-code: 27599
    region: NC
    website: 'https://www.cs.umd.edu/people/dmanocha/'
identifiers:
  - type: doi
    value: '10.5281/zenodo.7039619'
keywords:
  - 'collision avoidance'
  - 'mobile robots'
  - 'motion planning'
  - 'multi-robot systems'
  - navigation
license: 'Apache-2.0'
message: >-
  If you use this software, please cite it using the metadata from this file
  and the metadata from 'preferred-citation'.
references:
  - abstract: >-
      We present a formal approach to reciprocal collision avoidance, where
      multiple independent mobile robots or agents need to avoid collisions
      with each other without communication among agents while moving in a
      common workspace. Our formulation, optimal reciprocal collision avoidance
      (ORCA), provides sufficient conditions for collision-free motion by
      letting each agent take half of the responsibility of avoiding pairwise
      collisions. Selecting the optimal action for each agent is reduced to
      solving a low-dimensional linear program, and we prove that the resulting
      motions are smooth. We test our optimal reciprocal collision avoidance
      approach on several dense and complex simulation scenarios workspaces
      involving thousands of agents, and compute collision-free actions for all
      of them in only a few milliseconds.
    authors:
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Berg
        given-names: Jur
        name-particle: 'van den'
        post-code: 27599
        region: NC
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Guy
        given-names: 'Stephen J.'
        orcid: 'https://orcid.org/0000-0001-8986-5817'
        post-code: 27599
        region: NC
        website: 'https://www-users.cse.umn.edu/~sjguy/'
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Lin
        given-names: 'Ming C.'
        orcid: 'https://orcid.org/0000-0003-3736-6949'
        post-code: 27599
        region: NC
        website: 'https://www.cs.umd.edu/people/lin/'
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Manocha
        given-names: Dinesh
        orcid: 'https://orcid.org/0000-0001-7047-9801'
        post-code: 27599
        region: NC
        website: 'https://www.cs.umd.edu/people/dmanocha/'
    conference:
      address: 'Hotel Astoria, Pilatusstrasse 29'
      city: Lucerne
      country: CH
      date-end: '2009-09-03'
      date-start: '2009-08-31'
      name: '14th International Symposium of Robotics Research (ISRR)'
      post-code: 6002
    contact:
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Guy
        given-names: 'Stephen J.'
        orcid: 'https://orcid.org/0000-0001-8986-5817'
        post-code: 27599
        region: NC
        website: 'https://www-users.cse.umn.edu/~sjguy/'
    collection-doi: '10.1007/978-3-642-19457-3'
    collection-title: >-
      Robotics Research: The 14th International Symposium ISRR
    collection-type: proceedings
    copyright: >-
      Copyright © 2011 Springer Verlag
    editors:
      - address: >-
          Institute of Robotics and Intelligent Systems (IRIS), Autonomous
          Systems Lab, Leonhardstrasse 21
        affiliation: ETH Zürich
        city: Zürich
        country: CH
        family-names: Pradalier
        given-names: Cédric
        orcid: 'https://orcid.org/0000-0002-1746-2733'
        post-code: 8092
      - address: >-
          Institute of Robotics and Intelligent Systems (IRIS), Autonomous
          Systems Lab, Leonhardstrasse 21
        affiliation: ETH Zürich
        city: Zürich
        country: CH
        family-names: Siegwart
        given-names: Roland
        orcid: 'https://orcid.org/0000-0002-2760-7983'
        post-code: 8092
      - address: >-
          Deutsches Zentrum für Luft und Raumfahrt (DLR), Institut für Robotik
          und Mechatronik, Münchener Straße 20
        affiliation: German Aerospace Center
        city: 'Oberpfaffenhofen-Weßling'
        country: DE
        family-names: Hirzinger
        given-names: Gerhard
        post-code: 82234
    end: 19
    identifiers:
      - type: doi
        value: '10.1007/978-3-642-19457-3_1'
    isbn: '978-3-642-19456-6'
    keywords:
      - 'collision avoidance'
      - 'mobile robots'
      - 'motion planning'
      - 'multi-robot systems'
      - navigation
    publisher:
      address: 'Tiergartenstraße 17'
      city: Heidelberg
      country: DE
      name: 'Springer Verlag'
      post-code: 69121
    languages:
      - en
    month: 5
    pages: 17
    start: 3
    title: 'Reciprocal n-body collision avoidance'
    type: 'conference-paper'
    url: 'https://gamma.cs.unc.edu/ORCA/'
    volume: 70
    year: 2011
  - abstract: >-
      We present an algorithm for collision-free navigation of multiple flying
      robots in three-dimensional workspace. Our approach extends the model of a
      simple car to a simple-airplane, which has constraints on speed and
      steering angle and includes a configuration variable for the altitude. We
      use a locally optimal reciprocal collision avoidance scheme that computes
      the trajectory without any collisions or oscillations for each airplane
      independently. In addition, our algorithm explicitly considers the
      kinematic and dynamic constraints of a simple-airplane and uses the notion
      of variable reciprocity when choosing velocities to ensure that
      simple-airplanes that are less constrained take more responsibility for
      avoiding collisions. We test our approach in two simulations and compute
      collision-free and oscillation-free trajectories that satisfy the kinematic
      and dynamic constraints of each simple-airplane.
    authors:
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Snape
        given-names: Jamie
        orcid: 'https://orcid.org/0000-0002-3326-9765'
        post-code: 27599
        region: NC
        website: 'https://www.jamiesnape.io/'
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Manocha
        given-names: Dinesh
        orcid: 'https://orcid.org/0000-0001-7047-9801'
        post-code: 27599
        region: NC
        website: 'https://www.cs.umd.edu/people/dmanocha/'
    conference:
      address: '555 W Fifth Ave, William A. Egan Civic and Convention Center'
      city: Anchorage
      country: CH
      date-end: '2010-05-03'
      date-start: '2010-05-08'
      name: >-
        2010 IEEE International Conference on Robotics and Automation (ICRA)
      post-code: 99501
      region: AK
    contact:
      - address: >-
          201 S Columbia St, Frederick P. Brooks, Jr. Computer Science Bldg
        affiliation: 'University of North Carolina at Chapel Hill'
        city: 'Chapel Hill'
        country: US
        family-names: Snape
        given-names: Jamie
        orcid: 'https://orcid.org/0000-0002-3326-9765'
        post-code: 27599
        region: NC
        website: 'https://www.jamiesnape.io/'
    collection-doi: '10.1109/ICRA11042.2010'
    collection-title: >-
      Proceedings of the 2010 IEEE International Conference on Robotics and
      Automation (ICRA)
    collection-type: proceedings
    copyright: >-
      Copyright © 2010 Institute of Electrical and Electronics Engineers
    date-published: '2010-07-15'
    end: 3980
    identifiers:
      - type: doi
        value: '10.1109/ROBOT.2010.5509580'
    isbn: '978-1-4244-5038-1'
    issn: '1050-4729'
    keywords:
      - 'collision avoidance'
      - 'mobile robots'
      - 'motion planning'
      - 'multi-robot systems'
      - navigation
    publisher:
      address: '3 Park Ave 17th Fl'
      city: 'New York'
      country: US
      name: 'Institute of Electrical and Electronics Engineers'
      post-code: 10016
      region: NY
    languages:
      - en
    month: 5
    pages: 6
    start: 3974
    title: 'Navigating Multiple Simple-Airplanes in 3D Workspace'
    type: 'conference-paper'
    url: 'https://gamma.cs.unc.edu/S-AIRPLANE/'
    year: 2010
repository-code: 'https://github.com/snape/RVO2-3D'
title: 'Optimal Reciprocal Collision Avoidance in Three Dimensions'
type: software
url: 'https://gamma.cs.unc.edu/RVO2/'

GitHub Events

Total
  • Watch event: 23
  • Delete event: 2
  • Push event: 30
  • Pull request event: 10
  • Fork event: 4
  • Create event: 7
Last Year
  • Watch event: 23
  • Delete event: 2
  • Push event: 30
  • Pull request event: 10
  • Fork event: 4
  • Create event: 7

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 0
  • Total pull requests: 23
  • Average time to close issues: N/A
  • Average time to close pull requests: about 2 months
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.48
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 23
Past Year
  • Issues: 0
  • Pull requests: 17
  • Average time to close issues: N/A
  • Average time to close pull requests: 10 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.06
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 17
Top Authors
Issue Authors
Pull Request Authors
  • renovate[bot] (17)
  • dependabot[bot] (6)
Top Labels
Issue Labels
Pull Request Labels
dependencies (6)

Packages

  • Total packages: 2
  • Total downloads: unknown
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 2
proxy.golang.org: github.com/snape/rvo2-3d
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/snape/RVO2-3D
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • cmakelang *
  • reuse *
Dockerfile docker
  • ubuntu 22.04 build