Skip to main content

Posts

Featured Post

Product Design of a 4 wheel differential drive robot

Product Design of a 4 wheel differential drive robot

I have been thinking of creating a small mobile robot from scratch. From scratch means, go through all the steps of a product development. Design the overall architecture, design the circuits, make 3D model of the parts, 3D print the parts and finally integrate with ROS. The methods I followed may not be the best practice. The only aim is to reach from idea to actual product (prototype). Features: 4 Wheel Differential Drive Camera WiFi IMU GPS(optional) Overview A 4 wheeled differential mobile robot with wheel encoders, camera, WiFi, IMU and GPS(optional). The first thing I did was to come up with an overall architecture. Raspberry pi 3 will be the heart of the robot. Pi Zero was considered in the beginning, but eventually had to  change because of the lack of support for ROS. Even though able to compile ROS from scratch, it became so hard to compile other packages needed for the project. Since I do not want to use pi to directly control motors, I had to desig...

Inventory App for hobbyists

I used to buy a lot of small electronics component and sometimes store it for future use. The problem is sometimes it is hard to keep track of what you have in your collection. I find it hard to find any free inventory app that does the job. There are pretty good paid software, if you want to use it for some shops/warehouse etc. So I made an app that does the job. It is build using nwjs framework. You can find the whole source code + binaries on my github page. Searching the inventory item Adding entries Modify entry Delete entry

Raspberry pi based Car Infotainment system

Out in the market, there are a handful of car infotainment systems that you can buy for 10 to 30k INR. But nothing beats the thrill of making one from scratch and put it on your own car. So this is my effort to make one from the scratch. At heart, it is a raspberry pi 3 Model B single board computer. For those who don't know about raspberry pi, it is a single board compute with a Quad Core 1.2GHz Broadcom BCM2837 64bit CPU with on board WiFi and Bluetooth. See this for a complete spec. It is connected with a 7 inch multi touch display running Ubuntu Mate (a Linux variant). Os is modified so that it is only running the bare minimum services to run the system. It will save the boot up time and improve performance a little bit. It is connected to a GPS module via UART to get current location. It is used in the navigation section. It is also used to get time, when the device is not connected to internet. It uses google map API for navigation. The complete infotainment system is...

Creating a Wireless remote for Nikon Camera using Esp8266

