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]
Advertisements

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.

heavy armed robot suit

The japanese heavy armed robot “Kuratas” to make your dream to be a robot pilot come true.

And here is an instruction video