This branch is 1 commit ahead of ashuang:master.
This is the code base for libbot2. The libbot2 project provides a set of libraries, tools, and algorithms that are designed to facilitate robotics research. Among others, these include convenience functions for maintaining coordinate transformations, tools for parameter management and process administration, and a 3D visualization library. Initially developed at MIT for the 2007 DARPA Grand Challenge, libbot2 is designed to provide a core set of capabilities for robotics applications and has been utilized on a number of different robotic vehicles. The libbot2 library follows the pods build architecture guidlines (http://sourceforge.net/p/pods/home/Home/). Overview ======== libbot2 is a collection of several pieces of software (pods). Some pods may depend on others. The current list of pods is: bot2-core C library with some simple but useful routines, and a set of core message types (LCM types). bot2-vis C library of classes and functions for visualizing data with OpenGL and GTK2. bot2-lcmgl Transmitting and rendering OpenGL commands over LCM. bot2-procman Process management tools for controlling many processes on one or many workstations. bot2-lcm-utils LCM utility programs (tunnel LCM over TCP, chop or splice log files, etc.) Requirements ============ These are required. GLib 2.0+ CMake LCM (http://lcm.googlecode.com) Java (Sun JDK or OpenJDK strongly preferred) Python GTK+ 2.0+ (required by bot2-vis) OpenGL (required by bot2-vis) GLUT PyGTK Note that some pods may have fewer requirements (e.g., if you just want bot2-core) On a Debian/Ubuntu system, the following packages should be sufficient: libglib2.0-dev cmake sun-java6-jdk | default-jdk | openjdk-6-jdk python-dev python-gtk2 libgtk2.0-dev mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev freeglut3-dev libjpeg-dev Additionally, you'll need to install LCM from http://lcm.googlecode.com On OS X, the recommended procedure is to use MacPorts and install: cmake pkgconfig glib2 gtk2 atk cairo python26 py26-gtk pango mesa Additionally, you'll need to install LCM from http://lcm.googlecode.com (Local) Installation ==================== libbot2 adheres to the Pods core policy, and makes use of the Pods build tools. For more information about Pods, see: https://sourceforge.net/p/pods/ You can install libbot2 to your system by running: $ sudo make BUILD_PREFIX=/usr/local If you don't want to install libbot2 to your system, you can also build it inside the source directory. To do this, run: $ make In this case, the executables, headers, libraries etc. will be installed according to the Pods core policy. If no other "build" directory is found, it will default to: libbot2/build/ Uninstallation ============== If compiled and installed to your system, run: $ sudo make clean note: this can only be done from the libbot2 source that was used for installation Documentation ============= To build documentation, install Doxygen and then run: $ cd doc $ doxygen HTML docs will then be build to doc/html/ License ======= libbot2 is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. libbot2 is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with libbot2. If not, see <http://www.gnu.org/licenses/>.