Skip to content
chicagoedt edited this page Oct 24, 2014 · 21 revisions

Chicago EDT's IGVC robot Scipio

How to Use Scipio

ROS

  • Install ROS Hydro. We are currently porting over to Indigo, only thing that is keeping us from being completely on Indigo is some Gazebo ROS plugins. Should be 100% ported by November.

Quick Setup

Open up terminal Type these things: cd ~ mkdir -p edt/igvc_ws/ Then go to github, and log in onto your account. Fork this repo, which will basically make your own personal copy to mess around with Copy the URL for YOUR forked repo, not the master EDT repo Go back to terminal and type git clone [enter the URL here] src cd src rm -rf camera1394stereo rm -rf gps_goal rm -rf simple_navigation_goals cd .. catkin_make

Using Scipio Code

  1. Go to wherever your catkin workspace is

    • Example: My catkin workspace is located in ~/edt/scipio_ws/(You don't have to specifically name it "catkin_ws". I will be calling it "scipio_ws".
      • So i type cd ~/edt/scipio_ws/src
  2. Go to github and Fork the [Repo](https://github.com/chicagoedt/Software_IGVC/).

  3. git clone **YOUR FORKED REPO URL** <-- Make sure that is in your catkin_ws/src/ folder

    • For example my forked repo URL would be https://github.com/l0g1x/Software_IGVC.git
  4. cd .. So now you should be in edt/scipio_ws/

  5. Type catkin_make to compile all of the code

  6. Make some changes (refer to the "Development Workflow" section below)

  7. Recompile your changes (catkin_make in the scipio_ws/ folder)

  8. commit changes (refer to the "Development Workflow" section below)

  9. push to YOUR forked repository (refer to the "Development Workflow" section below to know which branch you should push to at what point in time)

  10. Create a pull request for code review

Development Workflow

Here will be explained how to go about making changes to Scipio's code; when you should be on the simulation branch vs. when you should be on the development. You probably won't ever be on the master branch.

Never work directly straight off the main Software_IGVC repo. Any changes should ALWAYS be made on your forked repo of the main Software_IGVC repo.

Simulation Branch (New Features/Implementations)

This is where everybody should ALWAYS start to write any of their new code. Say for example you wanted to write a driver for v3000 Rocket Booster that would make Scipio finish the course in under -52.3 seconds (yes negative); you would first start by switching to the simulation branch.

When you are on the simulation branch, there should be no code related to real-world scipio (i.e roboteq_driver, nmea_navsat_driver, etc.) written/added there. This branch is PURELY for base-concepts like configuring the nav-stack, etc.

Once you get your node/package to work in gazebo, merge (not pull request) your changes into YOUR development branch. Be sure to ONLY merge your node related stuff; so that means DO NOT MERGE ANY SIMULATION RELATED STUFF into the development branch.

  • How do you test your code?

    • You will be using the gazebo simulation model for Scipio, which is already configured with all the same sensors as the real life Scipio.
  • Okay so then how do I use this simulated Scipio model?

    • Refer to the "How to run/use Scipio in Gazebo"

Once you have a steady working node in Gazebo, merge the code to your development branch (like described above), and try to test out your code on your own computer (yes, put your computer into the Scipio drawer, and plug in all the USB cables, thats of course if you can).

  • Excuse me sir, we need to buy new sensors because these don't want to work with my computer; i think they are broken.
    • I can assure you the sensors are fine, its probably just a driver issue/kernel module thats missing or broken on your computer. But if you can't fix it, submit a pull request with the simulation code you have and the team will look over it, give you feedback so you can fix some things, and then you can test your code on the computer inside of Scipio (ARM board, laptop, whatever..)

Development (Testing on Real-World Scipio)

So once you have merged your changes into the development branch from the simulation branch, you will now basically be testing to see how your package/node reacts in a Real-World environment, not just a near-perfect simulated world. This is where you actually will need to have the entire Scipio up and running (or at least whatever sensors/nodes/etc that you need).

---> There should be no simulation-related things in this branch. <---

Things to do while on development branch

Running Scipio

  • ??

Testing Scipio

  • ??
Clone this wiki locally