Category Archives: Robotics

Automatic Garbage Segregation by Machine Learning

Sharing work in progress on the automatic garbage segregation system. This operates as an independent unit in addition to Ramudorid ( a road cleaning robot).

The system deals with incorporating image and edge detection algorithm over incoming video media to classify and identify items into one of the following categories

  1. Recyclable waste – paper , cardboard , leaves , sticks ..
  2. Non – Recyclable waste – plastic , bottles , wrappers ..
  3. E waste – ICs , computer peripherals , home appliances ..
  4. Dust and Sand
  5. Unidentified / unclassified objects

Components :

  1. High definition camera
  2. God lighting condition
  3. Grid marked conveyor belt
  4. image processing algorithm Open CV
  5. Object identification algorithm – AI
  6. feedback from manually classified unidentified objects – Machine learning

Garbage Segrigation system

Challenges:

  1. Difficulty in identification if the objects are broken beyond identification or molted together with other garbage
  2. Very minute particles such as glitter and thermocol balls cannot be segregated in this fashion

Tools and techniques :

1.Media Streaming on vp8

Using raspi cam and webrtc peer to streaming network over v8 video codec we achieve high frame rate to capture and send images for analysis by the backend analytics engine.

2. Robot arm for lifting  using arduino

-tbd-

robotics-lifting-arm-with-bi-directional-flex-sensors.jpg

flex / EMG sensors

string controlled by servos

change position on flexing or bending

 

3. Apache spark ML

Machine learning algorithms can be broken down into supervised and unsupervised learning . Supervised learning has linear of logistic regression and classification is form of Naive Bayes probabilistic model , support vector machines model ( SVM ) or Random Decision Forest . Whereas unsupervised learning works on dimensionality reduction such as principle components analysis or Single Value Decomposition. Often unsupervised learning is using clustering K means algorithms.

From among the 3 types of ML ( clustering , classifications and collaborative filtering ) , we are using classification approach to  identify every object’s characteristics on conveyer belt   .

As part of the implementation decision tress are created for evaluation using branches and nodes.

Snippets from programs :

step 1 : create environment for Spark , preferably 8GB ram Ubuntu

step 2 : Imports for Scala program

org.apache.spark._
org.apache.spark.rdd.RDD
org.apache.spark.mllib.regression.LabeledPoint
org.apache.spark.mllib.linalg.Vectors
org.apache.spark.mllib.tree.DecisionTree
org.apache.spark.mllib.tree.model.DecisionTreeModel
org.apache.spark.mllib.util.MLUtils

step 3 : Load the data from identified objects into for the  robotic arm to learn its coordinated , pick it up and put it in one of the bins . For this use the collected data to insert into RDD class.

Step 4 : Extract features to build a classifier model -> RDD containing feature array

Step 5 :  RDD containing features array – > RDD containing labelled points

Step 6 : train the model using the DecisionTree.trainClassifier method which returns a DecisionTreeModel

Parameters : MaxDepth , maxBisn , maxImpurity ,

var categoricalFeaturesInfo = MapInt, Int

val model = DecisionTree.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo, impurity, maxDepth, maxBins)

model.toDebugString // prints out the decision tree

Step 7 : Use model.predict to test the data

Predicted value for a node param: predict predicted value param: prob probability of the label (classification only)

Reference : https://spark.apache.org/docs/latest/api/java/index.html

 

 

 

 

Advertisements

RamuDroid

Bot to clean roads and outdoors for a better and cleaner India. It lifts up small objects like plastic cups,wrappers,leaves etc.

ramudroid image.png

The droid also provides real-time camera stream and detects obstruction to re-route itself. It can communicates over GSM ,wifi and BLE . It can also be remote navigated via browsers or android.

Working :

stages of ramudroid

  1. Litter comes between rotating brushes
  2. Litter is picked by brushes and pushed upwards  
  3. Brushes push it towards the tray

Is is inspired by Swach Bharat Abhiyaan in India , its an effort to contribute to society and welfare and well-being through technology . Following are some diagrams for the current and the previous versions , along with major delta points .


RamuDroid v1.0

Remote Streaming and movement via motors switched manually. Communication over Ethernet.

Ramudroidv1.0.jpg

Dashboard /console Screen

RamuDroid v1  console


v3.0

Cleaning garbage on public roads and outdoors through robot . Remote navigation and control of control through web page and camera live streaming .

Ramudroid compoenet diagram v5

v3 web console

Screenshot from 2015-12-03 08:55:27.png


v6

Clean roads , pick up litter ( wrappers, leaves , cups , plastics bits etc ) . communicated over BLE ,Wifi and 3G n/w . Auto buzzer when meet with an obstruction in way . Flash Lights . Enhanced Design .

Ramudroid 6.5 componet diagram

 

Web Dashboard:

Screenshot from 2016-03-19 04-28-53.png

Pin Diagram associated with activities

Pin Pin 0 Pin 1 Pin 2 Pin 3 Pin 4 Pin 5 Pin 6 Pin 7
Front 0 1 0 1 1 1 1 1
Back 1 0 1 0 1 1 1 1
Left 1 0 1 0 1 1 1 1
Right 1 0 1 0 1 1 1 1
Brushes ON 1 0 1 0 1 1 1 1
Brushes OFF 1 0 1 0 1 1 1 1
Lift ON 1 0 1 0 1 1 1 1
Life OFF 1 0 1 0 1 1 1 1

 

Github : https://github.com/altanai/m2mcommunication

Slideshare :

Twitter :https://twitter.com/search?q=%23ramudroid