To Do List:
1. Plot the 3 elements of the accelerometer for the following cases:
a. Sitting still on the table (as a base measurement)
b. Sitting still on the lap.
c. Holding in hands.
d. Rotating on sides
e. Rotating back and forth
f. Rotating diagonally
g. Moving slightly up and down
2. For each of the cases above, calculate the size of the accelerometer vector ( should be g)
3. Explain the results of each case.
Observations:
I will be talking about each case separately. All three components of the vector are drawn. The first component is drawn in blue, the second component is drawn in red and the third component is drawn in green.
1. Sitting still on the table.
The size of the acceleration vector in average is around 268 (the expected value Kerem has indicated, is 256)
2. Sitting still on the lap:
Acceleration vector size( in average) : 266.
3. Holding in hands:
Acceleration vector size( in average): 268
Explanation: There are slight vibrations mostly in the first and third element of the accelerometer vector which could be caused due to vibrations of the hand. On the whole, it still seems pretty stable.
4. Rotating on Sides:
Acceleration vector size( in average): [266, 279]
Explanation:
Based on the first plot (the table one), the stable value for the blue curve is slightly below -50 and based on this plot, it clearly captures the smooth curves that is caused by the rotation.
Interesting observation is that the peaks of the red curves map exactly to the minimums of the blue curve and the minimums of the red curve map to the peaks of the blue curve.
5. Rotating back and forth:
Explanation: It now seems like the green curve is measuring the the acceleration along the x axis of the sensor (the short side) and the blue curve is measuring the acceleration along the y axis of the sensor (the long side).
When the creature is sitting still on the table, the blue curve and the green curve are both near eachother and both semi-stable. Whereas comparing the plots for "side rotation" and "back and forth rotation" it seems this conclusion might be an accountable one.
6. Rotating diagonally:
7. Moving slightly up and down:
Explanation: According to this plot, I think the accelerator is measuring the acceleration of one end point on the sensor compared to the other end point on the same axis. So when moved up and down, they are not much accelerated. I would say the vibrations are probably caused by the movement and vibrations of my hand when moving the creature up and down.







Nice work on the clean accelerometer traces, Bita. These look much better.
ReplyDeleteI agree with Kerem's suggestion: 1st step is to reproduce Anna's results and see what changes on this platform.
One addition I suggest is to, for each day of collection, duplicate the collection with the creature turned on and breathing. It will give us a first look at how much this impacts things. (also, do a baseline accelerometer collection with the creature breathing) on one of these days.
Bita, let us know if you need pointers to Anna's work. The most relevant ones are her TEI paper and thesis.
Thesis is up here: http://www.cs.ubc.ca/labs/spin/publications/
I still need to post her paper, but I believe I've sent it to you.
Have fun!
Karon
[ps have posted kerem's and my comments here on blog for later reference]
On 2013-02-23 3:56 AM, Kerem Altun wrote:
> Hi Bita,
>
> Everything seems to be working well. Does this mean that the program does not freeze anymore? If so, here's my suggestion for the next step. Karon, please let me know what you think about this.
>
> I think we can immediately collect some preliminary data to see how we can proceed. I'm thinking about gesture classification first, while the robot is not active (breathing etc). This will be a very simple preliminary study with one participant. For example, you can perform the gestures yourself on the creature. We can use Anna's gestures in her TEI paper. So the gestures will be stroke, scratch, rub, tickle, squeeze, pat, pull, contact, no touch. If I remember correctly, Anna has definitions and explanations for these gestures in her thesis and/or participant forms. You can perform each gesture on the robot repeatedly (say, for about 20 seconds) and record the pressure map and accelerometer data. Record each gesture's data on three different days; so we will have three samples for each gesture. Then we will apply simple machine learning methods and see if we can distinguish between the gestures.
>
> After this, we can start experiments while the robot is moving (breathing). Does this make sense?
>
> Thanks
> Kerem
Let me say a few things about the breathing. Breathing is currently handled by another Arduino inside the robot, and it needs external power (not the Arduino, but the motor). There must be a power adapter inside the box where you found Baker; it is used for this purpose. When you connect the power through the wire passing through the tail of the creature, it should immediately start breathing. If no one has used the robot after me, then the program currently running should be doing one of the following in a loop:
Delete-- breathe slowly 8-10 times, then breathe rapidly 15-20 times
-- breathe rapidly 15-20 times, then breathe slowly 8-10 times
I don't remember which one, but it should be one of these. Bita, can you connect the power and verify this first?
Then, if we want the robot to breathe with constant frequency, we have to upload another program to the Arduino. Attached I'm sending Yasaman's code which will make the robot breathe slowly. Let me know if you need any help uploading the program to the Arduino. If you connect both Arduinos to the pc at the same time, be careful not to upload it to the wrong Arduino:)
Good luck,
Kerem