Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
- persist_to_workspace:
root: .
paths:
- _build
- _build
docs_publish:
executor: docs_exec
steps:
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ _build
lib/
bin/
pyvenv.cfg
.DS_Store
.DS_Store
7 changes: 7 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,10 @@ repos:
- id: codespell
args: ['--write-changes', '--ignore-words=.codespell_words']
exclude: CHANGELOG\.rst|\.(svg|pyc|drawio|dcf|eds)$

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
6 changes: 3 additions & 3 deletions 2021summerOfCode/projects/assisted_teleop.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
3. Assisted Teleop
==================

**Task description**
**Task description**

In mobile robot and autonomous vehicle navigation, there are situations where a human driver is required to intervene to get the vehicle out of a sticky situation. This can be both as a backup in case of autonomy failure as well as the primary function of the robot (e.g. telepresence robots).
In mobile robot and autonomous vehicle navigation, there are situations where a human driver is required to intervene to get the vehicle out of a sticky situation. This can be both as a backup in case of autonomy failure as well as the primary function of the robot (e.g. telepresence robots).

This project's aim is to create an assisted teleop feature in Nav2 by means of a new behavior tree configuration file (the file that defines the flow of information for the navigation task) and potentially new plugins. This feature should make sure to use the local costmap and/or sensor data in order to avoid obstacles and take position and/or velocity commands to attempt to follow.

Expand All @@ -31,7 +31,7 @@ This will be an excellent chance to make a substantial new feature in the Nav2 s
- Mobile robot navigation experience
- Recommended: Gazebo simulation, ROS navigation, Behavior trees

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand Down
6 changes: 3 additions & 3 deletions 2021summerOfCode/projects/create_configuration_assistant.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
1. Create a Configuration Assistant (Analog to MoveIt)
======================================================

**Task description**
**Task description**

`Moveit <https://moveit.ros.org/>`_ has long has a QT `configuration assistant <http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/setup_assistant/setup_assistant_tutorial.html>`_. This setup assistant helps the user configure their UDRF and needs to setup MoveIt configuration files.

Expand Down Expand Up @@ -43,12 +43,12 @@ After the items are configured, there should be a preview to see how the paramet
- 3D programming (maybe needed in the preview)
- Recommended: Gazebo simulation, ROS, and Navigation experience

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `QT <https://www.qt.io/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
- `Original github issue page <https://github.com/ros-navigation/navigation2/issues/1721>`_

**Licensing**
- All contributions will be under the Apache 2.0 license.
- No other CLA's are required.
- No other CLA's are required.
1 change: 0 additions & 1 deletion 2021summerOfCode/projects/create_plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,3 @@ Your task will be to create a high-quality implementation of one of the followin
**Licensing**
- All contributions will be under the Apache 2.0 license.
- No other CLA's are required.

4 changes: 2 additions & 2 deletions 2021summerOfCode/projects/dynamic.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
1. Navigation Dynamic Obstacle Integration
==========================================

**Task description**
**Task description**

The Navigation Stack has long provided robust navigation in a wide range of environments. Controllers have been developed to operate effectively in the presence of dynamic obstacles without explicitly modeling the characteristics of dynamic obstacles. However, as the field has progressed and we see more and more robots using ROS deployed in human-filled spaces, more consideration must be taken with respect to dynamic obstacles such as people, carts, animals, and vehicles.

Expand Down Expand Up @@ -33,7 +33,7 @@ If time permits, you may also work to also integrate this dynamic information in
- Geometry and statistics
- Recommended: Gazebo simulation, machine learning, ROS navigation

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `Starting project <https://github.com/ros-navigation/navigation2_dynamic/>`_
- `ROS <https://www.ros.org/>`_
Expand Down
5 changes: 2 additions & 3 deletions 2021summerOfCode/projects/grid_maps.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
3. Port Grid Maps to ROS 2 and Environmental Model
==================================================

**Task description**
**Task description**
Grid Maps was created by ETH Zurich and later transferred to ANYbotics. It is a universal grid map library for mobile robotic mapping that can be used as the basis of environmental models and various forms of grid maps available in ROS 1. This library is one of the top downloaded ROS packages. Your task will be to work with the community and the mentor to port grid_maps metapackage from ROS 1 to ROS 2 and help develop the next generation environment model in ROS 2 to replace costmap_2d.

