Saturday, December 01, 2007

Winning The DARPA Grand Challenge 2005 - Stanford's Stanley







These are my raw notes on this video. Facts are not checked, some names could be wrong.

03:00 - Darpa - no funding -> contest - changed model from before
03:40 - 2007 GPS breadcrumbs
06:40 - a year roughly to put together a car - Stanford joined the race only in the 2005 version - timeline slide
07:50 - made a course DARPA Grand Challenge - no syllabus
08:00 - 40 people, 20 people stayed on - got in touch with Volkswagen - Touareg
08:20 - first thing they did - equipped the car with inertial guiding systems - GPS + inertial measurement unit that measures accelerations and rotational velocities => extrapolate between different GPS measurements
09:00 - low level steering control - make your front tires parallel to your reference trajectory - take image from here
- if you get off the trajectory, measure your error and steer in proportion to it
10:30 - they put lasers on the roof - image
- a laser beam goes into a rotating mirror that gets directed into the environment - the laser light goes out, it is being reflected by objects - received by the sensor - we can measure the "time of flight"
11:00 - online motion planning
12:54 - test - December 1 - California - ~off-road-desert - went further than CM went in 2004, but not much - the many obstacles pushed the car around a lot - too slow for racing
13:15 - replaced driving modules with new versions, based on the feedback in the dessert
14:03 - software architecture
14:15 - faced first big hurdle - DARPA had 195 submissions - they wanted to find 40 good ones - they had to submit a video - first time they drove the car without a person inside - 43 semi-finalists
18:00 - get out bugs - goal: hundreds of miles without intervention
18:50 - Stanley gone wild - all of a sudden - go crazy out of no apparent reason - drive maybe into a ditch, down a cliff etc - car had to berescued
19:25 - 3 different innovations we worked on
20:15 - Obstacle detection - simple logic - something vertical hit by laser - image
20:40 - Effect of pitching
19:50 - Probabilistic error model
23:00 - Had to populate the probabilistic model with human driving - discriminative learning - label flat terrain as flat an non-flat as non-flat - if the human driver drove oversomething, it was flat - they managed to basically eliminate all false positives without affecting the correct positive rate
25:25 - they wanted to drive really fast (35 mph goal), but the lasers don't cover more than a 20 meter distance - couldn't stop in time when the lasers caught an obstacle
25:40 - used a camera to find roads - how do you extract from a camera image where the road is - turns out it's not easy
26:13 - they started with the idea that maybe roads are brownish - doesn't work for paved roads
26:25 - maybe the road is the smoothest thing in the image - but the smoothest thing in the image is the sky :))
27:00 - Stanley's Adaptive Vision - extract drivable region with lasers (as far as lasers can go), and use the extracted pixels as training examples - mixture of Gaussian
27:50 - if the road changes it's color you just slow down and the lasers take care of it
29:00 - the car got too fast - they had to find a way to make it slow down when the terrain got bad - adaptive mechanisms for speed control - train with human driving - stretch in the mountains - built a controller that copied that. The speed controller considers: filtered vertical shock, terrain slope, road width
31:28 - 1000+ miles of testing
32:35 - funny videos from the Berkeley team + funny Carnegie Mellon picture
33:00 - Rainy day Mojave desert (July) - couldn't see - relied on the software to drive - robot was better than human driving
34:03 - The race took place at the Fontana speedway (national qualifications), and then in Prim in Nevada. Fontana - selected the 20 finalists - Stanford 2 cars
- gate
35:20 - the most difficult obstacle was a tunnel - emulated an underpass under a highway - no GPS coverage in a tunnel - have to drive locally - this can also kill you when you get out of the tunnel and realize you are somewhere else
37:00 - one of the contestants programmed the car to go full throttle when it lost GPS signal
~37:30 - funny videos
38:22 - 23 finalists - race on October 8th
38:40 - image with the race day timeline (5:30 - DARPA chases 12 cows off the race course)
38:58 - 6:30 - race began
41:23 - "It was a complete act of randomness that Stanley actually won. It was really a failure of Carnegie Mellon's engine that made us win, and no more and no less than that"
42:10 - Last obstacle - treacherous mountain pass - reached only by 5 vehicles - Stanley was the first car to clear it - 42:23 - image
43:50 - five teams finished - four within half an hour of each other
44:26 - description of Urban Challenge 2007
45:30 - The Big Picture
45:40 - Military perspective slide
45:50 - Social perspective - cars are deadly instruments - 42000 die every year in the US because of traffic accidents - 90% caused by human error
46:20 - Commuting - people spend 1.25 hours/day in average commuting - free that time => more productive / save money
46:56 - Aging population, people who can't drive (blind people, drunk people, children) / Increase highway throughput - most space on highways is not used

