Giter VIP home page Giter VIP logo

joemah / fyp-rescue-robot Goto Github PK

View Code? Open in Web Editor NEW

This project forked from maggielovedd/fyp-rescue-robot

0.0 0.0 0.0 81.48 MB

This project is my final year capstone project - A self-navigating robot for search and rescue. We build a robot in ROS and integrate several functions: self-navigation, object detection and tracking, and an Arduino board to grab simple objects. The final demostration video is shown here: https://youtu.be/2dpzOpEn4hM

CMake 3.90% Shell 0.06% C++ 86.65% Python 4.04% Objective-C 0.02% C 5.22% MATLAB 0.10%

fyp-rescue-robot's Introduction

A self-navigatng robot for search and rescue

This project is my final year capstone project - A self-navigating robot for search and rescue. We build a robot in ROS and integrate several functions: self-navigation, object detection and tracking, and an Arduino board to grab simple objects. The final demostration video is shown here: https://youtu.be/2dpzOpEn4hM or https://www.bilibili.com/video/BV1fz4y1D72Y/

Overview of the project

We bought a Nano robot for SLAM from Taobao (https://m.tb.cn/h.VIjRDe7?sm=fc07a3) and then add on other functions. Most of the packages are either provided by the seller or opensource. Our contribution is mainly integrate them to perform a simplified 'rescue mission' - autonomously find and pick up a blue block and then return it to origin.

We used gampping for mapping, move_base for navigation and rosserial for linking Arduino with ROS. We intorduces three original nodes:

  • object_detection: object detection is based on color using opencv-python (path:/object detect/src/vision.py)
  • go_to_center: for object trakcing we devided the screen into nine partitions and each correspnds to a certain velocity (path:/object detect/src/go_to_center.py)
  • path_points: record the goal(search) points in navigation and publish them when appropriate (path:/huanyu_robot_start/script/show_mark.py)

The alogrithms are simple and basic since we are also ROS beginners. The robot uses Jaston Nano board as the master board and the whole project is built in ROS Melodic.

Project flow (Demo)

1.Navigation

The user need to set initial position(0) and search points(1,2,3,...). The robot navigates to the search points in order using /move_base package and search the target along the way. When target is insight (/find_blue, x=1), it stops navigation.

2.Object detection and tracking

Robot starts to approach the target and once it's ready to pick up, it activates the arduino robot arm (/grab, x=1).

3.Grasp object

After picking up the target, it judge if the object is successfully grasped by the visual feedback (/grab_finish, x=1). If the target is detected at the designated ROI, we assume this pick up task is complete.

4.Return to origin

The robot returns to the original position (0) and put down the target (/grab, x=2).

Logic flow

Project framework

Hardware and software

Design of the workflow and individual function

Rqt

Topic and Node list

Command

Step1: Generate a map

roslaunch huanyu_robot_start Huanyu_robot_start.launch
roslaunch huanyu_robot_start gmapping_slam.launch
roslaunch turtle_teleop keyboard_teleop.launch
rviz
cd robot_ws/src/hunayu_robot_start/map >> open terminal
rosrun map_server map_saver -f map_name

Step2: Rescue robot

cd robot_ws/src/huanyu_robot_start/launch gedit navigation_slam.launch >> change map filename
roslaunch huanyu_robot_start Huanyu_robot_start.launch
roslaunch huanyu_robot_start navigation.launch
rviz
roslaunch usb_cam usb_cam-test.launch
rqt_image_view
rosrun obect_detect vision.py rosrun object detect go_to_center.py
rosrun huanyu_robot_start show_mark.py
rosrun rosserial_python serial_node.py /dev/ttyUSB0

More info

Please refer to the pdf file in report folder

fyp-rescue-robot's People

Contributors

maggielovedd 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.