ajout partie autom 1

This commit is contained in:
Nolan Reynier Nomer 2026-05-12 18:16:02 +02:00
parent 9e99d4282b
commit ff8fee3dd9
6 changed files with 227 additions and 169 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 68 KiB

View file

@ -20,7 +20,6 @@
\citation{li_quantitative_2019}
\citation{lee_advanced_2001}
\citation{jomsa-nga_torque_2024}
\citation{b1}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-B}}Trapezoidal Commutation (Six-Step Control) for BLDC Motors}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-C}}Field-Oriented Control (FOC) for BLDC Motors}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {II-D}}Comparative Analysis: FOC vs. Trapezoidal for Light Electric Vehicles}{2}{}\protected@file@percent }
@ -29,21 +28,32 @@
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}3}Complexity, Cost, and Low-Tech Suitability}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {II-D}4}Dynamic Response}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {III}Research gap}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IV}The aim of the study}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {V}Software and Connectivity}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {V-A}}BLE Compatibility With the VESC}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-A}1}First Experiment}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-A}2}HC-05 and the VESC}{2}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IV}Aim and Research Objectives}{2}{}\protected@file@percent }
\citation{b1}
\citation{b1}
\citation{b2}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-A}3}BLE Vulnerability}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {V-B}}Code integrity}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}1}Context}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}2}LispBM extraction}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}3}LispBM Code}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {V-B}4}Proposed Solution}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {V-C}}VESC Compiling}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VI}Discussion}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {V}Hardware-Based Six-Step Commutation Controller}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VI}STM32-Based Field-Oriented Control Motor Drive}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VII}Software and Connectivity}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-A}}BLE Compatibility With the VESC}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}1}First Experiment}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}2}HC-05 and the VESC}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-A}3}BLE Vulnerability}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-B}}Code integrity}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}1}Context}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}2}LispBM extraction}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}3}LispBM Code}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VII-B}4}Proposed Solution}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VII-C}}VESC Compiling}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Dynamic Modelling and Control of the BicycleCargo System}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VIII-A}}System Modelling and Simulation}{3}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VIII-A}1}Dynamic Modelling}{4}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {VIII-A}2}Simulation and Control}{4}{}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Closed-loop model of the bicyclecargo system with PI control.}}{4}{}\protected@file@percent }
\newlabel{fig:simulink_closedloop}{{1}{4}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Position tracking error between bicycle and cargo cart.}}{4}{}\protected@file@percent }
\newlabel{fig:tracking_error}{{2}{4}}
\@writefile{toc}{\contentsline {section}{\numberline {IX}Discussion}{4}{}\protected@file@percent }
\bibstyle{IEEEtran}
\bibdata{PIR_MadMax3}
\bibcite{patil_analysis_2025}{1}
@ -56,7 +66,7 @@
\bibcite{lee_advanced_2001}{8}
\bibcite{b1}{9}
\bibcite{b2}{10}
\@writefile{toc}{\contentsline {section}{\numberline {VII}Results}{4}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Conclusion/Summary}{4}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{4}{}\protected@file@percent }
\gdef \@abspage@last{4}
\@writefile{toc}{\contentsline {section}{\numberline {X}Results}{5}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {XI}Conclusion/Summary}{5}{}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{5}{}\protected@file@percent }
\gdef \@abspage@last{5}

View file

