Project

General

Profile

Getting Started with RoboBuggy Software Dev

Goal: Get you set up, developing, and making a commit within your first day.

Download the VM

We use a VirtualBox image with ROS Hydro, and a sample repo already set up. This makes starting development much easier, and much faster.
While you download the VM, download and install VirtualBox.

Run the VM

Start the virtual machine. When you reach the login screen, use the username: tahm and the password: tahm. This, after all, is the essence of security.

Update the repo to the latest version

Use your roboclub account!

  • emacs ~/buggyworkspace/src/.git/config
  • [change to] url = ssh://[YOUR_ANDREW_ID]@roboclub.org/home/svn/robobuggy
  • cd ~/buggyworkspace/src
  • git config --global user.name "John Doe" # this will appear in the git repo
  • git config --global user.email # this is for good measure.

if you don't want to/don't know your password, change the user to 'roboclub', and use the known password.

Pull the latest software version:

  • cd buggyworkspace/src
  • git pull [use your roboclub username and pw]

Run some simulator!

  • cd ~/buggyworkspace
  • catkin_make
  • buggysource # this is an alias for 'source ~/buggyworkspace/devel/setup.bash# that lets you run the packages you build in your workspace.
  • rosrun buggysim [hit tab twice] # these are the packages we can run
  • rosrun buggysim buggysim_node &
  • rosrun buggynav teleop # watch this for a bit, then hit ctrl+c to stop it.
  • rosrun buggynav waypoints

Branch the git repo!

If you want to work on a specific feature, you should work on it in your own branch. Then, once it's in a working state, then you push it back to main.

I renamed the visualizer, in this example. It's nothing crazy, but it's about the workflow.

  • git checkout -b buggyvisrename # checks out the branch, and switches to it at the same time (for more info, look at http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging")
  • emacs ~/buggyworkspace/src/buggyvis/src/buggyvis.cpp # change something in the name, save then quit
  • git add buggyvis.cpp # you might have to change to the right directory to do this
  • git commit -m "Changed the visualizer name to better reflect its function" # note the bitchin' commit message that explains exactly what it should do.
  • git status # if you forget which branch you're on, here's how to check!
  • git push -u origin buggyvisrename

Now, since we finished our feature, we will integrate back into our branch.

  • git checkout master # get back on the main branch, so we can push back to it.
  • git merge buggyvisrename
  • git push

Done! Check out the repository tab to admire your work.