An up-to-date look at free software and its makers

Open Questions

The announcement of the Open-PC more or less pales into insignificance compared with the high expectations the community has placed on development efforts in the past.

If you keep Karlitschek's pragmatism in mind, the promise to solve Linux users' most intractable hardware problems this year sounds more believable than many other ambitious projects that have never managed to come up with a widely usable product despite many years of trying.

The goal of boosting Linux acceptance seems achievable if you consider that many potential users currently fear the lack of vendor support.

The question of how to organize the project remains open. If this is a business model, will the members of the free software community find themselves in the role of consumers who will benefit from more choice but will not really have a voice apart from web surveys? Or will critical decisions be made along the lines of open projects such as Debian or Wikipedia?

Do-it-Yourself Robot

Hardware tinkerers face vastly different problems from software developers. Creative experimenting can destroy a device or, depending on its characteristics, present a real danger. Many developers look for realistic simulations, keeping any possibility for damage strictly virtual.

The aim of the Robocode [6] game is not that of producing realistic hardware. Instead, users are asked to program a battle robot that fights against one or more similar machines in a virtual arena (Figure 2). Using the on-board gun and sophisticated navigation, players try to send their opponents to the happy robot hunting grounds. Various sample robots are provided to act as initial opponents, and more are available for downloading from the Robocode homepage.

Figure 2: In Robocode, the player programs a virtual battle robot, learning Java as a side effect.

But Robocode is more than just a game: Players need to use Java to program new robots. The machine has to be equipped with a basic routine that the robot follows until one of its sensors is triggered, and it needs a set of responses to a variety of possible events. Each robot is equipped with rotatable radar, which it uses to locate opponents. If the robot detects a target, a ScannedRobotEvent is triggered, and the response would typically be to fire a shot in the direction of the target. Other events tell the robot whether the shot was a hit, if it has been hit by an opponent, or if a crash with the edge of the playing field or another battle robot has occurred.

Unlimited Possibilities

The complete Java programming language is available, so nothing can prevent programmers from developing highly complex algorithms from the field of artificial intelligence. Robocode is highly addictive. Just a modicum of programming lets you can create a highly interactive robot, which makes it hard to escape from the vicious circle of the built-in editor (Figure 3) and battlefield.

Figure 3: The built-in Java editor makes it easy for newcomers to program a robot, and advanced Java developers can battle it out to their hearts' content.

Robocode will run on any operating system that supports a Java Runtime Environment. The program has provided nine years of fun and spawned hundreds of budding Java programmers; little wonder fans of other languages are now following suit.

Ruby is one of these languages: KDE developer Jordi Polo has launched a new project titled Rubots [7] that implements the Robocode principle in Ruby and shifts the battlefield to a 3D world. The developer is looking to teach newcomers Ruby in an enjoyable way while extending the language to cover robotics and artificial intelligence.

Rubots relies on Player [8]. The collection of tools and libraries includes the Stage library, which simulates robots and provides sensors and objects for navigation in a 2D world. The Gazebo extension adds a third dimension.

If Rubots is successful, it could spawn a whole new crop of Ruby fans. A similar experiment was launched for Python a couple of years ago [9]; however, it disappeared before reaching the initial release stage.

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Open-PC Begins to Take Shape

    The Open-PC project initiated by KDE board member Frank Karlitschek has released the specifications for its first computer. The desktop with dual-core Atom processor is due to arrive in February 2010.

  • Open PC: Taylor-Made Linux Hardware

    KDE developer Frank Karlitschek announced the launch of the Open PC Project at the Gran Canaria Desktop Summit. Goal of the project is to assemble a PC fit for optimal use of Linux and free software.

  • This Month's DVD

    This month we bring you CentOS 7 (64-bit), a community enterprise operating system based on Red Hat Enterprise Linux, and the Fedora 20 Robotics spin (32-bit).

  • Free Software Projects

    Building robots is an expensive hobby but too interesting to leave to a small group of elite researchers. Peekabot saves you the investment in hardware and simulates a brave new robot world. Also, we’ll look at Gbrainy, a program to train your gray matter.

  • Free Software Projects

    Python inventor Guido van Rossum is known to have a good sense of humor and probably had a good laugh when he heard about the Guido van Robot project. If you are learning how to program, or would like to teach others, this software gives you a light-hearted introduction.

comments powered by Disqus

Direct Download

Read full article as PDF: