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.

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.

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

comments powered by Disqus

Direct Download

Read full article as PDF: