-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'paper' of https://github.com/philip-long/robot_collisio…
…n_checking into paper
- Loading branch information
Showing
3 changed files
with
145 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: JOSS Paper Draft PDF | ||
on: [push] | ||
|
||
jobs: | ||
paper: | ||
runs-on: ubuntu-latest | ||
name: Paper Draft | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Build draft PDF | ||
uses: openjournals/openjournals-draft-action@master | ||
with: | ||
journal: joss | ||
# This should be the path to the paper within your repo. | ||
paper-path: paper/paper.md | ||
- name: Upload | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: paper | ||
# This is the output path where Pandoc will write the compiled | ||
# PDF. Note, this should be the same directory as the input | ||
# paper.md | ||
path: paper/paper.pdf |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
@ARTICLE{hornung13auro, | ||
author = {Armin Hornung and Kai M. Wurm and Maren Bennewitz and Cyrill | ||
Stachniss and Wolfram Burgard}, | ||
title = {{OctoMap}: An Efficient Probabilistic {3D} Mapping Framework Based | ||
on Octrees}, | ||
journal = {Autonomous Robots}, | ||
year = 2013, | ||
url = {https://octomap.github.io}, | ||
doi = {10.1007/s10514-012-9321-0}, | ||
note = {Software available at \url{https://octomap.github.io}} | ||
} | ||
|
||
@inproceedings{Quigley2009ROS, | ||
author = {Quigley, Morgan and Conley, Ken and Gerkey, Brian and Faust, Josh and Foote, Tully and Leibs, Jeremy and Wheeler, Rob and Ng, Andrew}, | ||
year = {2009}, | ||
month = {01}, | ||
pages = {}, | ||
title = {ROS: an open-source Robot Operating System}, | ||
volume = {3}, | ||
journal = {ICRA Workshop on Open Source Software} | ||
} | ||
|
||
@article{Macenski2022ROS2, | ||
author = {Steven Macenski and Tully Foote and Brian Gerkey and Chris Lalancette and William Woodall}, | ||
title = {Robot Operating System 2: Design, architecture, and uses in the wild}, | ||
journal = {Science Robotics}, | ||
volume = {7}, | ||
number = {66}, | ||
pages = {eabm6074}, | ||
year = {2022}, | ||
doi = {10.1126/scirobotics.abm6074}, | ||
} | ||
|
||
@INPROCEEDINGS{Pan2012FCL, | ||
author={Pan, Jia and Chitta, Sachin and Manocha, Dinesh}, | ||
booktitle={IEEE International Conference on Robotics and Automation}, | ||
title={FCL: A general purpose library for collision and proximity queries}, | ||
year={2012}, | ||
volume={}, | ||
number={}, | ||
pages={3859-3866}, | ||
doi={10.1109/ICRA.2012.6225337} | ||
} | ||
|
||
|
||
@article{coleman2014reducing, | ||
title={Reducing the barrier to entry of complex robotic software: a moveit! case study}, | ||
author={Coleman, David and Sucan, Ioan and Chitta, Sachin and Correll, Nikolaus}, | ||
journal={Journal of Software Engineering for Robotics}, | ||
volume={5}, | ||
number={1}, | ||
pages={3–16}, | ||
year={2014} | ||
} | ||
|
||
@inproceedings{carpentier:hal-03271811, | ||
TITLE = {{Proximal and Sparse Resolution of Constrained Dynamic Equations}}, | ||
AUTHOR = {Carpentier, Justin and Budhiraja, Rohan and Mansard, Nicolas}, | ||
URL = {https://hal.inria.fr/hal-03271811}, | ||
BOOKTITLE = {{Robotics: Science and Systems 2021}}, | ||
ADDRESS = {Austin / Virtual, United States}, | ||
YEAR = {2021}, | ||
MONTH = Jul, | ||
PDF = {https://hal.inria.fr/hal-03271811/file/rss-proximal-and-sparse.pdf}, | ||
HAL_ID = {hal-03271811}, | ||
HAL_VERSION = {v1}, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
--- | ||
title: 'robot_collision_checking: A lightweight wrapper to enable access to FCL (flexible collision library) via ROS and ROS 2' | ||
tags: | ||
- ros | ||
- robotics | ||
- Collision Checking | ||
- flexible collision library | ||
authors: | ||
- name: Mark Zolotas | ||
orcid: 0000-0002-7672-940X | ||
corresponding: true # (This is how to denote the corresponding author) | ||
equal-contrib: true # (This is how you can denote equal contributions between multiple authors) | ||
affiliation: 1 | ||
- name: Philip Long | ||
orcid: 0000-0002-0784-8720 | ||
equal-contrib: true # (This is how you can denote equal contributions between multiple authors) | ||
affiliation: 2 | ||
- name: Taskin Padir | ||
orcid: 0000-0001-5123-5801 | ||
affiliation: "1, 3" | ||
affiliations: | ||
- name: Northeastern University, USA (at the time of this work) | ||
index: 1 | ||
- name: Atlantic Technological University, Ireland | ||
index: 2 | ||
- name: Amazon | ||
index: 3 | ||
date: 09 August 2024 | ||
bibliography: paper.bib | ||
--- | ||
|
||
# Summary | ||
This paper presents `robot_collision_checking`, a C++ library that creates an easy interface to the flexible collision library (FCL) [@Pan2012FCL] The package allows users to access collision and distance checking functionalities of FCL directly through a Robot Operating System (ROS) interface [@Quigley2009ROS], given that the robotics community widely relies on ROS as the standard for software development. We include ROS 1 and ROS 2 [@Macenski2022ROS2] implementations of the core C++ library. | ||
|
||
Collisions and distances can be calculated between collision objects such as solid primitives (spheres, box, cylinder), planes, meshes, voxel grids and octrees (via the Octomap library (FCL) [@hornung13auro]. Collision worlds, containing multiple collision objects can be created and maintained enabling collision distance checks between single objects and entire collision worlds. The package includes an example of ROS integration and visualisation of the results. | ||
|
||
The `robot_collision_checking` library is currently being used by the `constrained_manipulability` by the same authors. Within this package there are examples of using `robot_collision_checking` with urdf files and collision meshes to calculate collision/distances between a robot and primitives and octomaps. | ||
|
||
|
||
|
||
# Statement of Need | ||
Collision checking is becoming an increasingly important tools as robots are deployed to unstructured and dynamic environments, while ROS 1 and ROS 2 provide the most popular means of controlling robots for research applications. ROS 1 and ROS 2 enable collision checking via the popular path planning and trajectory execution open-source software Moveit [@coleman2014reducing]. Moveit collision checking api can avail two different collision checkers [bullet](https://github.com/bulletphysics/bullet3) and FCL. However, to avail of this functionality users have to install Moveit and ensure that their robot has a Moveit accessible package. Moreover, while Moveit is extremely powerful to access the lower level functionalities like collision distance checking requires an in-depth knowledge of the package structure and hierarchy. Similarly Pinochhio [@carpentier:hal-03271811] a powerful robot modeling software is also built upon FCL but suffers from the same overhead as Moveit. | ||
This package aims to address this need by providing a lightweight and transparent wrapper for the FCL library and ROS. | ||
|
||
Simiar to this package [Python-fcl](https://github.com/BerkeleyAutomation/python-fcl) provides a python wrapper for FCL which could also be used for a ROS interface but is based on python rather than C++. [ros_collision_checking](https://github.com/CoFra-CaLa/ros_collision_detection) provides a collision checking system for 2D vehicles in a ROS environment. | ||
|
||
|
||
# Acknowledgements | ||
|
||
Taskin Padir holds concurrent appointments as a Professor of Electrical and Computer Engineering at Northeastern University and as an Amazon Scholar. This paper describes work performed at Northeastern University and is not associated with Amazon. | ||
|
||
# References | ||
|
||
|