All Projects → sunsided → bht-ams-playerstage

sunsided / bht-ams-playerstage

Licence: other
Player/Stage SLAM

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to bht-ams-playerstage

Webots
Webots Robot Simulator
Stars: ✭ 1,324 (+3682.86%)
Mutual labels:  robotics, simulation, autonomous-vehicles
Probabilistic robotics
solution of exercises of the book "probabilistic robotics"
Stars: ✭ 734 (+1997.14%)
Mutual labels:  robotics, slam, autonomous-vehicles
Autonomousdrivingcookbook
Scenarios, tutorials and demos for Autonomous Driving
Stars: ✭ 1,939 (+5440%)
Mutual labels:  robotics, simulation, autonomous-vehicles
Awesome Robotics Libraries
😎 A curated list of robotics libraries and software
Stars: ✭ 1,159 (+3211.43%)
Mutual labels:  robotics, simulation, slam
Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+39711.43%)
Mutual labels:  robotics, slam, autonomous-vehicles
Minisam
A general and flexible factor graph non-linear least square optimization framework
Stars: ✭ 246 (+602.86%)
Mutual labels:  robotics, slam
Iros2020 Paper List
IROS2020 paperlist by paopaorobot
Stars: ✭ 247 (+605.71%)
Mutual labels:  robotics, slam
Awesome-Self-Driving
an awesome list of self-driving algorithms, software, tools
Stars: ✭ 74 (+111.43%)
Mutual labels:  slam, autonomous-vehicles
Model-Predictive-Control
C++ implementation of Model Predictive Control(MPC)
Stars: ✭ 51 (+45.71%)
Mutual labels:  control-systems, autonomous-vehicles
Iros2019 Paper List
IROS2019 paper list from PaopaoRobot
Stars: ✭ 214 (+511.43%)
Mutual labels:  robotics, slam
JuliaAutonomy
Julia sample codes for Autonomy, Robotics and Self-Driving Algorithms.
Stars: ✭ 21 (-40%)
Mutual labels:  slam, autonomous-vehicles
Tonic
An autonomous vehicle written in python
Stars: ✭ 85 (+142.86%)
Mutual labels:  slam, autonomous-vehicles
Awesome Real World Rl
Great resources for making Reinforcement Learning work in Real Life situations. Papers,projects and more.
Stars: ✭ 234 (+568.57%)
Mutual labels:  robotics, simulation
Iros2018 Slam Papers
IROS2018 SLAM papers (ref from PaoPaoRobot)
Stars: ✭ 224 (+540%)
Mutual labels:  robotics, slam
Metta
An information security preparedness tool to do adversarial simulation.
Stars: ✭ 867 (+2377.14%)
Mutual labels:  vagrant, simulation
Iris lama
LaMa - A Localization and Mapping library
Stars: ✭ 217 (+520%)
Mutual labels:  robotics, slam
realsense explorer bot
Autonomous ground exploration mobile robot which has 3-DOF manipulator with Intel Realsense D435i mounted on a Tracked skid-steer drive mobile robot. The robot is capable of mapping spaces, exploration through RRT, SLAM and 3D pose estimation of objects around it. This is an custom robot with self built URDF model.The Robot uses ROS's navigation…
Stars: ✭ 61 (+74.29%)
Mutual labels:  slam, autonomous-vehicles
direct lidar odometry
Direct LiDAR Odometry: Fast Localization with Dense Point Clouds
Stars: ✭ 202 (+477.14%)
Mutual labels:  robotics, slam
OPVO
Sample code of BMVC 2017 paper: "Visual Odometry with Drift-Free Rotation Estimation Using Indoor Scene Regularities"
Stars: ✭ 40 (+14.29%)
Mutual labels:  robotics, slam
LibDS
Library for controling FRC robots
Stars: ✭ 29 (-17.14%)
Mutual labels:  robotics, control-systems

AMS exploration with Player/Stage

A homework solution for the Autonomous Mobile Systems class at Beuth Hochschule für Technik, Berlin with Prof. Dr. Volker Sommer. Runs a simulation of a VolksBot with (error-free) laser rangers.

How to compile the code

To compile and run the code, the following requirements must be fulfilled:

  • OpenCV (libopencv-dev)
  • OpenCV highgui (libopencv-highgui-dev)
  • Player ~ 3.0.2
  • Stage ~ 4.0.0

The easiest way to compile and start the code is to use Vagrant. After installing, simply run

$ vagrant up

in the project directory to bootstrap a virtual machine that is preconfigured with Player/Stage. The VM will be downloaded if it doesn't already exist your local machine (which is likely if you run the command the first time).

Next, connect to the VM using:

$ vagrant ssh

To build the project, do the following:

$ cd /vagrant
$ make

To power down the VM, issue:

$ vagrant halt

You can then vagrant up it again later. To permanently remove it, type:

$ vagrant destroy
$ vagrant box remove sunside/playerstage

which will delete the VM, as well as the base image.

How to run the code

To run the code, you basically

  • start player pstlab.cfg
  • then start ./simple localhost

Note that player and ./simple both require an X11 display. On Linux, you may try passing your $DISPLAY environment when connecting via ssh. The easiest way is to connect to a terminal with X forwarding enabled, using

vagrant ssh -- -X xterm

and then, within the VM, type

cd /vagrant
make
player pstlab.cfg &
./simple localhost
Integrated VNC with browser frontend

For convenience, a dummy Xorg with fluxbox, as well as a noVNC server is started when the VM boots up. In your browser, you may go to http://localhost:6080/vnc.html to connect. Leave the password box empty.

Should you close the Xterm window, try right-clicking the desktop.

About the project

Approach to exploration

This implements a simple approach using meshed P controllers for forward and angular velocity in dependance of the distance to the next obstacle.

You can watch a demo video here.

Exploration Demo Video

Stage / robot setup

The robot is modeled without slippage and measurement errors and sports a differential drive with v-omega control.

Stage

Robot Map window

The Robot Map shows the map created by the robot, as well as the past trajectory. The yellow vectors points at the nearest unexplored boundary, using a Manhattan distance measure without paying attention to obstacles. As such, it is measured in air distance, which might be used as a heuristic for A* later on.

Map

Frontiers and algorithm termination

This program implements a frontier-based approach to exploration. A queue-linear flood fill algorithm is used to determine knowledge boundaries (white), i.e. areas that have not been scanned by the robot. The exploration algorithm terminates if no frontiers are left, meaning that the whole terrain has been explored.

Frontiers

More on frontier-based exploration can be found in e.g. A Frontier-Based Approach for Autonomous Exploration by Brian Yamauchi (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.121.2826)

@INPROCEEDINGS{Yamauchi97afrontier-based,
    author = {Brian Yamauchi},
    title = {A frontier-based approach for autonomous exploration},
    booktitle = {In Proceedings of the IEEE International Symposium on Computational Intelligence, Robotics and Automation},
    year = {1997},
    pages = {146--151}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].