Git Product home page Git Product logo

multi-agent-robot-test-platform's Introduction

A testing platform using LEGO Mindstorms kits

A testing platform for Differential drive robots that is built upon the LEGO Mindstorms kits. The software is using the open source ROS framework. The roscore runs on the Central PC and all the robots have nodes running on them which allows for coordination among the robots. An aerial camera is connected to the central PC which locates and tracks all the robots using color markers. Each robot uses odometry along with the camera estimate to get an accurate localization data.

ROS Packages used:

  • ROSSerial
  • teleop_twist_keyboard/joystick
  • ev3-ros

Bot Description:

Each robot is a LEGO Mindstorms EV3 standard differential drive chassis with an Ultrasonic sensor mounted in front.

  • Width: 15cm
  • Length: 23cm
  • Height: 3cm (wheel center)

Using the testbed:

On the central PC:

  1. roscore

  2. rosrun hawk_eye contour

  3. roslaunch rosserial_server socket_node.launch

  4. rosrun ev3_navigation wanderer.py => to be replaced with your algorithm of interest

  5. rosrun rviz rviz => Required if you want to visualize the data

On each EV3:

  1. ./diffdrive_ultrasonic <IP-address of central PC> <left_motor_port> <right_motor_port> <ultrasonic_sensor_port>

Other tools:

  • contour_standalone, present inside hawk_eye package, is useful in visually checking the various stages of processing. Helps in debugging and to ensure that each of the strips are getting detected properly.
  • contour_check <color_id> is useful in calibrating the ranges for the different colours. The colour_ids are 1,2,3,4 corresponding to Red, Blue, Yellow and Green.
  • roslaunch ev3_navigation move_base.launch => A very crude implementation which will have to be improved.
  • ev3_navigation/mapper.py => an example implementation for tracking the robot movement

Extending the testbed:

  • The readme file in the ev3-ros repository gives instructions on how to start writing a C program for controlling the LEGO robot with ROS. There are a number of programs but the diffdrive_ultrasonic.cpp file is the one used in the example program.
  • The vision based localization is performed using the hawk_eye module. It uses standard OpenCV function calls. Possible extensions include tracking and an easier UI for calibration, arena detection and for removing the background cover.
  • The ev3-ros package can be extended to implement ROS Services which can implement standard behaviours like move forward for x meters or turn by theta radians.

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.