Thursday, October 22, 2015

GETTING STARTED WITH ROS!

A Citation from http://www.ros.org/about-ros/

The Robot Operating System (ROS) is a flexible framework for writing robot software. It is a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms. 
Why? Because creating truly robust, general-purpose robot software is hard. From the robot's perspective, problems that seem trivial to humans often vary wildly between instances of tasks and environments. Dealing with these variations is so hard that no single individual, laboratory, or institution can hope to do it on their own.
As a result, ROS was built from the ground up to encourage collaborative robotics software development. For example, one laboratory might have experts in mapping indoor environments, and could contribute a world-class system for producing maps. Another group might have experts at using maps to navigate, and yet another group might have discovered a computer vision approach that works well for recognizing small objects in clutter. ROS was designed specifically for groups like these to collaborate and build upon each other's work.

ROS has become a standard tool in robot design for a lot of companies. And since it's an open source software, anyone can use it freely in their own projects. Also the architecture of ROS enables modularity, which helps not only on creating your own source code and integrate with others very quickly but also it makes the execution of codes much much faster.

Following video shows some of the robots that are implemented using ROS :



So, to get started with ROS, we decided to start from what we already know : MATLAB ...yes! it's the software that is taught in nearly every Engineering Institute. Staring from MATLAB release 2014a, Mathworks has incorporated a support for ROS based simulator and robot. And in release 2015a, they have provided a toolbox called "Robotic System Toolbox" to integrate ROS based simulator or robot much more easily.
At this stage, we are just trying to use the simulator and use the existing algorithms in MATLAB and deploy it and run into the simulator named Gazebo.

Sunday, September 6, 2015

PCB DESIGN USING EAGLE

This summer I made a simple PCB layout and design using EAGLE. Actually, I followed the book http://www.amazon.com/Make-Your-Own-PCBs-EAGLE/dp/0071819258 (Make your own PCBs with EAGLE by Simon Monk) and made the same project as shown in the text. It is called Sound Meter (Indicates the intensity of sound using LED's), and it is just a simple project to get familiar with EAGLE.



Here is the link of its source codes:
https://drive.google.com/folderview?id=0BxvpVhIITsEsZmtVdzd0aDJxbFk&usp=sharing


VIRTUAL COMPUTING WITH MATLAB!

MATLAB is a very sophisticated piece of software with lot's of libraries. This summer I started to work on MATLAB GUI and made a 3D graphing tool:

Here is the link of associated files and source codes:

Earlier as a part of learning project I made an Electric Field Damping Tool (this shows 'skin effect' phenomenon which are usually encountered in Electromagnetic's class). I didn't make it myself though, I followed it from the book:


Here is the source code and compiled version of this tool:




Tuesday, March 17, 2015

DESIGNING A PCB WITH "CadSoft EAGLE"

A way to create your own PCB's - yep that's correct: through CadSoft EAGLE, you can design and get it manufactured (by companies usually located in China). Although using EAGLE and other PCB design softwares (like proteus design suite etc.) might seem daunting at first, especially if you think about the variation in electrical components (for ex. packaging variation SMD, THM; size variations, etc.); But the good news is that there is a good and large active community of EAGLE, so if you have any questions chances are somebody would have already figured out solution for that.
To practice a PCB design, I thought to continue on the same project that I had already started: http://darkartofcomputing.blogspot.in/2014/07/electronics-rocks.html (XGS pico edition)
So, to create the required PCB, following steps are required:

  1. Download and install EAGLE: http://www.cadsoftusa.com/download-eagle/ (a trial version would suffice to most of the projects at hobbyist level)
  2.  Make a new project and give it a name (optionally you can also give some description as well):





Making a schematic:
  • Right click on the project name icon and select schematic to launch schematic window:


  • Add the required components by following the procedures as illustrated in below images (some of the components require you to download additional libraries, for ex. sparkfun usually provides their components eagle library; so be sure to check the vendors and appropriate component library):

  •      To use the library (from other sources) just paste the .lbr file into C:\EAGLE-7.2.0\lbr  (i.e. library folder of CadSoft)
       
 
  •     Search other required components..




  • Finally, after populating all the required components, start to connect all the components to make the schematic.


Making the board layout:

Let's look at an example of3D printer board used in Makerbot 3D printer (designed by Jeremy Blum
http://www.jeremyblum.com/ )



...a very complicated looking design! Although my design (XGS pico) won't be as much complicated as above but the ideas used are the same.


.....Still working on this....



Sunday, February 22, 2015

FUN IN MAKING A VIDEO GAME!

Making a game can be a lot of fun as well as rewarding. While making a game you do not only have fun but also you learn a lot.

What you can learn?

1) Well, most importantly you learn how to make a program (and especially the object oriented nature of modern programming languages);

2) Artificial intelligence! Yes that's correct, making a game allows you to learn artificial intelligence. And most importantly if you like robotics, then half of the work in learning that gets easy;

3) 3D Modelling! sounds great oh yes, you can learn 3D modelling as well, so that might be useful for a hardware guy (if you are one) to make and learn 3D printers (I wish, I would get chance to explain how it can be done in some other post..);

4) And last of all you "can" learn 3D game programming, however due to presence of lots game engines available these days (e.g. Unity) it is unlikely that you'd try to learn this unless you want to become a professional game designer.

So, I decided to learn the Unity game engine and guess what, I made my own game :

http://rosbotics.blogspot.in/2014/12/hello-world-from-unity.html

Although this is a learning stage so I decided to work on some 3D game as well. It was a lot of fun, I learn't about animation, 3D modelling as well as using scripts!

And last of all have your name on the show!






Wednesday, January 7, 2015

ROBOTICS WITH RASPBERRY PI

Raspberry Pi was not only designed to help software engineers but it turned out help all sort of hobbyists ranging from IT to Electronics as well. Making a robot was never so easy than before. These magical devices have really made learning the aspects of robotics very easy and quick. And best of all it isn't that much costly to build one (although it still is costly in India!).

So, this time I decided to buy the parts to make an actual robot (quickbot, as it is often called, since it is very quick to make one). And I did:




Although I could have used a transistor to control the motor (I didn't know this while I was buying the driver chip) but I bought a dedicated motor controller chip from Ryanteck: store.ryanteck.uk/collections/robots/products/ryanteck-budget-robotics-kit-for-raspberry-pi?variant=972743015

And finally I bought a wi-fi adapter to control the quickbot via a laptop (or smartphone).

Here is a snapshot showing the raspberry pi controlled by smartphone. I used a VNC client from realvnc : https://www.realvnc.com/products/android/ and I already had installed VNC server in the raspberry pi by following a very simple procedure (a quick google search would tell you that).




(Android app from RealVNC)

Here is a short video showing the final results (did a poor job in recording, but anyway..)



Here is an updated version of the above video:

So if you also want to do robotics, you can buy these parts as I did. But if you ask me-- I really don't think I did any hard work on learning this--I rather should have bought transistors, sensors (instead of wasting money on chassis and driver chip) and learnt how to do useful projects with them.
Finally, some words about Wi-Fi -- It really becomes a great project when you can control your device wirelessly, so I do recommend to buy one of these dongles (And the great fact is that you don't need any internet connection to control your device, wifi hotspot created by your smartphone would work just fine).
That's it! For more information visit following websites: