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

<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-08-19T07:22:25+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=17&amp;t=3803</id>
<entry>
<author><name><![CDATA[ries]]></name></author>
<updated>2009-08-19T07:22:25+01:00</updated>
<published>2009-08-19T07:22:25+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21395#p21395</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21395#p21395"/>
<title type="html"><![CDATA[Motion reproduction with gyro sensors.]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21395#p21395"><![CDATA[
Thanks, just added the code to the rcservo.h and cpp files, compiled it and hopefully tonight I can test it.<br /><br />Thanks for the support!!! Great job.<br /><br />Regards<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=837">ries</a> — Wed Aug 19, 2009 7:22 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[veltrop]]></name></author>
<updated>2009-08-18T07:22:48+01:00</updated>
<published>2009-08-18T07:22:48+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21378#p21378</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21378#p21378"/>
<title type="html"><![CDATA[Motion reproduction with gyro sensors.]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21378#p21378"><![CDATA[
Wonderful!<br /><br />Well, I am sold.  I am going to need to buy a Roboard.  Thanks for the quick and thoughtful replies, you are a great representative for your company!<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1573">veltrop</a> — Tue Aug 18, 2009 7:22 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[roboard]]></name></author>
<updated>2009-08-17T12:56:50+01:00</updated>
<published>2009-08-17T12:56:50+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21369#p21369</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21369#p21369"/>
<title type="html"><![CDATA[Motion reproduction with gyro sensors.]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21369#p21369"><![CDATA[
<blockquote><div><cite>veltrop wrote:</cite><br />But if I decide to declare a very long playtime in rcservo_SetAction() (for a motion that requires slow movement) then the sensor data will become outdated before the motion is complete.  <br />I think for truly continuous mixing, the midaction variable of rcservo_PlayAction() could be modified by sensor data.<br /></div></blockquote><br /><br />Modifying rcservo_PlayAction() to support sensor mixing is easy. Add <br /><br /><dl class="codebox"><dt>Code: </dt><dd><code>RBAPI&#40;int&#41; rcservo_PlayAction_Mix&#40;unsigned long* mix&#41;;</code></dd></dl><br /><br />to RCSERVO.H, and add<br /><br /><dl class="codebox"><dt>Code: </dt><dd><code>RBAPI&#40;int&#41; rcservo_PlayAction_Mix&#40;unsigned long* mix&#41; &#123;<br />    unsigned long nowtime, t, tt;<br />    unsigned long midaction&#91;32&#93;;<br />    int i;<br /><br />    if &#40;RCSERVO_playState != RCSERVO_PLAYING&#41; return RCSERVO_playState;<br /><br />    nowtime = timer_nowtime&#40;&#41;;<br />    if &#40;nowtime &gt;= RCSERVO_curaction_endtime&#41;<br />    &#123;<br />        for &#40;i=0; i&lt;32; i++&#41;<br />            midaction&#91;i&#93; = &#40;&#40;mix == NULL&#41;? 0L : mix&#91;i&#93;&#41; + RCSERVO_curaction&#91;i&#93;;<br /><br />        set_playmode_pulses&#40;midaction&#41;;<br />        RCSERVO_playState = RCSERVO_PLAYEND;<br />    &#125;<br />    else<br />    if &#40;nowtime &gt;= RCSERVO_curaction_nexttime&#41;<br />    &#123;<br />        t  = nowtime - RCSERVO_curaction_starttime;<br />        tt = RCSERVO_curaction_endtime - RCSERVO_curaction_starttime;<br /><br />        for &#40;i=0; i&lt;32; i++&#41;<br />        &#123;<br />            if &#40;&#40;RCSERVO_validChannels &amp; &#40;1L&lt;&lt;i&#41;&#41; == 0L&#41; continue;<br />            midaction&#91;i&#93; = &#40;&#40;mix == NULL&#41;? 0L : mix&#91;i&#93;&#41; +<br />                interpolate&#40;RCSERVO_lastaction&#91;i&#93;, RCSERVO_curaction&#91;i&#93;, tt, t&#41;;<br />        &#125;<br />        set_playmode_pulses&#40;midaction&#41;;<br /><br />        while &#40;RCSERVO_curaction_nexttime &lt;= nowtime&#41;<br />            RCSERVO_curaction_nexttime = RCSERVO_curaction_nexttime + RCSERVO_playInterval;<br />    &#125;<br /><br />    return RCSERVO_playState;<br />&#125;</code></dd></dl><br /><br />to RCSERVO.CPP; recompile the RoBoIO library and then you get a function rcservo_PlayAction_Mix() to support sensor mixing. This function receives an unsigned long array of 32 elements as input and add the array to the output action when updating PWM duty.<br /><br />Please try it and report whether it is useful. If it is really useful, we will consider to add it into the next version of RoBoIO library. <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=1542">roboard</a> — Mon Aug 17, 2009 12:56 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ries]]></name></author>
<updated>2009-08-16T08:29:20+01:00</updated>
<published>2009-08-16T08:29:20+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21358#p21358</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21358#p21358"/>
<title type="html"><![CDATA[Motion reproduction with gyro sensors.]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21358#p21358"><![CDATA[
continuous mixing would be a very nice feature.<br />You can set the A/D channel where the gyro's are located and a table which servo's should be mixed with what multiply value.<br />The servo output functions should then be able to mix the gyro values with each servo output value.<br /><br />When having long playtimes this could be an important feature.<br /><br />Hope to see this feature implemented <img src="http://forum.robosavvy.com/images/smilies/icon_smile.gif" alt=":)" title="Smile" /><br /><br />Greetings,<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=837">ries</a> — Sun Aug 16, 2009 8:29 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[veltrop]]></name></author>
<updated>2009-08-14T06:42:29+01:00</updated>
<published>2009-08-14T06:42:29+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21327#p21327</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21327#p21327"/>
<title type="html"><![CDATA[Motion reproduction with gyro sensors.]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21327#p21327"><![CDATA[
Thank you very much for pointing me in the right direction!  I checked out the source, and your solution should work great when I can use a small time interval.<br /><br />But if I decide to declare a very long playtime in rcservo_SetAction() (for a motion that requires slow movement) then the sensor data will become outdated before the motion is complete.  <br />I think for truly continuous mixing, the midaction variable of rcservo_PlayAction() could be modified by sensor data.<br /><br />Thanks again for your help!  My question is solved!<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1573">veltrop</a> — Fri Aug 14, 2009 6:42 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[roboard]]></name></author>
<updated>2009-08-13T02:40:52+01:00</updated>
<published>2009-08-13T02:40:52+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21304#p21304</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21304#p21304"/>
<title type="html"><![CDATA[Re: Motion reproduction with gyro sensors.]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21304#p21304"><![CDATA[
<blockquote><div><cite>veltrop wrote:</cite><br />One problem: what about mixing the gyro sensors into realtime movement?<br /></div></blockquote><br /><br />In RC servo lib of RoBoIO library, a motion of a (KONDO/HiTec) robot is represented as an unsigned long array of 32 elements, in which the i-th element corresponds to the RC servo motor at the i-th (S_i+1) PWM channel.<br /><br />The value of the i-th element is actually the duty length (in micro-second) of PWM pulses sent to servo motors, and so you can change these values to mix feedback from gyro sensors.<br /><br />For continuous mixing, you can set a smaller time interval to get fine control when calling rcservo_SetAction(), and mix the sensor input at every rcservo_SetAction() call.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1542">roboard</a> — Thu Aug 13, 2009 2:40 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[veltrop]]></name></author>
<updated>2009-08-11T04:35:22+01:00</updated>
<published>2009-08-11T04:35:22+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21244#p21244</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21244#p21244"/>
<title type="html"><![CDATA[Motion reproduction with gyro sensors.]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=3803&amp;p=21244#p21244"><![CDATA[
I have a KHR1-HV and I'm thinking of getting a Roboard.<br /><br />It's nice that the Roboard has a format for replaying motion routines, and it looks like people have been able to convert their H2H motion into the RoBoIO format.<br /><br />One problem: what about mixing the gyro sensors into realtime movement?<br /><br />I looked over the RoBoIO source and there doesn't seem to be any handling of any sensor data in the motion reproduction routines.<br /><br />So, does the motion routine format of RoBoIO include sensor mixing or not?<br />And, outside of the motion replaying, does the RoBoIO library have anything in it to handle continuous mixing of sensor input to servo position.<br /><br />Of course I could implement the latter myself easily enough, but as far as I can tell, as soon as I call the RoBoIO motion reproduction functions, the servos will move statically.  If I don't have to,  I'd rather not spend time modifying their library and then maintaining that modification with their updates.<br /><br />What have you guys done?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1573">veltrop</a> — Tue Aug 11, 2009 4:35 am</p><hr />
]]></content>
</entry>
</feed>