Writing a project proposal#

For the three week project.

Goals#

In this session you will:

  1. Get introduction to the infrastructure, sensors and materials that you can leverage in your project

  2. Discuss with lab technicians and me about your idea, especially about its feasibility

  3. Write your proposal and get feedback

Product requirements#

Your project should:

  1. fit Industry 4.0 pillars and Industry 5.0 goals

  2. use the following components:

    • Robot arm (URScript)

    • Database

    • GUI (C#-based)

  3. apply at least one security principle

Physical tools for your project#

Overview of what you can use aside from the robot arms

  1. Conveyor belt

  2. Lego bricks

  3. 3d printer and printed parts from previous projects

  4. Sensors:

    Some robots have two photoelectric sensors (on-off, different sensing distances) and one limit switch connected. The limit switch signal is connected to both robots on the same table.

Automation requirements#

The robot task should depend on external data. A negative and positive example:

  • a robot doing the same motion over and over again: ❌

  • you enter some data to your GUI and your robot moves according to the data you entered: ✅

Here are some technical details and recommendation how to achieve automation in interplay with C# and URScript:

  • The robot should be able to do multiple tasks based on external data, e.g., database, customer order, internet etc.

  • You create dynamic URScript code, e.g., like this code where the X position of an item is set by C#. How to create dynamic URScript code:

    • Ideally, you should write your URScript code manually. Using the visual programming tool on the pendant for robot tool position programming may create code which is not modular and difficult to modify later on.

    • There are cases where it may be convenient and fast to prototype with a pendant-based program, e.g., when you use the camera. If you go this way, transfer the program via USB-code to your computer, simplify it by deleting parts that you don’t need, and lastly use it as a guide to create your own URScript.

    • As a last resort, especially if you have problems with manual programming, create multiple programs using the pendant and send one URScript code dependent on your data. However, you should be able to write and understand basic programming constructs at the end of this course, so I recommend using manual programming.

Proposal components#

Problem and solution

Choose a problem that you really would like to solve. Otherwise the project period can feel very long 😮‍💨. In the ideal case you may get a project that you can showcase in your job interview 🤩.

Include the following:

  • The problem you would like to solve.

  • Why this problem matters to you and who benefits from the solution?

  • How your solution fits into Industry 4 pillars and Industry 5 goals?

Milestones

List goals and date for each project stage.

Go for the moon, but have a minimal viable product (MVP) that takes off without any humans in it.

Have an idea that you have fun building but focus first on an MVP that demonstrates the core of your idea.

Include at least two milestones. One of them must me the MVP.

Tools and data resources

Write a list of what you will use.

Example:

  • 3d printer for printing component containers

  • https://frankfurter.dev/ to get stock market data

  • camera for object classification

  • conveyor belt to feed the items to the robot

Task distribution agreement

Sets the expectations for the project execution. Important for mutual commitment and accountability.

Distribute tasks to group members, so that each member is at least responsible for one part of the project.

All in all, the project proposal is a compass. It will probably change during the project period, when you learn by doing.

Use of LLMs#

In the previous weeks, you were allowed to use LLMs only as a feedback tool—now you may use it to generate code from the beginning. LLMs often produce complex solutions if prompts are not specific. So prompt the LLM that it generates code that you understand and stick to the programming structures introduced in lectures.

You must be able to explain and modify any LLM-generated code during your presentation. Also support from the teaching staff will be limited if you have complex code.