New Robot Could Aid Astronauts in Space

0 komentar

Robonaut2 surpasses previous dexterous humanoid robots in strength, yet it is safe enough to work side-by-side with humans. It is able to lift, not just hold, this 20-pound weight (about four times heavier than what other dexterous robots can handle) both near and away from its body.
CREDIT: NASA



The next generation of robot astronauts is on its way, and they are even faster, stronger and more dexterous than before.

NASA and General Motors have unveiled Robonaut 2, a more advanced version of the original Robonaut built 10 years ago in a partnership between NASA and the Defense Advanced Research Project Agency. Its nickname, "R2," bears a striking resemblance to Star Wars' R2D2 ? "a similarity we've noticed," said Ron Diftler, NASA's Robonaut project manager.

This new humanoid machine, developed and built with the help of engineers from Oceaneering Space Systems of Houston, is more dexterous, with a four-jointed thumb as opposed to three, enabling it to do work beyond the scope of prior humanoid machines. "The thumb is obviously important, helping make us the dominant species on the planet," Diftler said. The robot's thumb "has roughly the order of flexibility of an astronaut in a spacesuit glove."


R2 is also four times faster than the original Robonaut, capable of moving roughly 4.5 mph. It is stronger as well, able to lift 20 pounds of weight, about four times what other dexterous robots can handle.

To make it work safely alongside people, "we put in more force sensors both on a joint and arm level, so if it comes into contact with astronauts unexpectedly, it can stop or completely shut down, depending on the force level it sees," Diftler explained. The roughly 300-pound robot, whose proportions are about that of a large human's, is also covered in soft fabric, to help cushion it in case it comes into contact with people and cover it so that it doesn't accidentally rip spacesuits.

These advances could help R2 manipulate flexible materials. The idea is to relieve the astronaut crews of the burden of tasks such as setting up thermal blankets or fetching tools in place. "Our goal is to have astronauts do more science and exploration," Diftler said.

The researchers developed the robot as a humanoid "because when your main objective is to help astronauts, you want the robots to work with the same tools and interfaces that humans do, which lends itself to machines like human hands, with a similar reach when it comes to arms," Diftler explained. "Continuing along that track, you end up with a human robot."

R2 can be tele-operated, "but the method we propose for operating it is what we call supervised autonomy, where from the ground, the robot can be given a sequence of commands, and after it completes each section of the command, activity can be verified from the ground's camera view before it moves on to the next part," Diftler said. "That way you can work around the time delay between Earth and space, which is a big problem with tele-operation." The astronauts can also operate R2 from inside their spacecraft if necessary.

NASA and GM began working together on R2 three years ago through a Space Act Agreement, with GM contributing an undisclosed amount of funding to the research, producing one robot for GM and another for NASA. NASA and GM have long been partners, starting in the 1960s with the development of the navigation systems for the Apollo missions. GM also played a vital role in the development of the Lunar Rover Vehicle, the first vehicle to be used on the moon.

These robots hold promise on Earth as well as in space ? they can help to build cars and assist astronauts during hazardous missions, too, the scientists say.

"For GM, this is about safer cars and safer plants," said Alan Taub, GM's vice president for global research and development. "When it comes to future vehicles, the advancements in controls, sensors and vision technology can be used to develop advanced vehicle safety systems. The partnership's vision is to explore advanced robots working together in harmony with people, building better, higher quality vehicles in a safer, more competitive manufacturing environment."

"This cutting-edge robotics technology holds great promise, not only for NASA, but also for the nation," said Doug Cooke, associate administrator for the Exploration Systems Mission Directorate at NASA Headquarters in Washington, D.C.

Given the uncertainty currently surrounding the status of NASA's human spaceflight program, it remains unknown when R2 might see use. R1 was never approved to go on a space mission. "My hope is to get R2 in space as soon as possible," Diftler said.

source: http://www.space.com/7871-robot-aid-astronauts-space.html

USB 3.0, have you ever hear it?

0 komentar

Nehalem and Swift Chips Spell the End of Stand-Alone Graphics Bo?ards

When AMD purchased graphics card maker ATI, most industry observers assumed that the combined company would start working on a CPU-GPU fusion. That work is further along than you may think.

What is it? While GPUs get tons of attention, discrete graphics boards are a comparative rarity among PC owners, as 75 percent of laptop users stick with good old integrated graphics, according to Mercury Research. Among the reasons: the extra cost of a discrete graphics card, the hassle of installing one, and its drain on the battery. Putting graphics functions right on the CPU eliminates all three issues.

