Date: Thu, 28 Mar 2024 12:48:53 +0100 (CET)
Message-ID: <1461553376.169.1711626533200@cpm>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_168_994450399.1711626533199"
------=_Part_168_994450399.1711626533199
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
RTI DDS
This example is a guideline on how to write a Matlab sc=
ript that, together with the Middleware, communicates with a vehicle. This =
tutorial is based on our platoon example (which is just a series of vehicle=
s following a preset path without much logic behind that behavior), which y=
ou can find in
https://github.com/embedded-software-laboratory/cpm_lab=
/tree/master/high_level_controller/examples/matlab/platoon
More specifically, we well take a look at main_vehicle_ids.m
.
As you can see in the following sections, this script uses another scrip=
t, called init_script.m.
Your Matlab script is not supposed to directly communicate with =
the vehicle or to perform timing operations with the LCC. This is =
the Middleware's task=
, so your task is just to properly communicate with the Middleware<=
/strong> (if you only want to control the vehicle).
The Middleware will wake your script up regularly to perform a computati=
on with the currently given values, and you just need to respond in a prope=
r way. This allows you to focus on problem solving instead of timin=
g and communication. Always ensure that the middleware's period in=
the LCC "Parameters" tab is set according to your expectations in the HLC.=
Setup
The structure of your code<=
/h3>
Your function head may differ, but you must use varargin as your last parameter to pass vehicle =
IDs to your script. This allows you to define, for your script, which vehic=
le(s) it should be responsible for. Any previous parameters you define are =
your own 'custom' parameters and need to be specified as additional=
parameters in the Lab Control Centers' UI before starting your sc=
ript (if you wish to start it using the UI).
function main(middleware_domain_id, varargin)
...
vehicle_ids =
=3D varargin;
In other words: If your function head looks like this
function main(some, params, middleware_domain_id, varargin)
then you need to pass some, params
as additional parameters=
in the LCC's UI (ignore the script path in the screenshot):
Varargin covers the vehicle IDs that your script should be responsible f=
or. The DDS Domain ID to communicate with the Middleware only via shared me=
mory is middleware_domain_id, its default value is 1. To be compatible with=
the LCC, which expects these two parameters to be available on calling you=
r script, you should always put them as the last two parameters in your fun=
ction head as specified above.
What your HLC scri=
pts need to include
Import the init script
You can see the sample code below. What you should do:
- Set the Matlab domain ID to 1 in a variable of your choice. This domain=
is used to communicate directly with the Middleware. More information can =
be found here.
- Go to the right directory for the init script
- Call the script and store the readers and writers that it sets up for y=
ou, as well as the stop signal (Which we call trigger_stop here).
- Store the vehicle IDs from varargin. You will need them later.
- The Middleware uses VehicleStateList data for timing purposes, i.e. if =
new data is received, you need to use it for your calculation, otherwise yo=
u should wait until you receive more data. This is further explained down b=
elow. A waitset is set to wait upon taking data from the reader if no data =
is yet available. The timeout is set to 10 seconds in this example, but you=
can also set a higher timeout.
Code Sample
=20
function=
main_vehicle_ids(middleware_domain_id, varargin) % middleware_domain_id on=
ly for eProsima + Matlab
=09% Set the matlab domain ID for communicating with the middleware (which =
is always 1)
matlabDomainID =3D 1;
=09% Clear command window, store path of current script, go to that path
clc
script_directoy =3D fileparts([mfilename('fullpath') '.m']);
cd(script_directoy)
% Set the path of the init script relative to the path of your script (=
or absolute), assert that it exists, add it to the path so that it can be f=
ound and than call it
=09% Then go back to the script directory
init_script_path =3D fullfile('../', '/init_script.m');
assert(isfile(init_script_path), 'Missing file "%s".', init_script_path=
);
addpath(fileparts(init_script_path));
[matlabParticipant, stateReader, trajectoryWriter, systemTriggerReader,=
readyStatusWriter, trigger_stop] =3D init_script(matlabDomainID);
cd(script_directoy)
=09% Remember the set vehicle IDs in a new variable
vehicle_ids =3D varargin;
%% Use a waitset for the reader of vehicle states, which is later used =
to indicate if a new computation should be started
=09% The waitset makes sure that take() or read() from the reader's storage=
does not return if no new data is available (until the timeout is reached,=
here 10 seconds
=09% so that one can still check for a stop signal regularly)
stateReader.WaitSet =3D true;
stateReader.WaitSetTimeout =3D 10;
%% Do not display figures
set(0,'DefaultFigureVisible','off');
=20
Te=
ll the Middleware that your script is ready to operate
You must send a ReadySignal message after initialization - only the ID string matters, which must be of the form =
"hlc_" + vehicle_id
, where the latter is the ID of the vehicle=
the HLC and thus your script is responsible for:
Code Sample
=20
% (Assum=
ing that vehicle_ids contains the IDs your script is responsible for)
% Send first ready signal to the Middleware to indicate that your program i=
s ready to operate
% The signal needs to be sent for all assigned vehicle ids separately (usua=
lly, one script on one NUC only manages one of the IDs)
% Also works for simulated time - period etc are set in Middleware, so you =
can ignore the timestamp field
for i =3D 1 : length(vehicle_ids)
=09% Create a new msg of type ReadyStatus (idl)
ready_msg =3D ReadyStatus;
=09% Set the values of ready_msg
ready_msg.source_id =3D strcat('hlc_', num2str(vehicle_i=
ds{i}));
ready_stamp =3D TimeStamp;
ready_stamp.nanoseconds =3D uint64(0);
ready_msg.next_start_stamp =3D ready_stamp;
=09% Send the ready msg
readyStatusWriter.write(ready_msg);
end
=20
You use the ReadyStatus
type here, which was defined in one=
of the IDL files that was imported for you using the init script. You can =
see the values of this type in the IDL file:
https://github.com/embedded-software-laboratory/cpm_lab/blob/master/c=
pm_lib/dds_idl/ReadyStatus.idl
This message tells the Middleware that your script is now ready =
to operate and to receive its data. Thus, at this point, your read=
er for vehicle states (here stateReader
) should be initialized=
so that it can receive the data.
Consider the timing signa=
ls
This is very important. There are two signals you must consider: Start a=
nd stop signals. You have to check regularly for the stop signal, and once for the start signal:
- Start signal: This indicates that your script is supposed to calculate =
a new e.g. trajectory for the vehicles it is responsible for. Start with ca=
lculation immediately and send the results back as soon as possible. The Mi=
ddleware handles the rest.
- Stop signal:
trigger_stop =3D uint64(18446744073709551=
615)
was already set by the init script. It is the highe=
st number representable with a uint64_t type. This number indicates that th=
e simulation was stopped, and thus your script should immediately terminate=
.
- All other numbers are irrelevant. From here on, new messages re=
ceived by the reader of
VehicleStateList (
stateReader)=
code>, are interpreted as start signals for less redundancy.
Waiting for the initial start signal may look like this:
Code Sample
=20
% Wait f=
or start signal / stop if a stop signal was received
got_stop =3D false;
got_start =3D false;
while(true)
=09% Read the newest system trigger message, if one exists
trigger =3D SystemTrigger;
sampleCount =3D 0;
[trigger, status, sampleCount, sampleInfo] =3D systemTriggerReader.take=
(trigger);
=09% Go through all received messages since the last check, if they exist (=
sampleCount gives the number of read messages)
=09% Any received message would indicate "start", but you have to check if =
a stop signal was received as well
while sampleCount > 0
=09=09% Check for stop signal
if trigger.next_start().nanoseconds() =3D=3D trigger_stop
got_stop =3D true;
elseif trigger.next_start().nanoseconds() >=3D 0
got_start =3D true;
end
=09=09% Read the next sample and continue until sampleCount is zero again (=
all samples have been read then)
[trigger, status, sampleCount, sampleInfo] =3D systemTriggerReader.=
take(trigger);
end
=09% Stop the loop if a signal was received, then proceed with handling a s=
top signal (stop the program) or a start signal (continue)
if got_stop | got_start
break;
end
end
=20
You need to repeat this procedure to check for the stop signal every tim=
e before you wait for the next start indicator sent by the Middleware (whic=
h is indicated by new samples in VehicleStateList
). The loop, =
that includes calculating new data as well, may look like this:
Code Sample
=20
% Again:=
Go through all samples and stop the program if you received a stop signal
% break_while is the name used in the sample program (as it breaks the encl=
osing while-loop of the whole program), but you could also name it e.g. sto=
p_received
trigger =3D SystemTrigger;
sampleCount =3D 0;
[trigger, status, sampleCount, sampleInfo] =3D systemTriggerReader.take(tri=
gger);
break_while =3D false;
while sampleCount > 0
current_time =3D trigger.next_start().nanoseconds();
if current_time =3D=3D trigger_stop
break_while =3D true;
end
[trigger, status, sampleCount, sampleInfo] =3D systemTriggerReader.take=
(trigger);
end
if break_while
...
=20
Information about your vehicle are contained in the VehicleStateLi=
st
messages, which include the current states and observatio=
ns of all vehicles as well as the current time. T=
his signal is supposed to be the start signal for the HLC, so computation s=
hould start using this data directly after the message was received. <=
/p>
These signals, which, in this example, you can obtain using the st=
ateReader
, contain two fields which are vital to the correct usage o=
f your script.
- The messages contain current information about the whereabouts =
and settings of your vehicle as well as any other vehicle in the s=
imulation. Use this data for planning.
- The messages contain timing information. Use these whe=
n you send commands to your vehicle - they contain the current time you set=
for the messages.
This signal has a third purpose as well. It shows the script when to sta=
rt the computation, similar to a timing signal. The desired computation cyc=
le is the following:
- Wait for a new message
- After receiving a message, start your computation
- Then send the new command(s) to the v=
ehicle
- Remove messages that were received during computation, as they are old =
and potentially unusable, and wait for the next message
- ... (repeat)
The history for this signal is set=
to 1, but you may still get an outdated signal here if you missed =
a period during your computation and read the nex=
t VehicleStateList in the middle of that next period. In that case, it may =
be better to skip that next perio=
d as well and wait for the following one to start.
Code Sample
=20
...
% Read the current vehicle information from the according reader, if such d=
ata is available
% Due to the set waitset, you wait for up to 10 seconds at take(...) if no =
data is available
sample =3D VehicleStateList;
status =3D 0;
stateSampleCount =3D 0;
sampleInfo =3D DDS.SampleInfo;
[sample, status, stateSampleCount, sampleInfo] =3D stateReader.take(sample)=
;
% Check if any new message was received, then proceed with handling the dat=
a, computing your solution and finally sending back a command to the vehicl=
e(s) your script controls
if stateSampleCount > 0=20
...
=20
Send commands to your ve=
hicle
You need to send vehicle command messages as a result of your computatio=
n including the vehicle ID to the Middleware, which propagates these to the=
vehicle. The implementation of the computation of e.g. the vehicle's traje=
ctory is not explained here and depends on your task. You are only given an=
example of how to send a simple trajectory here.
We are now taking a look at In the script which we were looking at leader.m
, which, as you can see in the first code sample below, is =
called within the platoon script. We use it to compute the next trajec=
tory segment:
Code Sample
=20
% Call t=
he programs which calculate the trajectories of all HLCs, then send the res=
ults back to the vehicles
if (size(vehicle_ids) > 0)
for i =3D 1 : length(vehicle_ids)
msg_leader =3D leader(vehicle_ids{i}, sample.t_now);
=09=09% Send resulting trajectory to the vehicle
trajectoryWriter.write(msg_leader);
end
end
=20
In the following, you see an example of how to set up a trajectory messa=
ge, that can then be sent using the trajectoryWriter
:
Code sample
=20
%Create =
msg of type trajectory
trajectory =3D VehicleCommandTrajectory;
% Set the vehicle ID
trajectory.vehicle_id =3D uint8(vehicle_id);
% In this example, we only send one trajectory point (which is not sufficie=
nt for interpolation)
trajectory_points =3D [];
point1 =3D TrajectoryPoint;
% This trajectory point should be considered in the future, so add some nan=
oseconds to the current time, then set the time stamp for the trajectory po=
int
% t_eval here is the time that we got from the middleware in the VehicleSta=
teList message - you are not supposed to use your own clock / timer (else y=
ou would have trouble working with simulated time)
time =3D t_eval + 400000000;
stamp =3D TimeStamp;
stamp.nanoseconds =3D uint64(time);
point1.t =3D stamp;
% Set other trajectory values - position and velocity in 2D coordinates
point1.px =3D trajectory_point(1);
point1.py =3D trajectory_point(2);
point1.vx =3D trajectory_point(3);
point1.vy =3D trajectory_point(4);
% Append to the list of all trajectory points
trajectory_points =3D [trajectory_points [point1]];
trajectory.trajectory_points =3D trajectory_points;
% Send the trajectory to the vehicle
trajectoryWriter.write(trajectory);
=20
Bash script / Deploy =
Using the LCC
If you want to start your script using a bash script, you can do it like=
this:
/opt/MATLAB/R2019a/bin/matlab -logfile matlab.log -sd $script_dir -bat=
ch "$script_name(1, ${vehicle_id})"
Usually, you would want to start it using the LCC instead, which takes care of these =
things for you.
Deploying with Matlab GUI=
h3>
See here: If, within the=
setup tab, yo=
u do not select any script but leave the script field empty, only the Middl=
eware gets started. You can then start your own script from within the Matl=
ab GUI, it should detect the Middleware (if you set the correct number of v=
ehicles, the Middleware will, if deployed locally, wait for HLC messages fo=
r all vehicles that are currently online).
How to Actually Start=
Your Script
As mentioned before, the Middleware takes care of timing. As soon as you=
r script has told it that it is ready to operate, the Middleware should app=
ear in the Timer T=
ab in the LCC. Then, you can start the simulation by sending a start si=
gnal (press on the start button). Of course, you need to deploy / start the simulation to=
start the Middleware before you start the timer (and, if you do not use th=
e Matlab GUI, your selected Matlab script as well).
------=_Part_168_994450399.1711626533199
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/823d03685806a99f44d0e3f05339f0fb
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
5yLyN/P/rNTKSft3mtEAAAAASUVORK5CYII=
------=_Part_168_994450399.1711626533199--