Coder Social home page Coder Social logo

kennydukor / home-service-robot Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 44.39 MB

A ROS project that simulates a Turtlebot performing a task in a Gazebo environment, while utilizing Simultaneous Localisation And Mapping (SLAM).

CMake 49.60% Shell 15.34% C++ 35.05%
robotics slam-gmapping

home-service-robot's Introduction

Home-Service-Robot

Udacity Robotics Software Engineer Nanodegree Program [Project 5]

Related Projects

Project Goals

The goal of this project was to design a robot's environment in gazebo and program the home-service robot that will map it's environment and autonomously navigate to pre-specified pickup and drop-off locations. For this one needed to:

  • Design robot's environment with the Building Editor in Gazebo.
  • Teleoperate the robot and manually test SLAM.
  • Use the ROS navigation stack and manually command the robot using the 2D Nav Goal arrow in rviz to move to 2 different desired positions and orientations.
  • Write a pick_objects node that commands the robot to move to the desired pickup and drop off zones.
  • Write an add_markers node that subscribes to the robot odometry and publishes pick-up and drop-off markers to rviz.
  • modify pick_objects node and add_markers node to establish communication between them, to complete desired home service robot implementation

Prerequisites

(since I have not tested on multiple platforms, and versions, I am listing only the configuration I used)

Clone and Build

Since the folder presented here comprises only of ROS package, one needs to first create a catkin workspace and initialize it. Also, note that the official ROS packaged are already included here, but their dependencies need to be installed; steps for this are given below.

Within your home directory, execute the following:

mkdir -p catkin_ws/src
$ cd catkin_ws/src
$ catkin_init_workspace

Within ~/catkin_ws/src/ download or clone folders of this repository:

$ cd catkin_ws/src/
$ git clone https://github.com/kennydukor/Home-Service-Robot.git

Install dependencies:

$ rosdep -i install gmapping -y
$ rosdep -i install turtlebot_teleop -y
$ rosdep -i install turtlebot_rviz_launchers -y
$ rosdep -i install turtlebot_gazebo -y

NOTE: If any of the official packages give error, I recommed you delete associated folder and clone with src folder using appropriate line from here:

$ git clone https://github.com/ros-perception/slam_gmapping.git  
$ git clone https://github.com/turtlebot/turtlebot.git  
$ git clone https://github.com/turtlebot/turtlebot_interactions.git  
$ git clone https://github.com/turtlebot/turtlebot_simulator.git

Go back to catkin workspace and build it

$ cd catkin_ws/
$ catkin_make

Launch specific application and visualize

From the catkin_ws/ directory run the following commands:

Testing SLAM

$ ./src/script/test_slam.sh

Testing Navigation

$ ./src/script/test_navigation.sh

Pick_objects

$ ./src/script/pick_objects.sh

Add Markers

$ ./src/script/add_marker.sh

Home Service

$ ./src/script/home_service.sh

home-service-robot's People

Contributors

kennydukor avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.