Tim Niemueller has announced a ROS client for Lua
Hello ROS users.
During the last weeks we have developed a Lua-based API to write ROS nodes in the Lua programming language. It allows for communicating with other nodes and participate in the ROS universe. It has been developed at Intel Labs Pittsburgh as part of my research stay this year working with Dr. Siddhartha Srinivasa on the Personal Robotics project.
Some highlights of the implementation:
- Completely written in Lua, no wrappers
- Implements topic and service communication
- Reads message specifications on the fly and generates appropriate data structures at run-time, avoiding offline code generation
- Fully documented API
- only about 2800 lines of code (ohcount)
- Test scripts for all features and simple examples
The implementation benefits from the inherent single-threading in Lua, meaning that everything is processed in a single main loop. This is one of the major factors for its simplicity. No attempts have been made to incoporate Lua add-ons that would provide true multi-threading. The implementation has by far not the same versatility as the Python or C++ API (and we do not aim at that), but it does provide a very simple way to interact with ROS and do this directly without a middle-man from Lua.
The endeavor has been conducted to prepare for porting the Fawkes behavior engine to ROS, which is a framework for developing robot behavior employing Lua as its scripting language.
We would be delighted if the community would take a look at the implementation and provided some feedback. Once it has reached a certain stability and the feature set has been expanded to an acceptable coverage we would like to propose this for inclusion in the experimental package tree.
You can find the source code at http://github.com/timn/roslua. Some documentation on how to get started is provided in the README file.