Chip makers expect the performance of such on-die GPUs to fall somewhere between that of today's integrated graphics and stand-alone graphics boards--but eventually, experts believe, their performance could catch up and make discrete graphics obsolete. One potential idea is to devote, say, 4 cores in a 16-core CPU to graphics processing, which could make for blistering gaming experiences.

When is it coming? Intel's soon-to-come Nehalem chip includes graphics processing within the chip package, but off of the actual CPU die. AMD's Swift (aka the Shrike platform), the first product in its Fusion line, reportedly takes the same design approach, and is also currently on tap for 2009.

Putting the GPU directly on the same die as the CPU presents challenges--heat being a major one--but that doesn't mean those issues won't be worked out. Intel's two Nehalem follow-ups, Auburndale and Havendale, both slated for late 2009, may be the first chips to put a GPU and a CPU on one die, but the company isn't saying yet.

USB 3.0 Speeds Up Performance on External Devices

The USB connector has been one of the greatest success stories in the history of computing, with more than 2 billion USB-connected devices sold to date. But in an age of terabyte hard drives, the once-cool throughput of 480 megabits per second that a USB 2.0 device can realistically provide just doesn't cut it any longer.

What is it? USB 3.0 (aka "SuperSpeed USB") promises to increase performance by a factor of 10, pushing the theoretical maximum throughput of the connector all the way up to 4.8 gigabits per second, or processing roughly the equivalent of an entire CD-R disc every second. USB 3.0 devices will use a slightly different connector, but USB 3.0 ports are expected to be backward-compatible with current USB plugs, and vice versa. USB 3.0 should also greatly enhance the power efficiency of USB devices, while increasing the juice (nearly one full amp, up from 0.1 amps) available to them. That means faster charging times for your iPod--and probably even more bizarre USB-connected gear like the toy rocket launchers and beverage coolers that have been festooning people's desks.

When is it coming? The USB 3.0 spec is nearly finished, with consumer gear now predicted to come in 2010. Meanwhile, a host of competing high-speed plugs--DisplayPort, eSATA, and HDMI--will soon become commonplace on PCs, driven largely by the onset of high-def video. Even FireWire is looking at an imminent upgrade of up to 3.2 gbps performance. The port proliferation may make for a baffling landscape on the back of a new PC, but you will at least have plenty of high-performance options for hooking up peripherals.

Wireless Power Transmission

Wireless power transmission has been a dream since the days when Nikola Tesla imagined a world studded with enormous Tesla coils. But aside from advances in recharging electric toothbrushes, wireless power has so far failed to make significant inroads into consumer-level gear.

What is it? This summer, Intel researchers demonstrated a method--based on MIT research--for throwing electricity a distance of a few feet, without wires and without any dangers to bystanders (well, none that they know about yet). Intel calls the technology a "wireless resonant energy link," and it works by sending a specific, 10-MHz signal through a coil of wire; a similar, nearby coil of wire resonates in tune with the frequency, causing electrons to flow through that coil too. Though the design is primitive, it can light up a 60-watt bulb with 70 percent efficiency.

When is it coming? Numerous obstacles remain, the first of which is that the Intel project uses alternating current. To charge gadgets, we'd have to see a direct-current version, and the size of the apparatus would have to be considerably smaller. Numerous regulatory hurdles would likely have to be cleared in commercializing such a system, and it would have to be thoroughly vetted for safety concerns.

Assuming those all go reasonably well, such receiving circuitry could be integrated into the back of your laptop screen in roughly the next six to eight years. It would then be a simple matter for your local airport or even Starbucks to embed the companion power transmitters right into the walls so you can get a quick charge without ever opening up your laptop bag.

Beberapa macam mode search dan pengurutan dalam C++

0 komentar

1. Pencarian Biner (Binary Search) dilakukan untuk :

* memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar ukurannya.

* Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi (berarti ada kemungkinan data tidak ditemukan).

* Syarat utama untuk pencarian biner adalah data di dalam tabel harus sudah terurut, misalkan terurut menaik.

Berikut ini code binary search dengan bahasa C++

#include
#include
#include

void binSearch(int cari);

void main(){

clrscr();

int searchValue=20; /*Nilai yang dicari dalam arry yang sudah terurut */

binSearch(searchValue);

getch();

}

void binSearch(int cari)

