44 const double odom_roll,
45 const double odom_pitch,
46 const double odom_yaw,
47 const double base_vel_x,
48 const double base_vel_y,
49 const double base_vel_z,
50 const double base_vel_roll,
51 const double base_vel_pitch,
52 const double base_vel_yaw,
53 const double odom_vel_x,
54 const double odom_vel_y,
55 const double odom_vel_z,
56 const double odom_vel_roll,
57 const double odom_vel_pitch,
58 const double odom_vel_yaw) :
64 odom_pitch(odom_pitch),
66 base_vel_x(base_vel_x),
67 base_vel_y(base_vel_y),
68 base_vel_z(base_vel_z),
69 base_vel_roll(base_vel_roll),
70 base_vel_pitch(base_vel_pitch),
71 base_vel_yaw(base_vel_yaw),
72 odom_vel_x(odom_vel_x),
73 odom_vel_y(odom_vel_y),
74 odom_vel_z(odom_vel_z),
75 odom_vel_roll(odom_vel_roll),
76 odom_vel_pitch(odom_vel_pitch),
77 odom_vel_yaw(odom_vel_yaw)
84 if (!read_odom_x(reader)) {
87 if (!read_odom_y(reader)) {
90 if (!read_odom_z(reader)) {
93 if (!read_odom_roll(reader)) {
96 if (!read_odom_pitch(reader)) {
99 if (!read_odom_yaw(reader)) {
102 if (!read_base_vel_x(reader)) {
105 if (!read_base_vel_y(reader)) {
108 if (!read_base_vel_z(reader)) {
111 if (!read_base_vel_roll(reader)) {
114 if (!read_base_vel_pitch(reader)) {
117 if (!read_base_vel_yaw(reader)) {
120 if (!read_odom_vel_x(reader)) {
123 if (!read_odom_vel_y(reader)) {
126 if (!read_odom_vel_z(reader)) {
129 if (!read_odom_vel_roll(reader)) {
132 if (!read_odom_vel_pitch(reader)) {
135 if (!read_odom_vel_yaw(reader)) {
154 if (!write_odom_x(writer)) {
157 if (!write_odom_y(writer)) {
160 if (!write_odom_z(writer)) {
163 if (!write_odom_roll(writer)) {
166 if (!write_odom_pitch(writer)) {
169 if (!write_odom_yaw(writer)) {
172 if (!write_base_vel_x(writer)) {
175 if (!write_base_vel_y(writer)) {
178 if (!write_base_vel_z(writer)) {
181 if (!write_base_vel_roll(writer)) {
184 if (!write_base_vel_pitch(writer)) {
187 if (!write_base_vel_yaw(writer)) {
190 if (!write_odom_vel_x(writer)) {
193 if (!write_odom_vel_y(writer)) {
196 if (!write_odom_vel_z(writer)) {
199 if (!write_odom_vel_roll(writer)) {
202 if (!write_odom_vel_pitch(writer)) {
205 if (!write_odom_vel_yaw(writer)) {
218 return write(writer);
245 yarp().setOwner(*
this);
271 return obj !=
nullptr;
290 if (group == 0 && is_dirty) {
381 will_set_odom_roll();
383 mark_dirty_odom_roll();
391 return obj->odom_roll;
409 will_set_odom_pitch();
411 mark_dirty_odom_pitch();
413 did_set_odom_pitch();
419 return obj->odom_pitch;
439 mark_dirty_odom_yaw();
447 return obj->odom_yaw;
465 will_set_base_vel_x();
467 mark_dirty_base_vel_x();
469 did_set_base_vel_x();
475 return obj->base_vel_x;
493 will_set_base_vel_y();
495 mark_dirty_base_vel_y();
497 did_set_base_vel_y();
503 return obj->base_vel_y;
521 will_set_base_vel_z();
523 mark_dirty_base_vel_z();
525 did_set_base_vel_z();
531 return obj->base_vel_z;
549 will_set_base_vel_roll();
551 mark_dirty_base_vel_roll();
553 did_set_base_vel_roll();
559 return obj->base_vel_roll;
577 will_set_base_vel_pitch();
579 mark_dirty_base_vel_pitch();
581 did_set_base_vel_pitch();
587 return obj->base_vel_pitch;
605 will_set_base_vel_yaw();
607 mark_dirty_base_vel_yaw();
609 did_set_base_vel_yaw();
615 return obj->base_vel_yaw;
633 will_set_odom_vel_x();
635 mark_dirty_odom_vel_x();
637 did_set_odom_vel_x();
643 return obj->odom_vel_x;
661 will_set_odom_vel_y();
663 mark_dirty_odom_vel_y();
665 did_set_odom_vel_y();
671 return obj->odom_vel_y;
689 will_set_odom_vel_z();
691 mark_dirty_odom_vel_z();
693 did_set_odom_vel_z();
699 return obj->odom_vel_z;
717 will_set_odom_vel_roll();
719 mark_dirty_odom_vel_roll();
721 did_set_odom_vel_roll();
727 return obj->odom_vel_roll;
745 will_set_odom_vel_pitch();
747 mark_dirty_odom_vel_pitch();
749 did_set_odom_vel_pitch();
755 return obj->odom_vel_pitch;
773 will_set_odom_vel_yaw();
775 mark_dirty_odom_vel_yaw();
777 did_set_odom_vel_yaw();
783 return obj->odom_vel_yaw;
824 writer.
writeString(
"send: 'help' or 'patch (param1 val1) (param2 val2)'");
839 if (!writer.
writeTag(
"many", 1, 0)) {
847 if (field ==
"odom_x") {
854 if (!writer.
writeString(
"position of the robot [m], expressed in the world reference frame")) {
858 if (field ==
"odom_y") {
865 if (!writer.
writeString(
"position of the robot [m], expressed in the world reference frame")) {
869 if (field ==
"odom_z") {
876 if (!writer.
writeString(
"position of the robot [m], expressed in the world reference frame")) {
880 if (field ==
"odom_roll") {
887 if (!writer.
writeString(
"orientation the robot [deg], expressed in the world reference frame")) {
891 if (field ==
"odom_pitch") {
898 if (!writer.
writeString(
"orientation the robot [deg], expressed in the world reference frame")) {
902 if (field ==
"odom_yaw") {
909 if (!writer.
writeString(
"orientation the robot [deg], expressed in the world reference frame")) {
913 if (field ==
"base_vel_x") {
920 if (!writer.
writeString(
"velocity of the robot [m/s] expressed in the robot reference frame")) {
924 if (field ==
"base_vel_y") {
931 if (!writer.
writeString(
"velocity of the robot [m/s] expressed in the robot reference frame")) {
935 if (field ==
"base_vel_z") {
942 if (!writer.
writeString(
"velocity of the robot [m/s] expressed in the robot reference frame")) {
946 if (field ==
"base_vel_roll") {
953 if (!writer.
writeString(
"angular velocity of the robot [deg/s] expressed in the robot reference frame")) {
957 if (field ==
"base_vel_pitch") {
961 if (!writer.
writeString(
"double base_vel_pitch")) {
964 if (!writer.
writeString(
"angular velocity of the robot [deg/s] expressed in the robot reference frame")) {
968 if (field ==
"base_vel_yaw") {
975 if (!writer.
writeString(
"angular velocity of the robot [deg/s] expressed in the robot reference frame")) {
979 if (field ==
"odom_vel_x") {
986 if (!writer.
writeString(
"velocity of the robot [m/s] expressed in the world reference frame")) {
990 if (field ==
"odom_vel_y") {
997 if (!writer.
writeString(
"velocity of the robot [m/s] expressed in the world reference frame")) {
1001 if (field ==
"odom_vel_z") {
1008 if (!writer.
writeString(
"velocity of the robot [m/s] expressed in the world reference frame")) {
1012 if (field ==
"odom_vel_roll") {
1016 if (!writer.
writeString(
"double odom_vel_roll")) {
1019 if (!writer.
writeString(
"angular velocity of the robot [deg/s] expressed in the world reference frame")) {
1023 if (field ==
"odom_vel_pitch") {
1027 if (!writer.
writeString(
"double odom_vel_pitch")) {
1030 if (!writer.
writeString(
"angular velocity of the robot [deg/s] expressed in the world reference frame")) {
1034 if (field ==
"odom_vel_yaw") {
1041 if (!writer.
writeString(
"angular velocity of the robot [deg/s] expressed in the world reference frame")) {
1071 bool have_act =
false;
1072 if (tag !=
"patch") {
1073 if (((len - 1) % 2) != 0) {
1076 len = 1 + ((len - 1) / 2);
1080 for (
int i = 1; i < len; ++i) {
1094 if (key ==
"odom_x") {
1096 if (!obj->nested_read_odom_x(reader)) {
1100 }
else if (key ==
"odom_y") {
1102 if (!obj->nested_read_odom_y(reader)) {
1106 }
else if (key ==
"odom_z") {
1108 if (!obj->nested_read_odom_z(reader)) {
1112 }
else if (key ==
"odom_roll") {
1113 will_set_odom_roll();
1114 if (!obj->nested_read_odom_roll(reader)) {
1117 did_set_odom_roll();
1118 }
else if (key ==
"odom_pitch") {
1119 will_set_odom_pitch();
1120 if (!obj->nested_read_odom_pitch(reader)) {
1123 did_set_odom_pitch();
1124 }
else if (key ==
"odom_yaw") {
1125 will_set_odom_yaw();
1126 if (!obj->nested_read_odom_yaw(reader)) {
1130 }
else if (key ==
"base_vel_x") {
1131 will_set_base_vel_x();
1132 if (!obj->nested_read_base_vel_x(reader)) {
1135 did_set_base_vel_x();
1136 }
else if (key ==
"base_vel_y") {
1137 will_set_base_vel_y();
1138 if (!obj->nested_read_base_vel_y(reader)) {
1141 did_set_base_vel_y();
1142 }
else if (key ==
"base_vel_z") {
1143 will_set_base_vel_z();
1144 if (!obj->nested_read_base_vel_z(reader)) {
1147 did_set_base_vel_z();
1148 }
else if (key ==
"base_vel_roll") {
1149 will_set_base_vel_roll();
1150 if (!obj->nested_read_base_vel_roll(reader)) {
1153 did_set_base_vel_roll();
1154 }
else if (key ==
"base_vel_pitch") {
1155 will_set_base_vel_pitch();
1156 if (!obj->nested_read_base_vel_pitch(reader)) {
1159 did_set_base_vel_pitch();
1160 }
else if (key ==
"base_vel_yaw") {
1161 will_set_base_vel_yaw();
1162 if (!obj->nested_read_base_vel_yaw(reader)) {
1165 did_set_base_vel_yaw();
1166 }
else if (key ==
"odom_vel_x") {
1167 will_set_odom_vel_x();
1168 if (!obj->nested_read_odom_vel_x(reader)) {
1171 did_set_odom_vel_x();
1172 }
else if (key ==
"odom_vel_y") {
1173 will_set_odom_vel_y();
1174 if (!obj->nested_read_odom_vel_y(reader)) {
1177 did_set_odom_vel_y();
1178 }
else if (key ==
"odom_vel_z") {
1179 will_set_odom_vel_z();
1180 if (!obj->nested_read_odom_vel_z(reader)) {
1183 did_set_odom_vel_z();
1184 }
else if (key ==
"odom_vel_roll") {
1185 will_set_odom_vel_roll();
1186 if (!obj->nested_read_odom_vel_roll(reader)) {
1189 did_set_odom_vel_roll();
1190 }
else if (key ==
"odom_vel_pitch") {
1191 will_set_odom_vel_pitch();
1192 if (!obj->nested_read_odom_vel_pitch(reader)) {
1195 did_set_odom_vel_pitch();
1196 }
else if (key ==
"odom_vel_yaw") {
1197 will_set_odom_vel_yaw();
1198 if (!obj->nested_read_odom_vel_yaw(reader)) {
1201 did_set_odom_vel_yaw();
1229 if (is_dirty_odom_x) {
1239 if (!obj->nested_write_odom_x(writer)) {
1243 if (is_dirty_odom_y) {
1253 if (!obj->nested_write_odom_y(writer)) {
1257 if (is_dirty_odom_z) {
1267 if (!obj->nested_write_odom_z(writer)) {
1271 if (is_dirty_odom_roll) {
1281 if (!obj->nested_write_odom_roll(writer)) {
1285 if (is_dirty_odom_pitch) {
1295 if (!obj->nested_write_odom_pitch(writer)) {
1299 if (is_dirty_odom_yaw) {
1309 if (!obj->nested_write_odom_yaw(writer)) {
1313 if (is_dirty_base_vel_x) {
1323 if (!obj->nested_write_base_vel_x(writer)) {
1327 if (is_dirty_base_vel_y) {
1337 if (!obj->nested_write_base_vel_y(writer)) {
1341 if (is_dirty_base_vel_z) {
1351 if (!obj->nested_write_base_vel_z(writer)) {
1355 if (is_dirty_base_vel_roll) {
1365 if (!obj->nested_write_base_vel_roll(writer)) {
1369 if (is_dirty_base_vel_pitch) {
1379 if (!obj->nested_write_base_vel_pitch(writer)) {
1383 if (is_dirty_base_vel_yaw) {
1393 if (!obj->nested_write_base_vel_yaw(writer)) {
1397 if (is_dirty_odom_vel_x) {
1407 if (!obj->nested_write_odom_vel_x(writer)) {
1411 if (is_dirty_odom_vel_y) {
1421 if (!obj->nested_write_odom_vel_y(writer)) {
1425 if (is_dirty_odom_vel_z) {
1435 if (!obj->nested_write_odom_vel_z(writer)) {
1439 if (is_dirty_odom_vel_roll) {
1449 if (!obj->nested_write_odom_vel_roll(writer)) {
1453 if (is_dirty_odom_vel_pitch) {
1463 if (!obj->nested_write_odom_vel_pitch(writer)) {
1467 if (is_dirty_odom_vel_yaw) {
1477 if (!obj->nested_write_odom_vel_yaw(writer)) {
1485 void OdometryData6D::Editor::communicate()
1490 if (
yarp().canWrite()) {
1491 yarp().write(*
this);
1497 void OdometryData6D::Editor::mark_dirty()
1503 void OdometryData6D::Editor::mark_dirty_odom_x()
1505 if (is_dirty_odom_x) {
1509 is_dirty_odom_x =
true;
1514 void OdometryData6D::Editor::mark_dirty_odom_y()
1516 if (is_dirty_odom_y) {
1520 is_dirty_odom_y =
true;
1525 void OdometryData6D::Editor::mark_dirty_odom_z()
1527 if (is_dirty_odom_z) {
1531 is_dirty_odom_z =
true;
1536 void OdometryData6D::Editor::mark_dirty_odom_roll()
1538 if (is_dirty_odom_roll) {
1542 is_dirty_odom_roll =
true;
1547 void OdometryData6D::Editor::mark_dirty_odom_pitch()
1549 if (is_dirty_odom_pitch) {
1553 is_dirty_odom_pitch =
true;
1558 void OdometryData6D::Editor::mark_dirty_odom_yaw()
1560 if (is_dirty_odom_yaw) {
1564 is_dirty_odom_yaw =
true;
1569 void OdometryData6D::Editor::mark_dirty_base_vel_x()
1571 if (is_dirty_base_vel_x) {
1575 is_dirty_base_vel_x =
true;
1580 void OdometryData6D::Editor::mark_dirty_base_vel_y()
1582 if (is_dirty_base_vel_y) {
1586 is_dirty_base_vel_y =
true;
1591 void OdometryData6D::Editor::mark_dirty_base_vel_z()
1593 if (is_dirty_base_vel_z) {
1597 is_dirty_base_vel_z =
true;
1602 void OdometryData6D::Editor::mark_dirty_base_vel_roll()
1604 if (is_dirty_base_vel_roll) {
1608 is_dirty_base_vel_roll =
true;
1613 void OdometryData6D::Editor::mark_dirty_base_vel_pitch()
1615 if (is_dirty_base_vel_pitch) {
1619 is_dirty_base_vel_pitch =
true;
1624 void OdometryData6D::Editor::mark_dirty_base_vel_yaw()
1626 if (is_dirty_base_vel_yaw) {
1630 is_dirty_base_vel_yaw =
true;
1635 void OdometryData6D::Editor::mark_dirty_odom_vel_x()
1637 if (is_dirty_odom_vel_x) {
1641 is_dirty_odom_vel_x =
true;
1646 void OdometryData6D::Editor::mark_dirty_odom_vel_y()
1648 if (is_dirty_odom_vel_y) {
1652 is_dirty_odom_vel_y =
true;
1657 void OdometryData6D::Editor::mark_dirty_odom_vel_z()
1659 if (is_dirty_odom_vel_z) {
1663 is_dirty_odom_vel_z =
true;
1668 void OdometryData6D::Editor::mark_dirty_odom_vel_roll()
1670 if (is_dirty_odom_vel_roll) {
1674 is_dirty_odom_vel_roll =
true;
1679 void OdometryData6D::Editor::mark_dirty_odom_vel_pitch()
1681 if (is_dirty_odom_vel_pitch) {
1685 is_dirty_odom_vel_pitch =
true;
1690 void OdometryData6D::Editor::mark_dirty_odom_vel_yaw()
1692 if (is_dirty_odom_vel_yaw) {
1696 is_dirty_odom_vel_yaw =
true;
1701 void OdometryData6D::Editor::dirty_flags(
bool flag)
1704 is_dirty_odom_x = flag;
1705 is_dirty_odom_y = flag;
1706 is_dirty_odom_z = flag;
1707 is_dirty_odom_roll = flag;
1708 is_dirty_odom_pitch = flag;
1709 is_dirty_odom_yaw = flag;
1710 is_dirty_base_vel_x = flag;
1711 is_dirty_base_vel_y = flag;
1712 is_dirty_base_vel_z = flag;
1713 is_dirty_base_vel_roll = flag;
1714 is_dirty_base_vel_pitch = flag;
1715 is_dirty_base_vel_yaw = flag;
1716 is_dirty_odom_vel_x = flag;
1717 is_dirty_odom_vel_y = flag;
1718 is_dirty_odom_vel_z = flag;
1719 is_dirty_odom_vel_roll = flag;
1720 is_dirty_odom_vel_pitch = flag;
1721 is_dirty_odom_vel_yaw = flag;
1722 dirty_count = flag ? 18 : 0;
double get_odom_y() const
void set_odom_pitch(const double odom_pitch)
double get_odom_roll() const
void set_odom_vel_pitch(const double odom_vel_pitch)
double get_base_vel_y() const
virtual bool will_set_odom_vel_x()
double get_odom_vel_roll() const
virtual bool will_set_odom_y()
virtual bool will_set_odom_vel_yaw()
virtual bool will_set_odom_vel_pitch()
virtual bool did_set_base_vel_y()
virtual bool did_set_base_vel_z()
bool read(yarp::os::ConnectionReader &connection) override
Read this object from a network connection.
virtual bool will_set_base_vel_x()
virtual bool did_set_base_vel_roll()
bool edit(OdometryData6D &obj, bool dirty=true)
virtual bool did_set_odom_vel_y()
double get_odom_z() const
virtual bool did_set_base_vel_yaw()
virtual bool will_set_odom_yaw()
double get_base_vel_pitch() const
virtual bool will_set_odom_vel_roll()
virtual bool will_set_odom_vel_y()
double get_odom_yaw() const
void set_odom_x(const double odom_x)
void set_base_vel_x(const double base_vel_x)
virtual bool did_set_odom_vel_pitch()
virtual bool will_set_base_vel_y()
virtual bool will_set_odom_z()
virtual bool will_set_odom_x()
virtual bool will_set_odom_pitch()
virtual bool did_set_base_vel_x()
virtual bool did_set_odom_vel_z()
virtual bool will_set_odom_vel_z()
double get_odom_vel_x() const
virtual bool did_set_odom_vel_roll()
void set_odom_vel_x(const double odom_vel_x)
virtual bool did_set_odom_x()
virtual bool did_set_base_vel_pitch()
void set_base_vel_pitch(const double base_vel_pitch)
virtual bool did_set_odom_vel_yaw()
double get_odom_vel_yaw() const
void set_odom_y(const double odom_y)
void set_odom_yaw(const double odom_yaw)
void set_odom_z(const double odom_z)
virtual bool will_set_base_vel_pitch()
void set_base_vel_yaw(const double base_vel_yaw)
double get_base_vel_z() const
double get_odom_x() const
double get_base_vel_roll() const
double get_odom_vel_pitch() const
virtual bool will_set_base_vel_z()
double get_odom_pitch() const
bool write(yarp::os::ConnectionWriter &connection) const override
Write this object to a network connection.
double get_odom_vel_y() const
void set_base_vel_z(const double base_vel_z)
void set_base_vel_y(const double base_vel_y)
virtual bool did_set_odom_yaw()
double get_base_vel_yaw() const
void set_odom_vel_y(const double odom_vel_y)
void set_odom_vel_roll(const double odom_vel_roll)
void set_odom_vel_yaw(const double odom_vel_yaw)
virtual bool did_set_odom_z()
virtual bool did_set_odom_y()
void set_odom_vel_z(const double odom_vel_z)
void set_base_vel_roll(const double base_vel_roll)
virtual bool did_set_odom_pitch()
void set_odom_roll(const double odom_roll)
virtual bool will_set_base_vel_yaw()
virtual bool did_set_odom_vel_x()
virtual bool did_set_odom_roll()
virtual bool will_set_odom_roll()
virtual bool will_set_base_vel_roll()
double get_odom_vel_z() const
double get_base_vel_x() const
double base_vel_x
velocity of the robot [m/s] expressed in the robot reference frame
std::string toString() const
double odom_yaw
orientation the robot [deg], expressed in the world reference frame
double base_vel_yaw
angular velocity of the robot [deg/s] expressed in the robot reference frame
double base_vel_roll
angular velocity of the robot [deg/s] expressed in the robot reference frame
double base_vel_y
velocity of the robot [m/s] expressed in the robot reference frame
double odom_y
position of the robot [m], expressed in the world reference frame
bool read(yarp::os::idl::WireReader &reader) override
double odom_pitch
orientation the robot [deg], expressed in the world reference frame
double odom_vel_z
velocity of the robot [m/s] expressed in the world reference frame
double odom_vel_x
velocity of the robot [m/s] expressed in the world reference frame
double odom_vel_y
velocity of the robot [m/s] expressed in the world reference frame
double odom_roll
orientation the robot [deg], expressed in the world reference frame
double odom_z
position of the robot [m], expressed in the world reference frame
bool write(const yarp::os::idl::WireWriter &writer) const override
double odom_x
position of the robot [m], expressed in the world reference frame
double odom_vel_pitch
angular velocity of the robot [deg/s] expressed in the world reference frame
double odom_vel_yaw
angular velocity of the robot [deg/s] expressed in the world reference frame
double odom_vel_roll
angular velocity of the robot [deg/s] expressed in the world reference frame
double base_vel_pitch
angular velocity of the robot [deg/s] expressed in the robot reference frame
double base_vel_z
velocity of the robot [m/s] expressed in the robot reference frame
A simple collection of objects that can be described and transmitted in a portable way.
bool read(ConnectionReader &reader) override
Set the bottle's value based on input from a network connection.
std::string toString() const override
Gives a human-readable textual representation of the bottle.
An interface for reading from a network connection.
An interface for writing to a network connection.
bool setOwner(yarp::os::PortReader &owner)
Set the owner of this WireLink.
yarp::os::WireLink & yarp()
Get YARP state associated with this object.
IDL-friendly connection reader.
bool readString(std::string &str, bool *is_vocab=nullptr)
bool readFloat64(yarp::conf::float64_t &x)
IDL-friendly connection writer.
bool writeVocab32(yarp::conf::vocab32_t x) const
bool writeListHeader(int len) const
bool writeTag(const char *tag, int split, int len) const
bool writeFloat64(yarp::conf::float64_t x) const
bool writeString(const std::string &tag) const
bool isValid()
Check if time is valid (non-zero).
The main, catch-all namespace for YARP.