This will involve porting code from ROS 1 to ROS 2, analyzing uses of the environmental model to define an abstract interface to allow replacement of costmap_2d with grid_map, and building up the basic grid-operations for costmaps. It is not expected to complete the full new model with sensor processing over the course of the summer. If completed early, you may be able to help design a gradient model to complement your implemented costmap model using grid_maps. This will allow robots to select a gradient or a costmap model on startup.
Expand All @@ -33,7 +33,7 @@ This will involve porting code from ROS 1 to ROS 2, analyzing uses of the enviro
- Coordinate transformations and basic geometry
- Recommended: Gazebo simulation and Navigation experience

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand All @@ -44,4 +44,3 @@ This will involve porting code from ROS 1 to ROS 2, analyzing uses of the enviro
**Licensing**
- All contributions will be under the Apache 2.0 license.
- No other CLA's are required.

11 changes: 4 additions & 7 deletions 2021summerOfCode/projects/localization.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,16 @@
6. 2D/3D Localization Improvements
==================================

**Task description**
**Task description**

The Navigation2 stack uses AMCL as its primary localization engine. Over the last 10 years, essentially no updates to AMCL has been made. This is due to the code base for this implementation of an Adaptive Monte Carlo Localizer is written in embedded C, not well structured, and very sensitive to changes. A-MCL implementations have been a hallmark of localization for over a decade but this particular implementation should be deprecated.
The Navigation2 stack uses AMCL as its primary localization engine. Over the last 10 years, essentially no updates to AMCL has been made. This is due to the code base for this implementation of an Adaptive Monte Carlo Localizer is written in embedded C, not well structured, and very sensitive to changes. A-MCL implementations have been a hallmark of localization for over a decade but this particular implementation should be deprecated.

Your target involves designing and creating a new localization engine for the Nav2 stack. The requirements of this are:
- Support 2D laser scanners
- Support 3D laser scanners, where 2D case could potentially be a simplified case
- Accurately track the localization of a robot in a given occupancy grid

The reason that specific method is left open-ended is to allow for creativity, novelty, or reimplementation of a what you feel is best. We have, however, analyzed other MCL variants as being good options. This may include reimplementing an A-MCL that is designed to be modified with modular components and support sampling from a 3D lidar. Another option is a NDT-MCL using NDT 2D/3D scan matching. Other options may be proposed and discussed with mentors during the application phase. The task involves 3D as well since there is no standard 3D localizer in ROS 2 yet and more and more robust 3D SLAM libraries have emerged over the last 2 years.
The reason that specific method is left open-ended is to allow for creativity, novelty, or reimplementation of a what you feel is best. We have, however, analyzed other MCL variants as being good options. This may include reimplementing an A-MCL that is designed to be modified with modular components and support sampling from a 3D lidar. Another option is a NDT-MCL using NDT 2D/3D scan matching. Other options may be proposed and discussed with mentors during the application phase. The task involves 3D as well since there is no standard 3D localizer in ROS 2 yet and more and more robust 3D SLAM libraries have emerged over the last 2 years.

An optional but recommended feature of this work would be to also accept the inputs from multiple laser scanners. However it is not strictly required.

Expand All @@ -38,7 +38,7 @@ An optional but recommended feature of this work would be to also accept the inp
- Ability to read and implement academic works
- Recommended: Gazebo simulation and Navigation experience

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand All @@ -48,6 +48,3 @@ An optional but recommended feature of this work would be to also accept the inp
**Licensing**
- All contributions will be under the Apache 2.0 license.
- No other CLA's are required.



6 changes: 3 additions & 3 deletions 2021summerOfCode/projects/multithreading.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
4. Navigation MultiThreading
============================

**Task description**
**Task description**

The aim of this project is the significantly improve the run-time performance of Nav2 making sure to leverage the full capabilities of multi-processor core CPUs. We seek to identify areas in the Nav2 stack that could leverage multi-threading or parallel processing to speed up computations and improve overall user performance on a broad range of compute platforms.

