<?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=6656" />

<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>2010-10-26T16:51:25+01:00</updated>

<author><name><![CDATA[RoboSavvy Forum]]></name></author>
<id>http://forum.robosavvy.com/feed.php?f=17&amp;t=6656</id>
<entry>
<author><name><![CDATA[veltrop]]></name></author>
<updated>2010-10-26T16:51:25+01:00</updated>
<published>2010-10-26T16:51:25+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28564#p28564</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28564#p28564"/>
<title type="html"><![CDATA[Accessing ICS modes in Kondo PWM servos with RoBoIO]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28564#p28564"><![CDATA[
Thanks for all the help.  Both methods worked for me.<br /><br />I was having problems with shaky servos and the shakes go away when I switch to a softer ICS setting.<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1573">veltrop</a> — Tue Oct 26, 2010 4:51 pm</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[roboard]]></name></author>
<updated>2010-10-26T04:32:37+01:00</updated>
<published>2010-10-26T04:32:37+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28552#p28552</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28552#p28552"/>
<title type="html"><![CDATA[Accessing ICS modes in Kondo PWM servos with RoBoIO]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28552#p28552"><![CDATA[
You can call rcservo_SetPlayModeCMD() &amp; rcservo_EnterPlayMode() multiple times within Play Mode to change the internal settings of servos.<br /><br />Alternatively, there is an untested function called rcservo_PlayActionMix() that allows to send servo command pulses in realtime when playing a motion frame. Its usage is as follows:<br /><br /><dl class="codebox"><dt>Code: </dt><dd><code>rcservo_SetAction&#40;width, ...&#41;;<br />while &#40;rcservo_PlayActionMix&#40;mixwidth&#41; != RCSERVO_PLAYEND&#41;<br />&#123;<br />    change the content of mixwidth&#91;&#93; in realtime ...<br />&#125;<br /></code></dd></dl><br /><br />the mixwidth[] is an unsigned long array of 32 elements; when playing the motion frame with rcservo_PlayActionMix(mixwidth), it shall add each element of mixwidth[] to the currently calculated position of the corresponding channel; i.e., the real width of the position pulse to each servo will be the mix of the calculated position width and the mixwidth.<br /><br />There are special mixwidthes defined in rcservo.h: RCSERVO_MIXWIDTH_CMD1, ..., RCSERVO_MIXWIDTH_CMD7. When seeing RCSERVO_MIXWIDTH_CMDx in mixwidth[], rcservo_PlayActionMix() will replace the calculated position pulse width by the corresponding command pulse width. This can be used to send servo command pulses in realtime when you are playing a motion frame.<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=1542">roboard</a> — Tue Oct 26, 2010 4:32 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[veltrop]]></name></author>
<updated>2010-10-22T08:43:06+01:00</updated>
<published>2010-10-22T08:43:06+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28519#p28519</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28519#p28519"/>
<title type="html"><![CDATA[Accessing ICS modes in Kondo PWM servos with RoBoIO]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28519#p28519"><![CDATA[
Ah, thanks for the clarifying info!<br /><br />So are you saying that I could to do something like this to change ICS settings on the fly?:<br /><br /><dl class="codebox"><dt>Code: </dt><dd><code><br />unsigned long   playframe_&#91;32&#93;;<br /><br />memset&#40;playframe_, 0, sizeof&#40;long&#41; * 32&#41;;<br /><br />rcservo_SetServo&#40;0x1, RCSERVO_KONDO_KRS78X&#41;;<br />rcservo_Initialize&#40;0x1&#41;;<br /><br />rcservo_EnableMPOS&#40;&#41;;<br />rcservo_SetFPS&#40;100&#41;; <br />  <br />rcservo_SetPlayModeCMD&#40;0x1, RCSERVO_CMD2&#41;;<br /><br />rcservo_EnterPlayMode&#40;&#41;; <br />  <br />playframe_&#91;0&#93; = 1000;<br /><br />rcservo_MoveTo&#40;playframe_, 2000&#41;;<br /><br /><br />// exit playmode???<br /><br /><br />rcservo_SetPlayModeCMD&#40;0x1, RCSERVO_CMD3&#41;;<br /><br />rcservo_EnterPlayMode&#40;&#41;; <br />  <br />playframe_&#91;0&#93; = 1500;<br /><br />rcservo_MoveTo&#40;playframe_, 2000&#41;;<br />  <br />rcservo_Close&#40;&#41;;<br /><br /></code></dd></dl><br /><br />Would this do two different sets of servo behavior?  Can you call rcservo_EnterPlayMode() multiple times like that?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1573">veltrop</a> — Fri Oct 22, 2010 8:43 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[roboard]]></name></author>
<updated>2010-10-22T07:08:44+01:00</updated>
<published>2010-10-22T07:08:44+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28517#p28517</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28517#p28517"/>
<title type="html"><![CDATA[Re: Accessing ICS modes in Kondo PWM servos with RoBoIO]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28517#p28517"><![CDATA[
Hi,<br /><br />the position pulse following the 200us pulse may be the feedback pulse of the KONDO servo (according to the description in their datasheet).<br /><br />When entering the play mode, the RC servo lib of RoBoIO first sends a command pulse (50us, 100us, 150us, or 200us, ...; default by 100us) to read the positions of all servos as the home position. The command pulse can be customized by calling rcservo_SetPlayModeCMD().<br /><br />Because the command pulse is sent only once when entering the play mode, you cannot see it in later pulse sequences.<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=1542">roboard</a> — Fri Oct 22, 2010 7:08 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[veltrop]]></name></author>
<updated>2010-10-21T18:40:04+01:00</updated>
<published>2010-10-21T18:40:04+01:00</published>
<id>http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28510#p28510</id>
<link href="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28510#p28510"/>
<title type="html"><![CDATA[Accessing ICS modes in Kondo PWM servos with RoBoIO]]></title>

<content type="html" xml:base="http://forum.robosavvy.com/viewtopic.php?t=6656&amp;p=28510#p28510"><![CDATA[
I would like to access the different ICS modes of my Kondo servos.  I'm referring to the different sets of pulse stretch and speed settings that can be stored in the servos, as described in the latter part of <a href="http://www.robotservicesgroup.com/BuildPage10.html" class="postlink">this page</a>.<br /><br />Here's the output on an oscilloscope connected to an RCB-3HV when activating mode 3 using Heart2Heart:<br /><br /><img src="http://robosavvy.com/Builders/veltrop/S3-Oscilloscope.png" alt="Image" /><br /><br />It looks like it sends a pulse of 200 ms before the position pulse, modes 1 and 2 send 100 and 150 ms pre-pulses.<br /><br />How can I reproduce this behavior in RoBoIO?  Looking at the rcservo.cpp source I see:<br /><dl class="codebox"><dt>Code: </dt><dd><code>case RCSERVO_KONDO_COMMON:  //common setting for KONDO's servos<br />//...<br />rcservo_SetCmdPulse&#40;channel, RCSERVO_CMD_POWEROFF, 50L&#41;;<br />rcservo_SetCmdPulse&#40;channel, RCSERVO_CMD1, 100L&#41;;<br />rcservo_SetCmdPulse&#40;channel, RCSERVO_CMD2, 150L&#41;;<br />rcservo_SetCmdPulse&#40;channel, RCSERVO_CMD3, 200L&#41;;<br /></code></dd></dl><br />So it seems like this lines up with the timings of the ICS settings, but I can't get it to work. <br /><br />I've tried calling rcservo_SetPlayModeCMD(servo, RCSERVO_CMD3 etc) in various places in some test code and it there's no effect on the output on the oscilloscope, it always looks like a normal PWM signal.<br /><br />How do I properly call the rcservo_SetPlayModeCMD() function, or how else can I access the ICS modes with RoBoIO?<p>Statistics: Posted by <a href="http://forum.robosavvy.com/memberlist.php?mode=viewprofile&amp;u=1573">veltrop</a> — Thu Oct 21, 2010 6:40 pm</p><hr />
]]></content>
</entry>
</feed>