The Nikon DSLR camera I own does have a Bluetooth connection, but unfortunately it is of no use. You cannot trigger shots from Bluetooth. Also u can only share photos of low resolution across Bluetooth. What a shame!!! I also want a time lapse option which is absent in the camera. There is a WiFi option, but have to invest a lot more money to buy the WiFi adaptor. Fortunately it has an IR interface. So I thought of creating my own triggering device (like the ML-L3) which works over WiFi so that I can remotely trigger the shutter and also take time lapse pics. I can control ESP over phone and ESP will in turn control the camera using IR. (It can also behave as a normal ML-L3 Wireless remote). I got the command sequence for taking shots from here ( http://www.bigmike.it/ircontrol/ ). This is the code I wrote for controlling my DSLR. I am able to remotely trigger the shutter from WiFi. remotely trigger the shutter from remote. configure to take time lapse pics from WiFi. (W...

ROS simulating a 3 axis robot in Rviz

In this tutorial, we will create an urdf model of a 3 axis robot and simulate it in Rviz. Create a package inside your workspace (create it if u haven't any). Create a folder named urdf to store urdf models. Now create a new file called my_robot.urdf with these data. This link will give you a list of all possible tag tags and informations. (Read this before going further. link ) There are 4 links and three joints in this robot. Each joint has one parent and one child. There are different types of joints. Here we used continuous and fixed type. Joint 0 is fixed and the rest of them are continuous. The origin tag inside the <joint> <origin rpy="0 0 0" xyz="0 0 3"/> represents the amount of offset required from the parent link. This can be clearly understood from the following figure. There is also an another origin tag inside link tag. This represent the base frame of the link itself. We need to shift it by 1.5 (half of the link...

Batman Key chain with ESP8266

Have recently bought a small batman key chain from amazon. It  has a small button when pressed lights the batman eye with white light and sounds a pathetic sound (:(). So I thought of opening it. It has enough space to put some custom electronics. So I thought of customising it a bit. This is what it looks before customising. This is what it looks when adding a little bit of electronics into it. It has an esp8266 with 3 SMD LED (Red, Green, Blue) that can be independently controlled. It has a small speaker (from a headset) which plays a pac man tone. It is powered with a 3.7 V Lipo battery with an option to charge with an USB cable. Batman keychain is playing pacman tone... :) I know it's a bit wierd, but couldnt find a good tone (which can be expressed as a piano tone like C4, B#2, ...) for batman. Will replace it once found a better one. Things to add further Pressing for a long time will enable a hotspot Option to change the tone by writing it to ...

MAV with two propeller

In order to counter the rotating torque from the previous single rotor version, one more propeller is added. The second propeller rotates counter clockwise and both torques will cancel each other (Only if both propellers are rotating at same speed). This the video of it flying with restriction. I have attached a a small weight to its bottom. Even though the counter torque is cancelled, it can't be controlled. Very small variation in alignment will drive the MAV crazy. This is an attempt to control the drone remotely with a joystick. Had changed the body from plastic (from plastic IC tube) to general purpose PCB board. The individual propellers are controlled from a joystick (logitech f710). The controller is an esp8266 es-11 WiFi chip. The telemetry data are send using a python program that run on my computer. Both the WiFi chip and my computer are on the same network.

My single rotor MAV :)

This is a small MAV (Micro Areal Vehicle) I created out of simple household stuffs. Though this one can't be controlled, it is fun to watch it fly. :) :) :) I have loosely connected the power supply so that once it start flying, the counter rotating torque forces the whole MAV to rotate. So after a few sec the wire connecting power supply (battery) will automatically get removed and I can catch the MAV before it crash into walls. :) This one is a slow motion video of it flying. It is hard to video it while flying. Since it is not stable it will crash itself into walls after a few seconds. I am trying to get it fly vertically upwards without any deviation. See this instructable ( https://www.instructables.com/id/Home-Made-Micro-Aerial-Vehicle-MAV-in-5-Min/ ) for more videos/photos.

PlymouthTheme-TheRun

This is an another theme I created for Plymouth (   a bootsplash for Linux). This will replace your native boot and shutdown animation. Credits to Joel Roset for the FX animation. A step by step instruction of how to install this theme is in this video.

Plymouth theme for Ubuntu

Bored of having the same boot animation screen again and again? There are plenty of Plymouth themes available out there. This is a theme I created by slicing some cool gif files I found online. You can download the theme and find the installation steps on my github account. ( https://github.com/krishnan793/PlymouthTheme-Cat )  The theme is created for Ubuntu 16.04. But this can be installed on previous versions with slight modification. If you have a slow computer then you can watch the whole animation loops. (The VM I used to record the screen was fast though. :))

Self Balancing Robot

I am working on a small self balancing robot for couple of days. It is not completed yet. To minimise the cost I used breadboard itself as a frame instead of a wooden or an acrylic one. 1 x Breadboard (small) 1 x Arduino pro mini 1 x IMU MPU 6050 1 x Motor driver 1x Powerbank (TP Link) 2 x DC Motor Things done Get raw data of IMU Get pitch,roll and yaw Control DC Motors from arduino Thing that need to be done Implement PID Tune Kp,Ki, and Kd.

Warehouse Management System using Drones

This is a project I had completed while doing internship at EY. The idea is to automate inventory and the stock checking process without any human intervention. Today these are all done using human resource. This is a really tiresome work because it involves manually inspecting each pallet (box) and read the QR/Bar code associated with it.  Instead consider a swarm of drones (a dozen or a hundred drones) go and check each pallet and complete the whole inventory and stock checking process in just a few minutes. This is a proof of concept design in which a drone uses a blueprint to travel a particular path and then reads and analyse each stock item and update it in the warehouse management system. All these things are done in real time. The drone used here is Parrot bebop and is implemented in ROS. Instead of actual boxes, QR code is fixed to symbolise each palette. The ROS implementation makes the project scalable. The video of the project is shown below.

Controlling Parrot Bebop using ROS Kinetic

Parrot Bebop drone is much stable while comparing with the most widely used AR Drone. Due to ROS support  and its open API AR Drone was widely used in the research community. Autonomy Lab had released the Bebop driver for ROS support and am planning to do some fun projects with it. This video is showing bebop taking off and landing where the commands are send from ROS. Bebop is fun to work with but flight time of just 10 min is really annoying (Bebop 2 has twice the battery life but doesn't have one to try out).

Smart Room :-) | Wireless controlled appliances

If you are a geek, then you definitely want to mess with everything to create something cool out of it. What about controlling all of your appliances from your computer or from your smart phone wirelessly? Set timer for light when you go to sleep; autonomously switch your fan on when temperature exceeds; and when you are too lazy to get up from your bed to switch fan/light off. All you need is an ESP8266 with a couple of other components that cost <10$. Kind of lazy to always go and switch OFF the lights/Fans especially when sleepy :-). So 3 days straight and it's done... 2 days is spend to understand and change the firmware of WiFi chip ESP 8266. (You can add an extra micro controller along with ESP 8266, but what's the fun in it? ) Made ESP 8266 ES01 chip to act as a TCP server and also to control the Relay circuit (Changed the firmware and programmed it). Control messages are interpreted and necessary signals are passed to the Relay circuit. AC to DC converte...