-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1 from urastogi885/phase1
Readme and UML diagrams checked and are correct. Verified AIP Process and understood Sprint Planning Notes.
- Loading branch information
Showing
6 changed files
with
193 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
dist: xenial | ||
sudo: required | ||
cache: apt | ||
language: generic | ||
|
||
# Configuration variables. All variables are global | ||
env: | ||
global: | ||
- ROS_DISTRO=kinetic | ||
- ROS_CI_DESKTOP="`lsb_release -cs`" # e.g. [precise|trusty|...] | ||
- CI_SOURCE_PATH=$(pwd) | ||
- ROSINSTALL_FILE=$CI_SOURCE_PATH/dependencies.rosinstall | ||
- CATKIN_OPTIONS=$CI_SOURCE_PATH/catkin.options | ||
- ROS_PARALLEL_JOBS='-j8 -l6' | ||
|
||
################################################################################ | ||
|
||
# Install system dependencies, namely a very barebones ROS setup. | ||
before_install: | ||
- sudo sh -c "echo \"deb http://packages.ros.org/ros/ubuntu $ROS_CI_DESKTOP main\" > /etc/apt/sources.list.d/ros-latest.list" | ||
- sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 | ||
- sudo apt-get update -qq | ||
- sudo apt-get install dpkg | ||
- sudo apt-get install -y --allow-unauthenticated python-catkin-pkg python-rosdep python-wstool | ||
# Add opencv support in ROS | ||
#- sudo apt-get install libopencv-dev | ||
# install lcov to generate code coverage data | ||
- sudo apt-get install -y lcov | ||
# Needed to install coveralls-lcov to upload coverage information generated by LCOV to coveralls.io | ||
- gem install coveralls-lcov | ||
# Install ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools. | ||
- sudo apt-get install -y --allow-unauthenticated ros-$ROS_DISTRO-ros-base | ||
- source /opt/ros/$ROS_DISTRO/setup.bash | ||
# Prepare rosdep to install dependencies. | ||
- sudo rosdep init | ||
- rosdep update | ||
# Install | ||
|
||
|
||
# Create a catkin workspace with the package under integration. | ||
install: | ||
# Create a catkin workspace | ||
- mkdir -p ~/catkin_ws/src | ||
- cd ~/catkin_ws/src | ||
- catkin_init_workspace | ||
# Create the devel/setup.bash (run catkin_make with an empty workspace) and | ||
# source it to set the path variables. | ||
- cd ~/catkin_ws | ||
- catkin_make | ||
- source devel/setup.bash | ||
# Add the package under integration to the workspace using a symlink. | ||
- cd ~/catkin_ws/src | ||
- ln -s $CI_SOURCE_PATH . | ||
|
||
# Install all dependencies, using wstool first and rosdep second. | ||
# wstool looks for a ROSINSTALL_FILE defined in the environment variables. | ||
before_script: | ||
# source dependencies: install using wstool. | ||
- cd ~/catkin_ws/src | ||
- wstool init | ||
- if [[ -f $ROSINSTALL_FILE ]] ; then wstool merge $ROSINSTALL_FILE ; fi | ||
- wstool up | ||
# package depdencies: install using rosdep. | ||
- cd ~/catkin_ws | ||
- rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO | ||
|
||
# Compile and test (mark the build as failed if any step fails). If the | ||
# CATKIN_OPTIONS file exists, use it as an argument to catkin_make, for example | ||
# to blacklist certain packages. | ||
# | ||
# NOTE on testing: `catkin_make run_tests` will show the output of the tests | ||
# (gtest, nosetest, etc..) but always returns 0 (success) even if a test | ||
# fails. Running `catkin_test_results` aggregates all the results and returns | ||
# non-zero when a test fails (which notifies Travis the build failed). | ||
script: | ||
- source /opt/ros/$ROS_DISTRO/setup.bash | ||
- cd ~/catkin_ws | ||
- catkin_make | ||
# Run the tests, ensuring the path is set correctly. | ||
- source devel/setup.bash | ||
- catkin_make run_tests && catkin_test_results | ||
|
||
after_success: | ||
- cd ~/catkin_ws/build | ||
- lcov --directory . --capture --output-file coverage.info | ||
- lcov --remove coverage.info '/opt/*' '/usr/*' '*/devel/*' '*test_*' '*_test*' --output-file coverage.info | ||
- lcov --list coverage.info | ||
- coveralls-lcov coverage.info | ||
|
||
notifications: | ||
email: false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
# Project X | ||
[![Build Status](https://travis-ci.org/urastogi885/Supermarket-Cleaning-Robot.svg?branch=master)](https://travis-ci.org/urastogi885/Supermarket-Cleaning-Robot) | ||
[![Coverage Status](https://coveralls.io/repos/github/urastogi885/Supermarket-Cleaning-Robot/badge.svg?branch=master)](https://coveralls.io/github/urastogi885/Supermarket-Cleaning-Robot?branch=master) | ||
[![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://github.com/urastogi885/Supermarket-Cleaning-Robot/blob/master/LICENSE) | ||
--- | ||
|
||
## Overview | ||
|
||
According to a study done in Morrisville, North Carolina, the Walmart Supercenter located in the town | ||
receives about 10,000 people per day. Unquestionably, the actual foot traffic depends on a variety of | ||
factors, but we cannot disregard that supermarkets are one of the busiest places in a town. The more the | ||
number of people, the more likely it is for the store to become dirty. It always begets frustration among | ||
workers to maintain the store at its most pristine level. Our supermarket cleaning robot can remove the | ||
stress of cleanliness by performing the tasks of an employee. | ||
|
||
Currently, most of the robots are only capable of executing a single task. It turns out to be expensive for | ||
a store owner to buy a robot that can perform a single task. We propose to develop a robot that can | ||
perform various maintenance tasks. The robot will be able to maintain cleanliness as well as make | ||
supermarkets autonomous. The robot will able to clean aisles, stack up empty rows, and collect fallen | ||
items. | ||
|
||
For prototyping, we are focusing on only one task that is identifying and collecting the items using the | ||
robot. The robot will roam in a supermarket like environment in Gazebo and identify the type of items | ||
that it needs to collect. It identifies the item using a camera, mounted on its base, and moves towards the | ||
fallen item. Here, we are considering objects such as food, soft drinks cans and it is assumed that the robot | ||
will already know the type of item that it needs to pick. As the robot reaches the location of the item and | ||
touches it, the item will vanish depicting that the item is collected using a suction cup. The robot will | ||
traverse randomly in the supermarket and keep on collecting a can. We are focusing on the detection of | ||
cans using the OpenCV to improve the processing of the detection feature. In addition to this, the robot | ||
has an obstacle avoidance feature that is used to prevent the robot from colliding from obstacles such as | ||
humans, uninteresting items and walls/shelves. | ||
|
||
<p align="center"> | ||
<img src="https://github.com/urastogi885/Supermarket-Cleaning-Robot/blob/phase1/readme_images/initial_proposal_setup.png"> | ||
<b>Figure 1 - Robot approaching towards the cans lying on the ground to collect them</b> | ||
</p> | ||
|
||
|
||
## Team Members | ||
|
||
- [Umang Rastogi](https://github.com/urastogi885) - Pursuing masters in Robotics at University of Maryland | B.Tech in Electronics & Communication Engineering | ||
- [Naman Gupta](https://github.com/namangupta98) - Grad Student at University of Maryland, pursuing M.Eng. in Robotics. | ||
|
||
## AIP and Sprint Documents | ||
|
||
- Click on this [*link*](https://docs.google.com/spreadsheets/d/1k6e7rM7TTvE5w2fQ_wuSDY_giNWaVuCHeImB6D53lT4/edit?usp=sharing) | ||
to access our AIP Google Sheet. | ||
- Click on this [*link*](https://docs.google.com/document/d/1iQZUstgoCCvtSvlcv1_xpxGW6ntUbkOpcgMuvrSP_ms/edit?usp=sharing) | ||
to access our Sprint notes document. | ||
|
||
## Accessing the UML Diagrams | ||
|
||
- Open the *UML* directory of the project. | ||
- Access UML diagrams from the *initial* folder located within *UML* sub-directory. | ||
|
||
## Dependencies | ||
|
||
- Ubuntu 16.04 | ||
- ROS Kinetic | ||
- Gazebo | ||
- Turtlebot Packages | ||
|
||
## Install Dependences | ||
|
||
- This project was developed using ROS Kinetic. | ||
- It is highly recommended that ROS Kinetic is properly installed on your system before the use of this project. | ||
- Follow the instructions on the [*ROS kinetic install tutorial page*](http://wiki.ros.org/kinetic/Installation/Ubuntu) | ||
to install ***Full-Desktop Version*** of ROS Kinetic. | ||
- The full-version would help you install *Gazebo* as well. If you have ROS Kinetic pre-installed on your machine, use | ||
the following [*link*](http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install) to just install *Gazebo* on your | ||
machine. | ||
- Ensure successful installation by running *Gazebo* via your terminal window: | ||
```shell script | ||
gazebo | ||
``` | ||
- An empty window of *Gazebo Simulator* should be launched. | ||
- Make sure that turtlebot packages have been installed on your machine using the following commands: | ||
```shell script | ||
roslaunch turtlebot_gazebo turtlebot_world.launch | ||
``` | ||
- A window of *Gazebo Simulator* with various items and a turtlebot should be launched. | ||
- If an error pops up upo launching the turtlebot world, then install the necessary turtlebot packages: | ||
```shell script | ||
sudo apt install ros-kinetic-turtlebot-gazebo ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-rviz-launchers | ||
``` | ||
- Create your ROS workspace by following instructions on the [*create ROS workspace tutortial page*](http://wiki.ros.org/catkin/Tutorials/create_a_workspace). | ||
|
||
## Build | ||
|
||
- ***Ignore this section*** as nothing to be built has been added yet. | ||
- Even if you run the following, it will not impact your existing workspace. | ||
- Switch to your *src* sub-directory of your ROS workspace to clone this repository. | ||
```shell script | ||
<ROS Workspace>/src | ||
``` | ||
- Run the following commands to clone and build this project: | ||
```shell script | ||
git clone --recursive https://github.com/urastogi885/obstacle_avoidance_simulation | ||
cd .. | ||
catkin_make | ||
``` |
Binary file not shown.
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.