{ int lb=1, ub=19, mid; /* lb merupakan batas bawah, up merupakan batas atas */

int nilai [20] ={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};

int jumlahPerbandingan =1; /* Optional */

mid= (lb+ub)/2;

while( nilai[mid]!= cari && lb<=ub)

{

jumlahPerbandingan++;

if( nilai [mid] > cari )

{ub = mid-1;}

else

{lb = mid +1;}

mid = (lb+ub)/2;

}

if(lb<=ub)

{

cout << “Nilai berhasil ditemukan”;

cout<<”Jumlah perbandingan :”<
}
else
cout <<”Nilai tidak ditemukan”;
}

Catatan :

Array bersifat statis baik nilai maupun jumlah element telah ditentukan sejak awal program.


2. Sequence search


pencarian sekuensial atau pencarian linear merupakan model pencarian yang paling sederhana yang dilakukan terhadap suatu kumpulan data. Secara konsep, penjelasannya adalah sebagai berikut: Terdapat L yang merupakan larik yang berisi n buah data (L[0], L[1],…, L[n-1]) dan k adalah data yang hendak dicari. Pencarian dilakukan untuk menemukan

L[i] = k

dengan I adalah bilangan indeks terkecil yang memenuhi kondisi 0 ≤ k ≤ n-1. Tentu saja ada kemungkinan bahwa data yang dicari tidak ditemukan. Contoh,

L = [10,9,4,6,4,2,5]

dimanakah posisi 4 yang pertama? Dalam hal ini k adalah 4 dan k ditemukan pada posisi dengan indeks berupa 2.

Dan setelah browsing, saya menemukan penjelasan yang lebih mudah dimengerti dan dipahami ^-^

The sequential search is best used if the array you are searching is unsorted. This method of searching is usually used on small arrays of less than 16 elements. We start the sequential search by first declaring a target to be found. The search initiates at the beginning of the array until it finds the target.

In the following example we will find a target value of 23 within a one dimensional array. At index 0, 32 is not equal to 23 so we proceed on to the next element.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

At index 1, 431 is not equal to 23 so we proceed.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

At index 2, -34 is not equal to 23 so we proceed.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

Finally at index 3, 23 is equal to 23 and we have found our target.

a[0]

a[1]

a[2]

a[3]

a[4]

32

431

-34

23

12

Now we will implement this example of a sequential search into C++ code. The program below asks the user for a target to be found, then uses a for loop to analyze each element of the array. If the array element is equal to the target it will display that the target was found. Whenever a target is found the variable “flag” will be incremented by 1. At the end of the program if the variable “flag” is less than one, thenthe target was obviously not found.

Contoh codenya …

#include iostream.h
#include conio.h
using namespace std;

int main()
{
const int arraySize = 5;
double target;
int array[arraySize] = {32, 431, -34, 23, 12};
int flag;

// flag is used to log how many times the target is encountered.

flag = 0;

cout << "Enter a target to be found: ";
cin >> target;

for(int cntr = 0; cntr < arraySize; cntr++)
{
if(array[cntr] == target)
{
cout << "Target found in array index " << cntr << "."
<< endl;

flag += 1;
}
}

// Test to see if target was found.

if(flag < 1)
{
cout << "Target not found." << endl;
}

return 0;
getch();
}

Namespace digunakan untuk menghindari name collision -> tubrukan nama yang sama.
Std sendiri adalah namespace yang digunakan untuk standard template library di C++. Jadi semua fungsi & template class STL didefinisikan didalam namespace "std".

Mengakses fungsi / struktur / class yang didefinisikan dalam suatu namespace dapat dilakukan dengan dua cara. Ini contoh akses namespace std untuk deklarasi variabel MyString yang merupakan type string.

Back to topic, dari code di atas, pertama dibuat dulu array berdimensi satu yang berisi 5 buah data, lalu dimasukkan data yang ingin dicari. Dideklarasikan "cntr=0",dilakukan pengulangan selama cntr kurang dari target, ketika sudah ditemukan cntr=target, maka ditampilkan bahwa data telah ditemukan pada indexarray[cntr], misal data yang dicari adalah 431, maka "Target found in array index 2"

The sequential search does have a pitfall. It is very slow and its performance rating is low. If a person had an array of one million elements, that would mean there could be up to one million comparisons, and that takes time! The sequential search method would be advisable to use only if the array you were searching was unsorted and small.

Terdapat 2 bersi algoritma pencarian beruntun, yaitu:

1. Pembandingan Elemen Dilakukan di Awal Pengulangan

