Getting Started (Software)

From Princeton Autonomous Vehicle Engineering

Jump to: navigation, search

If you are new to PAVE and are interested in developing code for us, you have come to the right place. The things you definitely need to know before developing code for PAVE will be covered in the following sections.

Contents

Using Mac OS X or Linux

All of the software tools we use runs on Windows, and there are no Mac or Linux versions that we know of. Macintosh users can dual-boot Windows using Boot Camp, and you can also consider virtualization. If you prefer not to install or virtualize Windows, you can download a remote desktop client to allow you to connect to one of the computers at the PAVE garage.

Obtaining Windows

There are several ways of obtaining a copy of Windows:

  • You can get an ISO of Windows Server 2008 (from pavemedia) on a local drive. If you don't download it, random accesses over the network will make installation very slow.
  • Another way is to purchase Windows from the OIT PSR Web Store. For those of you with SCI machines (Including Macs, of course), you can obtain windows for a very low media fee of about $15.
  • If you have access to MSDNAA (Microsoft Developers Network Academic Alliance) through either the CS department or IEEE, you can also get a copy of Windows. This is by far the most complex path, unless you are a CS major.

For more help with running Windows contact Derrick or Alex.

Connecting Remotely

We currently support connecting to most of the workstations in the garage and computers on the robots through remote desktop. Instructions vary by project. VNC support may be coming in the future?

There are several remote desktop clients available for Mac:

  • Microsoft's Mac Business Unit has a Remote Desktop Connection Client for Mac.
  • CoRD is a free remote desktop client for Mac. I've used it in the past, and I like the interface. Managing multiple saved connections with CoRD is a lot easier than with Microsoft's client. CoRD website.

Setting Up Your Computer

In order to develop for PAVE, you need to have the Visual Studio 2005 IDE and a SVN client for connecting to Source Control.

Install Visual Studio 2005

There are several ways to install Microsoft Visual Studio 2005:

  • The easiest way is to download an ISO through Microsoft Dreamspark, available free to college students, although you will have to go through an annoying student verification process (Princeton University is not on their list of partner schools).
  • You can also obtain the installation media from the garage, although the version of Visual Studio we have is the Team Suite edition which comes with many tools we don't use.
  • You can also obtain iso files from pavemedia. Instructions for connecting are available upon request.
  • Additionally, if you are taking a computer science course, you may be able to request a CS account. This will give you access to MSDNAA (MSDN Academic Alliance) so you will be able to download from here

If you use Microsoft Dreamspark/MSDNAA to download Visual Studio 2005, you will need to have software that enables you to burn/mount .ISO disk images.

The actual installation of Visual Studio is self-explanatory. For those of you who wish to be "custom", we really only require basic features of C# and C++. There is no need to install SQL.

Connect to Source Control

Once you've finished the installs above, you should be ready to connect to our server to access the code that controls the robot. Information on connecting to source control is in the Source Control page.

Languages, Libraries, and Frameworks

Once you're all connected, it's time to make sure you know the languages we develop in, and the libraries and frameworks we use in conjunction with those languages.

Learn some C++

We currently do just about all of our development in C++. For those of you who want an in-depth intro to C++, there are many tutorials available online. The cplusplus.com tutorial is an excellent place to start. When you are ready to begin coding, please read the pages in Category:StyleGuide to get up to speed.

Take a look at the Libraries

PAVE also makes use of some C++ Libraries, most notably Newmat, a matrix library, and Wykobi, a fast geometry library. It is not completely necessary to know how these libraries work before developing for PAVE. Taking a look at the code in the Libraries section, especially code in the Geometry project, is a great way to acquaint yourself with C++. Before you view any code though, you have to map the source control tree to a directory on your computer, which is covered on the Source Control page.

Understand IPC and IPC++

PAVE makes use of the IPC framework to handle the communication between each of the software modules. The Interprocess Communication Package (IPC) page provides more information and links to the IPC manual. It is also completely essential that you understand the IPC++ wrapper before you start developing for PAVE.

Writing Code for PAVE

It is completely essential that you understand the following style guidelines and coding conventions before you write any code.

General Coding Style

Be sure to familiarize yourself with the C++ Style Guidelines. These guidelines are strongly recommended for all developers

PAVE Conventions

Coding Conventions deal with specific conventions that we have adopted. These rules ensure that all classes can be expected to have certain behaviors.

What Next?

Now that you're actually ready to modify/write code, be sure to take a look at the proper practices for editing/adding code to Source Control. When you're ready to start a project of your own, the Visual Studio page will take you through the basics of using the IDE to create new solutions and projects. It also provides helpful hints for working with C++ projects and debugging some common errors.

Personal tools