Thursday, November 15, 2007

How to disable ipv6 in Ubuntu Gutsy

Add the following line to /etc/blacklist
blacklist ipv6
How to disable the PC onboard/motherboard speaker in Linux/Ubuntu

modprobe -r pcspkr

Wednesday, November 07, 2007

Monitoring HDD/hard-disk/hard-drive temperature with Ubuntu

Tested on Feisty

Monitoring hard-disk temperature

root@server:~# apt-get install hddtemp
root@server:~# hddtemp /dev/sda
/dev/sda: WDC WD1600JS-00NCB1: 37°C

Wednesday, October 31, 2007

How to not lock yourself our of your own remote Linux server

While testing iptables rules on a remote server you can add the following line to crontab:

*/10 * * * * /sbin/iptables -F

This will reset your rules every 10 minutes, so if you made a mistake you will still be able to gain access to your router in a maximum of 10 minutes.

Source

Sunday, October 28, 2007

Eclipse TPTP + Gutsy Gibbon = love?

1) Fixing the "Error occurred during initialization of VM" error when trying to profile with TPTP

If you get this error:

Error occurred during initialization of VM
Could not find agent library on the library path or in the local directory: piAgent

Then install libstdc++2.10-glibc2.2 ( apt-get install libstdc++2.10-glibc2.2 )

2) Fixing the "FATAL ERROR: JVMPI, an experimental interface, is no longer supported." error when trying to profile with TPTP

If you get this error:
FATAL ERROR: JVMPI, an experimental interface, is no longer supported.
Please use the supported interface: the JVM Tool Interface (JVM TI).
For information on temporary workarounds contact: jvmpi_eol@sun.com
Could not resolve to JVMPI interface
Error occurred during initialization of VM
-Xrun library failed to init: piAgent

then
a) install Java 1.5 (separately from your Java 1.6 install)
b) go to Eclipse and Go to Window > Preferences > Agent Controller > Integrated Agent Controller. Click on the Environment tab. Change the path of the Java executable to Java 1.5.
c) Right click on your Eclipse project > Properties > Java Compiler > Click Enable project specific settings. Select 5.0 from Compiler Compliance Level > Let it rebuild the project.

Reference: http://dev.eclipse.org/newslists/news.eclipse.tptp/msg02475.html

Tuesday, October 23, 2007

VMware Server (1.0.3) + Management Interface (vmware-mui) notes

Tested on Ubuntu Feisty + Ubuntu Gutsy Gibbon VMs

vmware-server-console: libpng error on Debian GNU/Linux

How to fix the MAC address problem after making a copy of an Ubuntu VM:
1) Login on the VM and unlink /etc/udev/rules.d/70-persistent-net.rules
2) Poweroff
3) BEFORE POWERING ON: open the .vmx file and delete the following lines
ethernet0.addressType = "generated"
uuid.location = "56 4d d7 38 51 b8 c7 4b-94 71 85 98 39 fc 4d 0a"
uuid.bios = "56 4d d7 38 51 b8 c7 4b-94 71 85 98 39 fc 4d 0a"
ethernet0.generatedAddress = "00:0c:29:fc:4d:0a"
ethernet0.generatedAddressOffset = "0"
4) Power on. VMware should automatically generate a new MAC address for your virtual machine, and Ubuntu should rewrite its persistent file with the new MAC.

If the management interface won't start:
"# vi httpd.vmware (or use your favourite text editor)

Search for the string: "start)". Right after this line, place the following:

if [ ! -d /var/run/vmware/httpd ] ; then
mkdir /var/run/vmware/httpd
chown www-data:nogroup /var/run/vmware/httpd
chmod 700 /var/run/vmware/httpd
fi

(Save your changes). Note that if your httpd runs as a different owner and group, season the above to taste." - source

Start multiple VMs faster at system startup:
- Open the Web Management interface
- Select Properties for each VM (click the arrow)
- Set the "Continue Starting Other Virtual Machines After" to "Don't Wait" at the System Startup Options in the Options tab

Friday, July 20, 2007

Syncing a Palm Tungsten C to jpilot (tested on Ubuntu Feisty)

The old way of doing this was to fiddle with the visor module and set the serial port to something like /dev/ttyUSB1 (JPilot->File->Preferences->Settings). But this doesn't seem to work for me on Ubuntu Feisty.

