<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rsewiki.electro.dtu.dk/index.php?action=history&amp;feed=atom&amp;title=Sequencer</id>
	<title>Sequencer - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rsewiki.electro.dtu.dk/index.php?action=history&amp;feed=atom&amp;title=Sequencer"/>
	<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Sequencer&amp;action=history"/>
	<updated>2026-04-17T01:54:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Sequencer&amp;diff=187&amp;oldid=prev</id>
		<title>Lvm: New page: &#039;&#039;Status&#039;&#039;  The sequencer is in broad terms equal the the sequencer in smrdemo, but is less real time oriented  &#039;&#039;How to operate&#039;&#039;  Load the module &#039;auseq-1.XX.so.0&#039; by e.g.: The module re...</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Sequencer&amp;diff=187&amp;oldid=prev"/>
		<updated>2008-09-29T10:48:35Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;#039;&amp;#039;Status&amp;#039;&amp;#039;  The sequencer is in broad terms equal the the sequencer in smrdemo, but is less real time oriented  &amp;#039;&amp;#039;How to operate&amp;#039;&amp;#039;  Load the module &amp;#039;auseq-1.XX.so.0&amp;#039; by e.g.: The module re...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;Status&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The sequencer is in broad terms equal the the sequencer in smrdemo, but is less real time oriented&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;How to operate&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Load the module &amp;#039;auseq-1.XX.so.0&amp;#039; by e.g.:&lt;br /&gt;
The module requires the variable handling module to be loaded too, so load both.&lt;br /&gt;
 &amp;gt;&amp;gt; module load=&amp;#039;/usr/local/smr/bin/auseq-1.77.so.0&amp;#039;&lt;br /&gt;
 &amp;gt;&amp;gt; module load=var&lt;br /&gt;
The variable handling module is static - and can thus be loaded using a short name - see &amp;#039;&amp;gt;&amp;gt; module help&amp;#039; for a list of static modules.&lt;br /&gt;
&lt;br /&gt;
Look at:&lt;br /&gt;
 &amp;gt;&amp;gt; seq help&lt;br /&gt;
to get sequencer options, then try to add a sequencer line by e.g.:&lt;br /&gt;
 &amp;gt;&amp;gt; seq add=&amp;quot;a=sin(0.5)&amp;quot;&lt;br /&gt;
 USeqLoop::run: 0 Parsing &amp;#039;a=sin(0.5)&amp;#039; &lt;br /&gt;
 USeqLoop::run: ** 1 warning: sequencer out of mission lines (try &amp;quot;seq help&amp;quot;)&lt;br /&gt;
The sequenser reply is that the line is parsed and it now is out of sequence lines&lt;br /&gt;
&lt;br /&gt;
All variables and functions available to the sequencer can be displayed with the command:&lt;br /&gt;
 &amp;gt;&amp;gt; var all&lt;br /&gt;
 false=0;                      Constant false is the same as 0&lt;br /&gt;
 true=1;                       Constant true is the same as 1&lt;br /&gt;
 pi=3.14159;                   Constant pi is the same as 3.14159...&lt;br /&gt;
 replayTime=0;                 Current time index to replay file(s)&lt;br /&gt;
 a=0.479426;                   new&lt;br /&gt;
 core=&amp;#039;struct&amp;#039;;                Variables related to the server core.&lt;br /&gt;
 poseHist=&amp;#039;struct&amp;#039;;            Holds the most recent robot position and the&lt;br /&gt;
 seq=&amp;#039;struct&amp;#039;;                 Plan sequencer settings and status&lt;br /&gt;
 roaddrive=&amp;#039;struct&amp;#039;;           Road line driver settings and functions&lt;br /&gt;
 drivepos=&amp;#039;struct&amp;#039;;            Drive to position settings and functions&lt;br /&gt;
 limitToPi(d);&lt;br /&gt;
 sin(d); &lt;br /&gt;
 cos(d);&lt;br /&gt;
 ...&lt;br /&gt;
And among the list is the new variable &amp;#039;a&amp;#039; introduced by the sequencer line.&lt;br /&gt;
&lt;br /&gt;
Some modules introduce drive commands, the &amp;#039;drivepos&amp;#039; module allow to drive to a position, in local or absolute coordinates&lt;br /&gt;
To try it, first load the module&lt;br /&gt;
 &amp;gt;&amp;gt; module load=&amp;quot;/usr/local/smr/bin/audrivepos-1.77.so.0&amp;quot;&lt;br /&gt;
To see the settings and functions in this plugin, try:&lt;br /&gt;
 &amp;gt;&amp;gt; var drivepos&lt;br /&gt;
 version=1.77;                 Resource version&lt;br /&gt;
 updateTime=0;                 Last time the road drive command was calles&lt;br /&gt;
 loopCnt=0;                    Number of times called by sequencer&lt;br /&gt;
 odoX=0;                       (ro) target position used in obstacle avoidance&lt;br /&gt;
                              (set by call)&lt;br /&gt;
 odoY=0;&lt;br /&gt;
 odoH=0;&lt;br /&gt;
 odoV=1;                       target velocity at end of obstacle avoidance&lt;br /&gt;
 failCnt=0;                    Path fails since last success&lt;br /&gt;
 finalDistance=0.7;            Distance from target position where no new path&lt;br /&gt;
                              is calculated&lt;br /&gt;
 odo(ddd);                     Drive towards this odometry position (x[m],&lt;br /&gt;
                              y[m], h[rad])&lt;br /&gt;
 odo(dddd);                    Drive towards this odometry position (x[m],&lt;br /&gt;
                              y[m], h[rad]), the last (optional) parameter is&lt;br /&gt;
                              a repeat count for calls in rapid succession.&lt;br /&gt;
 rel(ddd);                     Drive towards this position relative to the&lt;br /&gt;
                              robot (x[m], y[m], h[rad])&lt;br /&gt;
 rel(dddd);                    Drive towards this position relative to the&lt;br /&gt;
                              robot (x[m], y[m], h[rad]), the last (optional)&lt;br /&gt;
                              parameter is a repeat count for calls in rapid&lt;br /&gt;
                              succession. First call (repeat==0) determines&lt;br /&gt;
                              origin for relative position&lt;br /&gt;
 odoVel(dddd);                 Drive towards this odometry position and desired&lt;br /&gt;
                              end velocity (x, y, h, vel)&lt;br /&gt;
&lt;br /&gt;
To add a line that will drive to a position 1 meter forward and 0.5 meter to the right maintaining the current heading, try:&lt;br /&gt;
 &amp;gt;&amp;gt; seq add=&amp;quot;drivepos.odo(1, -0.5, 0) : false&amp;quot;&lt;br /&gt;
The first part is a function call the the &amp;#039;odo(ddd)&amp;#039; function in the &amp;#039;drivepos&amp;#039; module with the 3 needed &amp;#039;double&amp;#039; parameters. Then a &amp;#039;:&amp;#039; to say that it is a drive command that should be continued until it returnes &amp;#039;true&amp;#039; or the explicit stop condition after the &amp;#039;:&amp;#039; evaluates to true.&lt;br /&gt;
&lt;br /&gt;
Then a failure remark is most likely returned, this is because the drive module depends on other modules to complete the command&lt;br /&gt;
&lt;br /&gt;
@todo more info needed&lt;/div&gt;</summary>
		<author><name>Lvm</name></author>
	</entry>
</feed>