Getting Started with MURI
This guide is intended to provide information to anyone in the lab needing to install essential project software. This guide covers the installation, set up, and use of QT, MURI, YARP, GLPK, and other essential software. Some instruction, such as the installation of QT is already present in other pages on this wiki. Links will be provided to these pages throughout this guide when appropriate.
1.1 Installing QT
The installation of QT can be found here. Please refer to the QT page for all installation instructions.
1.2 Obtaining Necessary Files from the SVN
The MURI project is housed in the hmt directory in the lab’s SVN repository. In order for MURI to function properly, both the mit and hmt folders need to be downloaded from the SVN. Please refer to the Lab Server page for instruction regarding how to access and use the SVN. This page outlines a few methods for accessing the SVN using both Linux and Windows. Under Windows TortoiseSVN is a good tool to use for accessing the SVN easily.
When accessing the SVN to download the entire hmt and mit folders, be sure to place them in the
C:\Source directory. Once downloaded, also be sure to delete the accompanying .svn file that will be downloaded with the hmt and mit folders. Instruction on how to do this is included on the Lab Server page.
1.3 Installation of YARP and GLPK
Two other libraries are necessary in order to get the MURI project up and running. These are Yet Another Robot Platform (YARP) and the GNU Linear Programming Kit (GLPK). Installation instructions for these libraries can be found at their respective websites using the links provided. Information concerning YARP installation can also be found here. Tutorials and usage guides are available for each as well (GLPK, YARP), but to get MURI running complete knowledge of how these libraries work is not really necessary.
While the above links do include instructions for how to install YARP and GLPK, perhaps the easiest method is just to obtain the compiled libraries from other lab members. Once you have them, place them in the
C:\Source folder (you must create the Source directory if you have not already done so) in their own respective folders (i.e.
2. Set Up
Before MURI can be properly compiled and used, several other steps must be completed. Once all the above software is installed, follow the instructions below.
2.1 Setting up Environment and System Variables
If you followed the instructions for installing Qt, you should already have the proper environment variables set up as well as the proper include file paths in the file paths dialog for using Qt. If not, please make sure to follow those steps before proceeding.
- Navigate to Start -> Control Panel -> System.
- Click on the Advanced tab
- Click the Environment Variables button
- Add the following User variables:
- Append the following to the PATH system variable:
Variable: Value: GLPK C:\Source\glpk- MURI_HOME C:\Source\mit\simulator\usarsim\Tools\YARPTools YARP_DIR C:\Source\Yarp YARP_ROOT %YARP_DIR% YARP_CONF %YARP_DIR%\conf
2.2 Visual Studio Changes
No Visual Studio changes should be required for the current version of the code (Fall 2011). The following was necessary for any projects that does not user the platform.pri file.
In Visual Studio 2008 (not 2010), navigate to Tools -> Options. From the Options dialog box, expand Projects and Solutions and click on VC++ Directories. In the “Show directories for:” drop box, select Include files and add the following lines:
From the “Show directories for:” dialog box, select Library files and add the following lines:
Click OK to close this dialog box.
At this time, use of MURI requires setting up a YARP server, running the objectserver and fakemuri project found in the mit directory, and then running the muri project. The steps for accomplishing this are detailed below.
3.1 Running YARP
- Open a command line window (click on Start -> Run…, type ‘cmd.exe’ and press enter)
- From the command line type
yarp serverand hit enter.
You should see output similar to the following:
yarp: Port /root active at <address> Name server can be browsed at <address> yarp: Bootstrap server listening at mcast:<address>
3.2 Running Objectserver, Fakemuri, and MURI
- Navigate to: C:\Source\mit\simulator\usarsim\Tools\YARPTools\objectserver
- Open the objectserver.sln file
- Hit F5 to Debug
If all goes well, the object server window should open and you should see something similar to the following output in a command line window:
yarp: Port /objectserver_registration active at <address> yarp: Port /objectserver_announce active at <address>
Note that in order for this to occur, a YARP server needs to be up and running (see step 3.1).
- Navigate to:
- Open the
- Right click on the protocol project and select “Set as StartUp Project”
- Hit F5 to Debug
Once again, if all goes well, the protocol window should be displayed. A command line window will also open with output similar to the following:
yarp: Port <port name> active at <address>
Note that in order for this to occur, a YARP server and objectserver need to be running (see steps 3.1 and 3.2).
- Navigate to:
- Open the
- Make sure that muri is set as the the StartUp Project
- Hit F5 to Debug
If all is working properly, you should see a splash screen followed by the Remote Operator Interface (ROI) window. You should also see one or two red dots on the lower right side of the halo surrounding the map to indicate that a UAV and UGV are present and moving to the right. At this point you can navigate the interface, add tasks, etc.
- The MURI project will compile and run without running a yarp server, objectserver or fakemuri. In the command line window that opens with the MURI project the message unable to locate nameserver will appear. However, in order to keep everyone else on the network happy, it is important to keep a yarp server running. This prevents the program from repeatedly attempting to access a yarp server located anywhere else (besides your computer) on the network.
- Fakemuri allows robots to be displayed in the Remote Operator Interface(ROI). It does not have to be run alongside the MURI project in order for MURI to work. However, it is useful for testing the functionality of the ROI (i.e., the halo, map, minimap, task addition, etc.)
- The widgets in the interface will only be enabled once the connection to fakemuri is established. If the connection to fakemuri is broken, interface widgets will be disabled.