Sunday, June 29, 2014

I learned a lot during the two years. Won the first prize out of 240 students for implementing autonomous flight in the pentacopter. Presented our results to Mr. Siddhartha Saikhia at Caterpillar. Won 3500Rs.. Honestly, this was very, very difficult. And, this was ........fun... cos at the end of the day....I learnt so much....

Friday, February 14, 2014

Using CATIA to obtain the penta-copter model

Over the past few days, a model of the pentacopter has been created.-
Click start/create-->mechanical-->part design--> write down the name of the path and position the sketch i.e. click a position on the blue landscape and click ok.
Everything on the RHS changes immediately; Now a line can be drawn by clicking the corresponding tool; Similarly, we can draw curves, closed rectangles and circles. There is one such icon indicating 'profile'. That helps us to specify the two corners of a closed square or rectangle. Now, click the 'constraints icon' which allows us to give exact measurements to the diagram. Double click each measurement arrow and give a specific value. Now use the 'pad' tool. What it does is, it adds a third dimension to whatever we draw in the other two dimensions. It is used to 'extrude' the object. Click ESC on the keyboard to get out of any option i.e. pad, profile, constraints etc. Whenever there is too much use of constraints, i.e. we do the same measure again and again, the green part(which says it's right) turns pink. Now, this is not good and means we need to get rid of excess measurements. Click one of the pink arrows and delete it.
Now search for the 3d part in the search bar in the bottom of the screen. Click the name of the part saved. Now click PLM access--> propagate--> don't click ok because you don't want CATIA to update. This saves it. Now do the same process again.
To assemble the design, click insert--> existing 3d part-->select assembly name and search for the 3d part.(Now the search screen with all the assembly files available comes with a blue background)
Now click the create button-->mech-->assembly design--> give a title name--> finish.
Now insert-->existing 3d part--> click the name of that part--> place it.
To insert one object inside another, there is an engineering connections button. Click the name of the project on the left topmost part of the blue screen. Now click insert--> engineering connections. Somewhere in the dialogue box it should say 'position first instance'. Just remember to make sure it is that way. Now click the object first that you want to move onto object2(to be stationary). Then click the axis, or, the edge, or the face to be that property with which the two objects would align. In the options on the top of the engineering connections dialog box, select 'fix'. If this is not done, then each time a third object is fixed, the other two objects fall apart. Now, the last thing left to do is to obtain the inertial matrix.




my good friend, L.V. Renganathan to the left, and me to the right, Vamsavardhana Vijay.
 

Thursday, January 30, 2014

The objective of the project was to design, fabricate, simulate, implement wireless control of a five rotor vehicle and to implement autonomous flight in the same. There are four out of five objectives completed. Will upload the simulation codes soon.

Tuesday, January 21, 2014

Repair

On 19th Jan, I was using the mosquito racquet and a rat jumped in through the window. I was actually trying to repair the racquet. What had happened was that when I turned it on, there was a single position where the racquet was sparking up. It didn't fry mosquitoes anymore. Anyway, a small rat jumped in through the window. It was the size of my palm and my uncle was screaming "Hit it!". So, I hit it, and in the process broke the mosquito bat.

Since it was broken, I tried to see what was inside. And, in the process, I scavenged from around the house what I can now call my ' own toolkit' with screwdrivers, a pair of scissors and a small hammer. Apart from that, I do also have the big hammer and blunt cutting knife that I used to pry open my laptop adaptor.

So, what was inside?
The three wires mean that any mosquito caught between the internal white wire connected mesh(the ground) and the other positive terminals on either side gets shorted. It becomes a resistor that tries not to conduct electricity through itself

 The three meshes are shown over here
 The parts that broke were the plastic frame pieces.
 I had to use my screwdriver as a drill to get rid of a lot of plastic. The screw was 4 cm deep in a hole. I could never reach it. So, I broke all the plastic surrounding the screw. And, the white plastic casing came out. Since there was a battery inside, there was no way that I would take the risk of hammering the case and seeing what was inside. This was what I did in case of the HCL adaptor.
 Yes, you can see me having broken apart the area around the screw.
 This was kind of interesting. There were two things that were interesting. The 240V pins, operate on a spring jump kind of circuit. The
 The switch
 The switch has a casing, that looks a lot better(a brighter red) than I could find.
 This is a much simpler PCB. It is very simple to make. The interconnect layer is only on one side, with the components on the other side. So, the important thing to note is that it is not a multi layer PCB. As in the case of the ESC of the pentacopter that doesn't work.
 The cut wire was the positive terminal. It's the shorter wire.


 Well, I even took apart a multiplug point thing. This was because the screw of the biggest part had come out. It had to be screwed into from inside.




 This was the problem that I seeked to correct. And, it works Okay now.
 
 I also replaced the LED.


 

Monday, January 6, 2014

Ok, wow!

Today, I attended an exam for a job at ZOHO corporation. It was interesting that it was a content development job. Two interesting things-
Andreas Raptopoulos- person behind matternet, that is, a company working to transport essential drugs and commodities in areas lacking basic transportation infrastructure, by using drones.

http://www.youtube.com/watch?v=9yEl0-bCA9M
On the other hand, raffaelo D'Andrea, a professor at ETH Zurich who made a TED global presentation on atheletic quads.  There are only five kids there. These five young men were able to do all that work. It requires extensive knowledge of the actual physics, apart from the electronics, coding etc.
http://www.youtube.com/watch?v=w2itwFJCgFQ

Friday, January 3, 2014

The jitters!- When someone says they have completed a certain percentage of the project, we feel bad.

http://forum.arduino.cc/index.php?PHPSESSID=o82evrmnjvt7prmr3l9djsgui1&topic=7001.10;wap2
Bonifaz Kauffman has replied to several guys who've had problems with the device software etc, and the HTC cellphones. some of them don't work with amarino because amarino supports arduino 2.x not arduino 1.x. 
The serial monitor resets the arduino 2560 board each time we click it. There are two solutions from here-http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection
One, place a 120 ohm resistor between the reset ande the power pin.
Two, place a 10 uF capacitor between the reset pin and the ground.

How does this work?
The ATMEGA2560 chip gets reset by a pulse resetting it to ground. By two things- on the application of power, and ,when the serial monitor is used after receiving and transmitting data.

Today, everyone is jittery about the project. We need to show results i.e. automation which is very difficult given where we are today.  We need to show results, to get marks for the final year project. What he suggests is preprogrammed flight. Which is the way to go, given our time predicament and the fact that every other person says that their final year projects are done.

I just want to learn as much as I can. As far as this goes, I just want to learn as much as I possibly can. I believe that I have six months before a decision comes for me. So, actually, I can afford to go through this slowly. But, my thesis will suffer.

What were the things that were done?
1. The pentacopter was fabricated.
2. Wireless control of the pentacopter was effected.
3. The ARDUINO platform is used after the other platform was found to not work. We wasted too much time, trying to figure out how to make it work.
4. Ultrasonic sensor was tested, and data was obtained from it.
5. An I.M.U. stopped working, and, We tried to obtain data from the kk multicopter board. Then, we found that there is an impedence mismatch due to which it is not possible to do that. We tried to obtain a module from around Chennai, and, the price was too high- Rs. 4125 for  a two axis gyro, and, Rs. 1200 for a three axis accelerometer. Finally, The bluetooth module based communication link with a cellphone allows us to get I.M.U. data without the need for preprocessing.
6. A simulation for the pentacopter was carried out.
7. We got the pentacopter to thrust upwards. With unequal speeds at each motor.
8. We also redid the pentacopter i.e. refabricated the pentacopter.


There are a couple of problems with the approach.
1. We can bring it to fly upwards. We can bring it to hover. Then what? How do we expect to make it move in any direction?
2.  A simple easily effectable idea is thresholding. The idea suggested is to just take one value eg. roll. Now, using a threshold for roll eg.0,  increase the speed of the motor that is tilted downward. It is a good idea. Simple. Till it comes back to hover mode.
3. What will be the relation between motor speed PWM and the controlled output?

Something that is attainable is just hovering of the pentacopter. It is simple and attainable.
1. Derive the state matrix of the pentacopter. Derive the center of mass. Derive the inertial tensor matrix. Derive the rotational and translational model equations. This is theoretical work.
2. Do not implement the kalman filter and set the PID loop setpoint to 0,0,0 i.e. pitch, roll, yaw.
3. Use Ultrasonic sensors to get upto a particular height. This is practical and two of us needs to do this again and again, to make sure that the penta doesn't fall to ground too fast.
4. Implement the PID loops. I don't know how to derive a relation between the controlled outputs of pitch, roll and yaw PIDs for the five rotors of the pentacopter. So, a solution would be to implement the solution of the quadcopter, as detailed in Dr. Muhannad Ali Omar's paper for a matlab simulation of the same. And, use a Y connector for the pentacopter.

This is definitely possible in three months.

http://teacher.pas.rochester.edu/PHY235/LectureNotes/Chapter11/Chapter11.htm
The great teacher who has uploaded these examples.. she/he is a god! It looks like the inertial tensor will be derived today for sure.

http://www.phys.ufl.edu/~pjh/teaching/phz3113/notes/week10.pdf Another link that comes up for googling 'how to solve inertial tensor sums'.



A


Thursday, January 2, 2014

Garbage overflow 1, nothing much good out of it.

http://stackoverflow.com/questions/11068450/arduino-c-language-parsing-string-with-delimiter-input-through-serial-interfa
This is a useful post, what it says is this. Suppose I have three values separated by two commas or any other non alpha numeric character, what I need to do is, use the subString property. which has the syntax
substring variable.subString(from_point,to_point)
So, the example says first we identify where the given two commas are, by using the .indexOf
int commaindex=myString.indexOf(' ');
int secondcommaindex=myString.indexOf(' ', commanindex +1)

Now, we are using,

string str1=myString.substring(0,commaindex);
string str2=myString.substring(commaindex+1,secondcommaindex);
string str3=myString.substring(secondcommaindex); // this finishes till the end of the string.
// now convert the strings into numeric integers.
int phi= str1.toInt();
int theta=str2.toInt();
int psi=str3.toInt();
 Which brings us to the question How do we even get mystring in the first place?
off topic1: MeetAndroid.Send(value) sends something to the cellphone
http://www.instructables.com/id/Reverse-Engineering-Uzzors2k-Bluecar-Android-App/step1/Amarino/
this tells us that all of the previous things are not required. What we need is just an array, that makes the program damned simple.
http://www.controlguru.com/pages/table.html mentioned by Bret beauregard who wrote the PID autotune library as his teacher who's uploaded a great text cum course on practical aspects of control and real world data.

http://www.youtube.com/watch?v=dlOCuYqTEpI
This link provides an understanding of dynamics of machines by Prof. Amitabh Ghosh at I.I.T. Kharagpur. It explains relation between angular momentum, Ixx etc.