<?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=15&amp;t=3503" />

<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>2009-06-11T10:46:25+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=15&amp;t=3503</id>
<entry>
<author><name><![CDATA[tah1]]></name></author>
<updated>2009-06-11T10:46:25+01:00</updated>
<published>2009-06-11T10:46:25+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20155#p20155</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20155#p20155"/>
<title type="html"><![CDATA[Position/load/time plots]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20155#p20155"><![CDATA[
Sorry - the Y-axis on that graph ought to be labeled &quot;10-bit position&quot;, and not &quot;8-bit position&quot; as shown. mea culpa<br />t<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1424">tah1</a> — Thu Jun 11, 2009 10:46 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tah1]]></name></author>
<updated>2009-06-05T00:35:06+01:00</updated>
<published>2009-06-05T00:35:06+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20087#p20087</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20087#p20087"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20087#p20087"><![CDATA[
<blockquote><div><cite>PedroR wrote:</cite><br />I've updated the original post and included the graph in the correct place to keep everything together. Please see above (I made a note in green mentioning my edit)<br /></div></blockquote><br /><br />It turns out that if one uses 10-bit position read commands, there's enough resolution to be able to compute Acceleration, as well as velocity. This helps greatly with optimising control parameters. Here's an example plot that can be obtained this way:<br /><br /><img src="http://robosavvy.com/Builders/tah1/wCK_Step_Response_Vel_Load_Acc_TMO090605.jpg" alt="Image" /><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1424">tah1</a> — Fri Jun 05, 2009 12:35 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PedroR]]></name></author>
<updated>2009-06-04T13:49:07+01:00</updated>
<published>2009-06-04T13:49:07+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20083#p20083</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20083#p20083"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20083#p20083"><![CDATA[
I've updated the original post and included the graph in the correct place to keep everything together. Please see above (I made a note in green mentioning my edit)<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1061">PedroR</a> — Thu Jun 04, 2009 1:49 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tah1]]></name></author>
<updated>2009-06-03T23:46:25+01:00</updated>
<published>2009-06-03T23:46:25+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20076#p20076</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20076#p20076"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20076#p20076"><![CDATA[
<blockquote><div><cite>l3v3rz wrote:</cite><br />...BTW  I thought your write up was very informative and spot on about need for low torque values to be returned...<br /></div></blockquote><br /><br />Thanks l3v3rz<br />t<br />PS I have emailed the graph I referred to, to Pedro for posting here in due course<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1424">tah1</a> — Wed Jun 03, 2009 11:46 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2009-06-03T23:52:08+01:00</updated>
<published>2009-06-03T21:24:12+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20075#p20075</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20075#p20075"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20075#p20075"><![CDATA[
Yes I agree. I was hoping the were doing something more sophisticated from the look of the graphs. BTW  I thought your write up was very informative and spot on about need for low torque values to be returned<br /><br />cheers<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Wed Jun 03, 2009 9:24 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tah1]]></name></author>
<updated>2009-06-03T16:55:18+01:00</updated>
<published>2009-06-03T16:55:18+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20073#p20073</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20073#p20073"/>
<title type="html"><![CDATA[Load/Position/SPEED measurements ion wCK servos]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20073#p20073"><![CDATA[
Well, if one measures the position vs time function (in practice an array of 2D coords), then one can simply differentiate the resulting function wrt time and compute the velocity. As there's no way to read &quot;speed&quot; from the wCKs this must be what they are doing. It's certainly what we are doing in our test/measurement process on the wCKs. Howe4ver, we are measuring position vs real-time (in this case in units of 1/10ms) rather than vs sample number (which can be quite irregular in time due to serial-port delays/traffic/processor overhead at both ends etc).<br />The sort of data one can then get is like this:<br /><span style="color: green">[EDIT by PedroR: find the image bellow as requested by tah1]</span><br /><img src="http://robosavvy.com/Builders/PedroR/wCk_graph_tah1.jpg" alt="Image" /><br /><br /><span style="color: green">RED = position<br />GREEN = load<br />BLUE = velocity</span><br /><br />t<br /><br /><blockquote><div><cite>l3v3rz wrote:</cite><br />On the reset function I can confirm it works <img src="http://forum.robosavvy.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" /><br /><br />Here's a question:  How does it produce the Position/Torque/Speed  graphs...<br />But I don't see how it converts that into Position/Torque/Speed lines. The max torq setting is around 30 during max acceleration and drops to zero at max speed (60) which falls off to zero as its target position. How does this work ?????<br /></div></blockquote><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1424">tah1</a> — Wed Jun 03, 2009 4:55 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2009-06-02T19:42:12+01:00</updated>
<published>2009-06-02T19:42:12+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20065#p20065</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20065#p20065"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20065#p20065"><![CDATA[
Thats why in the code command_1B  (one bytes commands) the command and the checksum are set to be the same  <img src="http://forum.robosavvy.com/images/smilies/icon_biggrin.gif" alt=":D" title="Very Happy" /> <br /><dl class="codebox"><dt>Code: </dt><dd><code>            <br />serialPort1.Write&#40;new byte&#91;&#93; &#123; type,           //type &#40;1&#41;   <br /> 0x00,         //platform &#40;1&#41;<br /> 0x00, 0x00, 0x00, 0x01,    //command size &#40;4&#41;<br /> cmd,                //command contents &#40;1&#41;<br /> &#40;byte&#41;&#40;cmd&#41;      //checksum<br />&#125;,0,8&#41;;<br /></code></dd></dl><br /><br />But on button 10 which is a variable command to set all zeros I calculate the checksum (cs)<br /><br /><dl class="codebox"><dt>Code: </dt><dd><code>               <br />serialPort1.Write&#40;header, 0, 8&#41;;<br />serialPort1.Write&#40;new byte&#91;&#93; &#123; <br />   0x0E,        //type &#40;1&#41;<br />   0x00,        //platform &#40;1&#41;<br />   0x00, 0x00, 0x00, &#40;byte&#41;MotionZeroPos.Length,    //command size &#40;4&#41;<br />   &#125;, 0, 6&#41;;<br />serialPort1.Write&#40;MotionZeroPos, 0, 16&#41;;<br />byte&#91;&#93; cs = new byte&#91;1&#93;;<br />for &#40;int i = 0; i &lt; MotionZeroPos.Length; i++&#41;<br />&#123;<br />   cs&#91;0&#93; ^= MotionZeroPos&#91;i&#93;;<br />&#125;<br />serialPort1.Write&#40;cs, 0, 1&#41;;</code></dd></dl><br /><br />sorry for for my lack of comments !<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Tue Jun 02, 2009 7:42 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2009-06-02T17:47:37+01:00</updated>
<published>2009-06-02T17:47:37+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20060#p20060</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20060#p20060"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20060#p20060"><![CDATA[
If the &quot;command contents&quot; field has length 1, then the checksum is the same as the command field. When the length is greater than one, then your caclulation is valid, to xor the bytes, but only those in the command field.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Tue Jun 02, 2009 5:47 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PedroR]]></name></author>
<updated>2009-06-02T17:34:37+01:00</updated>
<published>2009-06-02T17:34:37+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20059#p20059</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20059#p20059"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20059#p20059"><![CDATA[
Finally GOT IT!<br /><br />The &quot;command contents&quot; that section 3 mentions is the last byte before the checksum.<br /><br />So the check sum is not really a checksum. Is just a repetition of the byte before.<br /><br />There no calculation going on. <br />And for most commands the checksum is 01.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1061">PedroR</a> — Tue Jun 02, 2009 5:34 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PedroR]]></name></author>
<updated>2009-06-02T16:48:53+01:00</updated>
<published>2009-06-02T16:48:53+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20058#p20058</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20058#p20058"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20058#p20058"><![CDATA[
I missed that...<br /><br />Thanks for pointing me in the right direction <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=1061">PedroR</a> — Tue Jun 02, 2009 4:48 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2009-06-02T16:46:38+01:00</updated>
<published>2009-06-02T16:46:38+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20057#p20057</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20057#p20057"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20057#p20057"><![CDATA[
If you look to section 3 of the document, the checksum is only applied to the &quot;command contents&quot; field, which is the field before. It is not on the whole command.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Tue Jun 02, 2009 4:46 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PedroR]]></name></author>
<updated>2009-06-02T16:24:32+01:00</updated>
<published>2009-06-02T16:24:32+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20056#p20056</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20056#p20056"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20056#p20056"><![CDATA[
i'm coding a different tool to help in further reverse engeneering the procotol.<br /><br />I am however having some trouble creating the checksum for the RBC command.<br />I had a look at l3v3rz code to see if he had any algorithm there but he has hard coded all the checksums<br /><br />From the documentation <span style="font-style: italic">&quot;- CheckSum = Every each byte of [Command Contents] ‘Exclusive OR’ value.&quot;</span><br /><br />I was using this algorithm: Checksum = Checksum XOR byteN<br />And would go though all bytes. However this doesn't work.<br /><br />What happens is that if I XOR FF with FF I get 0 and XOR with 55 and get 55.<br /><br />I think that what Robobuilder means is that you look at all 8 bits in each byte simultaneously and see if the number of 1s is  odd or even for each bit positon.<br />Example:<br />FF FF AA 55 AA 55<br /><br />1111111 - FF<br />1111111 - FF<br />10101010 - AA<br />01010101 - 55<br />10101010 - AA<br />01010100 - 54<br />-------------------<br />00000001<br /><br />I'll have a try with this approach but would really appreciate your feedback.. Do you think this is the correct way to calculate the checksum??<br /><br />Thanks<br />Pedro.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1061">PedroR</a> — Tue Jun 02, 2009 4:24 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2009-06-01T20:47:32+01:00</updated>
<published>2009-06-01T20:47:32+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20046#p20046</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20046#p20046"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20046#p20046"><![CDATA[
I've just put  a serial port monitor on it and its just using standard position move command. And its does return non zero values right at the start presumably when load is at the highest to get servo turning.<br /><br />Request: 01/06/2009 20:32:08.28764 (+2.9227 seconds)<br /> FF 14 7F 6B                                       ÿ.k            <br />Answer: 01/06/2009 20:32:08.28864 (+0.0010 seconds)<br /> 00 37                                             .7              <br />Request: 01/06/2009 20:32:08.31264 (+0.0234 seconds)<br /> FF 14 7F 6B                                       ÿ.k            <br />Answer: 01/06/2009 20:32:08.31364 (+0.0010 seconds)<br /> 28 37                                             (7              <br />Request: 01/06/2009 20:32:08.33664 (+0.0215 seconds)<br /> FF 14 7F 6B                                       ÿ.k            <br />Answer: 01/06/2009 20:32:08.33664 (+0.0000 seconds)<br /> 14 3E                                             .&gt;              <br />Request: 01/06/2009 20:32:09.36264 (+0.0244 seconds)<br /> FF 14 7F 6B                                       ÿ.k            <br />Answer: 01/06/2009 20:32:09.36364 (+0.0010 seconds)<br /> 01 46                                             .F              <br />Request: 01/06/2009 20:32:09.38564 (+0.0205 seconds)<br /> FF 14 7F 6B                                       ÿ.k            <br />Answer: 01/06/2009 20:32:09.38764 (+0.0020 seconds)<br /> 00 4F                                             .O<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Mon Jun 01, 2009 8:47 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[l3v3rz]]></name></author>
<updated>2009-06-01T20:19:19+01:00</updated>
<published>2009-06-01T20:19:19+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20045#p20045</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20045#p20045"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20045#p20045"><![CDATA[
On the reset function I can confirm it works <img src="http://forum.robosavvy.com/images/smilies/icon_wink.gif" alt=";)" title="Wink" /><br /><br />Here's a question:  How does it produce the Position/Torque/Speed  graphs in the wck programmer manual ( 5.4 Graph view section ).  Ive just run it and it clearly show the torque setting as a brown line.  The return value quoted: <br /><br />00,00,00,5E,00,7F,00,7E,00,7C,00,7A,00,79,00,79,00,78,00,76,00,75,00,75,00,73,00,<br />72,00,72,00,70,00,6E,00,6C,00,6C,00,6A,00,69,00,67,00,67,00,66,00,65,00,65,00,65,<br />00,63,00,5F,00,5E,00,5C,00,5A,00,59,00,58,00,55,00,55,00,54,00,52,00,4F,<br /><br />But I don't see how it converts that into Position/Torque/Speed lines. The max torq setting is around 30 during max acceleration and drops to zero at max speed (60) which falls off to zero as its target position. How does this work ?????<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1101">l3v3rz</a> — Mon Jun 01, 2009 8:19 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[PedroR]]></name></author>
<updated>2009-06-01T16:35:11+01:00</updated>
<published>2009-06-01T16:35:11+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20042#p20042</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20042#p20042"/>
<title type="html"><![CDATA[Full Official Documentation for the RBC protocol available]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3503&amp;p=20042#p20042"><![CDATA[
l3v3rz latest post got me curious.<br /><br />1)<br />By reading the &quot;wCK Programmer&quot; Manual (it's on the CD I think) <span style="font-weight: bold">there is a command named &quot;Product Information Scan&quot; / Set Product Information that's not documented on the wCK manual I think</span>.<br /><br />It seems to return a value that may be a bitmask that may affect the wCK behaviour.<br />Having looked at the way all components are programmed it makes sense to assume there is a way to adjust the threshold to report load at all times.<br /><br />2)<br />If you have a look at the last page of the wCK manual with the summary of the command packets you'll see that there's seems to be room for additional configuration commands on byte 3.<br /><br />You set the high 3 bits of byte 2 to decimal 7 (which are the commands to read and write the various parameters) and then play with the value of byte 3.<br /><br /><span style="font-weight: bold">The following &quot;holes&quot; exist for byte 3 that are undocumented (and may have some use):</span><br />-&gt; 0~7  - for some reason the opcodes start at 8 so probably these do something as well.<br />-&gt; 19,20  - i'd bet on these 2. They are among a list of OPCODES that configure something so they probably have some use that's undocumented.<br />-&gt; 25~99<br /><br />At 100 begins writing and reading the wCK programs.<br /><br />At 200 begins the 10bit commands.<br /><br />Once of the things that was pointed out by tah1 was the fact that <span style="font-weight: bold">reading the analogue IO port only report highest 8 bits although the ATMEGA has a 10bit ADC on that port</span>.<br />Maybe there's also some OPCODE hidden above 200 that reports the A/D port reading as a 10bit value...<br /><br />In any case, if for some reason you bring the wCK to an inconsistent state while experiment do not worry <img src="http://forum.robosavvy.com/images/smilies/icon_smile.gif" alt=":)" title="Smile" /> there's a trick to perform a factory reset that's documented in page 31 (section 3-10) and page 32 (section 3-12) of the wCK manual.<br />It consists on shorting two solder points and it will revert all values back to factory defaults.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1061">PedroR</a> — Mon Jun 01, 2009 4:35 pm</p><hr />
]]></content>
</entry>
</feed>