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

<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>2011-08-22T23:53:59+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=24&amp;t=7405</id>
<entry>
<author><name><![CDATA[limor]]></name></author>
<updated>2011-08-22T23:53:59+01:00</updated>
<published>2011-08-22T23:53:59+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32096#p32096</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32096#p32096"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32096#p32096"><![CDATA[
I'm amazed at the <a href="http://en.wikipedia.org/wiki/Comparison_of_audio_synthesis_environments" class="postlink">musical world of MAX</a> where analog gyros <a href="http://cycling74.com/products/hardware/" class="postlink">cost</a> $175<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2">limor</a> — Mon Aug 22, 2011 11:53 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2011-08-21T14:38:09+01:00</updated>
<published>2011-08-21T14:38:09+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32092#p32092</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32092#p32092"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32092#p32092"><![CDATA[
Thanks for taking the time to describe your design, it is of help to me and hopefully others working at the low level of the Robotis framework.<br /><br />I appreciate you probably now want to move on to working with Max/MSP. It would be interesting to see some of the Darwin motions from Roboplus running under Max/MSP for comparison.<br /><br />Did you think to link also to a simulation environment such as Webots ?<br /><br />Also it may be useful to implement inverse kinematics for the legs and arms to allow them to be moved by a simplified set of parameters, such as those used by Roboplus or by the IK part of the Darwin Walking engine. Maybe even use this IK with a gait generator built in Max/MSP ? It may be best to do the IK in MaxMSP to allow the Gyros to be mixed into the servo angles afterwards.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sun Aug 21, 2011 2:38 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[siempre.aprendiendo]]></name></author>
<updated>2011-08-20T18:24:50+01:00</updated>
<published>2011-08-20T18:24:50+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32090#p32090</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32090#p32090"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32090#p32090"><![CDATA[
No sorry, please. It's a very interesting thread.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=698">siempre.aprendiendo</a> — Sat Aug 20, 2011 6:24 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krzyzani]]></name></author>
<updated>2011-08-20T19:07:59+01:00</updated>
<published>2011-08-20T17:29:16+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32089#p32089</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32089#p32089"/>
<title type="html"><![CDATA[Action Scripts?]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32089#p32089"><![CDATA[
Sorry to bombard this forum. By way of at least partial answer to an earlier post: I do not plan on implementing access to action scripts in TellDarwin. TellDarwin was designed, at least to some degree, to provide an alternative to 'action scripts', because I and the professor who asked me to write the software felt that MAX would be more powerful and more intuitive for non-engineering students. Coordinating a precise series of timed events is just what MAX was designed to do, and it does it quite well.<br /><br />Also, I am curious to know if anyone has successfully compiled and run TellDarwin on their robot.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2866">krzyzani</a> — Sat Aug 20, 2011 5:29 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krzyzani]]></name></author>
<updated>2011-08-20T17:10:06+01:00</updated>
<published>2011-08-20T17:10:06+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32088#p32088</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32088#p32088"/>
<title type="html"><![CDATA[X, Y, Z]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32088#p32088"><![CDATA[
Yeah, by my reckoning, Robotis employs many different coordinate systems. The servos, accelerometer, gyroscope and walking module each defines an X, Y, and Z axis that does not agree with the others. TellDarwin adjusts all of this so that all of the coordinate systems agree. Here, for instance, is how I get the the accelerometer and gyroscope to agree with the servos (taken from Performer.h):<br /><br />  typedef enum<br />  {<br />    //the accelerometer is mounted sideways.<br />    ACCEL_X = CM730::P_ACCEL_X_L,<br />    ACCEL_Y = CM730::P_ACCEL_Z_L,<br />    ACCEL_Z = CM730::P_ACCEL_Y_L,<br />  }accelComponent_t;<br /><br />  typedef enum<br />  {<br />  //the Gyroscope is mounted sideways.<br />    GYRO_X = CM730::P_GYRO_Y_L,<br />    GYRO_Y = CM730::P_GYRO_Z_L,<br />    GYRO_Z = CM730::P_GYRO_X_L,<br />  }gyroComponent_t;<br /><br />This does not fix everything, because the sign convention is still wacky: sometimes positive X is, say, left, and sometimes right. So, elsewhere in the code there are statements like<br /><br />  if((component == ACCEL_X) || (component == ACCEL_Z))<br />    *value *= -1;<br /><br />which makes the coordinate systems more consistent and, at the very least, more intuitive to <span style="font-weight: bold">me</span>, although what is &quot;correct&quot; may be debatable.<br /><br />Does that answer your question?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2866">krzyzani</a> — Sat Aug 20, 2011 5:10 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2011-08-20T16:40:46+01:00</updated>
<published>2011-08-20T16:40:46+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32087#p32087</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32087#p32087"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32087#p32087"><![CDATA[
Also interested in your allocation of X,Y,Z axes. I think Robotis already confused the situation with this :<br /><!-- m --><a class="postlink" href="http://darwin-op.springnote.com/pages/7331885">http://darwin-op.springnote.com/pages/7331885</a><!-- m --><br />which seems to swap x and Y.<br /><br />I tried to use the Robotis code as the basis of this:<br /><!-- m --><a class="postlink" href="http://robosavvy.com/site/index.php?option=com_content&amp;task=view&amp;id=221&amp;Itemid=2">http://robosavvy.com/site/index.php?opt ... 1&amp;Itemid=2</a><!-- m --><br />But am now concerned I may be wrong, or that I should at least say the allocation of axes is arbitrary.<br /><br />Not sure if it a big issue for anyone except me. I am spacially challenged !<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sat Aug 20, 2011 4:40 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2011-08-20T14:54:38+01:00</updated>
<published>2011-08-20T14:54:38+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32086#p32086</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32086#p32086"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32086#p32086"><![CDATA[
Hi Mike, <br />Thanks for the reply and also the information you provided in the &quot;Do You Have Suggestions For How Robotis Can Improve Their C++ Framework?&quot; I hope Robotis are reading this thread. I think they want to encourage the use of the framework, so should fix any shortcomings.<br /><br />I do like the concept from Robotis of using MotionManager and Motion Status to multiplex and demultiplex the access to the robot, but as you say; it needs to work.<br /><br />If MotionStatus doesn't publish complete information from the Darwin OP, it is not fit for purpose. Either all information should be published, or Motion Manager improved to allow subscribers to define the information they will require and have MotionManager provide it. Such a process could use the proposal from Fritzoid to intelligently optimise the reads from the CM730 and MX28.<br /><br />You say &quot;Robotis' CM730 class is not thread-safe&quot;, yet in CM730::TxRxPacket I do see waiting on semaphores. Is this broken ?<br /><br />I do find the .enables, and their exclusivity and initialisation complex in MotionManager, also poorly documented; so can see why you dropped it if you only use the walking module. Do you not plan to use Action to execute Robotis  motion scripts or files ? The jump straight to servo positions seems large, unless you plan to implement the motions in Max.<br /><br />I hope Robotis also take note on the battery life issue. They seem to have been especially mean on both the batteries(capacity) and charger(slow). Hopefully with open hardware someone will soon fix this.<br /><br />Thx.<br />Richard<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Sat Aug 20, 2011 2:54 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Fritzoid]]></name></author>
<updated>2011-08-19T12:11:16+01:00</updated>
<published>2011-08-19T12:11:16+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32084#p32084</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32084#p32084"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32084#p32084"><![CDATA[
<blockquote class="uncited"><div><br />the MotionManager only polls 2 axes of the accelerometer, but not the third, nor the gyroscope, and since these components are on the CM730, they are similarly inaccessible while the MotionManager is running<br /></div></blockquote><br />The newer version(s) of the framework include the undocumented &quot;bulk read&quot; function.  This feature allows you to create a customized list of control table entries (either CM730 or dynamixel) that are regularly polled.  See function, CM730::MakeBulkReadPacket().  The results of the latest poll can be read by an external user as a single block from the controller memory.  It's fast and it's flexible.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=438">Fritzoid</a> — Fri Aug 19, 2011 12:11 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[krzyzani]]></name></author>
<updated>2011-08-19T01:26:05+01:00</updated>
<published>2011-08-19T01:26:05+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32082#p32082</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32082#p32082"/>
<title type="html"><![CDATA[MotionManager vs CM730]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32082#p32082"><![CDATA[
Hi, <br /><br />Thanks for your interest in my work. Your question is insightful and critical. I appreciate your scrutiny, and I will attempt to provide a sufficient answer.<br /><br />The main problem is that Robotis' CM730 class is not thread-safe, but the MotionManager detaches a thread and polls the CM730 on that thread. Therefore, while the the MotionManager is running, any attempt to communicate with the CM730 on, say, the program's main thread will bungle the stream of bytes going between the main controller and the sub-controller, resulting in some kind of crash (the state-machine usually gets stuck waiting for bytes that are not coming). Of course, if you only want to move the servos, there would be no need to communicate with CM730 on the main thread. However, if, say, you want to change the color of the eyes, then your only option is to first kill the MotionManager. Worse is that the MotionManager only polls 2 axes of the accelerometer, but not the third, nor the gyroscope, and since these components are on the CM730, they are similarly inaccessible while the MotionManager is running. Therefore, I have chosen to bypass the MotionManager entirely. Even if such problems did not exist, I do not believe that any functionality could be gained by using the MotionManager directly (as the initial draft of TellDarwin, in fact, did). Furthermore, Darwin's battery-life is lamentably short. Polling the CM730 while the robot is not doing anything seems like a waste of electricity.<br /><br />I hope this makes sense. If anyone sees a better way of doing things I am always open to suggestions.<br /><br />Mike<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2866">krzyzani</a> — Fri Aug 19, 2011 1:26 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[siempre.aprendiendo]]></name></author>
<updated>2011-08-18T19:22:22+01:00</updated>
<published>2011-08-18T19:22:22+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32079#p32079</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32079#p32079"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32079#p32079"><![CDATA[
Great! I think <a href="http://en.wikipedia.org/wiki/Domain-specific_language" class="postlink">DSL</a> will be a powerful tool for programming robots. <a href="http://martinfowler.com/intro.html" class="postlink">Martin Fowler</a> published some months ago a book about DSL and have a great <a href="http://martinfowler.com/dsl.html" class="postlink">DSL guide online</a>.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=698">siempre.aprendiendo</a> — Thu Aug 18, 2011 7:22 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[i-Bot]]></name></author>
<updated>2011-08-18T17:29:30+01:00</updated>
<published>2011-08-18T17:29:30+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32077#p32077</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32077#p32077"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32077#p32077"><![CDATA[
It is very encouraging that folk are developing for DARwIn OP so quickly using the Robotis C++ framework. Especially since they are documenting well, and making source available of their work.<br /><br />This software makes a significant link of DARwIn OP to a much wider creative community in a solid and simple way.<br /><br />I have some technical questions why they used the CM730 class rather than motion manager to talk to the servos. I will contact author direct, but it would be great to get involvement and discussion through the forum.<br /><br />I don't have Max/MSP, but have always thought it sets the standard for this type of interactive programming. Is there any good open source alternative ?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=159">i-Bot</a> — Thu Aug 18, 2011 5:29 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[limor]]></name></author>
<updated>2011-08-18T02:41:19+01:00</updated>
<published>2011-08-18T02:41:19+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32074#p32074</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32074#p32074"/>
<title type="html"><![CDATA[TellDarwin - interactive text interpreter for Darwin-OP]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=7405&amp;p=32074#p32074"><![CDATA[
<img src="http://idealab.uga.edu/Projects/Darwin/Images/Logo.png" alt="Image" /><br /><br /><!-- m --><a class="postlink" href="http://idealab.uga.edu/Projects/Darwin/Reference.php">http://idealab.uga.edu/Projects/Darwin/Reference.php</a><!-- m --><br /><br />TellDarwin is a command interpreter for <a href="http://darwin-op.springnote.com/" class="postlink">DARwIn-OP Robot</a> running Linux (designed and tested on Ubuntu 9.10). It was written by Michael Krzyzaniak at the University of Georgia, <a href="http://ideasforcreativeexploration.com" class="postlink">Ideas for Creative Exploration (ICE)</a>. It allows users to send simple, intuitive requests like <br /><br /><dl class="codebox"><dt>Code: </dt><dd><code>start walking<br />set eye color 0.5 0.2 1 <br />get accelerometer<br />start camera<br />set head position 30 degrees</code></dd></dl><br /> <br />to the robot wirelessly from a remote computer, and have it respond as expected. The software is intended to receive requests from <a href="http://cycling74.com/" class="postlink">Max/MSP</a> (a graphical programming language for OSX or Windows that is popular in the humanities), but also has options that allow users to send requests from the command-line locally using the robot's stdin, or remotely with netcat (nc, available for any OS) or other software that can send simple ASCII messages over TCP. These options allow users to easily write scripts that control the robot.<br /><br /><div class='bbmedia' data-url='http://www.youtube.com/watch?v=ZTVR10Gzo94' style='margin: 1px; display: inline-block; vertical-align: bottom;'><div style='width: 200px; height: 40px; border: 1px solid #999; display: table-cell; text-align: center; vertical-align: middle; font: 10px/10px Verdana; color: #555; opacity: 0.5;'><a style='color: #105289; text-decoration: none;' href='http://phpbbex.com/' target='_blank'>phpBB</a> &#91;media&#93;</div><script>if (typeof bbmedia == 'undefined') { bbmedia = true; var e = document.createElement('script'); e.async = true; e.src = 'js/bbmedia.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(e, s); }</script></div><p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=2">limor</a> — Thu Aug 18, 2011 2:41 am</p><hr />
]]></content>
</entry>
</feed>