Seabase I Case Study

Module A

As Joann Durst tells it in her detailed minutes, one of the main ideas behind doing a senior design project is "to get CS students as close as possible to doing real-world software design." The Senior Design project she and her team members (Ken Lundy and Bob Marin) participate in is called "Seabase". The goal is to design a ship-mounted crane for passing containers between ships at sea. The US Navy, who is sponsoring the project, has a crane that does that now, but the controller (which corrects for the pitching of the ship) can only work when the waves are gentle: they want something that will work when the weather gets rough.

Originally, the Seabase project is divided into two parts. One team from Mechanical Engineering will build a model of the new crane. Another team, consist of Mechanical Engineering and Electrical Engineering students, will build a motion platform (a Stewart platform); "like simulation rides where you get in the box and it wiggles"; it has six moving legs that can be made to simulate sea conditions). Then Hank Taylor (the sponsor's representative from Mechanical Engineering) sends an email to the CS department asking if some CS students would be interested in helping:

Howdy,

I have an opportunity to put together two senior design projects
related to research I've been doing with the Navy for several years.
Due to the combined CS/EE/ME flavor of the two projects, I was
hoping to attract at least one student from EE and one student
from CS for each of them.  I've attached a write-up on the projects
if you are interested.

I believe it will be easier to attract some EE students, since our
senior design requirements are similar.  Getting some CS students
to sign up for the two semesters might be trickier. If you folks
have some suggestions for how I can get your students involved (at
such short notice...) please let me know. One approach would
be to email your senior student lists with a short description, and
send them my contact info if they want details.

Please let me know if you believe this would work, and if so,
what more information you need from me.

Thanks,

Hank

On Sept. 10 the CS team meet (see the meeting minutes) with Hank and Dave Voelker, their instructor in the Senior Design class, to get some background on the proposed project and, as Joann says, "decide if we want to do the crane project and how to proceed." Some of the information the CS team gets at this initial meeting:

  • The ship has six motions. The crane needs to actively damp them out to stabilize the payload.
  • There is a rider block that pulls back on the load line and shortens the load swing
  • A working model of the crane exists already, but it is far away in Albuquerque. The MTU model will be on a smaller scale, but it will be designed to handle bigger (simulated) seas.

Hank describes the tools they will be using:

Hank then explains what he needs done:

  • Port the existing control program from the Albuquerque crane project. This program is written in C, but the CS team will rewrite it in Matlab. Some of the Matlab code will be in the form of "S-functions", written in C.

Once the code is ready, it will be run on a laptop connected by Ethernet to the control board in the lab

  • Testing with real time samples is possible and important.

Dave Voelker recapped the consensus they reached on the "software deliverables":

  • Controller code for crane, written in Matlab, with some C code given as implementation of S-functions. The existing C code for the Albuquerque crane can provide a basic idea of the functionality needed.
  • Test scripts using Python (provide input to DSpace and save output from tests). To do this, it will be necessary to get the system in the lab running.
  • User interface for controller (DSspace comes with widgets for building a GUI). The GUI can be built independently of the control algorithms being implemented. The resources made available to the CS Team include:
  • Hank Taylor and Dave Voelker for advice and other help
  • A binder full of existing code from the model crane in Albuquerque.

The CS team members decide to take on the project, and they decide to establish some milestones early on.

  1. Who do you see as the stakeholders in this project? (A stakeholder is an individual or a group of people with a "stake" in the project: something to lose or gain.)
    • How would you go about contacting each group?
    • What more would you want to know about their goals and needs?
    • What other questions would you have for them?
  2. What risks do you see in taking on this project? (A risk, informally speaking, is "a bad thing that might happen": a possible consequence of your current actions that will cost you or some other stakeholder in some way.)
    • In particular, what risks arise in a joint project with other departments?
    • How might you mitigate these risks?
  3. The CS team decides to take on the Seabase Project. Given what you know so far, would you be ready to accept the project? Explain your answer. (Consider but don't be limited by the questions above.)
  4. The CS team decides to establish some milestones early on. What would your timeline or set of milestones be, at this early stage?

 

This module:

  • gives background and motivation for the project,
  • identifies the people involved, and
  • provides some details on the programming environment (Matlab, C) and the lab environment.

The basic question to address is "if you were given this project, how might you proceed?"

This module might be best introduced, at least in part, as an in-class activity. Have students go through the story details outside of class, then discuss the module questions in small groups in or outside of class. Have students write up short responses, and then discuss them in class.

It is important to stress the presence of stakeholders outside of the familiar instructor-student relationship. This project involves a client (the Navy), and an intermediary (Hank, the ME professor) who has different goals from either the client or the student team. Other stakeholders include Dave (the CS professor), the other student teams (ME and EE), and possibly student teams who will continue the project in the future.

There is an interesting possibility here for role-playing: taking the perspective of other stakeholders. For instance, what do you think Hank would include as risks to the project?