person_following_bot

Algorithm for user tracking and following (turtle bot control)

https://github.com/ivlabs/person_following_bot

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: researchgate.net, springer.com
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.5%) to scientific vocabulary

Keywords

convolutional-neural-networks deep-learning depth-image hacktoberfest machine-learning person-following-robot robotics ros
Last synced: 6 months ago · JSON representation ·

Repository

Algorithm for user tracking and following (turtle bot control)

Basic Info
  • Host: GitHub
  • Owner: IvLabs
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.14 MB
Statistics
  • Stars: 114
  • Watchers: 6
  • Forks: 22
  • Open Issues: 6
  • Releases: 0
Topics
convolutional-neural-networks deep-learning depth-image hacktoberfest machine-learning person-following-robot robotics ros
Created about 7 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Citation

README.md

Person Following Robot

GitHub license GitHub stars

This repository aims to make an algoirthm to follow a person autonomously. This algorithm has been successfully tested on a TurtleBot2. Hand gesture for stopping/starting has also added for easier target acquisition. Attempts have been made to reduce the effect of occlusion.

If you are using this repository please cite our paper and star our repo. You can also request the paper on Research Gate or contact authors (typically reply within a day)

Incase you find any problem with the code/repo do let us know by raising an issue.

Table of contents

Working Demo

YouTube Link

Results

Abstract

Helper robots are widely used in various situations, for ex-ample at airports and railway stations. This paper presents a pipeline to multiplex the tracking and detection of a person in dynamic environments using a stereo camera in real-time. Recent developments in object detection using ConvNets have led to robust person detection. These deep convolutional neural networks generally fail to run with high frames rates on devices with less computing power. Trackers are also used to retain the identity of the target person as well as impose fewer constraints on hardware. A concept of multiplexed detection and tracking is used which makes the pipeline faster by many folds. TurtleBot2 is used for prototyping the robot and tuning of the motion controller. Robot Operating System (ROS) is used to set up communication be-tween various nodes of the pipeline. The results found were comparable to current state-of-the-art person followers and can be readily used in day to day life.

Project Pipeline

The complete pipeline for the person following robot can be understood using the given flow chart.

Instructions

Setting up remote server for faster processing:

Host Machine (machine running roscore)

  • export ROS_MASTER_URI=http://192.168.0.113:11311 (replace with host machine ip)
  • export ROS_IP=192.168.0.123(replace with host machine ip)
  • export ROS_HOSTNAME=192.168.0.123 (replace with host machine ip)

Remote Machine

  • export ROS_MASTER_URI=http://192.168.0.113:11311(replace with host machine ip)
  • export ROS_IP=192.168.0.123 (replace with local machine ip)
  • export ROS_HOSTNAME=192.168.0.123 (replace with host machine ip)

Run the tracking code

  • First install all requirements using pip3 install requirements.txt. Hardware requirements can be found here
  • Download Yolov3 weight file from here and place it inside the cloned repo.
  • Run the follow.py code to see the output. (Bash command: python3 follow.py)

Dependencies

Hardware

Its recommended to have a Nvidia GPU for faster processing - TurtleBot 2 platform - Intel Realsense Depth Camera - PC/Onboard Computer(Jetson or )

Software

  • Python 3.6+
  • OpenCV-python: link
  • PyTorch: link
  • pyrealsense2: link
  • Robot Operating System (ROS): Link

Citations

If you find our research useful and want to use it, please cite our paper at

@InProceedings{10.1007/978-981-15-3639-7_98, author="Agrawal, Khush and Lal, Rohit", editor="Kalamkar, Vilas R. and Monkova, Katarina", title="Person Following Mobile Robot Using Multiplexed Detection and Tracking", booktitle="Advances in Mechanical Engineering", year="2021", publisher="Springer Singapore", address="Singapore", pages="815--822", isbn="978-981-15-3639-7" }

Contributors

Owner

  • Name: IvLabs
  • Login: IvLabs
  • Kind: organization
  • Email: ivlabs@students.vnit.ac.in
  • Location: IvLabs, Visvesvaraya National Institute of Technology, Nagpur, India

Robotics and AI community of VNIT

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "AGRAWAL"
  given-names: "KHUSH"
- family-names: "LAL"
  given-names: "ROHIT"
title: "person_following_bot"
version: 1.0.0
doi: 10.1007/978-981-15-3639-7_98
url: "https://github.com/IvLabs/person_following_bot"

GitHub Events

Total
  • Watch event: 16
  • Fork event: 2
Last Year
  • Watch event: 16
  • Fork event: 2

Dependencies

requirements.txt pypi
  • Pillow ==6.1.0
  • PyYAML ==5.1.2
  • catkin-pkg ==0.4.13
  • cycler ==0.10.0
  • docutils ==0.15.2
  • imutils ==0.5.3
  • kiwisolver ==1.1.0
  • matplotlib ==3.1.1
  • numpy ==1.17.2
  • opencv-contrib-python ==4.1.1.26
  • pandas ==0.25.1
  • pkg-resources ==0.0.0
  • pyparsing ==2.4.2
  • pyrealsense2 ==2.27.0.1067
  • python-dateutil ==2.8.0
  • pytz ==2019.2
  • rospkg ==1.1.10
  • scipy ==1.3.1
  • six ==1.12.0
  • torch ==1.2.0
  • torchvision ==0.4.0