Revision 25400c71

View differences:

examples/yarp_icub/include/humotion_yarp_icub/icub_data_receiver.h
25 25
* Excellence Initiative.
26 26
*/
27 27

  
28
#ifndef EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_DATA_RECEIVER_H_
29
#define EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_DATA_RECEIVER_H_
28
#ifndef EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_DATA_RECEIVER_H_
29
#define EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_DATA_RECEIVER_H_
30 30

  
31 31
#include <humotion/server/joint_interface.h>
32 32
#include <humotion/server/server.h>
......
54 54
    void run();
55 55

  
56 56
 private:
57
    void store_incoming_position(int icub_id, double value, double timestamp);
58
    void store_incoming_velocity(int icub_id, double velocity, double timestamp);
57
    void store_incoming_position(int icub_id, double value, humotion::Timestamp timestamp);
58
    void store_incoming_velocity(int icub_id, double velocity, humotion::Timestamp timestamp);
59 59
    yarp::sig::Vector calculate_velocities(yarp::sig::Vector positions,
60 60
                              yarp::sig::Vector timestamps);
61 61

  
......
79 79
    yarp::dev::IEncodersTimed *iencs_;
80 80
};
81 81

  
82
#endif  // EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_DATA_RECEIVER_H_
82
#endif  // EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_DATA_RECEIVER_H_
examples/yarp_icub/include/humotion_yarp_icub/icub_faceinterface.h
24 24
* Forschungsgemeinschaft (DFG) in the context of the German
25 25
* Excellence Initiative.
26 26
*/
27
#ifndef EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_FACEINTERFACE_H_
28
#define EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_FACEINTERFACE_H_
27
#ifndef EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_FACEINTERFACE_H_
28
#define EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_FACEINTERFACE_H_
29 29

  
30 30
#include "humotion_yarp_icub/icub_jointinterface.h"
31 31

  
......
53 53
    yarp::os::BufferedPort<yarp::os::Bottle> emotion_port;
54 54
};
55 55

  
56
#endif  // EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_FACEINTERFACE_H_
56
#endif  // EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_FACEINTERFACE_H_
examples/yarp_icub/include/humotion_yarp_icub/icub_jointinterface.h
25 25
* Excellence Initiative.
26 26
*/
27 27

  
28
#ifndef EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_JOINTINTERFACE_H_
29
#define EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_JOINTINTERFACE_H_
28
#ifndef EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_JOINTINTERFACE_H_
29
#define EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_JOINTINTERFACE_H_
30 30

  
31 31
#include "humotion_yarp_icub/icub_data_receiver.h"
32 32

  
......
140 140
    enum_id_bimap_t enum_id_bimap;