@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2026.3.16) 12 MAY 2026 15:56
This is pdfTeX, Version 3.141592653-2.6-1.40.22 (TeX Live 2022/dev/Debian) (preloaded format=pdflatex 2026.3.16) 12 MAY 2026 18:13
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@ -210,6 +210,9 @@ Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
(/usr/share/texlive/texmf-dist/tex/latex/placeins/placeins.sty
Package: placeins 2005/04/18 v 2.2
)
(/usr/share/texlive/texmf-dist/tex/latex/siunitx/siunitx.sty
Package: siunitx 2022-02-02 v3.0.46 A comprehensive (SI) units package
\l__siunitx_angle_tmp_dim=\dimen171
@ -322,24 +325,24 @@ Package xcolor Info: Model `Gray' substituted by `gray' on input line 1374.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1375.
)
Package translations Info: No language package found. I am going to use `englis
h' as default language. on input line 16.
h' as default language. on input line 17.
(./main.aux)
\openout1 = `main.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 16.
LaTeX Font Info: ... okay on input line 16.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 17.
LaTeX Font Info: ... okay on input line 17.
-- Lines per column: 56 (exact).
@ -349,7 +352,7 @@ File: translations-basic-dictionary-english.trsl (english translation file `tra
nslations-basic-dictionary')
)
Package translations Info: loading dictionary `translations-basic-dictionary' f
or `english'. on input line 16.
or `english'. on input line 17.
(/usr/share/texlive/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
@ -373,108 +376,42 @@ Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
LaTeX Warning: Citation `patil_analysis_2025' on page 1 undefined on input line
117.
LaTeX Font Info: Trying to load font information for U+msa on input line 118
LaTeX Font Info: Trying to load font information for U+msa on input line 121
.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Trying to load font information for U+msb on input line 118
LaTeX Font Info: Trying to load font information for U+msb on input line 121
.
(/usr/share/texlive/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
LaTeX Warning: Citation `li_quantitative_2019' on page 1 undefined on input lin
e 121.
LaTeX Warning: Citation `mohammd_taher_new_2021' on page 1 undefined on input l
ine 125.
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
]
Underfull \vbox (badness 1354) has occurred while \output is active []
LaTeX Warning: Citation `gieras_modern_2023' on page 2 undefined on input line
131.
[2]
[3]
Underfull \hbox (badness 2173) in paragraph at lines 352--354
\OT1/ptm/m/it/10 2) Sim-u-la-tion and Con-trol: [][] \OT1/ptm/m/n/10 Based on
this model, a
[]
LaTeX Warning: Citation `gieras_modern_2023' on page 2 undefined on input line
133.
LaTeX Warning: Citation `gasc_conception_2004' on page 2 undefined on input lin
e 133.
LaTeX Warning: Citation `bhatiya_bldc_2024' on page 2 undefined on input line 1
34.
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
ne 136.
LaTeX Warning: Citation `mohammd_taher_new_2021' on page 2 undefined on input l
ine 137.
LaTeX Warning: Citation `li_quantitative_2019' on page 2 undefined on input lin
e 138.
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
ne 143.
LaTeX Warning: Citation `li_quantitative_2019' on page 2 undefined on input lin
e 145.
LaTeX Warning: Citation `patil_analysis_2025' on page 2 undefined on input line
147.
LaTeX Warning: Citation `gasc_conception_2004' on page 2 undefined on input lin
e 153.
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
ne 156.
LaTeX Warning: Citation `mohammd_taher_new_2021' on page 2 undefined on input l
ine 159.
LaTeX Warning: Citation `li_quantitative_2019' on page 2 undefined on input lin
e 163.
LaTeX Warning: Citation `lee_advanced_2001' on page 2 undefined on input line 1
70.
LaTeX Warning: Citation `jomsa-nga_torque_2024' on page 2 undefined on input li
ne 175.
LaTeX Warning: Citation `b1' on page 2 undefined on input line 208.
[2]
LaTeX Warning: Citation `b1' on page 3 undefined on input line 232.
LaTeX Warning: Citation `b2' on page 3 undefined on input line 238.
[3] (./main.bbl
<./Figures/sys_dyn_matlab.png, id=19, 430.2474pt x 193.2018pt>
File: ./Figures/sys_dyn_matlab.png Graphic file (type png)
<use ./Figures/sys_dyn_matlab.png>
Package pdftex.def Info: ./Figures/sys_dyn_matlab.png used on input line 373.
(pdftex.def) Requested size: 252.0pt x 113.16261pt.
<./Figures/error_fig.png, id=21, 509.7444pt x 328.5876pt>
File: ./Figures/error_fig.png Graphic file (type png)
<use ./Figures/error_fig.png>
Package pdftex.def Info: ./Figures/error_fig.png used on input line 381.
(pdftex.def) Requested size: 252.0pt x 162.44328pt.
[4 <./Figures/sys_dyn_matlab.png> <./Figures/error_fig.png (PNG copy)>]
(./main.bbl
Underfull \hbox (badness 1490) in paragraph at lines 97--99
[]\OT1/ptm/m/n/8 ------, ``lispbm in vesc,'' $https : / / github . com / vedder
b / bldc / tree / master /
@ -492,35 +429,29 @@ Before submitting the final camera ready copy, remember to:
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
[4
] (./main.aux)
LaTeX Warning: There were undefined references.
LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
)
[5] (./main.aux) )
Here is how much of TeX's memory you used:
8270 strings out of 478287
179210 string characters out of 5849289
458734 words of memory out of 5000000
26390 multiletter control sequences out of 15000+600000
505668 words of font info for 98 fonts, out of 8000000 for 9000
8318 strings out of 478287
180456 string characters out of 5849289
457883 words of memory out of 5000000
26430 multiletter control sequences out of 15000+600000
505639 words of font info for 98 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
71i,8n,79p,227b,513s stack positions out of 5000i,500n,10000p,200000b,80000s
{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texliv
e/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texlive/texm
f-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/texmf-dist/
fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-dist/fonts/t
ype1/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/
utmbi8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></u
sr/share/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on main.pdf (4 pages, 111590 bytes).
{/usr/share/texlive/texmf-dist/fonts/enc/dvips/base/8r.enc}</
usr/share/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb></usr/sh
are/texlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/te
xlive/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/share/texlive/t
exmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texlive/texmf-di
st/fonts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texlive/texmf-dist/fonts
/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/texlive/texmf-dist/fonts/type1
/urw/times/utmb8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmb
i8a.pfb></usr/share/texlive/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/s
hare/texlive/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on main.pdf (5 pages, 235480 bytes).
PDF statistics:
53 PDF objects out of 1000 (max. 8388607)
32 compressed objects within 1 object stream
75 PDF objects out of 1000 (max. 8388607)
44 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)
11 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

View file

@ -5,6 +5,7 @@
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{url}
\usepackage{placeins}
\usepackage{siunitx}
\usepackage{graphicx}
\usepackage{textcomp}
@ -71,15 +72,15 @@ taban@insa-toulouse.fr}
Electric bikes are becoming an increasingly attractive solution for transporting goods between short distances,
especially in city-wide infrastructures. However, most commercially available controllers rely on complex integrated
circuits making repair and local manufacturing difficult, particularly for organisations operating in
resource-constrained or low-tech environments. La Manufacture Autonome Décentralisée (LaMAD) is developing products
resource-constrained or low-tech environments. The Manufacture Autonome Décentralisée (MAD) is developing products
and solutions, particularly e-bikes, which are more repairable and sustainable. Previous studies have predominantly
focused on performance optimisation of Field Oriented Control (FOC) and trapezoidal commutation strategies, with limited
attention to repairability, component sourcing, and community-centred sustainability criteria. This project aims to
design, assemble, and develop a functional, low-tech and open-source motor controller for electric cargo bikes. The
current model uses an open-source motor control called VESC (Vedder Electronic Speed Controller) that allows precise
control of electric motors. The controller needs to be compatible with a VESC controller and easily locally repairable
by LaMAD. By exploring the inner workings of the VESC project, modelling of the physical systems and the Printed Circuit
Board, PCB, we investigated the ways we could do it in another way. We acquired a VESC controller to compare our system
by the MAD. By exploring the inner workings of the VESC project, modelling of the physical systems and the Printed Circuit
Board (PCB) we investigated the ways we could do it in another way. We acquired a VESC controller to compare our system
and a commercial product. Preliminary results demonstrate that the adapted VESC-based controller successfully drives
the target motor under both commutation strategies, and that positional control is achievable with the current hardware
configuration. Security vulnerabilities related to open Bluetooth access were identified. These findings suggest that
@ -102,11 +103,13 @@ they often introduce vulnerabilities. Open-source projects, in particular, must
developers with the need to secure the vehicle.
We also argue the need for general public's safety when it comes to these bikes, as it could be a danger to the traffic.
This is especially true when it comes to vehicules carrying a substantial load. This needs to be considered by laMAD,
This is especially true when it comes to vehicules carrying a substantial load. This needs to be considered by the MAD,
where their responsibility and control begins and ends. Should there be a difference between the firmware loaded on a
product from laMAD than what is publicly available?
product from the MAD than what is publicly available?
% ********************************************* RELATED WORK ***********************************************************
\section{Related Work}
\subsection{Modeling of BLDC Motor}
@ -206,6 +209,13 @@ The objective is to minimize the perceived additional effort when towing a cargo
PID-based (ProportionalIntegralDerivative) control strategy combined with distance sensing, allowing adaptive
assistance based on system dynamics.
\section{Hardware-Based Six-Step Commutation Controller}
\section{STM32-Based Field-Oriented Control Motor Drive}
% ************************************** SOFTWARE AND CONNECTIVITY *****************************************************
\section{Software and Connectivity}
\subsection{BLE Compatibility With the VESC}
@ -243,15 +253,15 @@ have in mind the maximum speed permitted and the power available to the motors.
\subsubsection{LispBM extraction}
We caugth word that the lisp code for the VESC used by Maillon mobility was easy to extract. By building an older
firmware with the Maillon mobility software, we observed this by going to the lispBM tab and clicking read. It's up to
laMAD if they would like to reinforce this mechanism. A modification on a parameter and then clicking upload allowed
us to easily change the speed limit. This could bring up a public danger. This raises questions on the use of laMADs
the MAD if they would like to reinforce this mechanism. A modification on a parameter and then clicking upload allowed
us to easily change the speed limit. This could bring up a public danger. This raises questions on the use of the MAD's
equipment which is in a traffic friendly manner.
\subsubsection{LispBM Code}
When we flashed newer firmware from the project made by Benjamin Vedder\cite{b1}, we also observed some difficulties in
uploading the lispBM script taken from the one on firmware version 6.06. This could indicate that there needs to be
further maintenance of the code in order to get the software up to speed. This needs to be documented better for someone
to continue the project. This could be a good investment for laMAD as well in the context of training for the people
to continue the project. This could be a good investment for the MAD as well in the context of training for the people
working on the motor control part of the e-bike.
This documentation could be as simple as referencing the relevant parts of the lispBM documentation \cite{b2}
@ -259,9 +269,9 @@ This documentation could be as simple as referencing the relevant parts of the l
\subsubsection{Proposed Solution}
This risk could be patched by developing a VESC application for the VESC controller or using a binary. This is a
solution which is less open source, but which is make unlawful use of the material harder. The application could be
created using C and use an algorithm known by laMAD in order to securise the access to someone to change the parameters
only if they are laMAD certified personnel. This encryption would preferably be reduced to the most essential settings
in order to align with what our impression of the philosophy of laMAD would be.
created using C and use an algorithm known by the MAD in order to securise the access to someone to change the parameters
only if they are the MAD certified personnel. This encryption would preferably be reduced to the most essential settings
in order to align with what our impression of the philosophy of the MAD would be.
@ -272,20 +282,118 @@ summarise what we have learned for you and propose some additional work for the
were the following: The lack of bluetooth capabilities. We did not have a module with BLE either. We had access to a
HC-05 module, but that only allows for a normal bluetooth protocol and would require further work on a bridge to UART
by using an esp8622 that we had as well. We propose that the next group has access to a VESC controller from the
beginning, as well as a motor we could control. This could be in cooperation with laMAD, as laMAD could propose
beginning, as well as a motor we could control. This could be in cooperation with the MAD, as the MAD could propose
some models they're interested in.
We also found that the information on the VESC is scattered around the internet. The ressources is also sometimes
based on a debian-based linux system which adds more work for someone using another distribution of linux. This could
hinder the implementation facility for new users. We struggeled particularly with the Qt packages for positioning and
gamepad. We would therefore recommend the use of a debian-based linux system for the computer working with the VESC
for the laMAD associates.
for the the MAD associates.
% ************************************ DYNAMIC MODELLING ***************************************************************
\section{Dynamic Modelling and Control of the BicycleCargo System}
\subsection{System Modelling and Simulation}
The studied system consists of a bicycle towing a cargo cart through a rigid mechanical linkage. This link is only used
for steering guidance and does not contribute to the traction force. The main objective is to ensure that the rider
perceives minimal additional effort, such that the overall behaviour remains similar to riding a standard bicycle.
From a control perspective, the rider provides a reference motion in terms of speed and position, while the cargo cart
is expected to follow this reference with minimal delay. The position error between the bicycle and the cargo cart is
computed using a distance sensor, which provides feedback relative to an equilibrium state.
\subsubsection{Dynamic Modelling}
The cargo cart is modelled as the plant of the system. Its rotational dynamics are described using the fundamental
equation of rotational motion:
\begin{equation*}
\sum \tau = J_{\Delta} \times \dot{\omega}
\end{equation*}
where $\tau$ is the total torque applied to the system, $J_{\Delta}$ is the equivalent moment of inertia, and $\omega$
is the angular velocity.
The total torque is composed of the motor torque $\tau_m$ and a friction torque modelled as:
\begin{equation*}
\tau_f = -f \times \omega
\end{equation*}
where $f$ is the viscous friction coefficient.
The resulting dynamic equation becomes:
\begin{equation*}
J_{\Delta} \dot{\omega} = \tau_m - f \omega
\end{equation*}
In the Laplace domain, this leads to:
\begin{equation*}
\omega(s) = \frac{\tau_m(s)}{J_{\Delta} s + f}
\end{equation*}
Since the linear velocity is related to angular velocity by the wheel radius $R$, we obtain:
\begin{equation*}
v(s) = R \times \omega(s)
\end{equation*}
Thus, the transfer function between motor torque and linear velocity is:
\begin{equation*}
\frac{v(s)}{\tau_m(s)} = \frac{R}{J_{\Delta} s + f}
\end{equation*}
\subsubsection{Simulation and Control}
Based on this model, a Simulink representation of the system was developed. The controlled system includes a feedback
loop using a PI controller in order to regulate the position error between the bicycle and the cargo cart.
Since the reference input is a ramp signal (representing the bicycle position over time), an integral action is required
to ensure zero steady-state error and accurate tracking of the reference trajectory.
The closed-loop Simulink model of the system is shown in Fig.~\ref{fig:simulink_closedloop}.
The control error is defined as the difference between a desired relative position and the measured displacement between
the bicycle and the cargo cart:
\begin{equation*}
e(t) = e_{\text{ref}} - (x_{\text{bike}} - x_{\text{cart}})
\end{equation*}
where $e_{\text{ref}} = \SI{-0.5}{\meter}$ represents the desired equilibrium offset between both systems.
The resulting position error between the bicycle and the cargo cart is shown in Fig.~\ref{fig:tracking_error}.
\FloatBarrier
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/sys_dyn_matlab.png}
\caption{Closed-loop model of the bicyclecargo system with PI control.}
\label{fig:simulink_closedloop}
\end{figure}
\begin{figure}[!h]
\centering
\includegraphics[width=\linewidth]{./Figures/error_fig.png}
\caption{Position tracking error between bicycle and cargo cart.}
\label{fig:tracking_error}
\end{figure}
\subsection{Control Architecture Exploration}
\subsection{Experimental Characterization Under Different Loads}
% ******************************** DISCUSSION **************************************************************************
\section{Discussion}
This project could be seen as an introduction to the VESC project for someone who don't know about it from beforehand,
the challenges the new users face during setup, as well as a demand for clear expectations concerning documentation
on the subject. The project laMAD is leading should probably not be a fork of the project, as the project is still
on the subject. The project the MAD is leading should probably not be a fork of the project, as the project is still
in development.
As a final note, this proved to be a project which could easily be developed into several different projects in
@ -333,12 +441,21 @@ impose a tripping hazard. There, an encapsulation of an encrypted control frame
\section*{Acknowledgment}
The preferred spelling of the word ``acknowledgment'' in America is without
an ``e'' after the ``g''. Avoid the stilted expression ``one of us (R. B.
G.) thanks $\ldots$''. Instead, try ``R. B. G. thanks$\ldots$''. Put sponsor
acknowledgments in the unnumbered footnote on the first page.
The authors acknowledge the use of generative AI tools during this project, both for the development work and for
writing this paper.
%\section*{References}
AI was used as a helper in several parts of the project. This includes support for understanding and structuring
technical ideas, and giving suggestions during the development of different subsystems. It was also used to help with
writing, rephrasing, and improving clarity in the report.
However, all final decisions, implementations, and validations were done by the authors. The AI outputs were always
checked, corrected when needed, and adapted based on reliable technical sources and our own experiments and
understanding of the system.
We consider AI as a useful tool to speed up thinking and writing, but not as a source of final technical truth.
Everything related to design choices, analysis, and results was verified and fully controlled by the authors.
The use of AI tools in this work follows the IEEE guidelines for generative AI usage in publications.
%Please number citations consecutively within brackets \cite{b1}. The
%sentence punctuation follows the bracket \cite{b2}. Refer simply to the reference