cloud for robotics

Internet is connecting people all over the world. Internet is great, because people can find information on it.

Why can’t machines using internet like people? It is because machines need more descriptions than people need on the internet. Internet is designed for people.

In the past, a lot of innovations have been done in the internet to make machines communicating with each other, soap is one of this example. But still it is kind of to extend human internet for machines. With the definition of cloud and cloud services, it has opened a new possibility to building a cloud for machine – robot internet.

In the cloud for robotics, robots and machines can search for information about a certain task and download program to achieve the certain task. More can be found in the following links:

Here is a nice video presentation of ROS in Google I/O 2011

[youtube http://www.youtube.com/watch?v=FxXBUp-4800]

Control RoverMk1 with Wifi and Android

I have made a Rover and it can be controlled with Android via Wifi.
More information about this project can be found under:
http://roboticsgiesing.wordpress.com/

Here is a video of the Rover:

Example of Gyrosensor

Here is a video example of how the gyroscope sensor can be used

Thanks CreativeRobotics for the video in youtube!

bits arithmetics

[use case]
some time it is very useful if we can read special bits from a register in c code.
Things like the bits from position 4 to position 8 in a 32bits register.

In other case it could be more useful to rewrite the bits in a register, things like the bits from position 4 to postion 8 should habe a new hex value 0xf.

[Solution]

int bits_read(int reg, int pos, int width) { 
  // mask ~(~0 << width) should be like 0...0 1...1 
  return reg >> pos & ~(~0 << width);
}

this function can read the bits from a start position and with a width of the bits you would like to get from the start bit postion.

int bits_write(int reg, int pos, int width, int new_value) {
 // create dynamic mask like 0...0 1...1 0...0
 int mask = (~(~0 << width)) << pos;
 return ( new_value << pos ) & mask | (reg & ~mask);
}

this function allows you to rewrite the bits from the start postion with a certain width of bits with the given new value.

[Reason]

why do we need this kind of function with dynamic masks?

The answer to this question is because the most time we don’t know how long is a register, ist it 8 bits or 32 bits. With these two funktion you can read and rewrite the subbits of a register and it works with register with what ever length.

active and deactive integrated camera for skype in lenovo notebook

There are several ways to deactive/active integrated camera for skype in lenovo notebook in windows 7 (example: x201t table)

1. deactive/active the camera in lenovo simpleTap (the camera utility will be executed)
2. deactive/active the camera in windows device manager
3. access the camera settings with Fn + F6
4. deactive/active the “Integrated camera” in Bios-> Security -> I/O Port Access
(Bios can be accessed with F1 during the restart of notebook)

[My Experience]
i have deactived the camera with lenovo camera utility, and it is not possible to access the camera anymore, even not using the windows default camera driver.
Somehow i remeber the deactivation with lenovo utility. i can access the camera
with windows 7 again. It is quite tricky with the lenovo camera utility.