Master thesis: Remote controlled truck - Proof of concept for designing a remote system for a Volvo truck

A proof of concept for designing a remote system for a Volvo truck. Designing and buildning a remote control to be able to drive a Volvo truck from outside the truck. Investigating wireless technology, safety aspects, designing and building PCB, designing and building mechanics for remote control, systemizing the whole system and writing embedded code. Simulink was used to glue it all together.

The thesis is available from the Chalmers University online library

Tagged with:

Formula Student Baltic Open 2014

Sensommaren och hösten kunde ha blivit utan praktiskt ingenjörsjobb om det inte vore för att jag blev övertalad att bygga räserbil. Målet var Baltic Open i Estland och dit skulle vi ta CFS13 och CFS13e (alltså både den bensin- och eldrivna bilen).

Tagged with: ,

Generating an interface for robust manual control using Supervisory Control Theory

This is a project at Chalmers consisting of implementing a control system generated from Supervisory Control Theory.

Problem description

"Operation sequencing and resource safety is a non-trivial task within modern manufacturing systems. Typically, this task is handled manually which is time-consuming and error-prone. Whether a particular system works correctly is determined by how long it has been able to function without severe error. Obviously this situation is not sustainable and can be greatly improved by using software tools and mathematics to guarantee correct functionality. Such "model-based formal methods" is one main part of the research within the Automation group at Chalmers. This project aims at implementing a proof-of- concept of existing methods."

Present at IFAC 2014

Our paper was good enough to be presented by our examiner, Martin Fabian, at IFAC 2014. http://www.ifac2014.org/

Our solution

1. Create a model of the sequence:

Sequence to manufacture a full car

Sequence to manufacture a full car

2. Express it as automatas:

Representation of operations as automata

Representation of operations as automata

3. Extract guards to forbid bad behaviors e.g. deadlocks and forbidden states:

Guard extraction from non-blocking supervisor

Guard extraction from non-blocking supervisor

4. The HMI is implemented in HTML5 and AngularJS that communicates to the OPC server of the PLC:

The HMI with only executable operations being shown

The HMI with only executable operations being shown


Overview of the system and the implementation


Download the article Robust Manual Control of a Manufacturing System using Supervisory Control Theory in collaboration with Martin Fabian.

Download the source code from Bitbucket

Tagged with:

Chalmers Formula Student tävlar i Baltic Open 2013

Två av Chalmers bilar ställde upp; CFS12 och CFS13e. CFS13e är en CFS11 ombyggd till en el-drivlina.

Vi hade vissa problem med överströmsskyddet som gick i när det inte skulle. För att få bra varvtider var det nödvändigt att inte pusha bilen för hårt och att alltid ha en känsla för hur mycket ström som gick genom drivlinan. Men i övrigt gick bilen förvånandsvärt bra med tanke på den mängd testtid som den haft. De sista komponenterna på bilen skruvade vi dit i garaget under tävlingsveckan. Under både AutoX och endurance fick jag motorstopp men lyckades starta upp bilen igen med hjälp från pit crew. En sak som jag tar med mig från att ha kört tävlingsbil med eldrift är att traction control troligtvis är väldigt prestandahöjande. Det är svårt att reglera gaspådraget med det snabba vridmoment som elmotorn ger. På en bensinbil är dynamiken väsentligt långsammare.

Motorn till CFS12 gick sönder under invigningen. Detta ledde till att en förlorad dag av tävlingen och där också en hel del poäng. Trots motgångar var bilen tillbaka på banan för AutoX och endurance med imponerande resultat.

Tagged with: ,

I like big Watts and I cannot lie

i like big watts and i cannot lie

From our first test run at the parking lot.

Tagged with: ,

Formula Student Germany 2013

Kanske världens bästa ingenjörstävling för studenter. 6e plats i design, 5e i endurance, 4e i AutoX, 3a för Business plan => 4e totalt.

Youtube-video från Endurance-finalen:

Tagged with: ,

Vehicle electronics Chalmers Formula Student 2013

The project where I spend most of my time right now is Chalmers formula student where I am Project engineer in the Vehicle electronics subgroup. This post is a summary of the design of the over-all wiring. If I find the time I will also post some more information about other subsystems.

2.1.Technical Background

The overall wiring provides electrical power to the components and transfers signal data from sensors to the processing nodes. The overall schematics refer to the design of this electrical system. The schematics are necessary when connecting the electrical system on the car. It is also very useful for troubleshooting and repair of the system.

2.2.The over-all wiring

2.2.1.Design choice/ selection

Our target goals are presented in the table below:

Adjustability Value Comment

Time to disconnect electronics from engine

15 min

Time to check and change fuses

2 minutes

1 min to check. 1 min to change.

Time to check and change relay

2 minutes

Time to check battery and change battery

11 minutes

1 min to check battery with multimeter. 10 minutes to change it.