141 141
};
142 142

  
143
#endif  // EXAMPLES_HUMOTION_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_JOINTINTERFACE_H_
143
#endif  // EXAMPLES_YARP_ICUB_INCLUDE_HUMOTION_YARP_ICUB_ICUB_JOINTINTERFACE_H_
examples/yarp_icub/src/icub_data_receiver.cpp
36 36
using std::cout;
37 37
using std::cerr;
38 38
using std::string;
39

  
39 40
using humotion::server::JointInterface;
41
using humotion::Timestamp;
42

  
40 43
using yarp::dev::IEncodersTimed;
41 44
using yarp::sig::Vector;
42 45

  
......
108 111
//! main loop routine, called by yarp rate thread
109 112
void iCubDataReceiver::run() {
110 113
    float velocity;
114
    Timestamp timestamp;
111 115

  
112 116
    // grab pos+vel data:
113 117
    iencs_->getEncodersTimed(positions_.data(), timestamps_.data());
......
125 129

  
126 130
    // publish data to humotion
127 131
    for (int i = 0; i < positions_.size(); i++) {
132
        // convert to humotion timestamp
133
        timestamp = Timestamp(timestamps_[i]);
128 134
        // store position values
129
        store_incoming_position(i, positions_[i], timestamps_[i]);
135
        store_incoming_position(i, positions_[i], timestamp);
130 136
        // store velocity
131
        store_incoming_velocity(i, velocities_[i], timestamps_[i]);
137
        store_incoming_velocity(i, velocities_[i], timestamp);
132 138
    }
133 139

  
134 140
    // small hack to tell humotion to update the lid angle
135 141
    // fixme: use real id
136
    store_incoming_position(100, 0.0, timestamps_[0]);
142
    timestamp = Timestamp::now();
143
    store_incoming_position(100, 0.0, timestamp);
137 144

  
138 145
    #if ICUB_DATA_RECEIVER_DUMP_DATA
139 146
    dump_incoming_data();
......
144 151
//! \param icub _id icub joint id
145 152
//! \param position
146 153
//! \param timestamp
147
void iCubDataReceiver::store_incoming_position(int icub_id, double position, double timestamp) {
154
void iCubDataReceiver::store_incoming_position(int icub_id, double position, Timestamp timestamp) {
148 155
    // cout << "store_incoming_position(icub=" << icub_id << ", " << position << ")\n";
149 156

  
150 157
    // store joint position in humotion backend
......
167 174
        icub_jointinterface_->store_incoming_position(JointInterface::ID_EYES_RIGHT_LR,
168 175
                                                     right, timestamp);
169 176
    } else if (icub_id == 100) {
170
        //HACK
177
        // HACK
171 178
        // icub_jointinterface->store_incoming_position(ID_EYES_RIGHT_LID_UPPER,
172 179
        //                                             lid_angle, timestamp);
173 180
    } else {
......
186 193
//! \param icub_id icub joint id
187 194
//! \param velocity
188 195
//! \param timestamp
189
void iCubDataReceiver::store_incoming_velocity(int icub_id, double velocity, double timestamp) {
196
void iCubDataReceiver::store_incoming_velocity(int icub_id, double velocity, Timestamp timestamp) {
190 197
    // cout << "store_incoming_velocity(icub=" << icub_id << ", " << velocity << ")\n";
191 198

  
192 199
    // store joint position in humotion backend
......
209 216
        icub_jointinterface_->store_incoming_velocity(JointInterface::ID_EYES_RIGHT_LR,
210 217
                                                     right, timestamp);
211 218
    } else if (icub_id == 100) {
212
        //HACK
219
        // HACK
213 220
        // icub_jointinterface->store_incoming_position(ID_EYES_RIGHT_LID_UPPER,
214 221
        //                                             lid_angle, timestamp);
215 222
    } else {
examples/yarp_icub/src/icub_faceinterface.cpp
105 105
//! \param id {0=left, 1=right)
106 106
//! \param angle in degrees
107 107
void iCubFaceInterface::set_eyebrow_angle(int id, float *target_angle) {
108

  
109 108
    if (emotion_port.getOutputCount() > 0) {
110 109
        double angle = target_angle[id];
111 110
        int icub_val = 0;
examples/yarp_icub/src/icub_jointinterface.cpp
197 197
//! \param id of joint
198 198
//! \param float value of position
199 199
void iCubJointInterface::store_icub_joint_target(int icub_id, float position, float velocity) {
200
    //cout << "store_icub_joint_target(" << icub_id << ", " << position << ", ..)\n";
200
    // cout << "store_icub_joint_target(" << icub_id << ", " << position << ", ..)\n";
201 201

  
202 202
    if ((icub_id == ICUB_ID_NECK_PAN) || (icub_id == ICUB_ID_EYES_VERGENCE)) {
203 203
        // icub uses an inverted neck pan specification
......
332 332
    // send it to icub face if
333 333
    face_interface_->set_eyelid_angle(opening);
334 334

  
335
    //eyebrows are set using a special command as well:
335
    // eyebrows are set using a special command as well:
336 336
    face_interface_->set_eyebrow_angle(ICUB_ID_EYES_LEFT_BROW, target_angle_);
337 337
    face_interface_->set_eyebrow_angle(ICUB_ID_EYES_RIGHT_BROW, target_angle_);
338 338

  
339
    //mouth
339
    // mouth
340 340
    face_interface_->set_mouth(target_angle_);
341 341

  
342 342
    // store joint values which we do not handle on icub here:
343
    double timestamp = humotion::Timestamp::now().to_seconds();
343
    humotion::Timestamp timestamp = humotion::Timestamp::now();
344

  
344 345
    JointInterface::store_incoming_position(ID_LIP_LEFT_UPPER,
345 346
                                            target_angle_[ICUB_ID_LIP_LEFT_UPPER], timestamp);
346 347
    JointInterface::store_incoming_position(ID_LIP_LEFT_LOWER,

Also available in: Unified diff