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

<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-29T10:27:53+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=5&amp;t=3613</id>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-29T10:27:53+01:00</updated>
<published>2009-06-29T10:27:53+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20492#p20492</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20492#p20492"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20492#p20492"><![CDATA[
Are you saying that torque is equivalent to speed? How's that?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Mon Jun 29, 2009 10:27 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RandomMatt]]></name></author>
<updated>2009-06-29T10:22:25+01:00</updated>
<published>2009-06-29T10:22:25+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20491#p20491</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20491#p20491"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20491#p20491"><![CDATA[
<blockquote><div><cite>tafoxx wrote:</cite><br />What was that about torque again? I'm kind of curious about how these things actually work... I'm guessing the torque is controlled by the power supplied to the motor, but what controls the speed? Or is it based on voltage and amperage?<br /></div></blockquote><br /><br />Inside the AX12 is an AVR Mega8.  Two PWM outputs from the AVR are wired to bunch of amplifiers (H-bridges) which drive the motor.<br /><br />So... the motor is either being driven at full power or no power (depending on the state of the digital PWM output).<br /><br />The torque limit simply limits the maximum width of a pulse (the duty cycle).<br /><br />The speed control is achieved by using the position sensor (a pot) and a control loop to generate some desired torque values - these torque values are then capped at the torque limit before being used.  In practice we spend most of our time limited by the torque limit, so we'll see that the speed controller simply cannot achieve the speed it wants.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1296">RandomMatt</a> — Mon Jun 29, 2009 10:22 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RandomMatt]]></name></author>
<updated>2009-06-29T10:14:59+01:00</updated>
<published>2009-06-29T10:14:59+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20490#p20490</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20490#p20490"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20490#p20490"><![CDATA[
<blockquote><div><cite>tafoxx wrote:</cite><br />Actually, mine is defined differently. I took a peek into bits/termios.h, and here's a snippet of what I found.<br /><br />#define  B48000000014<br />#define  B96000000015<br />#define  B192000000016<br />#define  B384000000017<br /><br />Seems to be relatively arbitrary values. And from what I read here:<br /><!-- m --><a class="postlink" href="http://www.gnu.org/s/libc/manual/html_node/Line-Speed.html">http://www.gnu.org/s/libc/manual/html_n ... Speed.html</a><!-- m --><br />It seems like the macros are the only portable way to do it.<br /></div></blockquote><br /><br />bits/termios.h... That'd be linux then!   in which case you can use B1000000 (for example).  The manual page suggests that arbitrary baud rates can be specified using an integer - in which case 1000000 should work as well.  (I've tested B1000000 on my laptop but not 1000000).<br /><br />NetBSD/FreeBSD/OpenBSD/OSX all define the B* macros in termios.h and accept integer baud rates - so 1000000 <span style="font-style: italic">should</span> work.  (They do not have a B1000000 - so that won't work).<br /><br />In general, you're right, you should use the B* macros to be compatible with the POSIX spec (i.e. portable).  But that limits you to speeds of 38400 or less (B57600 isn't defined in the POSIX spec).  Basically, with this kind of thing you (and me) are screwed.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1296">RandomMatt</a> — Mon Jun 29, 2009 10:14 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-29T09:02:00+01:00</updated>
<published>2009-06-29T09:02:00+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20489#p20489</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20489#p20489"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20489#p20489"><![CDATA[
What was that about torque again? I'm kind of curious about how these things actually work... I'm guessing the torque is controlled by the power supplied to the motor, but what controls the speed? Or is it based on voltage and amperage?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Mon Jun 29, 2009 9:02 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-26T09:55:44+01:00</updated>
<published>2009-06-26T09:55:44+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20459#p20459</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20459#p20459"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20459#p20459"><![CDATA[
Actually, mine is defined differently. I took a peek into bits/termios.h, and here's a snippet of what I found.<br /><br />#define  B48000000014<br />#define  B96000000015<br />#define  B192000000016<br />#define  B384000000017<br /><br />Seems to be relatively arbitrary values. And from what I read here:<br /><!-- m --><a class="postlink" href="http://www.gnu.org/s/libc/manual/html_node/Line-Speed.html">http://www.gnu.org/s/libc/manual/html_n ... Speed.html</a><!-- m --><br />It seems like the macros are the only portable way to do it.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Fri Jun 26, 2009 9:55 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RandomMatt]]></name></author>
<updated>2009-06-25T18:28:10+01:00</updated>
<published>2009-06-25T18:28:10+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20446#p20446</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20446#p20446"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20446#p20446"><![CDATA[
<blockquote><div><cite>tafoxx wrote:</cite><br />How did you handle nonstandard baud rates?<br /></div></blockquote><br /><br />For both windows and unix you can set the baud rate to any integer you want.  CBR_57600 (windows) and B57600 (unix) are defined to be 57600.<br /><br />--<br /><br />Also... to reset a servos baud rate you only need 57600 - if you are willing use the servo bootloader to clear the eeprom.  Personally, I only use 1Mbit.<br /><br />--<br /><br />The maximum torque setting effects the maximum torque the motor generates - not the horn.  So it isn't a suprise that it effects the speed (some gear train friction will be proportional to speed or even speed squared).<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1296">RandomMatt</a> — Thu Jun 25, 2009 6:28 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-25T16:45:24+01:00</updated>
<published>2009-06-25T16:45:24+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20444#p20444</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20444#p20444"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20444#p20444"><![CDATA[
Oh... another question. How did you handle nonstandard baud rates? I tried to stick to baud rates which had POSIX-standard macros, but there are only seven which are compatible with the servos! It's a good range from 1M to 9600, though, so I doubt anyone will feel limited by it... but it really does hinder the scan function. If somehow a servo gets set to an incompatible baud rate value, I'd have to use a different program to switch it back!<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Thu Jun 25, 2009 4:45 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-25T14:49:53+01:00</updated>
<published>2009-06-25T14:49:53+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20436#p20436</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20436#p20436"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20436#p20436"><![CDATA[
Update: The moving speed register can also hold and return a &quot;negative&quot; value. In endless turn mode this determines the direction of turn, but in regular mode the tenth bit is simply ignored.<br />I guess it's not that surprising. But it means I can just use the same &quot;setSpeed&quot; function for both modes.<br /><br />Also the max torque value seems to have an effect on speed, for some reason.<br />And even when at max torque, the moving speed (in RPMs) seems to be exactly half the speed the manual says. That is, when moving speed is 541 (which should be 60 RPMs, according to the manual), each revolution takes about 2 seconds.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Thu Jun 25, 2009 2:49 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-25T12:01:58+01:00</updated>
<published>2009-06-25T12:01:58+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20431#p20431</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20431#p20431"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20431#p20431"><![CDATA[
I was only able to trigger an overload error once. Every other time the servo overpowered me, and sometimes it pinched my finger just for good measure.<br />I wouldn't recommend trying to overpower the AX-12s, though. I think those have plastic gears.<br /><br />It seems that the present load value gives nonsense unless torque is enabled. Once it's enabled, it gives okay results, although not terribly precise, and occasionally it gets stuck returning the value of 64 after the load is removed. Interestingly enough it only seems to get stuck at a clockwise 64, never counterclockwise...<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Thu Jun 25, 2009 12:01 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RandomMatt]]></name></author>
<updated>2009-06-24T22:40:31+01:00</updated>
<published>2009-06-24T22:40:31+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20414#p20414</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20414#p20414"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20414#p20414"><![CDATA[
<blockquote><div><cite>tafoxx wrote:</cite><br />Two things, both pretty small, and one of them was an error of omission. But there could be more that I haven't found... I haven't tested <span style="font-style: italic">everything</span>.<br />*The overload error only seems to be triggered if the servo's maximum capacity is overloaded, <span style="font-style: italic">not</span> the Max Torque value. It seems to me like that would make it much less useful...<br />*The value of the &quot;Present Speed&quot; registers also returns the direction of movement in the tenth bit, like Present Load.<br /></div></blockquote><br /><br />The first is news to me... but then I have never seen an overload error - so I'm obviously doing it wrong (Now I use my own servo firmware, so i'm never going to notice what the AX12s do)<br />The second, now you say it, I remember finding out for myself!<br />There is a third... the load reading (on a stock AX12) is next to useless.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1296">RandomMatt</a> — Wed Jun 24, 2009 10:40 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-24T21:51:17+01:00</updated>
<published>2009-06-24T21:51:17+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20411#p20411</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20411#p20411"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20411#p20411"><![CDATA[
Two things, both pretty small, and one of them was an error of omission. But there could be more that I haven't found... I haven't tested <span style="font-style: italic">everything</span>.<br />*The overload error only seems to be triggered if the servo's maximum capacity is overloaded, <span style="font-style: italic">not</span> the Max Torque value. It seems to me like that would make it much less useful...<br />*The value of the &quot;Present Speed&quot; registers also returns the direction of movement in the tenth bit, like Present Load.<br /><br />And yeah, my code isn't terribly &quot;object-oriented&quot;... but I couldn't figure out a better way to do it, if all the servos were to be controlled over the same serial port. Plus I figured they would all share the same interface anyway, and there really isn't much of a need to store data about individual servos.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Wed Jun 24, 2009 9:51 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RandomMatt]]></name></author>
<updated>2009-06-24T21:36:19+01:00</updated>
<published>2009-06-24T21:36:19+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20409#p20409</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20409#p20409"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20409#p20409"><![CDATA[
<blockquote><div><cite>tafoxx wrote:</cite><br />(Oh, and just the other day I found a few mistakes in the <span style="font-style: italic">manual</span>. That was fun.)<br /></div></blockquote><br /><br />Okay, my turn to be curious - what were the mistakes in the manual?  I'm now in panic - i hope i haven't produced a rubbish libbioloid - mode!<br /><br />(As an aside it sounds like you've written an imperative program in an object - rather than an object oriented program.  For libbioloid I used C, so I didn't even bother with the object!)<br /><br />Matt<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1296">RandomMatt</a> — Wed Jun 24, 2009 9:36 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[tafoxx]]></name></author>
<updated>2009-06-24T20:41:49+01:00</updated>
<published>2009-06-24T20:41:49+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20407#p20407</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20407#p20407"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20407#p20407"><![CDATA[
I'm mostly finished, actually, but I am curious... how did you end up designing it? I decided early on that it would be impractical for multiple objects to share the same serial port, and just wrote a single class to control all the servos connected on one line. It worked out pretty well, but it's a little awkward having to pass the servo ID to just about every single function. I'm also not sure how much information to keep about the servo state--it would be a bit redundant to store all the servo registers for every servo in the controlling class, but then I have to worry about whether to expect status return packets, or whether the servo is in &quot;endless turn&quot; mode or not.<br />How did you end up addressing those issues?<br /><br />(Oh, and just the other day I found a few mistakes in the <span style="font-style: italic">manual</span>. That was fun.)<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1519">tafoxx</a> — Wed Jun 24, 2009 8:41 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mandor]]></name></author>
<updated>2009-06-24T20:19:48+01:00</updated>
<published>2009-06-24T20:19:48+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20405#p20405</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20405#p20405"/>
<title type="html"><![CDATA[Re: AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20405#p20405"><![CDATA[
<blockquote><div><cite>tafoxx wrote:</cite><br />I'm writing a C++ library to control some RX-10 servos using the USB2Dynamixel adapter. I'm hoping to release it as open-source when it's mostly finished, because it's a crying shame that there's so much code for this servo available for Windows and hardly any for Linux. I noticed this forum is mainly focused on the Bioloid robot, which is built with AX- servos. Does anyone happen to know if the AX (or even DX) Dynamixel servos use the same protocol as the RX ones do?<br />Oh, and the same goes for the CM-5 controller. Does it work in a completely different way, or can it provide the same &quot;virtual serial port&quot; interface to the servos as the USB2Dynamixel does?<br /><br />Thanks for the help. I'm hoping to get this code just about finished in the next week or so, and it would be really great if it could work &quot;out of the box&quot; with any Dynamixel.<br /></div></blockquote><br /><br />Hi. I've also a c++ lib for Linux to use the usb2dynamixel. I will release it someday but if you need some help, I can send you the code.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1175">Mandor</a> — Wed Jun 24, 2009 8:19 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RandomMatt]]></name></author>
<updated>2009-06-22T21:18:06+01:00</updated>
<published>2009-06-22T21:18:06+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20335#p20335</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20335#p20335"/>
<title type="html"><![CDATA[AX-12 vs. RX-10 Protocol?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3613&amp;p=20335#p20335"><![CDATA[
<blockquote><div><cite>limor wrote:</cite><br />yes. same communication protocol.<br />passthrough - don't recall that there is an example firmware that provides &quot;passthrough&quot; but it is very simple to write this code and flash the board with it.<br /></div></blockquote><br /><br />libbioloid's supervisor can do it - it is called bridge mode.<br /><br />Out of the box it isn't a fantastic solution as the PC UART is driven at 57600baud (while the Dynamixel UART is run at 1Mbit) - but that it trivial to change. <span style="font-style: italic">left as exercise to reader - cm5_init()</span><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1296">RandomMatt</a> — Mon Jun 22, 2009 9:18 pm</p><hr />
]]></content>
</entry>
</feed>