The way I solved it was by configuring the serial port to be "usb:" (without the quotes) and it worked like a charm.

Wednesday, July 18, 2007

Disabling the Synaptics Touchpad driver in Linux (tested on Ubuntu Feisty)

1) Edit /etc/X11/xorg.conf and add the line
Option "SHMConfig" "true"
to the section that configured the Synaptic Touchpad driver.

The result should be something like this:

Section "InputDevice"
Identifier "Synaptics Touchpad"
Driver "synaptics"
Option "SendCoreEvents" "true"
Option "Device" "/dev/psaux"
Option "Protocol" "auto-dev"
Option "HorizScrollDelta" "0"
Option "SHMConfig" "true"
EndSection


2) Install gsynaptics by running
apt-get install gsynaptics
as root

3) Restart your X server (if you don't know how to do this, just restart your laptop)

4) Start gsynaptics and configure the touchpad:

You can also disable vertical scrolling by going to the scrolling tab.

Tuesday, June 19, 2007

YEurope, Chaos and Innovation

Computers, rubble, cables, posters, video consoles, electronics, measuring machines, books, proximity sensors, a disco ball, and a lot of geeks. So delightfully chaotic. All of this is called Metalab, and I'm standing in the middle of it. You won't guess what is going on inside if you pass by it, but here it is, ten meters from Vienna's castle-like town hall. It is an inconspicuous basement, spanning five rooms; a hacker's paradise, financed partially by public funds. It's a self-run lab that strives to bring more technological innovation in a typically conservative Europe.

I'm in Vienna because my team is competing in YEurope, a seed funding contest created by Metalab's founder. It is the first contest of its kind in Europe and it boils down to finding the most promising tech startups. YEurope is a meeting place between talented young entrepreneurs and investors with experience and/or money. The best teams get funded for the first 3-5 months, in exchange for 2-10% of the stock of the new company. Not all companies turn to profit but statistically it is a win-win situation because even if one in ten of the funded companies becomes big in the future, the stock pays for the loses on the other nine companies and the investors even make a decent profit.

The rules, the format and even the application form are modeled after a US contest called YCombinator. YCombinator is such a big success that a few hundred highly intelligent people apply for it yearly. But they don't apply for the "measly" few thousands of dollars that are on the line, they apply because of the mentorship, support, and social networking opportunities they will get once they are among the winners.

In Europe risk and subsequent bankruptcy equates to failure, because the two-guys-in-a-garage way of starting a business is not considered viable. In the US on the other hand there is a real bootstrap culture that has brought us companies like Google and Microsoft. Funding in Europe is only available to well-established companies with a good track record. Twenty year-olds that get millions of dollars in funding based only on their idea and a mockup is something unheard of. Europe is lagging behind in innovation and the EU is just starting to feel worried about this. I'm not saying they should completely emulate the US way of bringing up innovation, but they should at least think of establishing a few "Metalabs" here and there.

(The text refers to Friday 15th of June 2007)

Tuesday, May 29, 2007

Have you ever wanted to control 2 computers with the same keyboard and mouse? (Semi-Geek Post)

If the two computers are in the same LAN, you can easily do that. Imagine having two screens connected to two computers, and only one mouse and keyboard connected to the first computer. When your mouse pointer reaches the edge of the screen on your first computer, it jumps to the second computer, along with keyboard control. Moreover, you could even use different operating systems on the two computers, one Windows and one Linux.

The way to achieve this is to use Win2VNC (for Windows) or x2vnc (for Linux). After you install one of these programs on the first computer, you have to install a VNC server on the other computer (I recommend RealVNC). The last step is configuring win2vnc or x2vnc to connect to the VNC server on the other computer. Tip: Tip: Make sure that at least while testing you disable the VNC server authentication, so that it doesn't ask for permission or for a password when win2vnc connects to it. Also, check the firewall permissions on the second computer. I think the default port for RealVNC is 5900.

Saturday, May 19, 2007

How to successfully compile prozilla (proz) on Ubuntu Feisty (Geek Post)

If you get this error
download_win.h:55: error: extra qualification 'DL_Window::' on member 'print_status'
go to line 55 in src/download_win.h and replace it with
void DL_Window:: print_status(download_t * download, int quiet_mode);

(via LINUX... y otras cosas)

Thursday, May 17, 2007


This image is haunting me. Right, now let's get on with our lives.

Sunday, May 13, 2007

My work

