canersu / indoor_service_robot

Turtlebot driven indoor pick up and place robot based on Adaptive Monte Carlo Localization and Gmapping algorithms.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

indoor_service_robot

This repo contains a simulation environment of a turtlebot and a U-shape office. A map is created under src/map/ directory by the help of discovering the environment with gmapping slam algorithm. After a map is extracted, turtlebot localize itself with a localization algorithm(amcl). add_marker node adds a marker on Rviz environment given coordinates at add_markers package. Then pick_objects package dives in and turtlebot moves through to marker. After robot reaches first coordinates, marker is removed and wait 5 seconds. Finally robot moves to drop off zone and while odom topic meets the goal coordinates, marker is shown up on Rviz.

Directory Structure

    Indoor Service Robot
    ├──                                # Official ROS packages
    |
    ├── slam_gmapping                  # gmapping_demo.launch file                   
    │   ├── gmapping
    │   ├── ...
    ├── turtlebot                      # keyboard_teleop.launch file
    │   ├── turtlebot_teleop
    │   ├── ...
    ├── turtlebot_interactions         # view_navigation.launch file      
    │   ├── turtlebot_rviz_launchers
    │   ├── ...
    ├── turtlebot_simulator            # turtlebot_world.launch file 
    │   ├── turtlebot_gazebo
    │   ├── ...
    ├──                                # Your packages and direcotries
    |
    ├── map                          # map files
    │   ├── ...
    ├── scripts                   # shell scripts files
    │   ├── ...
    ├──rvizConfig                      # rviz configuration files
    │   ├── ...
    ├──pick_objects                    # pick_objects C++ node
    │   ├── src/pick_objects.cpp
    │   ├── ...
    ├──add_markers                     # add_marker C++ node
    │   ├── src/add_markers.cpp
    │   ├── ...
    └──

Launching the scripts

Pre-ops

$ cd /home/user/ros_catkin_ws_dir/src/
$ git clone https://github.com/canersu/ball_chaser.git
$ cd /home/user/ros_catkin_ws_dir/
$ catkin_make

launch.sh

The script below brings Gazebo, roscore and Rviz environments.

$ cd /home/user/ros_catkin_ws_dir/src/ && ./launch.sh

test_slam.sh

The script below launches Gazebo, Turtlebot, keyboard_teleop and Rviz packages. It leads to create the map of building by navigating Turtlebot using keyboard commands.

$ cd /home/user/ros_catkin_ws_dir/src/ && ./test_slam.sh

test_navigation.sh

The script below brings Gazebo, Turtlebot, amcl and Rviz packages. It shows the robot's position and orientation.

$ cd /home/user/ros_catkin_ws_dir/src/ && ./test_navigation.sh

pick_objects.sh

The script below brings Gazebo, Turtlebot, amcl, Rviz and pick_objects packages. It leads the robot to specified coordinates in source file.

$ cd /home/user/ros_catkin_ws_dir/src/ && ./pick_objects.sh

add_marker.sh

The script below brings Gazebo, Turtlebot, amcl, Rviz and add_markers packages. By launching this script, set of actions will occur in order: A marker is spawned in first coordinate for 5 seconds, disappears for 5 seconds and spawns in goal coordinates.

$ cd /home/user/ros_catkin_ws_dir/src/ && ./add_marker.sh

home_service.sh

The script below brings Gazebo, Turtlebot, amcl, Rviz, pick_objects and add_markers packages. By launching this script, set of actions will occur in order: A marker is spawned in first coordinate, robot moves toward the marker, marker disappears and wait for 5 seconds, robot moves through goal position, marker spawns as the robot reaches goal coordinates.

$ cd /home/user/ros_catkin_ws_dir/src/ && ./home_service.sh

About

Turtlebot driven indoor pick up and place robot based on Adaptive Monte Carlo Localization and Gmapping algorithms.


Languages

Language:C++ 53.9%Language:CMake 26.6%Language:Python 11.5%Language:EmberScript 4.0%Language:Shell 2.4%Language:MATLAB 1.2%Language:Pawn 0.3%