3 from six.moves
import input
9 rtm.nshost =
"localhost"
16 from haptics_controller
import *
23 while timeout_count < 10:
24 comp = rtm.findRTC(name)
25 if comp
is not None and comp.isActive():
27 print(
"find Comp wait for " + name)
31 print(
"Cannot find component: %s" % name)
77 rh_svc = rtm.findService(
79 "RobotHardwareService",
80 "RobotHardwareService",
82 )._narrow(OpenHRP.RobotHardwareService)
83 seq_svc = rtm.findService(
85 "SequencePlayerService",
86 "SequencePlayerService",
88 )._narrow(OpenHRP.SequencePlayerService)
89 sh_svc = rtm.findService(
94 )._narrow(OpenHRP.StateHolderService)
95 hc_svc = rtm.findService(
97 "SimpleHapticsControllerService",
98 "SimpleHapticsControllerService",
100 )._narrow(OpenHRP.SimpleHapticsControllerService)
101 log_svc =
findComp(
"log").service(
"service0")._narrow(
102 OpenHRP.DataLoggerService)
108 while (c !=
'Y' and c !=
'y'):
109 c = input(
"press 'Y' for servo ON and power ON. >> ")
112 self.
rh_svc.power(jname, OpenHRP.RobotHardwareService.SWITCH_ON)
114 self.
rh_svc.power(jname, OpenHRP.RobotHardwareService.SWITCH_OFF)
117 self.
rh_svc.setServoGainPercentage(jname, 0.0)
118 self.
rh_svc.setServoTorqueGainPercentage(jname, 100)
121 for k, v
in self.
Groups.items():
122 self.
seq_svc.removeJointGroup(k)
123 for k, v
in self.
Groups.items():
124 self.
seq_svc.waitInterpolationOfGroup(k)
125 for k, v
in self.
Groups.items():
126 self.
seq_svc.addJointGroup(k, v)
129 for rtc_name
in [
"hc"]:
130 rtc = rtm.findRTC(rtc_name)
137 self.
seq_svc.setBasePos([0, 0, 1.44], 0.01)
139 self.
rh_svc.power(jname, OpenHRP.RobotHardwareService.SWITCH_ON)
141 self.
rh_svc.servo(jname, OpenHRP.RobotHardwareService.SWITCH_ON)
146 while (c !=
'Y' and c !=
'y'):
147 c = input(
"press 'Y' for servo OFF and power OFF. >> ")
149 self.
rh_svc.servo(
'all', OpenHRP.RobotHardwareService.SWITCH_OFF)
152 self.
rh_svc.power(
'all', OpenHRP.RobotHardwareService.SWITCH_OFF)
157 hcp = self.
hc_svc.getHapticsControllerParam()[1]
159 20, 80, 80, 80, 20, 20,
160 20, 80, 80, 80, 20, 20,
162 30, 30, 20, 20, 12, 8, 8, 6,
163 30, 30, 20, 20, 12, 8, 8, 6
165 hcp.qref_dgain = 10.0
166 self.
hc_svc.setHapticsControllerParam(hcp)
169 self.
log_svc.add(
"TimedDoubleSeq",
"RobotHardware0_q")
171 rtm.findRTC(
"RobotHardware0").port(
"q"),
172 rtm.findRTC(
"log").port(
"RobotHardware0_q")
174 self.
log_svc.add(
"TimedDoubleSeq",
"RobotHardware0_dq")
176 rtm.findRTC(
"RobotHardware0").port(
"dq"),
177 rtm.findRTC(
"log").port(
"RobotHardware0_dq")
179 self.
log_svc.add(
"TimedDoubleSeq",
"RobotHardware0_tau")
181 rtm.findRTC(
"RobotHardware0").port(
"tau"),
182 rtm.findRTC(
"log").port(
"RobotHardware0_tau")
184 self.
log_svc.add(
"TimedLongSeqSeq",
"RobotHardware0_servoState")
186 rtm.findRTC(
"RobotHardware0").port(
"servoState"),
187 rtm.findRTC(
"log").port(
"RobotHardware0_servoState")
189 self.
log_svc.add(
"TimedDoubleSeq",
"hc_genTauOut")
191 rtm.findRTC(
"hc").port(
"genTauOut"),
192 rtm.findRTC(
"log").port(
"hc_genTauOut")
194 for ee
in [
"rleg",
"lleg",
"rarm",
"larm",
"relbow",
"lelbow"]:
195 self.
log_svc.add(
"TimedPose3D",
"hc_act" + ee +
"PoseOut")
197 rtm.findRTC(
"hc").port(
"act" + ee +
"PoseOut"),
198 rtm.findRTC(
"log").port(
"hc_act" + ee +
"PoseOut")
200 self.
log_svc.maxLength(1000 * 60)
207 self.
rh_svc.setJointControlMode(
208 j, OpenHRP.RobotHardwareService.TORQUE)
209 self.
rh_svc.setServoErrorLimit(j, 0.0)
210 self.
rh_svc.setServoTorqueGainPercentage(j, 100)
211 self.
rh_svc.setServoGainPercentage(j, 0.0)
214 self.
seq_svc.setBasePos([0, 0, 1.44], 2.0)
218 if __name__ ==
'__main__':
221 if len(sys.argv) > 1
and sys.argv[1] ==
"init":