Time to reprogram ECU 5 minutes

The ECU should be easy accessible. As long as the software is working it should be quick.

Time to download data from DAQ

5 minutes

Memory card out from DAQ, into computer, download data and memory card back to DAQ


Mean minimum distance between major electronics failure (after debugging and testing)

150 km

Reliable enough to do at least five competitions

Water and dust protection level


The approach when designing the over-all wiring was to start with a low complexity model where the most important subsystems were represented. Understanding the interactions between subsystems is important to get efficient and minimal wiring and therefore the solution model is a good starting point. Designing the vehicle schematics is an iterative process where information is added for most of the new design decisions. The schematics include component specification, choice of connector, pin configurations, connections to the processing nodes, sensors, engine control unit with wiring, generator, fuel pump and power supply.

2.2.2.Packaging of circuit boards, connectors and cables

Protection level IP45 is chosen from pre-study to get sufficient protection from water, dirt and dust. Our assumption when choosing the protection level was that water is a bigger issue than dust since water implies a greater risk for electric failure. IP45 will give protection from dust and dirt above 1mm and protection from ingress of water from a water jet. Going for IP65 increases the protection to be completely protected from dust and protection from water up to more powerful water yet.1 Upgrading the protection level to IP65 to get a safety factor was not too difficult since boxes from Multicomp together with Buccaneer connectors satisfy this specification.

To avoid disturbances cables carrying signals are separated from cables carrying high currents and shielded cables are used in high disturbance zones near the engine.

Connectors for sensors have to have a high water and dust protection level since they will be unprotected by any other component. To get a low maintenance time when dismounting a subsystem from the electronics they have to be easy to connect and disconnect. They should also not be too expensive. TE connectivity Superseal 1.5 series (Figure ) with IP67 will meet this requirement.2

Figure : TE Connectivity Superseal 1.5 Series3

Connectors for the processing nodes was set to have the same requirements as for the sensor connectors but with a constraint that the female connector has to be mounted at the side of the box containing the processing nodes. Circular connectors were chosen since they make the manufacturing of the processing nodes easier compared to using rectangular connectors. It is also much easier to find circular connectors with sufficient water and dust protection. Buccaneer 400 series (Figure ) which have IP68 classification are chosen.

Figure : Buccaneer 400 series4

A hole on each side in the monocoque is used for wiring the sensors near the front wheels to the front processing node. Delron Inserts 102 series (thru-bolt) will be inserted into the hole for water and dust protection.


2.2.3.Discussion of design selection/ Limitations

Alternative solutions for the overall wiring were discussed and benchmarked. The main reasons for rejected design alternatives were reduced reliability or increased complexity. connection between sensors and inside monocoque

Instead of drilling a hole at each side of the monocoque to transfer a cable for the sensors at the wheels a connector could have been used. We had discussions about using connectors from Deutsch which would be lightweight and robust. The main disadvantage was the wiring inside the monocoque. With a connector the bend of the wires connected to the connector must not get in the way of the driver’s legs. The driver department should be as clean as possible to avoid the driver hitting any protruding parts. Adding a connector would increase this risk and therefore the solution was rejected. nodes and the alternatives

The reason for choosing a two node system was to reduce wiring and divide logging and processing on two processors. A two node system with a CAN bus is much easier to expand than a single node system. Adding more sensors can be done by connecting them to free inputs on either of the two nodes or by adding a new node since a CAN bus is used. One design alternative that was considered was to have small nodes by each wheel with a CAN bus connecting them. This could decrease wiring even further since the distance from each sensor to a close by node would be smaller. The main reason for not choosing this design was to limit the number of developed components. Our recommendation though to next year’s CFS would be to consider this approach. connection of the ECU

An alternative to the current solution of connecting the ECU to the rear node via RS232 would be to connect it to the CAN bus5. Since the rear node in this case would not need to handle the communication to the ECU and instead get the data from the already implemented CAN bus communication the processing would be reduced. The same would be true reducing the programming code when using CAN instead of RS232 since the CAN code has to be implemented either way. The disadvantages are added components since the ECU does not have a CAN interface but a RS232 interface. A purchase of a CAN adapter would be needed with increased cost as result. The programming code for communication to the ECU was implemented last year and will hopefully reduce the development time this year which makes the advantages of the CAN interface less important. 1 for connecting the DASH3

Using a serial adapter between the DASH3 and the DAQ would make the dashboard able to read sensor values from the data logger. This solution was most importantly not chosen since it would increase the number of components and the complexity of writing to the dashboard did not seem too great to overcome since the dashboard protocol is open6. Even though Race Technology in an email wrote that the logging capacity would not be decreased by much since the update frequency to the dashboard does not have to be more than a couple of times per second, we were not sure if it would be a limiting factor or not. The safe option was to not use the serial adapter and instead send the data from the front node. The disadvantage of this solution is more development time since routines needs to be programmed for communication between the node and the dashboard. With the serial adapter this is already done by Race Technology. 2 for connecting the DASH3

