SkyJack: A Drone to Hack All Drones

Standard

http://hackaday.com/2013/12/06/skyjack-a-drone-to-hack-all-drones/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+hackaday%2FLgoM+%28Hack+a+Day%29

HACK A DAY
Fresh hacks every day
HOME
OUR VIDEOS
SUBMIT A TIP
FORUMS
STAFF
DECEMBER 6, 2013
SkyJack: A Drone to Hack All Drones

December 6, 2013 by Josh Marsh 9 Comments
skyjack

Quadcopters are gradually becoming more affordable and thus more popular; we expect more kids will unwrap a prefab drone this holiday season than any year prior. [Samy’s] got plans for the drone-filled future. He could soon be the proud new owner of his own personal army now that he’s built a drone that assimilates others under his control.

The build uses a Parrot AR.Drone 2.0 to fly around with an attached Raspberry Pi, which uses everybody’s favorite Alfa adapter to poke around in promiscuous mode. If the SkyJack detects an IEEE-registered MAC address assigned to Parrot, aircrack-ng leaps into action sending deauthentication requests to the target drone, then attempts to take over control while the original owner is reconnecting. Any successfully lassoed drone doesn’t just fall out of the sky, though. [Samy] uses node-ar-drone to immediately send new instructions to the slave.

You can find all his code on GitHub, but make sure you see the video below, which gives a thorough overview and a brief demonstration. There are also a few other builds that strap a Raspberry Pi onto a quadcopter worth checking out; they could provide you with the inspiration you need to take to the skies.

467 total views, no views today

Genetic algorithms become programmers themselves

Standard

Hack a Day

via Genetic algorithms become programmers themselves.

 

[Kory] has been experimenting with genetic algorithms. Normally we’d expect his experiments to deal with tuning the variables in a control system or something, but he’s doing something much cooler. [Kory] is using genetic algorithms to write computer programs, and in the process bringing us one step closer to the Singularity.

The first experiments with genetic algorithms generating applications did so in BASIC, C, and other human-readable languages. While these programs nearly worked, there were far too many limitations on what could be produced with a GA. A simpler language was needed, and after turning to assembly for a hot second, [Kory] ended up using brainfuck, an extremely minimal but still Turing-complete language.

The use of brainfuck for creating programs from a genetic algorithm may seem a bit strange, but there’s a method to [Kory]‘s madness. It’s relatively simple to write an interpreter the GA’s fitness function can look into and come up with a score of which programs should breed and which should die. Also, the simplicity of brainfuck means a computer doesn’t have to learn much syntax and grammar at all.

Right now, [Kory]‘s computer that can program itself only does so by creating simple ‘hello world’ programs. It should be possible, though, for this AI to create programs that take user input and generate an output, whatever that may be. Once [Kory] is able to have the computer generate its own fitness functions, though, the sky is the limit and the Singularity will be fast approaching.

291 total views, no views today

ROS on Android Phone | Finaly done with ROS(Robotic Operating System) on android

Standard

From: http://www.technolabsz.com/2012/03/ros-on-android-phone.html


ROS on Android Phone

 

Finaly done with ROS(Robotic Operating System) on android 

It was my 1 day work for getting an output from android to ROS Server .I will explain the procedure that i have done
Prerequisites:
1)android-sdk for linux -Refer the following site for manually download android component .Othervice you have to setup eclipse for doing it
2)platform-tools-This is the most required thing in this installation operation

Procedure:
1)Download android stack from ROS website
2)There is a README file in this stack describing the installation procedure .But there will some error when you follow it
Note :The error i got the installation operation is with adb
Starting of adb is like follows
#./adb kill-server
#./adb start-server
#./adb devices
It will print if the device is connected
#./adb shell
Set the Link path of python from README file
Change the link path according to your android path .Othervice it will show error
It is better to install Pythonforandroid and sl4a manually .
Set the adb path in .bashrc file on home folder
eg :export ADB=~/android-sdk/platform-tools/adb
After installation using make install command
You have to enter
$make cv_module
$make ros_sample 

After that you have to take pythonforandroid and press importmodule option
It will show cv.egg ,select and install it
Connect android phone and computer though a wifi network ,preferably through a router .
Take ros.py from sl4a script folder .Run it
It will ask for ROS_MASTER_URI ,for URI you have to note the IP of computer which running roscore .For eg:My system IP was 192.168.1.2 So theURI is

eg : ROS_MASTER_URI=http://192.168.1.2:11311
URI=http://IP:11311
Note:i have some issues in importing cv .So i commented the cvsection and working only on accelerometer ,vibrate ,speak functions
Here is the edited ros.py
#
#  ROS on Android
#  Sample ROS node
#
#  Copyright (c) 2011 Technische Universitaet Muenchen,
#  Distributed Multimodal Information Processing Group
#  http://vmi.lmt.ei.tum.de
#
#
from ros_android import *
import time
# load needed ROS packages
import roslib
import rospy
from std_msgs.msg import String
from std_msgs.msg import Int16
from sensor_msgs.msg import Image
#from cv_bridge import CvBridge, CvBridgeError
#import cv
# callback for /mobile/say
def cb_say(data):
rospy.loginfo(“I should say: %s”, data.data)
droid.makeToast(data.data)
droid.ttsSpeak(data.data)
# callback for /mobile/vibrate
def cb_vibrate(data):
droid.vibrate(data.data)
def main():
print “main()”
cam = CamHandler()
pub = rospy.Publisher(‘/mobile/acceleration’, String)
rospy.init_node(‘android’)
rospy.Subscriber(‘/mobile/say’, String, cb_say)
rospy.Subscriber(‘/mobile/vibrate’, Int16, cb_vibrate)
# start sensor polling in background
droid.startSensing()
while not rospy.is_shutdown():
# read the accelerometer and store result
acc = droid.sensorsReadAccelerometer().result
# if new sensor values have arrived, output them
if isinstance(acc[0], float):
# acc_str = “%s – Acc: %f %f %f” % (rospy.get_time(), acc[0], acc[1], acc[2])
acc_str = “X:%f Y:%f Z:%f” % (acc[0], acc[1], acc[2])
else:
# acc_str = “Time: %s – No acc. values” % rospy.get_time()
acc_str = “No values.”
rospy.loginfo(acc_str)
pub.publish(String(acc_str))
rospy.sleep(1.0)
# start-up main
main()
Here is the output
Videos

341 total views, no views today