BeJCOverviewDownloadSetup |
ProNXTAuthors
OverviewIntroductionThis site described the proNXT project, which is a development environment for rapid prototyping of NXT-based embedded systems in Linux. It consists of a number of original tools and customized third-party tools, which are integrated to provide easily installable environment. proNXT provides three main areas of tools:
Monitoring toolsThe monitoring tools are Java/Eclipse-based tools and libraries, which allow communication with an NXT robot via USB and Bluetooth. In particular the following tools are included in proNXT: NXTConnect - a library which allows exchanging data packets (over Bluetooth and USB) between the host computer and the NXT robot. Being a Java-library, it may be easily used in other Java-based projects, which need communication with the robot. Furthermore, the library may be used directly from MATLAB to control the robot and gather data from the robot in MATLAB environment. StickControl - a utility which allows controlling an NXT robot over Bluetooth via a joystick controller. During the control, it periodically gathers data from the robot's sensors and logs them in MATLAB-supported format for further analysis. By combining the manual control with data-logging, the StickControl tool allows for calibrating responses to sensor observations. To automate this, the StickControl tool can replay a pre-programmed scenario of robot moves that provide data for calibration of robot's kinematics to increase the accuracy of robot's simulations (in MATLAB and Simulink). Customization of nxtOSEKThe code running the the NXT robots is based on nxtOSEK. Since nxtOSEK relies on Windows operating system for drivers for communication with the robot, it is incompatible with Linux. proNXT solves this by providing a tool for flashing nxtOSEK images into the robot. Further, it provides support for the HiTechnic Color Sensor v2, which is the current version of the HiTechnic color sensor used on NXT robots. Support for model-driven development under MATLAB/SimulinkproNXT facilitates modeling NXT-based robots under MATLAB/Simulink by providing a set of assets described below. proNXT Simulink blockset - a Simulink blockset offering blocks for rapid prototyping of control loops for NXT robots. It contains basic discrete operations such as derivate or PID controller, NXT-specific blocks such as a block representing the NXT motor and related kinematics, and a block for visualization of robot's position, angle and trajectory on a track. As opposed to standard blocks for discrete operations as provided by Simulink, proNXT blocks do not rely on absolute time, and thus they can be used for code generation using Embedded Coder Robot NXT infrastructure. Embedded code generation - allows generating a controller for the NXT robot's hardware and uploading it into the robot. It is based on third-party Embedded Coder Robot NXT Demo, which has been customized to allow for operation under Linux. Communication with a robot - proNXT offers Java-based library for communication with the robot over Bluetooth and USB. The library can be easily interfaced from MATLAB. This is further facilitated by a provided MATLAB class, which provides MATLAB-native interface for communication with the robot. Estimation of robot's kinematics - proNXT features a method for calibrating robot's kinematics to be used for accurate simulation of robot's speed and position over time. This is usually a crucial requirement when relying on simulations, which however is rather very difficult to target. The calibration method of proNXT submits the robot to a set of scenarios consisting of acceleration and deceleration at different speed and with different intensities. Based on the data gathered, proNXT builds a reaction map, which can be used with the NXT motor block provided by the proNXT Simulink blockset. The data from the robot is gathered using the StickControl tool. Download
Setup |
