New to Team CajunBot?
From CajunBot Wiki
This document is geared toward new members of the team. It should help newcomers get acquainted with some of the things we commonly do. Often, as time goes on, things get forgotten, seem trivial, etc., so it is a good idea to keep this document current and whenever you encounter & solve a problem: document it.
If you are new to the team, please add to this document to help someone else in the future.
Contents |
[edit] CajunBot Accounts
Be sure that you have your various accounts set up. This includes:
- lab login
- wiki
- copper
- mailing lists (2 of them)
[edit] Other Setup
- Watch the driver training videos for university certification. Fill out the questions pages and also the required forms. Bring these forms to Cathy Pomier or Rochelle Brasseaux in CACS.
- When you pass, you'll get a certificate, at which point you can drive any university vehicle, including the Bot.
[edit] CajunBot Overview Paper
Read the CajunBot Architecture and Algorithms document to get an overall understanding of the entire system.
[edit] Linux & the Terminal
At CajunBot Lab, we primarily use the Linux operating system for development and testing. All of our lab machines are Linux-based, and because of that, you'll need to become familiar with using Linux and more specifically the Linux Terminal.
What is a terminal? Well, a gross oversimplification would be to say that it is like the Windows command line, where you can type commands in and see the results. But the Linux terminal is so much more...but anyways:
In most Linux distributions (based on GNOME), you can run a terminal by going to:
- Applications -> Accessories -> Terminal or Applications -> System Tools -> Terminal.
- You can also press Alt+F2 and type "gnome-terminal", then click "Run".
You'll most likely be in your home directory, usually represented by "~".
If you're using BASH (which most likely, you are), then there is a configuration file in your home directory with the filename .bashrc
In this file, you'll need to setup some Environmental Variables (See Synopsis of Environmental Variables and UNIX Environmental Variables).
See the also the document example additions to .bashrc to see what should be added.
Specifically pay attention to put your username for the CVSROOT variable.
[edit] Remote login
If you want to log into cbserver remotely, you'll need to use SSH from a terminal. For example:
[billybob@myhomepc ~] $ ssh billybob@cbserver.cacs.louisiana.edu
- If you've copied the example .bashrc from above, you could also do the following:
$ ssh $CBUSERNAME@$CBSERVER
or:
$ ssh billybob@$CBSERVER
[edit] Getting & Compiling the Code
If you want to check out the code onto your home machine, do some work, play around with it, etc, then (assuming you've set up the CVSROOT variable correctly):
- Just to be safe, re-source your .bashrc:
source ~/.bashrc
- This will reload the environmental variables in the file.
- Make sure you are in your home directory (from a terminal), any of these commands will work:
$ cd
$ cd ~
$ cd $HOME
- Use CVS to check out the code from cbserver into your home directory, any of these commands will work:
cvs co cbsystem
cvs -d $CBUSERNAME@$CBSERVER:/local/cajunbot/repository co cbsystem
cvs -d $CVSROOT co cbsystem
If you're on your home machine:
- This should prompt you for your cbserver password (if doing it remotely) and then copy the code to your computer.
- Make sure you've copied the cbsupport libraries and install any extra packages that need to be installed if you're on your home machine.
- On the server, $CBSUPPORT is located in '/local/cbsupport'. To copy this to your home computer:
- As root:
cd /
- As root:
mkdir -p /local/cbserver
- As root:
chown -R yourusername.yourgroup /local
- As normal user:
cd /local/cbserver
- Use SCP to copy the files:
- As normal user:
scp -r $CBUSERNAME@$CBSERVER:/local/cbserver/* .
- This will recursively copy (-r) the files from yourusername@remotemachine:location to the current directory (.) (which should be /local/cbserver).
- Follow the INSTALL document (also in ~/cbsystem/INSTALL) to install extra or missing packages.
- This might be a troublesome process if you are not familiar installing and compiling third party packages, you may need to seek help from another team member if you have difficulties.
Compile the code by typing the following in the "cbsystem/src" directory:
source ~/.bashrc cd $CBHOME/src make
This is the same as:
cd source ~/.bashrc cd cbsystem/src make
You can have multiple execution threads of make by using the -j switch and the number of threads. So for example, to have 3 execution threads:
make -j 3
Run the simulator using a command such as the following:
start_simulator -r $CBCONF/rndf/grid_network.rndf -m $CBCONF/mdf/grid_network.mdf -L
[edit] Things you are expected to become familiar with
- Using the Linux Terminal
- Using CVS. Specifically pay attention to (or learn how to do) the following things:
- Check out code from CVS
- Check in changes to existing files into CVS
- Add new files to CVS
- Compare differences of local files to files in CVS
- Find the list of changed files on the local machine from the CVS repository
- Update local code from recent code committed to CVS by others.
- Getting and compiling cbsystem - the CajunBot software system.
- Bash & Bash scripting
- Become familiar with the scripts in $CBHOME/src/scripts like start_simulator
- Become familiar with the scripts in $CBHOME/src/distributed_system
- Awk scripting
- Become familiar with using AWK within BASH scripts.
- Become familiar with the scripts in $CBHOME/src/scripts like start_simulator that use AWK
- Become familiar with the scripts in $CBHOME/src/distributed_system that use AWK
- Programming and using Emacs
- Common Linux Commands
- STL: The Standard Template Library
- A good start: http://www.sgi.com/tech/stl/
- Good reference: http://www.cplusplus.com/
- CajunBot's code maintenance standards: http://cbserver.cacs.louisiana.edu/cbwiki/SoftwareDocs/CodeMaintenance
- Using Grep
- Using Find
- Using the wiki
- Adding new pages
- Adding links to new pages
- Keeping things organized, following the examples of pages already created, keeping the same organization and style
- Not making redundant wiki pages and not putting them where they don't belong
- How to add and include attachments
- How to move a page if it was created in the wrong place
- Using Copper
- Adding tasks
- Filling out comments to a task & hours associated
- Keeping tasks and projects organized
- Not making redundant tasks and projects.
- Adding others relevant to a specific task
- Updating frequently with progress on a task so everyone stays up to date.
- Running the bot autonomously. See the Bot Operating Procedures
- Safety procedures while handling the Cajunbot: Safety Procedures
[edit] See also
- Software documents and subcategories.
- Troubleshooting documents.
- File:CajunBot-Architecture and Algorithms.pdf
- AWK
- Bash
- Bot
- Bot Operating Procedures
- cbsupport
- cbsystem
- Common Linux Commands
- CVS
- Emacs
- Environmental Variables
- Example additions to .bashrc
- Find
- GNOME
- Grep
- Linux
- Safety Procedures
- SCP
- Sed
- SSH
- Terminal

