Visible to the public Task 3 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 3 solution locally

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

cd cvchallenge_task3_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 3 launch file. If you don't have one of these yet, check out Create a launch file for Task 3.

# we will start up your world like this; we might use a worldfile that we create, though
roslaunch cvchallenge_task3 catvehicle_custom.launch worldfile:=world5.world
# note: we will run this command after pausing for a few seconds
roslaunch cvchallenge_task3 task3.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 3. 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_task3_ws/src
git clone https://github.com/whatever/madeupwidget.git

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

Create your archive

Your archive should include everything you need, but not the catvehicle or obstaclestopper repositories. Those will be fetched via git.

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

sprinkle@jmscatvehicle:~/cvchallenge_task3_ws/src/cvchallenge_task3$ cat launch/task3.launch
<launch>
<node name="task3_stopper" pkg="stopafterdistance" type="stopafterdistance_node" output="screen"/>
<node name="default_controller" pkg="catvehicle_hoffmannfollower" type="catvehicle_hoffmannfollower_node">
    <remap from="/catvehicle/cmd_vel" to="/catvehicle/cmd_vel_task4"/>
</node>

<!-- TODO: make modifications in this launch file to start up your other nodes, and to listen to /catvehicle/vel, with the objective of sending out your Gazebo world model if the /catvehicle/vel is 0 for more than 5 seconds -->

<node name="letmeknow" pkg="ucandoit" type="ucandoit_node" output="screen"/>

<node name="gazebogenerator" pkg="cvchallenge_task3_jms" type="gazebo_generator_node" output="screen">
    <param name="pathout" value=""/>
    <param name="filename" value="gazebo_output.world"/>
    <param name="detections" value="/detections"/>
    <param name="doIt" value="/doIt"/>
</node>

<node name="task2" pkg="cvchallenge_task2_jms" type="cvchallenge_task2_jms_odomframe_node" output="screen">
    <param name="dist_max" value="4.0"/>
</node>

</launch>
sprinkle@jmscatvehicle:~/cvchallenge_task3_ws/src/cvchallenge_task3$ 

Since I know the packages I need, I will include the following directories (and their contents) in my archive:

  • cvchallenge_task3
  • stopafterdistance
  • catvehicle_hoffmannfollower
  • ucandoit
  • cvchallenge_task3_jms
  • cvchallenge_task2_jms 

Note: I need to include cvchallenge_task3 (even though it is not in the launch file) because..duh, it is the package that has the launch file.

As before, if you are using code generated from Simulink, make sure you include that generated code package in your submission.

$ tar czf cvchallenge_task3.tgz cvchallenge_task3/ stopafterdistance/ (etc.)

What's next?

I'll next simulate my archive by submitting cvchallenge_task3.tgz file to the CPS-VO simulation via the Design tab, and wait back to hear my results from the cloud. You can see that in Validate your Task 3 archive on the CPS-VO.