Friday 2 October 2015

UI based Mission control for robots.

Hello All,
I am currently working on an Autonomous Underwater Vehicle(AUV) as a study project. As a first step we are working on an Remotely Operated Vehicle(ROV) which can be later made autonomous by including self localization and obstacle avoiding algorithms.
Here is the github link for the codes:

In this post I basically want to focus on the need of a UI based mission control for all kinds of Robots. Every time we make an RC aircraft,car,submarine,quadcopter etc. We often face a problem controlling it via some RF link which is quite a headache to set up plus that it is not very customizable .For this purpose we can develop small UI based mission control in our laptop itself and customize it according to our requirements.


For Eg. This is the UI I made for my ROV(SeaWAG :P ) control:



As you can see this gave me full control over what I want to control and I can also connect my communication devices on the robot to the laptop using bluetooth or WiFi. Ping me for any help my contact is given below.

Friday 25 September 2015

Project Anna: A home automation project

Hey Friends,


During my sophomore year at BITS Goa, I was introduced to IOT (Internet Of Things) for the first time,with the dedication to implement IOT through the tools and skills I knew at that time I went on to the develop this small home automation/IOT application fondly called as "Project Anna". All the code are shared on this link: https://github.com/SarwateShubham/Credits_VisualStudio




This the small video showing some of the functionalities.....




So to begin with firstly this was an attempt to create a personal assistant "Anna" to allow me access to the room appliances remotely and also carry out particular functions through voice commands. I shall first briefly describe the primary modules of the project:
  1. Server Side Code: This code was an .aspx code which hosts a fairly basic website for controlling the serial port of the laptop via the secure website
  2. Arduino C Code: It is the code that is flashed on to the Atmega 328 based Arduino Uno which has been programmed to make particular GPIO pins high in case it receives a particular input through its serial port.
  3. Voice Controlled GUI: To enable voice commands in the home automation application, a GUI was made in Visual Studio.A grammar was created and accordingly a event got triggered in case a particular command given by the user matched the commands in the grammar.
  4. Hardware Interfacing: On the hardware side of the project was a fairly easy circuit which consisted of an arduino which triggered a relay unit to switch on/off different circuits according to the serial input.
These were the basic modules of the project. Now the important question "HOW DOES IT WORK?"

The answer to it is fairly simple.Let us consider two cases:



  1. Requests over the website:The website has just two basic buttons Light ON/OFF.When the button is pressed, the website sends a request to the server to send a particular signal to the serial port.Once this signal/code is sent through the serial port to the arduino, it responds as per the pre-written instruction on the arduino to turn a particular GPIO high which is connected to a a electromagnetic relay circuit which turns the light ON/OFF.The host was on the LAN server hence the website could also be accessed through other platforms such as mobiles and tablets through WiFi.
  2.  Requests through voice commands:A grammar is created and the commands are mapped to particular signals that initiate a particular action using the serial port which switches the GPIOs just as explained above.For eg. "Study Mode" instruction was mapped to sending '1' to the serial port which turned the study lamp on and also opened the Study folder on the laptop.Similarly " I am done","Party Mode",etc. were other commands mapped to particular sequence of actions.
These are two basic modes of operation of the Home automation/IOT system.

Possible Advancements:
Here is a list of possible advancements that I think can be done,

  1. Host the website independently on a Raspberry Pi, which takes out the laptop out of the equation.(Done That!)
  2. Include other appliances such as speakers,fans,automatic door control, etc. and control them voice commands.
  3. Ultimately its all about how creative you are!