Expand All @@ -19,7 +19,7 @@ Some examples include:

We are seeking a student interested in learning about multi-threading and parallel processing, ideally with some exposure to these concepts and libraries already, to analyze potential areas for parallel computing. Then, select the top candidates and implement them with parallel processing and benchmark the improvements to the Nav2 stack they provide.

This will be an excellent chance to apply (or obtain) C++ parallel computing skills while also learning a great deal about how to build mobile robot navigation systems -- both very valuable skillsets.
This will be an excellent chance to apply (or obtain) C++ parallel computing skills while also learning a great deal about how to build mobile robot navigation systems -- both very valuable skillsets.

**Project difficulty: Medium**

Expand All @@ -39,7 +39,7 @@ This will be an excellent chance to apply (or obtain) C++ parallel computing ski
- Working knowledge (or ability to quickly obtain) on one or more of: TBB, OpenMP, OpenCL, Cuda, and similar
- Recommended: Gazebo simulation, ROS navigation

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand Down
5 changes: 2 additions & 3 deletions 2021summerOfCode/projects/navigation_rebranding.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
5. Navigation Branding and Website
==================================

**Task description**
**Task description**

Navigation2 has made significant strides to be the best navigation system in the world. Over time, the original navigation stack in ROS has gained a reputation, fair or unfair, of being relatively limited in the types of tasks it can accomplish that are no longer true in ROS 2 Navigation2.

Expand All @@ -30,12 +30,11 @@ As such, we would like to initiate a re-branding effort to help differentiate it
- Web technologies
- Creative thinking

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `Github issue <https://github.com/ros-navigation/navigation2/issues/1485>`_
- `Navigation2 <https://docs.nav2.org/>`_

**Licensing**
- All contributions will be under the Apache 2.0 license.
- No other CLA's are required.

6 changes: 3 additions & 3 deletions 2021summerOfCode/projects/safety_node.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
5. Navigation Safety Node
=========================

**Task description**
**Task description**

The aim of this project is to create a safety watchdog node to ensure the robot is acting properly and not about to collide with an obstacle. Typical safety-rated lidars will contain "safety zones" whereas if any sensor points are located in a box around the lidar, then the lidar will send a signal to the robot to stop due to a potential collision. However, less and less people are using safety-rated lidars as consumer available lidars are dropping in cost and 3D lidars are seeing more use in mobile robotics.

Expand All @@ -14,7 +14,7 @@ Your project will be to re-create this logic at the Navigation level. While this
- Projecting the velocity forward in time ``N`` seconds, check if that velocity will result in a collision with any sensor measurements
- If not, allow the velocity command through to the base
- If it does collide, scale back the velocity such that the robot will always be at minimum ``N`` seconds from a collision
- Optionally if a flag is set, if ``M`` or more points are in defined bounding boxes around the robot, send only ``0`` commands to enact an emergency stop.
- Optionally if a flag is set, if ``M`` or more points are in defined bounding boxes around the robot, send only ``0`` commands to enact an emergency stop.

This will be an excellent chance to make mobile robots and Nav2 users significantly safer and run at higher speeds in their production or research environments. It goes a long way for functional safety for those not using safety-rated lidars which contain similar features.

Expand All @@ -36,7 +36,7 @@ This will be an excellent chance to make mobile robots and Nav2 users significan
- Geometry and statistics
- Recommended: Gazebo simulation, ROS navigation

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand Down
2 changes: 1 addition & 1 deletion 2021summerOfCode/projects/semantics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ After creating the generic representation, your project will be to create demons
- Perception, semantic information motivation, or similar.
- Recommended: Gazebo simulation, ROS navigation

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand Down
4 changes: 2 additions & 2 deletions 2021summerOfCode/projects/spinners.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
7. Reduce ROS 2 Nodes and Determinism
=====================================

**Task description**
**Task description**

This project is admittedly abstract to explain to someone unfamiliar with the inner-details of ROS 2 and its layers. If you're interested in working on this, you will become one of the few that truly understand the inner workings of it and be a very marketable skill. We do not expect anyone applying for this project to have that knowledge beforehand and we will help you learn the necessary items.