2. Aksi Pembandingan dilakukan di dalam badan pengulangan (dengan

fungsi). Secara umum metode pencarian beruntun berjalan lambat. Waktu pencarian sebanding dengan jumlah elemen larik. Misalkan larik berukuran n elemen, maka pada kasus di mana x tidak terdapat di dalam larik atau x ditemukan pada elemen yang terakhir. Kita harus melakukan perbandingan dengan seluruh elemen larik, yang berarti jumlah perbandingan yang terjadi sebanyak n kali.

Metode Pencarian Beruntun Pada Larik Terurut

Larik yang elemennya sudah terurut dapat meningkatkan kinerja algoritma pencarian beruntun. Jika pada larik tidak terurut jumlah perbandingan elemen larik maksimum n kali, maka pada larik terurut (dengan asumsi distribusi elemen- elemen larik adalah seragam) hanya dibutuhkan rata-rata n/2 kali perbandingan. Hal ini karena pada larik yang terurut kita dapat segera menyimpulkan bahwa x tidak terdapat di dalam larik bila ditemukan, elemen larik yang lebih besar dari x.

Secara singkat, kita akan melakukan proses yang serupa dengan pencarian berurutan. Kita mulai dengan pembandingan dengan elemen yang pertama. Jika kita menganggap larik terurut naik (ascending), maka pencarian akan diteruskan sepanjang data yang dicari masih lebih kecil dari nilai elemen pada larik. Jika elemen larik sudah lebih besar, maka pencarian dihentikan karena pasti data yang dicari tidak akan pernah ditemukan pada larik.

Penelitian para ahli menunjukkan bahwa metode ini berjalan dengan sangat efektif dan efisien dibandingkan pencarian berurutan yang tidak terurut, jikaq data yang dicari berada (relatif) pada bagian awal larik. Tetapi, karena kondisi berhenti yang kita tentukan, metode ini kurang lebih berkinerja sama dengan pencarian berurutan jika data yang dicari terletak di bagian akhir larik.


Pengurutan

Pengurutan (sorting) adalah proses mengatur sekumpulan objek menurut urutan atau susunan tertentu. Urutan objek tersebut dapat menaik (ascending) atau menurun (descending). Bila N buah objek atau data disimpan di dalam larik L, maka pengurutan menaik berarti menyusun elemen larik sedemikian sehingga:

L[1]≤≤≤ …≤ L[2] L[3 L[N]

Sedangkan pengurutan menurun berarti menyusun elemen larik sedemikian

sehingga:

L[1]≥≥≥ …≥ L[2] L[3 L[N]

Data yang diurut dapat berupa data bertipe dasar atau tipe terstruktur (record). Jika data bertipe terstruktur, maka harus dispesifikasikan berdasarkan field apa data tersebut diurutkan. Field yang dijadikan dasar pengurutan dikenal sebagai field kunci.

Adanya kebutuhan terhadap proses pengurutan memunculkan bermacam- macam metode pengurutan. Metode tersebut diantaranya adalah: 1) Metode Pengurutan Gelembung (Bubble Sort), 2) Metode Pengurutan Pilih (Selection

Sort), 3) Metode Pengurutan Sisip (Insertion Sort), 4) Metode Pengurutan Shell

(Shell Sort), 5) Heap Sort, 6) Quick Sort, 7) Merge Sort, 8) Radix Sort dan 9)

Tree Sort. Pada modul ini, tidak semua metode pengurutan akan dibahas.

Tidak ada metode yang terbaik untuk pengurutan. Kebanyakan metode pengurutan sederhana hanya bagus untuk volume data yang kecil tetapi lambat untuk ukuran data yang besar. Metode pengurutan yang lebih cepat pun (seperti

quick sort dan merge sort) memang bagus untuk mengurutkan data yang banyak, tetapi tidak bagus untuk ukuran data yang sedikit karena memerlukan beban tambahan (overhead) yang boros waktu dan memori.

Metode pengurutan dapat diklasifikasikan sebagai berikut:

a.Metode pengurutan internal, yaitu metode pengurutan untuk data yang disimpan di dalam memori computer. Umumnya struktur internal yang dipakai untuk pengurutan internal adalah larik, sehingga pengurutan internal disebut juga pengurutan larik.

b.Metode pengurutan eksternal, yaitu metode pengurutan untuk data yang disimpan di dalam disk storage, disebut juga pengurutan arsip (file), karena struktur eksternal yang dipakai adalah arsip.