About 5 years ago I joined a website called Jucaushii.ro, a Romanian gaming news website. More than 2 years ago Playfuls.com, its English counterpart, was launched. Last year I sold both websites and I used the money to pay a part of my college. At its highest peak playfuls.com had more than 3 million visitors per month (If you want to put this into perspective, check this out). I would really want to stress the fact that I never was involved in the editorial process, I only handled the tech part. And by this I mean I wrote the core of the website (along with my friend Stokky) and I configured/maintained the Linux servers. The current setup has a main server and a bunch of caches in front.

My main area of interest is distributed applications in general and datamining in general. By datamining I mean extracting useful data from unstructured information (what Google does). I've been doing this in one way or another for the past 3 years. Even i do it on an on/off basis, this is my true passion. My other major interests are Linux and programming in general.

One of my new projects is GeoScaling, which will be a company offering geographical web scaling services and products. We will help companies build, maintain and scale web applications that have many visitors or are mission critical. Our first product is GeoScaling DNS, a DNS server that can redirect users to the closest mirror based on their country of origin. It will also be able to do load balancing and global failover. The software is still in alpha and we're currently testing it. This is going to be an interesting summer.
How to make VMware Workstatin 5.5.3 work after an upgrade to Feisty (Geek Post!)

1) Locate the installed version of vmmon.tar (it should be something similar to /usr/lib/vmware/modules/source/vmmon.tar)

2) Backup vmmon.tar (optional yet highly recommended)
cd /usr/lib/vmware/modules/source/
cp vmmon.tar vmmon.tar.bck


3) Unpack the file
tar -xvf vmmon.tar

4) Edit vmmon-only/include/compat_kernel.h
Try
mcedit vmmon-only/include/compat_kernel.h
If you don't have mcedit try editing the file with pico, vi, or something else
pico vmmon-only/include/compat_kernel.h
vi vmmon-only/include/compat_kernel.h


Inside the file replace the line
static inline _syscall1(int, compat_exit, int, exit_code);
with
/* static inline _syscall1(int, compat_exit, int, exit_code); */

5) Repack the folder
chmod 755 vmmon.tar
tar -cvf vmmon.tar vmmon-only


6) Run vmware-config.pl

Enjoy

Saturday, May 12, 2007

On pain and suffering, by YsabellaBrave (she could be what she seems, a lady, I haven't decided yet - see her other (1) videos (2))



Tuesday, April 24, 2007

Hi.

My name is Ovi and I am originally from Targu Mures, which is located in Transylvania, a region of Romania which probably reminds you of Dracula. I am 21, in a relationship with a beautiful and intelligent woman, and I'm currently a sophomore studying IT at INHOLLAND University, Amsterdam.

The IT department at INHOLLAND is small and I love it because all the students and teachers know each other. It's actually kind of a school in a school, because it doesn't have much in common with the rest of INHOLLAND (and trust me, that's a good thing). The program contains a lot of Cisco (CCNA, CCNP and Cisco Wireless), programming (more Java, C, ASP/C#), and Math (Calculus, Discrete Math, Signals). When I will graduate (hopefully earlier than expected) I will earn a Bachelor of Engineering degree.

I have been working with computers since I was in the 2nd grade. I usually wake up and go to sleep in front of a computer. I have a tendency to do a lot of extracurricular stuff as I find working on real projects the best way to learn Computer Science. So if you want to know what I know, don't necessarily look at what I do in school (but more on my projects later). My main interests are datamining, , Linux and (more recently) networking and security. I also have a vast experience in PHP (5+ years), and I'm busy studying semi-advanced Java.

My astrological sign is Aquarius and I am left handed and disorganized (strangely I find this an asset, as it stimulates my imagination). I love music of all kinds, but especially oldies. I hope to have enough time to learn how to play piano soon. I also like movies in general (and SciFi, decent comedies and French movies in particular).

I don't know exactly what you'll find on this blog. I guess it depends on my mood. But I will probably write a combination of technical posts, personal opinions on life, and (if I really start to study for the GRE exam), English words and essays.
Fear of posting

I have to admit, I'm a little bit paranoid when it comes to publishing information about myself online. Some would say it's nonsense, and others would see it as a legitimate cause of concern. Since I'm into datamining and Computer Science in general, I'm aware that employers are starting to collect online information about candidates during the interview process. Even on a public blog people tend to publish personal information, and this clashes with the mask that they put on when they go into an interview.

When I think about this newfound way of getting information about potential and current employees I automatically ask myself if you can ascertain somebody's work potential by reading a personal blog. Come to think of it, if I would be the one doing the interviews I would probably try to google the candidates, but I would not judge them from a personal point of view.

Excuse the babbling, it's late.