Expand All @@ -32,7 +32,7 @@ More details about this project can be supplied if interested, but the tickets l

- C++, ROS

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand Down
4 changes: 2 additions & 2 deletions 2021summerOfCode/projects/testing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
2. Advanced Navigation Testing Framework
========================================

**Task description**
**Task description**

The ROS 2 Navigation Stack has had a focus on testing and reliability as a characteristic change from ROS 1 to ROS 2. We currently have a test coverage rate of 85% and do full system simulations in Continuous Integration (CI) to test the entire navigation system with a real robot completing real navigation tasks. Your task will be to increase the testing coverage rate to 90% (or +5% from your starting) and improve on the existing system tests to represent a more realistic environment. You will then work to make sure of that environment to actively block the robot from completing its task to simulate worst-case conditions.

Expand All @@ -27,7 +27,7 @@ The ROS 2 Navigation Stack has had a focus on testing and reliability as a chara
- Gazebo, recommended experience with Gazebo plugins
- Recommended: Navigation experience

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand Down
6 changes: 3 additions & 3 deletions 2021summerOfCode/projects/twist_n_config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
8. Convert Twist to TwistStamped in Ecosystem and Run-Time Configuration
========================================================================

**Task description**
**Task description**

This project is comprised of 2 smaller projects that can be easily worked on in parallel.

Expand All @@ -18,7 +18,7 @@ Once you've created a list of places in the ecosystem where it is used, your pro

Subproject B: Run-time Reconfiguration of Parameters

In the meantime while you're waiting for PRs to be merged or blocked by reviews on converting all of the ecosystems ``cmd_vel`` use of ``Twist`` to ``TwistStamped``, your project will be to enable run-time reconfiguration of the major parameters in Nav2. In ROS 2 this is done via the parameter change event callbacks. See tickets below for a list of plugins or servers needing dynamically reconfigurable parameter support added.
In the meantime while you're waiting for PRs to be merged or blocked by reviews on converting all of the ecosystems ``cmd_vel`` use of ``Twist`` to ``TwistStamped``, your project will be to enable run-time reconfiguration of the major parameters in Nav2. In ROS 2 this is done via the parameter change event callbacks. See tickets below for a list of plugins or servers needing dynamically reconfigurable parameter support added.


**Project difficulty: Medium**
Expand All @@ -37,7 +37,7 @@ In the meantime while you're waiting for PRs to be merged or blocked by reviews
- C++, Python3
- ROS 2

**List of relevant open source software repositories and refs**
**List of relevant open source software repositories and refs**

- `ROS <https://www.ros.org/>`_
- `Gazebo Simulator <http://gazebosim.org/>`_
Expand Down
2 changes: 1 addition & 1 deletion _themes/otc_tcs_sphinx_theme/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__pycache__
_build
_build
2 changes: 1 addition & 1 deletion _themes/otc_tcs_sphinx_theme/static/tcs_theme.css
Original file line number Diff line number Diff line change
Expand Up @@ -169,4 +169,4 @@ th,td {
.header__menu_list li {
display: inline;
margin-left: 20px;
}
}
4 changes: 2 additions & 2 deletions _themes/otc_tcs_sphinx_theme/static/tcs_theme.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ for (i = 0; i < contents.length; i++) {
content.style.maxHeight = 0;
} else {
content.style.maxHeight = content.scrollHeight + "px";
}
}
});

//Add the button to the page and remove the header
Expand All @@ -47,4 +47,4 @@ for (i = 0; i < contents.length; i++) {
spanElement.id = span_id;
}
}
}
}
3 changes: 1 addition & 2 deletions about/robots.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Research Robots
.. |ACFR| image:: images/ACFR.png
:width: 100%
:align: middle
:alt: Australian Centre for Robotics
:alt: Australian Centre for Robotics
:target: https://robotics.sydney.edu.au/

.. |torch| image:: images/torch.png
Expand Down Expand Up @@ -240,4 +240,3 @@ Research Robots
:align: middle
:alt: Waratah from Monash Nova Rocer
:target: https://www.novarover.space/

Loading