<div dir="ltr">$B7*86MM(B<div>$B0BF#MM(B</div><div><br></div><div>$BD9_7$G$9!%$H$F$bCzG+$K$"$j$,$H$&$4$6$$$^$9!%(B</div><div style>$B$^$@40A4M}2r$7$?$o$1$G$O$J$$$N$G$9$,!$(BPython$BHG$NNc$r;29M$K(BPyQt$B$rMxMQ$7$F=jK>$N(BRTC$B$r:n$k$3$H$,$G$-$^$7$?!%(B</div><div style>$BHs>o$K46<U$7$F$$$^$9!%(B<br></div><div style><br></div><div style>$B;d$N$h$&$K%W%m%0%i%_%s%0%9%-%k$NDc$$5!3#7O$N3X@8$K$H$C$F$O!$(B</div>
<div style>GUI$BEy$NJ#;($J$b$N$K4X$7$F$O(BC++$BHG$h$j(BPython$BHG$NJ}$,LdBj$K$O$^$j$K$/$$$+$b$7$l$^$;$s!%(B</div><div style><br></div><div style>$B$3$N$?$S$OK\Ev$K$"$j$,$H$&$4$6$$$^$7$?!%:#8e$b$<$R;29M$K$7$?$$$H;W$$$^$9!%(B</div><div class="gmail_extra"><br><br><div class="gmail_quote">2013$BG/(B4$B7n(B30$BF|(B 17:04 Ando Noriaki <span dir="ltr"><<a href="mailto:n-ando@aist.go.jp" target="_blank">n-ando@aist.go.jp</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">$BD9_7$5$s(B<br>
$B7*86$5$s!c2r@b$"$j$,$H$&$4$6$$$^$9!#(B<br>
<br>
$B0BF#$G$9(B<br>
<br>
$B!t(Bbeginners$B$O2aAB$C$F$k$N$G!"(Busers$B$N$[$&$,Ez$($F$b$i$($k3NN($,9b$$$G$9!#(B<br>
<br>
C++$B$G;29M$K$J$k%3!<%I$O$A$g$C$H$J$+$C$?$N$G$9$,!"(BPython$BHG$N(B<br>
$B%5%s%W%k$K;w$?$h$&$J1~MQNc$,$"$j$^$7$?!#(B<br>
<br>
Python$B$N%5%s%W%k$H$7$FIUB0$7$F$$$k(BGUI$B%8%g%$%9%F%#%C%/(B<br>
<a href="http://svn.openrtm.org/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python/OpenRTM_aist/examples/TkJoyStick/TkJoyStickComp.py" target="_blank">http://svn.openrtm.org/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python/OpenRTM_aist/examples/TkJoyStick/TkJoyStickComp.py</a><br>

<br>
$B0\F0%m%\%C%H$N%7%s%W%k$J%7%_%e%l!<%?$N%5%s%W%k(B<br>
<a href="http://svn.openrtm.org/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python/OpenRTM_aist/examples/MobileRobotCanvas/TkMobileRobotSimulator.py" target="_blank">http://svn.openrtm.org/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python/OpenRTM_aist/examples/MobileRobotCanvas/TkMobileRobotSimulator.py</a><br>

<br>
$B$J$I$,7*86$5$s$,8@$o$l$?$h$&$J$3$H$r$7$F$$$^$9!#(B<br>
<br>
TkJoystickComp$B$N%5%s%W%k$N(Bmain$B4X?t$G$9$,!"0J2<$N$h$&$K$J$C$F$$$^$9!#(B<br>
<br>
 def main():<br>
   tkJoyCanvas = tkjoystick.TkJoystick() # GUI$B%*%V%8%'%/%H$r:n@.(B<br>
   tkJoyCanvas.master.title("TkJoystick")<br>
   mgr = OpenRTM_aist.Manager.init(sys.argv) # RTC$B%^%M!<%8%c$r:n@.(B<br>
   mgr.activateManager() #$B%^%M!<%8%c$r3h@-2=(B<br>
<br>
   # $B%3%s%]!<%M%s%H$NEPO?(B<br>
   profile = OpenRTM_aist.Properties(defaults_str=tkjoystick_spec)<br>
   mgr.registerFactory(profile,<br>
                       TkJoyStick,<br>
                       OpenRTM_aist.Delete)<br>
   # $B%3%s%]!<%M%s%H$N@8@.(B<br>
   comp = mgr.createComponent("TkJoyStick")<br>
<br>
   # $B$3$N%3%s%]!<%M%s%H$K$O(Bset_pos$B$H$$$&%a%s%P4X?t$,$"$j!"(B<br>
   # GUI$B%8%g%$%9%F%#%C%/$N:BI8$r%3%s%]!<%M%s%H$KEO$9$?$a$K;HMQ$5$l$k!#(B<br>
   # TkJoystick$B$N(BGUI$B$N(Bupdate$B%$%Y%s%H$,8F$P$l$k$H$-$K!"(B<br>
   # $B$3$$$D$r8F$V$h$&$K%3!<%k%P%C%/$H$7$F%;%C%H$9$k!#(B<br>
   tkJoyCanvas.set_on_update(comp.set_pos)<br>
   mgr.runManager(True) # $B%^%M!<%8%c$N(BrunManager$B$N0z?t$K(BTrue$B$rEO$7$F(Bnon-block$B%b!<%I$G%^%M!<%8%c$r5/F0(B<br>
   tkJoyCanvas.mainloop() # Python$B$N(BGUI$B$N%a%$%s%k!<%W$KF~$k!#(B<br>
<br>
 if __name__ == "__main__":<br>
   main()<br>
<br>
$B%]%$%s%H$H$7$F$O!"(B<br>
<br>
$B#1!K(B $B%3%s%]!<%M%s%H$NCf$+$i(BGUI$B$N%a%$%s%k!<%W4X?t$r8F$s$@$j!"(B<br>
$B!!(B GUI$B%*%V%8%'%/%H$r@8@.$7$?$j$O$7$J$$$[$&$,L5Fq(B<br>
<br>
$B!!(BGUI$B%D!<%k%-%C%H$NCf$K$O!"(Bmain$B%9%l%C%I$+$i8F$P$J$1$l$P$J$i$J$$$b$N$d!"(B<br>
$B!!F10l$N%9%l%C%I$+$i8F$P$l$k$3$H$rA0Ds$H$7$F$$$k4X?t$J$I$r;}$D$b$N$,$"$k!#(B<br>
$B!!(BRTC$B$O(BonInitialize/onFinalize$B$r8F$V%9%l%C%I$H!"(BonExecute/onActivated/onDeactivated $B$=$NB>(B<br>
$B!!$r8F$V%9%l%C%I$O0[$J$j$^$9!#$^$?!"(BonExecute$BB>$N4X?t$OJ#?t$N%9%l%C%I$+$iF1;~$K(B<br>
$B!!8F$P$l$k2DG=@-$9$i$"$j$^$9!#(BGUI$B%9%l%C%I$H(BRTC$B$H$OJL$K07$C$?$[$&$,(B<br>
$B!!%H%i%V%k$O>/$J$$$G$7$g$&!#(B<br>
<br>
$B#2!K(BGUI$B$H(BRTC$B$N%G!<%?$N$d$j<h$j$O!"(BRTC$B$K$=$N$?$a$N4X?t$rDI2C$9$k$3$H$GBP1~(B<br>
<br>
$B!!>e5-$N$h$&$JM}M3$+$i!"(BGUI$B$H%3%s%]!<%M%s%H$O@Z$jN%$7$?$[$&$,$h$$$N$G$9$,!"(B<br>
$B!!(BGUI$BB&$H(BRTC$B$H%G!<%?$N$d$j<h$j$r$7$J$1$l$P$J$i$J$$;~$K:$$j$^$9!#(B<br>
$B!!DL>o(BRTC$B$K%G!<%?$N$d$j<h$j$r$9$k$?$a$N%$%s%?!<%U%'!<%9$rJLES7Q>5$5$;$F!"(B<br>
$B!!(BcreateComponent$B$G<hF@$7$?%3%s%]!<%M%s%H$X$N%]%$%s%?$r<hF@$7$F(BGUI<br>
$B!!B&$+$i%G!<%?$r<hF@$7$?$j!"%G!<%?$rM?$($?$j$7$^$9!#(B<br>
<br>
class IMyInterface<br>
{<br>
public:<br>
    virtual int getData() = 0;<br>
    virtual void setData(double x, double y) = 0;<br>
};<br>
<br>
class MyComponent<br>
 : public IMyInterface,<br>
   public RTC::DataFlowComponentBase<br>
{<br>
 : $B%3%s%]!<%M%s%H$NDj5A(B<br>
public:<br>
    virtual int getData()<br>
    {<br>
        coil::Guard guard(m_outdatalock);<br>
        return m_outdata;<br>
     }<br>
   virtual void setData(double x, double y)<br>
    {<br>
        coil::Guard guard(m_indatalock);<br>
        m_indata.x = x;<br>
        m_indata.y = y;<br>
    }<br>
};<br>
<br>
$B$3$N$h$&$K%3%s%]!<%M%s%H$r<BAu$7$F$*$$$F$+$i!"(B<br>
<br>
  RTObject_impl* rtobj = mgr.createComponent("MyComponent");<br>
  IMyInterface* comp = dynamic_cast<IMyInterface*>(rtobj);<br>
  if (comp == 0) { abort(); }<br>
  mgr.runManager(true);<br>
  gui.mainloop();<br>
<br>
$B$=$7$F(B<br>
   : GUI$B$N%3%s%H%m!<%kFb$G(B<br>
  std::cout << "out data: " << comp->getData() << std::endl; // $B%G!<%?$r<hF@(B<br>
  comp->setData(1.0, 2.0); // $B%G!<%?$rF~NO(B<br>
<br>
 $B$N$h$&$K(BRTC$B$H%G!<%?$N$d$j<h$j$r$7$^$9!#(B<br>
<br>
$B#3!K(B RTC$B$H(BGUI$B$N%3%s%H%m!<%k$d%&%#%8%'%C%H$r(B1$BBP(B1$BBP1~$K$7$F$*$/$H$o$+$j$d$9$$(B<br>
<br>
$B$?$@$7!"(BGUI$B%3%s%H%m!<%k$H(BRTC$B$O$=$l$>$l@8@.J}K!$,0[$J$k$N$G!"JL!9$K(B<br>
$B@8@.$7$F!">e=R$7$?$h$&$K(BRTC$B$K<BAu$7$?%G!<%?F~=PNO4X?t$rDL$8$F(BGUI<br>
$B%3%s%H%m!<%k$H7k$S$D$1$?$[$&$,$h$$$G$7$g$&!#(B<br>
<br>
$B0\F0%m%\%C%H$N%7%s%W%k$J%7%_%e%l!<%?$N%5%s%W%k$G$O!"0\F0%m%\%C%H%*%V%8%'%/%H$H(B<br>
$B$=$l$KBP1~$9$k(BRTC$B$rF0E*$KA}$d$7$?$j8:$i$7$?$j$7$F$$$^$9!#(B<br>
<a href="http://svn.openrtm.org/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python/OpenRTM_aist/examples/MobileRobotCanvas/TkMobileRobotSimulator.py" target="_blank">http://svn.openrtm.org/OpenRTM-aist-Python/trunk/OpenRTM-aist-Python/OpenRTM_aist/examples/MobileRobotCanvas/TkMobileRobotSimulator.py</a><br>

<br>
$B0J>e!";29M$K$7$F$$$?$@$1$l$P9,$$$G$9!#(B<br>
<a href="http://openrtm.org/openrtm/ja/node/5317" target="_blank">http://openrtm.org/openrtm/ja/node/5317</a><br>
<br>
2013$BG/(B4$B7n(B30$BF|(B 0:43 shinji.k <<a href="mailto:shinji0608@gmail.com">shinji0608@gmail.com</a>>:<br>
<div class="HOEnZb"><div class="h5">> $BD9_7MM(B<br>
><br>
> $B7*86$H?=$7$^$9!%(B<br>
><br>
> Qt$B$K4X$7$F$O>\$7$/$J$$$N$G$9$,!$(B<br>
> $B%a%$%s%9%l%C%I$+$i@)8f$7$J$$$H$$$1$J$$%"%W%j$r;HMQ$9$k%3%s%]!<%M%s%H(B<br>
> $B!J(BRTC$B!K$r:n@.$7$?7P83$,$4$6$$$^$9$N$G!$;29M$^$G$K%3%a%s%H$5$;$F$$$?(B<br>
> $B$@$-$^$9!%(B<br>
><br>
> $B$^$:!$:#2s$N$h$&$K!$(BQt$B$J$I%a%$%s%9%l%C%I$+$i=hM}$r3+;O$9$kI,MW$,$"$k(BRTC<br>
> $B$r:n@.$9$k>l9g!$(B<$B%3%s%]!<%M%s%HL>(B>Comp.cpp$B$N(Bmain()$B4X?tFb$N(B<br>
> manager->runManager();$B$H$J$C$F$$$k2U=j$r(B<br>
> manager->runmanager(true)$B$N$h$&$K$7!$$=$N8e$G;HMQ$7$?$$%"%W%j%1!<%7%g%s(B<br>
> $B$N%a%$%s%k!<%W$r8F$S=P$9$H$$$C$?;H$o$lJ}$,B?$$$h$&$G$9!%(B<br>
><br>
> $B0J2<$K!$N)L?4[Bg3X$NJ}$,:n@.$5$l$?(BQt$B$r;H$C$?%3%s%]!<%M%s%H$,$"$j$^$9$N$G!$(B<br>
> $B;29M$K$5$l$F$_$k$N$b$h$$$+$H;W$$$^$9!%(B<br>
><br>
> <a href="http://openrtm.sakura.ne.jp/cgi-bin/wiki/wiki.cgi/2010/2B13?page=%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB" target="_blank">http://openrtm.sakura.ne.jp/cgi-bin/wiki/wiki.cgi/2010/2B13?page=%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB</a><br>

><br>
> <a href="http://openrtm.sakura.ne.jp/cgi-bin/wiki/wiki.cgi/2010/2B13?page=%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9&file=RMC%2D1%2E2%2E1%2Dwin32%2DOpenRTM%2Ezip&action=ATTACH" target="_blank">http://openrtm.sakura.ne.jp/cgi-bin/wiki/wiki.cgi/2010/2B13?page=%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9&file=RMC%2D1%2E2%2E1%2Dwin32%2DOpenRTM%2Ezip&action=ATTACH</a><br>

><br>
><br>
> $B0J>e!$59$7$/$*4j$$CW$7$^$9!%(B<br>
><br>
><br>
><br>
> 2013$BG/(B4$B7n(B28$BF|(B 17:48 $BD9_7(B $BE/Lo(B(Nagasawa Tetsuya) <<a href="mailto:t_nagasawa@nuem.nagoya-u.ac.jp">t_nagasawa@nuem.nagoya-u.ac.jp</a>>:<br>
>> OpenRTM$B%a!<%j%s%0%j%9%H$N3'MM(B<br>
>><br>
>> $BL>8E20Bg3XBg3X1!=$;N2]Dx$ND9_7$H?=$7$^$9!%(B<br>
>> OpenRTM-aist(C++) 1.0.2$B>e$G$N(BGUI$B%i%$%V%i%j(BQt$B$NMxMQ$K$D$$$F<ALd$,$"$j%a!<%k$5$;$F$$$@$?$-$^$7$?!%(B<br>
>><br>
>> $B%;%s%5>pJs$r(BQt$B$rMQ$$$FI=<($5$;$?$$$H9M$(!$(BQt$B$N4IM}%/%i%9$G$"$k(BQApplication$B$H!$(B<br>
>> QWidget$B$r7Q>5$7$?<+:n%/%i%9(BMyQt$B$N%]%$%s%?$r(BRTC$B$N%/%i%9$K2<5-$N$h$&$KDI2C$7$^$7$?!%(B<br>
>> ------------------------------------------------------------------------------------------------------<br>
>> class PointCloudViewer<br>
>> : public RTC::DataFlowComponentBase<br>
>> {<br>
>> public:<br>
>> /*!<br>
>> * @brief constructor<br>
>> * @param manager Maneger Object<br>
>> */<br>
>> PointCloudViewer(RTC::Manager* manager);<br>
>> ///////////////////$BCfN,(B/////////////////////<br>
>> public:<br>
>><br>
>> QApplication *app; //Qt$B4IM}%/%i%9(B<br>
>> myQt *window; //$B<+:n%/%i%9(B<br>
>><br>
>> };<br>
>> ------------------------------------------------------------------------------------------------------<br>
>> $B$=$7$F(Bapp$B$H(Bwindow$B$K(Bnew$B1i;;;R$rMQ$$$F!$(BonInitialize()$B$G%$%s%9%?%s%9$r3d$jEv$F!$(B<br>
>> onExecute()$B$+(Bcoil::Timer$B>e$G!$%$%Y%s%H=hM}4X?t$N(Bapp->processEvents()$B$r<B9T$5$;$h$&$H9M$($^$7$?!%(B<br>
>> $B$7$+$7%S%k%I$ODL$k$N$G$9$,!$(BQt$B$N(BGUI$B$rA`:n$9$k$3$H$O$G$-$^$;$s$G$7$?!%(B<br>
>><br>
>> $B$=$3$G(BonActivate()$B$G%$%s%9%?%s%9$r3d$jEv$F$?$H$3$m!$LdBj$J$/A`:n$G$-$?$N$G$9$,!$(B<br>
>> $B%3%s%=!<%k>e$G2<5-$N(BWarning$B$,I=<($5$l$^$9!%(B<br>
>> WARNING: QApplication was not created in the main() thread.<br>
>><br>
>> QApplication$B$N%$%s%9%?%s%9$r(Bmain()$BFb$G:n@.$7!$$=$N%"%I%l%9$r(BRTC$BFb$KEA$($l$P$$$$$N$G$O$J$$$+$H9M$($?$N$G$9$,(B<br>
>> $B$=$NJ}K!$,$o$+$j$^$;$s!%(B<br>
>><br>
>> $B-!(Bmain()$BFb$G:n@.$7$?%/%i%9$r(BRTC$B%/%i%9Fb$GMxMQ$9$kJ}K!(B<br>
>> $B-">e5-0J30$N!$$h$jNI$$(BOpenRTM$B>e$G$N(BQt$BMxMQJ}K!(B<br>
>> $B$3$N(B2$BE@$N$I$A$i$+$*J,$+$j$K$J$kJ}$,$$$l$P!$$I$&$+$*=u$1$/$@$5$$!%(B<br>
>> $B$=$l$G$O$h$m$7$/$*4j$$$7$^$9!%(B<br>
>><br>
>><br>
>> --<br>
>> $BL>8E20Bg3XBg3X1!9)3X8&5f2J5!3#M}9)3X@l96EE;R5!3#9)3XJ,Ln(B<br>
>> $B%a%+%H%m%K%/%9@)8f9V:B%b%S%j%F%#%7%9%F%`%0%k!<%WNkLZ8&5f<<(B<br>
>> $B=$;N2]Dx(B $BD9_7!!E/Lo(B<br>
>> Email: <a href="mailto:t_nagasawa@nuem.nagoya-u.ac.jp">t_nagasawa@nuem.nagoya-u.ac.jp</a> Tel: 090-4233-3699<br>
>><br>
>> Graduate School of Engineering, Nagoya University<br>
>> Tetsuya Nagasawa<br>
>><br>
>> _______________________________________________<br>
>> openrtm-beginners mailing list<br>
>> <a href="mailto:openrtm-beginners@openrtm.org">openrtm-beginners@openrtm.org</a><br>
>> <a href="http://www.openrtm.org/mailman/listinfo/openrtm-beginners" target="_blank">http://www.openrtm.org/mailman/listinfo/openrtm-beginners</a><br>
>><br>
><br>
> _______________________________________________<br>
> openrtm-beginners mailing list<br>
> <a href="mailto:openrtm-beginners@openrtm.org">openrtm-beginners@openrtm.org</a><br>
> <a href="http://www.openrtm.org/mailman/listinfo/openrtm-beginners" target="_blank">http://www.openrtm.org/mailman/listinfo/openrtm-beginners</a><br>
><br>
<br>
<br>
<br>
</div></div><span class="HOEnZb"><font color="#888888">--<br>
$B0BF#7D><!wFHN)9T@/K!?M;:6H5;=QAm9g8&5f=j(B $BCNG=%7%9%F%`8&5fItLg(B<br>
    $BE}9gCNG=8&5f%0%k!<%W(B $B<gG$8&5f0w(B, $BGn;N(B($B9)3X(B)<br>
    $B")(B305-8568 $B$D$/$P;TG_1`(B1-1-1 $BCf1{Bh(B2<br>
    e-mail: <a href="mailto:n-ando@aist.go.jp">n-ando@aist.go.jp</a>, web: <a href="http://staff.aist.go.jp/n-ando" target="_blank">http://staff.aist.go.jp/n-ando</a><br>
    OpenRTM-aist: <a href="http://www.openrtm.org" target="_blank">http://www.openrtm.org</a><br>
<br>
Noriaki Ando, Ph.D.<br>
    Senior Research Scientist, RT-Synthesis R.G., ISRI, AIST<br>
    AIST Tsukuba Central 2, Tsukuba, Ibaraki 305-8568 JAPAN<br>
    e-mail: <a href="mailto:n-ando@aist.go.jp">n-ando@aist.go.jp</a>, web: <a href="http://staff.aist.go.jp/n-ando" target="_blank">http://staff.aist.go.jp/n-ando</a><br>
    OpenRTM-aist: <a href="http://www.openrtm.org" target="_blank">http://www.openrtm.org</a><br>
</font></span><br>_______________________________________________<br>
openrtm-beginners mailing list<br>
<a href="mailto:openrtm-beginners@openrtm.org">openrtm-beginners@openrtm.org</a><br>
<a href="http://www.openrtm.org/mailman/listinfo/openrtm-beginners" target="_blank">http://www.openrtm.org/mailman/listinfo/openrtm-beginners</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>$BL>8E20Bg3XBg3X1!9)3X8&5f2J5!3#M}9)3X@l96EE;R5!3#9)3XJ,Ln(B<br>$B%a%+%H%m%K%/%9@)8f9V:B%b%S%j%F%#%7%9%F%`%0%k!<%WNkLZ8&5f<<(B<br>$B=$;N2]Dx(B $BD9_7!!E/Lo(B <br>Email: <a href="mailto:t_nagasawa@nuem.nagoya-u.ac.jp" target="_blank">t_nagasawa@nuem.nagoya-u.ac.jp</a> Tel: 090-4233-3699<br>
<br>Graduate School of Engineering, Nagoya University<br>Tetsuya Nagasawa <br>
</div></div>