jb69 / AutonomousLawnMowerROS

Repository for ROS packages for the autonomous lawn mower

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Autonomous Lawn Mower - ROS

ROS Stack for the self-designed autonomous lawn mower of the University of Luebeck. We aim to design a fully autonomous lawn mower equipped with chlorophyll sensors developed at our Institute. We show that intelligent behavior with only limited sensing is possible.

Requirements

  • ROS Kinetic
  • Gazebo V7.0 (comes with the full-Desktop Version of ROS Kinetic)
  • Eigen3

Packages

  • simulation_environment: Simulation Environment Package based on Gazebo for testing purposes
  • interfaces: Package for interfaces between ROS and the sensors and actuators of the real robot, e.g. the chlorophyll sensors, the IMU, the motor
  • localization: Package with localization algorithm such as a particle or a kalman filter
  • mapping: Package for the mapping algorithm, where based on a wall following controller a pose graph is generated which is updated due to detected loop closures
  • control: Control Package with different control algorithm, such as a PID Controller or a Wall Follower

How to get started

  • Start by creating a catkin workspace folder and downloading the git repository

    mkdir -p ~/mower_ws/src
    cd ~/mower_ws/src
    git clone https://github.com/NRottmann/AutonomousLawnMowerROS
  • Compile the catkin workspace

    cd ~/mower_ws
    catkin_make
  • Run the mapping algorithm by first sourcing your packages and then starting the launch script

    source devel/setup.bash
    roslaunch mapping mapping_simulation.launch
  • It should open then a Gazebo environment which shows the robot cycling along the boundary of the closed environment, similar to the picture below

Setup of the simulated Lawn Mower

The lawn mower robot properties are defined in the .yaml-file

AutonomousLawnMowerROS/simulation_environment/config/props.yaml

The properties define the structure of the robot as defined in the Figure below.

About

Repository for ROS packages for the autonomous lawn mower


Languages

Language:C++ 42.7%Language:MATLAB 27.3%Language:Python 24.8%Language:CMake 3.0%Language:Java 2.2%