<div>$B2CF#$G$9!#(B</div>  <div> </div>  <div>$B0JA07*86MM$K65$($F$$$?$@$$$?#N#X#T#R#T#C$N%b!<%?#C$rF0$+$9%W%m%0%i%`$K$D$$$F<ALd$,$"$j$^$9!#(B</div>  <div> </div>  <div>$BE:IU$7$F$$$?$@$$$?#N#X#T#R#T#C$N%W%m%0%i%`$G$9$,!"(B</div>  <div>$B?7$7$/(BInPort$B$K(B 50
 $B$H$$$&%G!<%?$,FO$$$?>l9g!"%b!<%?#C$,(B50$B$NB.EY$GF0$/!#(B</div>  <div> </div>  <div>$B$H$$$&2r<a$G9g$C$F$$$^$9$G$7$g$&$+!)(B</div>  <div> </div>  <div>$B$*;~4VD:$1$?$i$465<x$*4j$$$7$^$9!#(B<BR>
<BR>
<B>kurihara shinji <shinji.kurihara@aist.go.jp></B> wrote:</div>  <BLOCKQUOTE style="BORDER-LEFT: #1010ff 2px solid; PADDING-LEFT: 5px; MARGIN-LEFT: 5px" class=replbq>$B2CF#MM(B<BR>
<BR>
$B7*86$G$9!#(B<BR>
<BR>
> $B7R$$$@@h$N(BNXT$B<+BN$KJL$N%W%m%0%i%`$r<B9T$5$;$F$*$/$3$H$O$G$-$^$9$G$7$g$&$+!)(B<BR>
$B!VJL$N%W%m%0%i%`$r<B9T$5$;$F$*$/!W$,$I$N$h$&$JJ}K!(B($BJL%9%l%C%I!)(B)$B$G<B9T$5$l$F$$$k(B<BR>
$B$N$+$O$o$+$j$^$;$s$,!"JL$N%b!<%?$r@)8f$9$k;v$O2DG=$G$9!#(B<BR>
<BR>
NXTRTC.py$B$N(B"def onExecute(self,ec_idl):"$BFb$K$"$j$^$90J2<$N9T(B<BR>
vel_[self._mapping[self._map[0][0]]] = self._d_vel.data[0]<BR>
vel_[self._mapping[self._map[0][1]]] = self._d_vel.data[1]<BR>
$B$r!"0J2<$N$h$&$K$7$FD:$/$3$H$G!"(BNXT$B$N(BC$B$N%]!<%H$K@\B3$5$l$F$$$k(B<BR>
$B%b!<%?$rF0$+$9;v$,$G$-$^$9!#(B<BR>
vel_[0] = self._d_vel.data[0]<BR>
vel_[1] = self._d_vel.data[1]<BR>
vel_[2] = self._d_vel.data[1] # $B$3$3$K!IJL$N%b!<%?!I$NB.EY$rF~NO$9$k!#(B<BR>
<BR>
$B!IJL$N%b!<%?!I$NB.EY$rFH<+$KJQ99$7$?$$>l9g$O!"B.EY$r7W;;$7$?(B<BR>
$B7k2L$r(B"vel_[2] = "$B$N9T$N(Bself._d_vel.data[1]$B$N$H$3$m$HCV$-(B<BR>
$B49$($F$_$F2<$5$$!#(B<BR>
<BR>
$B$A$J$_$K!">e5-$N$h$&$KJQ99$7$?>l9g!"(BInPort$B$K?7$7$$%G!<%?$,(B<BR>
$BFO$$$?;~$N$_%b!<%?$,F0$-$^$9!#(B<BR>
<BR>
$B>e5-$NJQ99$r9T$C$?(BNXTRTC.py$B$rE:IU$5$;$FD:$$$F$*$j$^$9!#(B<BR>
<BR>
<BR>
$B0J>e!"59$7$/$*4j$$CW$7$^$9!#(B<BR>
<BR>
<BR>
<BR>
On Thu, 3 Mar 2011 14:16:26 +0900 (JST)<BR>
<TRHR1104@YAHOO.CO.JP>wrote:<BR>
<BR>
> $B@lLg3X9;@8!!2CF#$G$9!#(B<BR>
> <BR>
> $B%Q%=%3%s$+$i(BNXTRTC$B$K7R$.@)8f$9$k$3$H$,$G$-$^$7$?!#(B<BR>
> $B$"$j$,$H$&$4$6$$$^$7$?!#(B<BR>
> <BR>
> $B0l$D<ALd$,$"$j$^$9!#(B<BR>
> $B7R$$$@@h$N(BNXT$B<+BN$KJL$N%W%m%0%i%`$r<B9T$5$;$F$*$/$3$H$O$G$-$^$9$G$7$g$&$+!)(B<BR>
> $B0lEY$d$C$F$_$?$N$G$9$,%(%i!<$,H/@8$7$F$7$^$$$^$7$?!#(B<BR>
> <BR>
> $B%Q%=%3%s$+$i%b!<%?(BA,B$B$rF0$+$9%W%m%0%i%`$rAw?.$7!"(BNXT$BB&$G%b!<%?(BA,B$B$,F0$$$?$H$-$KJL$N%b!<%?$rF0$+$9!#(B<BR>
> <BR>
> $B$N$h$&$JF0:n$r$5$;$?$$$G$9!#(B<BR>
> $B2DG=$G$7$g$&$+!)(B<BR>
> <BR>
> $B$*;~4VD:$1$?$i$465<x$*4j$$$7$^$9!#(B<BR>
> <BR>
> <BR>
<BR>
<BR>
-- <BR>
----------<BR>
$B7*86!!bCFs(B <SHINJI.KURIHARA@AIST.GO.JP><BR>
<BR>
$BFHN)9T@/K!?M;:6H5;=QAm9g8&5f=j(B<BR>
$BCNG=%7%9%F%`8&5fItLg!!E}9gCNG=8&5f%0%k!<%W(B<BR>
$B")(B305-8568<BR>
$B0q>k8)$D$/$P;TG_1`(B1-1-1 $BCf1{Bh(B2<BR>
<BR>
TEL: 029-861-5956<BR>
#!/usr/bin/env python<BR>
# -*- coding:shift_jis -*-<BR>
# -*- Python -*-<BR>
<BR>
import sys<BR>
import time<BR>
sys.path.append(".")<BR>
<BR>
# Import RTM module<BR>
import OpenRTM<BR>
import RTC<BR>
<BR>
<BR>
# import NXTBrick class<BR>
import NXTBrick<BR>
<BR>
<BR>
# This module's spesification<BR>
# <RTC-TEMPLATE block="module_spec"><BR>
nxtrtc_spec = ["implementation_id", "NXTRTC", <BR>
"type_name", "NXTRTC", <BR>
"description", "NXT sample component", <BR>
"version", "0.1", <BR>
"vendor", "AIST", <BR>
"category", "example", <BR>
"activity_type", "DataFlowComponent", <BR>
"max_instance", "10", <BR>
"language", "Python", <BR>
"lang_type", "SCRIPT",<BR>
"conf.default.map", "A,B",<BR>
""]<BR>
<BR>
# </RTC-TEMPLATE><BR>
<BR>
class NXTRTC(OpenRTM.DataFlowComponentBase):<BR>
def __init__(self, manager):<BR>
OpenRTM.DataFlowComponentBase.__init__(self, manager)<BR>
<BR>
# DataPorts initialization<BR>
# <RTC-TEMPLATE block="data_ports"><BR>
self._d_vel = RTC.TimedFloatSeq(RTC.Time(0,0),[])<BR>
self._velIn = OpenRTM.InPort("vel", self._d_vel,<BR>
OpenRTM.RingBuffer(8))<BR>
self.registerInPort("vel",self._velIn)<BR>
self._d_pos = RTC.TimedFloatSeq(RTC.Time(0,0),[])<BR>
self._posOut = OpenRTM.OutPort("pos", self._d_pos,<BR>
OpenRTM.RingBuffer(8))<BR>
self.registerOutPort("pos",self._posOut)<BR>
self._d_sens = RTC.TimedFloatSeq(RTC.Time(0,0),[])<BR>
self._sensOut = OpenRTM.OutPort("sens", self._d_sens,<BR>
OpenRTM.RingBuffer(8))<BR>
self.registerOutPort("sens",self._sensOut)<BR>
<BR>
# initialize of configuration-data.<BR>
# <RTC-TEMPLATE block="configurations"><BR>
self._map = [['A', 'B']]<BR>
self._nxtbrick = None<BR>
self._mapping = {'A':0,'B':1,'C':2}<BR>
<BR>
def onInitialize(self):<BR>
# Bind variables and configuration variable<BR>
# <RTC-TEMPLATE block="bind_config"><BR>
self.bindParameter("map", self._map, "A,B")<BR>
<BR>
# create NXTBrick object<BR>
try:<BR>
print "Connecting to NXT brick ...."<BR>
self._nxtbrick = NXTBrick.NXTBrick()<BR>
print "Connection established."<BR>
except:<BR>
print "NXTBrick connection failed."<BR>
return RTC.RTC_ERROR<BR>
<BR>
return RTC.RTC_OK<BR>
<BR>
def onFinalize(self):<BR>
self._nxtbrick.close()<BR>
<BR>
def onActivated(self, ec_id):<BR>
self._nxtbrick.setMotors([0,0,0])<BR>
# reset NXTBrick's position.<BR>
self._nxtbrick.resetPosition()<BR>
return RTC.RTC_OK<BR>
<BR>
def onDeactivated(self, ec_id):<BR>
self._nxtbrick.setMotors([0,0,0])<BR>
# reset NXTBrick's position.<BR>
self._nxtbrick.resetPosition()<BR>
<BR>
return RTC.RTC_OK<BR>
<BR>
def onExecute(self, ec_id):<BR>
# check new data.<BR>
if self._velIn.isNew():<BR>
# read velocity data from inport.<BR>
self._d_vel = self._velIn.read()<BR>
vel_ = [0,0,0]<BR>
#vel_[self._mapping[self._map[0][0]]] = self._d_vel.data[0]<BR>
#vel_[self._mapping[self._map[0][1]]] = self._d_vel.data[1]<BR>
vel_[0] = self._d_vel.data[0]<BR>
vel_[1] = self._d_vel.data[1]<BR>
vel_[2] = self._d_vel.data[1]<BR>
# set velocity<BR>
self._nxtbrick.setMotors(vel_)<BR>
<BR>
# get sensor data.<BR>
sensor_ = self._nxtbrick.getSensors()<BR>
if sensor_:<BR>
self._d_sens.data = sensor_<BR>
# write sensor data to outport.<BR>
self._sensOut.write()<BR>
<BR>
# get position data.<BR>
position_ = self._nxtbrick.getMotors()<BR>
if position_:<BR>
self._d_pos.data = \<BR>
[position_[self._mapping[self._map[0][0]]][9], \<BR>
position_[self._mapping[self._map[0][1]]][9]]<BR>
# write position data to outport.<BR>
self._posOut.write()<BR>
<BR>
return RTC.RTC_OK<BR>
<BR>
<BR>
<BR>
def MyModuleInit(manager):<BR>
profile = OpenRTM.Properties(defaults_str=nxtrtc_spec)<BR>
manager.registerFactory(profile,<BR>
NXTRTC,<BR>
OpenRTM.Delete)<BR>
<BR>
# Create a component<BR>
comp = manager.createComponent("NXTRTC")<BR>
<BR>
<BR>
<BR>
def main():<BR>
mgr = OpenRTM.Manager.init(len(sys.argv), sys.argv)<BR>
#mgr = OpenRTM.Manager.init(sys.argv)<BR>
mgr.setModuleInitProc(MyModuleInit)<BR>
mgr.activateManager()<BR>
mgr.runManager()<BR>
<BR>
if __name__ == "__main__":<BR>
main()<BR>
<BR>
<BR>
</BLOCKQUOTE><BR>

<div style="line-height: 0; width: 0; height: 5px; clear: both;"> </div>