• Stars
    star
    310
  • Rank 134,926 (Top 3 %)
  • Language
    C++
  • License
    BSD 3-Clause "New...
  • Created over 7 years ago
  • Updated about 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

GeRoNa (Generic Robot Navigation) is a modular robot navigation framework, that bundles path planning and path following (including obstacle detection) and manages communication between the individual modules. It is designed to be easily extensible for new tasks and robot models.

GeRoNa: Generic Robot Navigation

continuous_integration

This project contains a set of ROS packages which provide a navigation suite, including path planning on a given map, controlling of the robot to follow this path and obstacle avoidance while driving.

The packages are build with the goal to get a modular, easily extensible framework, where new modules (e.g. kinematic model of a new robot, new obstacle avoidance algorithms, etc) can be added with minimal effort.

The following video demonstrates various supported robot kinematics:

GeRoNa: Generic Robot Navigation Video

Installation

First, install the dependencies. For example, from your workspace root directory:

cd src
git clone https://github.com/cogsys-tuebingen/cslibs_path_planning
git clone https://github.com/cogsys-tuebingen/cslibs_navigation_utilities
cd ..

rosdep install --from-paths -i -r -y src

Then you can either use catkin_make, catkin_make_isolated or catkin build to build the software.

Quick Start

This is only a really quick "quick start" guide. For more detailed explanations, see below.

Send goals from some ROS node

To start the complete navigation project as well as nodes for SLAM and obstacle detection (using 2d laser), simply run

roslaunch navigation_launch navigation.launch

Now everything is set up and your node can connect to the navigate_to_goal action server and send goals.

Set goals manually using Rviz

If you want to set goal poses manually using Rviz (e.g. for testing or demonstration purposes), run

roslaunch navigation_launch rviz_controlled.launch

Select robot controller/model

By default a controller for car-like robots is used (ackermann_purepursuit). To change this, simply set the environment variable ROBOT_CONTROLLER with the name of the contproller you want to use. For example, to use the omni-drive orthexp controller:

export ROBOT_CONTROLLER=omni_orthexp
roslaunch navigation_launch navigation.launch

The controller can also be set via the ROS parameter

rosparam set path_follower/controller_type omni_orthexp

More Information

Please take a look at the example launch files for how to customize parameters in your launch files.

For more information please refer to the wiki.

More Repositories

1

mobilestereonet

Lightweight stereo matching network based on MobileNet blocks
Python
196
star
2

CBMOT

This repo contains the official code for the paper 'Score refinement for confidence-based 3D multi-object tracking'
Python
58
star
3

cslibs_ndt

This library contains fast and sparse implementations of multi-dimensional map representations using Normal Distributions Transforms.
C++
48
star
4

FourierNet

Python
45
star
5

cslibs_mapping

This library contains a plugin-based mapping framework which allows to build 2D gridmaps, 2D and 3D NDT maps and OctoMaps.
C++
42
star
6

csapex

Rapid prototyping and experimentation framework for robotics and cognitive systems based synchronous data flow and visual programming.
C++
25
star
7

deephs_fruit

Measuring the ripeness of fruit with Hyperspectral Imaging and Deep Learning
Python
24
star
8

uninas

A highly modular PyTorch framework with a focus on Neural Architecture Search (NAS).
Python
21
star
9

PAL

Reference implementation of the PAL optimizer
Python
20
star
10

prdarts

Code for our paper "Prune and Replace NAS"
Python
17
star
11

csapex_generic_obstacle_detection

Published in the proceedings of IROS 2016 with the title "Generic 3D Obstacle Detection for AGVs Using Time-of-Flight Cameras".
C++
15
star
12

cslibs_path_planning

C++
9
star
13

event_simulator_ros

Real-time event simulation with frame-based cameras (ROS wrapper)
C++
8
star
14

tristereonet

Python
8
star
15

hyve_conv

Python
5
star
16

jaco2_ros

Alternative ROS package for the Kinova Jaco2
C++
5
star
17

spindoe

Dot-pattern-based spin estimation method for table tennis balls
Python
5
star
18

cslibs_image_align

This library contains an AVX optimized implementation of the efficient second order minimization and inverse compositional image alignment methods, including two methods for outlier rejection.
C++
4
star
19

muse_armcl

ARMCL: ARM Contact point Localization via Monte Carlo Localization
C++
3
star
20

cslibs_kdl

Kinematic and Dynamic Library for Manipulators wraps Orocos KDL and trac_ik solvers. Provides an external torque observer.
C++
3
star
21

cp_eval

Python
2
star
22

crow_tiling

Python
2
star
23

separable-3D-convs-for-stereo-matching

Python
2
star
24

muse_mcl_2d

C++
2
star
25

csapex_core_plugins

This project contains basic plugins for the Algorithm Prototyper and EXperimentor (cs::APEX.)
C++
2
star
26

ai_competition

Repository for the diana chess competition. AI Lecture 21/22
Python
2
star
27

event_simulator

Real-time event simulation with frame-based cameras
C++
2
star
28

csapex_person_detection_pcl

This project contains plugins for the Algorithm Prototyper and EXperimentor (cs::APEX) which implement the PCL 3D person detection functionality. https://www.ra.cs.uni-tuebingen.de/software/apex/
C++
2
star
29

cslibs_indexed_storage

C++
1
star
30

Distilling-Stereo-Networks

1
star
31

muse_smc

C++
1
star
32

hsi_benchmark

DeepHS Benchmark: Bridging the Gap between HSI Applications through Comprehensive Dataset and Pretraining
Python
1
star