6 #ifndef CNOID_OPENRTM_PLUGIN_VIRTUAL_ROBOT_PORT_HANDLER_H 7 #define CNOID_OPENRTM_PLUGIN_VIRTUAL_ROBOT_PORT_HANDLER_H 9 #include <boost/shared_ptr.hpp> 11 #include <cnoid/BasicSensors> 12 #include <cnoid/Camera> 13 #include <cnoid/RangeCamera> 14 #include <cnoid/RangeSensor> 15 #include <cnoid/corba/CameraImage.hh> 16 #include <cnoid/corba/PointCloud.hh> 17 #include <rtm/idl/BasicDataType.hh> 18 #include <rtm/idl/ExtendedDataTypes.hh> 19 #include <rtm/idl/InterfaceDataTypes.hh> 21 #include <rtm/PortBase.h> 22 #include <rtm/OutPort.h> 23 #include <rtm/InPort.h> 24 #include <boost/thread/mutex.hpp> 25 #include <boost/thread/locks.hpp> 50 :
PortHandler(info), synchController(synchContorller){}
51 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC) = 0;
52 virtual void writeDataToPort() = 0;
53 template<
class T>
void setTime(T& value,
double _time)
55 value.tm.sec = (
unsigned long)_time;
56 value.tm.nsec = (
unsigned long)((_time-value.tm.sec)*1000000000.0 + 0.5);
57 if( value.tm.nsec >= 1000000000 ){
59 value.tm.nsec -= 1000000000;
73 virtual void outputDataToSimulator(
const BodyPtr& body) = 0;
74 virtual void readDataFromPort() = 0;
84 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
85 virtual void writeDataToPort();
87 RTC::TimedDoubleSeq values;
89 RTC::OutPort<RTC::TimedDoubleSeq>
outPort;
99 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
100 virtual void writeDataToPort();
102 RTC::TimedDoubleSeq value;
106 std::vector<std::string> linkNames;
114 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
115 virtual void writeDataToPort();
117 RTC::TimedPose3D value;
121 std::vector<std::string> linkNames;
130 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
131 virtual void writeDataToPort();
133 RTC::TimedDoubleSeq value;
137 std::vector<std::string> sensorNames;
144 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
145 virtual void writeDataToPort();
147 RTC::TimedAngularVelocity3D value;
149 RTC::OutPort<RTC::TimedAngularVelocity3D>
outPort;
151 std::vector<std::string> sensorNames;
158 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
159 virtual void writeDataToPort();
161 RTC::TimedAcceleration3D value;
163 RTC::OutPort<RTC::TimedAcceleration3D>
outPort;
165 std::vector<std::string> sensorNames;
172 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
173 virtual void writeDataToPort();
175 RTC::TimedBooleanSeq value;
179 std::vector<std::string> lightNames;
186 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
187 virtual void writeDataToPort();
188 void onCameraStateChanged();
189 void initialize(
Body* simulationBody);
191 Img::TimedCameraImage value;
197 std::string cameraName;
198 boost::shared_ptr<const Image> prevImage;
206 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
207 virtual void writeDataToPort();
208 void onCameraStateChanged();
209 void initialize(
Body* simulationBody);
211 PointCloudTypes::PointCloud value;
213 RTC::OutPort<PointCloudTypes::PointCloud>
outPort;
217 std::string rangeCameraName;
218 boost::shared_ptr<const RangeCamera::PointData> prevPoints;
219 boost::shared_ptr<const Image> image;
228 virtual void inputDataFromSimulator(
BodyRTCItem* bodyRTC);
229 virtual void writeDataToPort();
230 void onRangeSensorStateChanged();
231 void initialize(
Body* simulationBody);
233 RTC::RangeData value;
239 std::string rangeSensorName;
240 boost::shared_ptr<const RangeSensor::RangeData> prevRangeData;
248 virtual void outputDataToSimulator(
const BodyPtr& body);
249 virtual void readDataFromPort();
251 RTC::TimedDoubleSeq values;
262 virtual void outputDataToSimulator(
const BodyPtr& body);
263 virtual void readDataFromPort();
265 RTC::TimedDoubleSeq values;
269 std::vector<std::string> linkNames;
277 virtual void outputDataToSimulator(
const BodyPtr& body);
278 virtual void readDataFromPort();
280 RTC::TimedPose3D values;
284 std::vector<std::string> linkNames;
292 virtual void outputDataToSimulator(
const BodyPtr& body);
293 virtual void readDataFromPort();
295 RTC::TimedBooleanSeq values;
297 RTC::InPort<RTC::TimedBooleanSeq>
inPort;
299 std::vector<std::string> lightNames;
Definition: VirtualRobotPortHandler.h:126
PortHandler(PortInfo &info)
Definition: VirtualRobotPortHandler.h:37
Definition: VirtualRobotPortHandler.h:168
std::string portName
Definition: VirtualRobotPortHandler.h:40
Definition: VirtualRobotPortHandler.h:69
double stepTime
Definition: VirtualRobotPortHandler.h:62
RTC::OutPort< RTC::TimedAngularVelocity3D > outPort
Definition: VirtualRobotPortHandler.h:149
boost::shared_ptr< OutPortHandler > OutPortHandlerPtr
Definition: VirtualRobotPortHandler.h:66
InPortHandler(PortInfo &info)
Definition: VirtualRobotPortHandler.h:72
Definition: VirtualRobotPortHandler.h:80
Definition: VirtualRobotPortHandler.h:224
RTC::OutPort< Img::TimedCameraImage > outPort
Definition: VirtualRobotPortHandler.h:193
Definition: VirtualRobotPortHandler.h:258
RTC::OutPort< RTC::TimedDoubleSeq > outPort
Definition: VirtualRobotPortHandler.h:135
Definition: VirtualRobotPortHandler.h:182
Definition: VirtualRobotPortHandler.h:95
boost::shared_ptr< InPortHandler > InPortHandlerPtr
Definition: VirtualRobotPortHandler.h:77
Definition: VirtualRobotPortHandler.h:46
DataTypeId
Definition: BridgeConf.h:37
Definition: VirtualRobotPortHandler.h:288
Definition: RangeCamera.h:14
RTC::OutPort< PointCloudTypes::PointCloud > outPort
Definition: VirtualRobotPortHandler.h:213
Definition: VirtualRobotPortHandler.h:34
RTC::OutPort< RTC::TimedBooleanSeq > outPort
Definition: VirtualRobotPortHandler.h:177
boost::shared_ptr< PortHandler > PortHandlerPtr
Definition: VirtualRobotPortHandler.h:43
OutPortHandler(PortInfo &info, bool synchContorller=true)
Definition: VirtualRobotPortHandler.h:49
virtual ~PortHandler()
Definition: VirtualRobotPortHandler.cpp:18
Definition: BodyRTCItem.h:24
Definition: VirtualRobotPortHandler.h:202
RTC::InPort< RTC::TimedDoubleSeq > inPort
Definition: VirtualRobotPortHandler.h:253
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
Definition: VirtualRobotPortHandler.h:244
RTC::PortService_var portRef
Definition: VirtualRobotPortHandler.h:39
RTC::OutPort< RTC::RangeData > outPort
Definition: VirtualRobotPortHandler.h:235
RTC::OutPort< RTC::TimedDoubleSeq > outPort
Definition: VirtualRobotPortHandler.h:89
Definition: VirtualRobotPortHandler.h:140
Definition: VirtualRobotPortHandler.h:154
bool synchController
Definition: VirtualRobotPortHandler.h:63
RTC::OutPort< RTC::TimedAcceleration3D > outPort
Definition: VirtualRobotPortHandler.h:163
RTC::InPort< RTC::TimedBooleanSeq > inPort
Definition: VirtualRobotPortHandler.h:297
Definition: RangeSensor.h:16
RTC::OutPort< RTC::TimedDoubleSeq > outPort
Definition: VirtualRobotPortHandler.h:104
Definition: BridgeConf.h:60
RTC::InPort< RTC::TimedDoubleSeq > inPort
Definition: VirtualRobotPortHandler.h:267
void setTime(T &value, double _time)
Definition: VirtualRobotPortHandler.h:53