<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
<link rel="self" type="application/atom+xml" href="http://forum.robosavvy.com/feed.php?f=4&amp;t=460" />

<title>RoboSavvy Forum</title>
<subtitle>Robosavvy Forum: The largest online community of Humanoid Robot Builders</subtitle>
<link href="http://forum.robosavvy.com/index.php" />
<updated>2006-08-05T07:36:04+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=4&amp;t=460</id>
<entry>
<author><name><![CDATA[Viking]]></name></author>
<updated>2006-08-05T07:36:04+01:00</updated>
<published>2006-08-05T07:36:04+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2913#p2913</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2913#p2913"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2913#p2913"><![CDATA[
JEp Thats the reason - Thanks Hivemind<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=238">Viking</a> — Sat Aug 05, 2006 7:36 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[hivemind]]></name></author>
<updated>2006-08-04T18:39:05+01:00</updated>
<published>2006-08-04T18:39:05+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2893#p2893</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2893#p2893"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2893#p2893"><![CDATA[
I believe it is the same, the move24 just doesnt require an initial " , " and therefore if you have one it would throw all of your positions to the next servo and probably look rather interesting, but i just tested this command with my ankle servo only and it did the same given both commands (and like i said, the move24 doesnt want an initial comma or it will think your already going to the next servo) <br /><br /><img src="http://forum.robosavvy.com/images/smilies/icon_smile.gif" alt=":-)" title="Smile" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=221">hivemind</a> — Fri Aug 04, 2006 6:39 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Viking]]></name></author>
<updated>2006-08-04T15:40:54+01:00</updated>
<published>2006-08-04T15:40:54+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2892#p2892</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2892#p2892"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2892#p2892"><![CDATA[
Has anyone observed that there is a difference when using MOVE24 and MOVE G24?<br />If I use RoboBasic to read the servo positions it will write a MOVE G24 command. But if I change the command to MOVE24 the servoes does something totally different?<br />According to the manual page 75 or so(PDF), it states that there is no  difference between these two commands? <img src="http://forum.robosavvy.com/images/smilies/icon_question.gif" alt=":?:" title="Question" /> <br /><br />-Viking<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=238">Viking</a> — Fri Aug 04, 2006 3:40 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[XenoEvil]]></name></author>
<updated>2006-08-04T08:24:50+01:00</updated>
<published>2006-08-04T08:24:50+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2889#p2889</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2889#p2889"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2889#p2889"><![CDATA[
ah!!, now I understand.<br /><br />Thanks, that was much clearer.<br /><br />Thanks for your help.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=237">XenoEvil</a> — Fri Aug 04, 2006 8:24 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2006-08-01T15:41:39+01:00</updated>
<published>2006-08-01T15:41:39+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2844#p2844</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2844#p2844"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2844#p2844"><![CDATA[
Sorry, if I didn't make it too clear. I can see how it works, just not sure if the value of the commands outweighs the complexity and delay for the download, maybe I am still missing something.<br /><br />However,<br /><br />It appears that AUTO is just a persistant label for location 10000 in program memory. GOTO AUTO  is just the same as any other GOTO except no label is needed, and it sets the first variable to zero.<br /><br />ACTION is the same as any other GOSUB, except the action number  +32 is loaded into the first variable, and no label is needed.<br /><br />From another low program you should use ACTION since it is a subroutine and will return<br /><br />There is no multi threading or time slicing of the code.<br /><br />ACTION 15 does a GOSUB AUTO with the value 65 (15+50) in the first variable. This is decoded by the action_proc: and the GOTO K15 selected which is left attack or whatever you like. Then it returns to the low program<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Tue Aug 01, 2006 3:41 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[XenoEvil]]></name></author>
<updated>2006-08-01T13:23:55+01:00</updated>
<published>2006-08-01T13:23:55+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2842#p2842</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2842#p2842"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2842#p2842"><![CDATA[
Thanks for the reply.  It is not overly clear to me other than the byte code translation.<br /><br />What I am reading from your reply is that the control board can support multiple programs sharing the same variable name space.<br /><br />The GOTO AUTO will run the code that is stored at the default location.  Any subsequent GOTO AUTO in another program (asuming you've ommitted the FILL statement) will still infact run the original program that had the FILL statement in it ?<br /><br />Will it run time sliced or threaded programs I wonder ??????<br /><br />So if I enter ACTION 15 for example, where is ACTION 15.  Where did I enter a command that says this block of moves is action 15 ?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=237">XenoEvil</a> — Tue Aug 01, 2006 1:23 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2006-07-26T10:24:43+01:00</updated>
<published>2006-07-26T10:24:43+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2714#p2714</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2714#p2714"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2714#p2714"><![CDATA[
Oops If I had looked to the second part of your question XenoEvil, it would have been more clear.<br /><br />The ACTION 0 statement is translated to IM Byte code as follows:<br /><br />Location:      code:<br /><br />xxxx         ASSIGN  byte0, 0x32    ; the value varies between 0x32 and 0x51 for the 32 different ACTION numbers.<br /><br />xxxx+0x06 GOSUB 0x2728          ; Gosub to Absolute location<br /><br />Therefore once the template is installed in high memory, the actions may be used as defined in the template using the RR variable.<br /><br />If this is your intention, then you must not include the full template in any subsequent programs which use the ACTION command. The FILL command would be offset by the size of the low memory program, and the code installed in the wrong place. Adjusting the fill length is a pain if you have to find the length program length from the IM code.<br /><br />However the ACTION calls will not invoke the initialisation, which required the byte0 set to 0 as in GOTO AUTO. Thus I guess you should include the motor initialisation header as per the template in your program<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Wed Jul 26, 2006 10:24 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2006-07-26T10:24:16+01:00</updated>
<published>2006-07-26T10:24:16+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2713#p2713</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2713#p2713"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2713#p2713"><![CDATA[
Oops If I had looked to the second part of your question XenoEvil, it would have been more clear.<br /><br />The ACTION 0 statement is translated to IM Byte code as follows:<br /><br />Location:      code:<br /><br />xxxx         ASSIGN  byte0, 0x32    ; the value varies between 0x32 and 0x51 for the 32 different ACTION numbers.<br /><br />xxxx+0x06 GOSUB 0x2728          ; Gosub to Absolute location<br /><br />Therefore once the template is installed in high memory, the actions may be used as defined in the template using the RR variable.<br /><br />If this is your intention, then you must not include the full template in any subsequent programs which use the ACTION command. The FILL command would be offset by the size of the low memory program, and the code installed in the wrong place. Adjusting the fill length is a pain if you have to find the length program length from the IM code.<br /><br />However the ACTION calls will not invoke the initialisation, which required the byte0 set to 0 as in GOTO AUTO. Thus I guess you should include the motor initialisation header as per the template in your program<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Wed Jul 26, 2006 10:24 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2006-07-26T09:29:38+01:00</updated>
<published>2006-07-26T09:29:38+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2712#p2712</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2712#p2712"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2712#p2712"><![CDATA[
The actual working of these commands in the template is:<br /><br />GOTO AUTO translates into 2 IM Byte code strings<br /><br />Location:     Code:<br />0x0010  ASSIGN byte0, 0  ; the first byte variable is set to 0. This is later defined as RR<br />0x0015  GOTO $0x2728    ; Yes an absolute jump. The destination instruction location is always the same. <br /><br />0x0018  FILL 255,10000    ; This fills the next 10,000 decimal (0x2710) locations of memory with FF, more important it increments instruction location<br /><br />The next lines of DIM and CONST do not create IM Byte code, so the next IM code is made by the IF statement.<br /><br />0x2728 IF 0x273A byte0 &gt; 0x032 AND byte0 &lt; 0x53 THEN 0x2872<br /><br />0x273A<br /><br /><br />Therefore this program will install the  template program high up in memory, and run it.<br /><br />Subsequent program downloads will only write memory as far as their code extends, so it will stay there, even through clear memory, which only clears the program header.<br /><br />I assume you can then use GOTO AUTO in a subsequent loaded program without the FILL, and jump to the start of the high memory code. Note that the variables will be used twice, this could be good to pass parameters to a high program.<br /><br />This is the internals. I agree with hivemind on usage, and see no point to include the big FILL in subsequent programs, indeed that would seem to defeat the purpose. I did not check the role of the code in run time errors though.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Wed Jul 26, 2006 9:29 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[hivemind]]></name></author>
<updated>2006-07-25T18:35:58+01:00</updated>
<published>2006-07-25T18:35:58+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2704#p2704</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2704#p2704"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2704#p2704"><![CDATA[
I could be wrong, but i believe the FILL 255,10000 is acting as some kind of a memory clear.  For instance, when i test my robot i usually make an extremely small routine consisting of turning the motors on, setting the direction, the speed, a delay so i can move away and watch and then some poses (which of course would contine to get more complicated as the routine progreses) but i leave out the goto auto, the fill, all of the ir stuff and the program is only afew hundred bytes making it easy for my test quickly.<br /><br />BUT, being so small, if i have a program error, say perhaps i throw a return in at the end of my routine with nothing to return to, the robot will go back to a previous program that i have written (for example: the overall template program) and usually has an error and i have to restart him.  I believe with the FILL 255,10000 its filling the first 10,000 of memory so that a mistake would less likely screw up the program.  <br /><br />By removing this your program is all of a sudden 10,000 bytes smaller (how nice) and as long as you check your program you should be set.  If you want to be safe you can keep it in there, but i usually remove it when im testing.<br /><br />As for interupts, i think the closest you will get to that will be gyros.  You can check things such as the accelerometer as soon as the program gets up, and anywhere in between, but i dont know of any way through robobasic to have interupts.  (im new to this, so i could certainly be wrong, heh, i hope i am here) <br /><br />hope that helps a little-<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=221">hivemind</a> — Tue Jul 25, 2006 6:35 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[XenoEvil]]></name></author>
<updated>2006-07-25T11:18:23+01:00</updated>
<published>2006-07-25T11:18:23+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2703#p2703</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2703#p2703"/>
<title type="html"><![CDATA[RoboBasic Command Question]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=460&amp;p=2703#p2703"><![CDATA[
Hi,<br /><br />Could somone tell me what the <br />GOTO AUTO<br />FILL 255,10000<br />actually does at the begining of the Templet Program.  <br /><br />Does the controller support any sort of interupt to program flow which can be connected to external sensors.<br /><br />Also, what about the ACTION command.  Where or how are the actions stored and given numbers.<br /><br />Thanks. <img src="http://forum.robosavvy.com/images/smilies/icon_biggrin.gif" alt=":D" title="Very Happy" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=237">XenoEvil</a> — Tue Jul 25, 2006 11:18 am</p><hr />
]]></content>
</entry>
</feed>