Visible to the public Task 2 archive creation instructionsConflict Detection Enabled

Overview

Your Task 2 archive is the set of packages you need to run Task 2, except that you don't need to include your catvehicle or obstaclestopper packages. Everything else, though, you will need to include. Here's an example, using a simple solution created by the host institution.

Test your Task 2 solution locally

Go ahead and change to your workspace you are using for Task 2 development:

cd cvchallenge_task2_ws

Make sure everything is compiled:

catkin_make

If this succeeds, make sure it is working: first, start up your favorite world, and then start up your Task 2 launch file. If you don't have one of these yet, check out Create a launch file for Task 2.

# we will start up your world like this; we might use a worldfile that we create, though
roslaunch cvchallenge_task2 catvehicle_custom.launch worldfile:=world1.world
# note: we will run this command after pausing for a few seconds
roslaunch cvchallenge_task2 task2.launch

If you look at your /detections topic, stuff should be flying past. If not, fire up rviz to see whether the sensors you are using can see anything. This is important: if it's not doing interesting stuff on your machine, the odds that it is doing interesting stuff on the CPS-VO cloud simulator are fairly low.

Give us sources, don't depend on apt installs

Your packages might include code you wrote, and that code might depend on packages you installed. The CAT Vehicle simulator in the cloud will only have the packages described in the install tutorials. If you more ROS packages, then the solution is easy: clone the codebases for those packages into your workspace, and include those packages in your submission archive to Task 2. For example, you might be using the MadeUpWidget package in ROS. You may have installed it via 

sudo apt-get install ros-indigo-madeupwidget

In this case, make sure you have

cd cvchallenge_task2_ws/src
git clone https://github.com/whatever/madeupwidget.git

And then include the madeupwidget directory in your Task 2 archive.

Create your archive

Your archive should include everything you need, but not the catvehicle or obstaclestopper repositories. Those will be fetched via git. Here's an example of how I created the one used in the tutorial video:

sprinkle@jmscatvehicle:~/cvchallenge_task2_ws/src$ ls -l
total 28
drwxrwxr-x 12 sprinkle sprinkle 4096 Mar 10 13:57 catvehicle
drwxrwxr-x  5 sprinkle sprinkle 4096 Feb 20 17:00 catvehicle_simulink
lrwxrwxrwx  1 sprinkle sprinkle   49 Feb  6 14:39 CMakeLists.txt -> /opt/ros/indigo/share/catkin/cmake/toplevel.cmake
drwxrwxr-x  6 sprinkle sprinkle 4096 Mar 11 20:40 cvchallenge_task2
drwxrwxr-x  3 sprinkle sprinkle 4096 Mar 14 12:45 cvchallenge_task2_jms
drwxrwxr-x  2 sprinkle sprinkle 4096 Feb 20 16:52 imagedelay
drwxrwxr-x  3 sprinkle sprinkle 4096 Feb 15 14:14 obstaclestopper
drwxrwxr-x  2 sprinkle sprinkle 4096 Mar 12 19:34 task1simulink
sprinkle@jmscatvehicle:~/cvchallenge_task2_ws/src$ 

 

I actually don't need all of these, I just need to know about what's in my task2.launch file:

sprinkle@jmscatvehicle:~/cvchallenge_task2_ws/src$ cat cvchallenge_task2/launch/task2.launch
<launch>
<node name="task2" pkg="cvchallenge_task2_jms" type="cvchallenge_task2_jms_node"/>

</launch>
sprinkle@jmscatvehicle:~/cvchallenge_task2_ws/src$ 

Since I know this, I will include only the cvchallenge_task2 and cvchallenge_task2_jms directories (and their contents) in my solution. For example, if you are using code generated from Simulink, make sure you include that generated code package in your submission.

$ tar czf cvchallenge_task2.tgz cvchallenge_task2/ cvchallenge_task2_jms/

I'll simulate my archive by submitting cvchallenge_task2.tgz file to the CPS-VO simulation via the Design tab, and wait back to hear my results from the cloud.