Connecting the DASH3 to the CAN bus would be done with a CAN adapter. The distance from the DASH3 to the front node is so close that any weight saving due to wiring would not be a factor. The main advantage would be an assumed reduced development time since the sensor data to display on the dashboard would already be present on the CAN bus. Only configuration of the DASH3 would be necessary. to the circular connectors in the processing nodes

An alternative to the circular connectors in the processing nodes would be rectangular connectors. If the processing nodes are better protected from water and dust this would be a good option since it makes connecting sensors somewhat easier. A disadvantage with circular connectors is that they require soldering or the use of clamp tool. Adding sensors to a rectangular terminal block would be a matter of just connecting wires to the connector block. This connector is for example used on the DAQ (Figure ) which we use for data logging.

Figure : Race Technology DL1 MK3 DAQ driver interaction design by combining switches

To minimize the amount of switches on the dashboard it is possible to combine the switches for ignition, fuel pump and start engine into a switch with multiple states; Off, Ignition, ignition+fuel pump and start engine (with momentary action). The main disadvantage is lost control of forcing the fuel pump to be either on or off. The states of this switch would be:

  1. Off

  2. Ignition

  3. Ignition and fuel pump

  4. Starter motor. This state would be momentary stable and return to state 3 when released.

The reason this solution was neglected was loss of control of the fuel pump. With a dedicated switch for fuel pump three states can be selected:

  1. No fuel pump

  2. Fuel pump controlled by ECU

  3. Fuel pump forced on

2.2.4.Simulations/ Tests/ Experiments

The first approach for the schematic design was to do it by hand on paper (Figure ) and then convert this to 2D CAD software. For developing the vehicle schematics a comparison between alternative software was done. A brief summary of the software comparison test:

  1. ExpressSCH seemed quite good at first but adding components was a hassle.

  2. FastEl did simple tasks complex and lacked user friendliness.

  3. Eagle CAD has two main features: board design and schematics design. Designed for manufacturing PCBs and therefore a lot of features would be left unused when only designing schematics

  4. TinyCAD is a simple and fast program without any advanced features.

TinyCAD was chosen since it got the job done and was fast to work with compared to the other alternatives.

Figure : Iteration 2 of schematics on paper

2.2.5.Over-all schematics

Click on the image and then download it as a png. The schematics file is very big and the image below is just a thumbnail.

Direct link to schematics image

Tagged with: ,

Kalman filter to estimate position

I recently had a course in Applied signal processing where one of our tasks was to estimate the postion of an object from noisy measurements. A Kalman filter was used.

Figure 1: Original data and measurement with noise plotted together with the measured signal. The noise level is Gaussian with mean 0 and standard distribution 0.1.


Figure 2: Kalman filter with different R applied to observed data (blue line) and the signal without noise (green line).

The Kalman filter is quite impressive!

Matlab code


Tagged with: ,

Robotarna pratar med varandra!

De två små robotarna har en tom main-rutin och väntar på interupt-signaler från den stora roboten. Så fort en liten robot får order om att utföra så utför den oavsett var den befinner sig. På det här sättet låter vi den stora roboten stå för logiken och de små blir bara utförare.


För den som är intresserad finns kod att hämta:

Ett utdrag från koden visar hur man använder TRAP för att använda interupts i RAPID-kod.


VAR bool first_loop:=true;

VAR intnum sig_mt_home;

VAR intnum sig_mt_ws;

VAR intnum sig_dodrill;


PROC main()

IF (first_loop) THEN

! mt_home

CONNECT sig_mt_home WITH t_mt_home;

ISignalDI DI_cR1_mt_home, high, sig_mt_home;

! mt_ws

CONNECT sig_mt_ws WITH t_mt_ws;

ISignalDI DI_cR1_mt_ws, high, sig_mt_ws;

! do drill

CONNECT sig_dodrill WITH t_dodrill;

ISignalDI DI_cR1_dodrill, high, sig_dodrill;

first_loop := false;


Reset DO_cR1_mt_home_d;

Reset DO_cR1_mt_ws_d;

Reset DO_cR1_dodrill_d;



TRAP t_dodrill

! its a trap!

Reset DO_cR1_dodrill_d;


Set DO_cR1_dodrill_d;

WaitTime 1.5;




Tagged with: , ,

Sektionstidningen publicerar en artikel om vårt kandidatarbete

zenith_automation_och_mekatronikZenith är Automation och mekatronik-sektionens tidning. Förutom intressanta artiklar från sektionens föreningar, lite knep-och-knåp och några sköna citat från föreläsare skrevs en artikel om vårt kandidatarbete.

Utdrag från Zenith (tryck på den för att förstora):


Lägger också upp några bilder som togs i samband med artikelskrivandet:


Tack till Samir!

Tagged with: ,