gusimplewhiteboard
NaoSonarProtectedWalkCommand.hpp
Go to the documentation of this file.
1/*
2 * file NaoSonarProtectedWalkCommand.hpp
3 *
4 * This file was generated by classgenerator from nao_sonar_protected_walk_command.gen.
5 * DO NOT CHANGE MANUALLY!
6 *
7 * Copyright © 2021 Vlad Estivill-Castro. All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions
11 * are met:
12 *
13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer.
15 *
16 * 2. Redistributions in binary form must reproduce the above
17 * copyright notice, this list of conditions and the following
18 * disclaimer in the documentation and/or other materials
19 * provided with the distribution.
20 *
21 * 3. All advertising materials mentioning features or use of this
22 * software must display the following acknowledgement:
23 *
24 * This product includes software developed by Vlad Estivill-Castro.
25 *
26 * 4. Neither the name of the author nor the names of contributors
27 * may be used to endorse or promote products derived from this
28 * software without specific prior written permission.
29 *
30 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
31 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
32 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
33 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
34 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
35 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
36 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
37 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
38 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
39 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
40 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
41 *
42 * -----------------------------------------------------------------------
43 * This program is free software; you can redistribute it and/or
44 * modify it under the above terms or under the terms of the GNU
45 * General Public License as published by the Free Software Foundation;
46 * either version 2 of the License, or (at your option) any later version.
47 *
48 * This program is distributed in the hope that it will be useful,
49 * but WITHOUT ANY WARRANTY; without even the implied warranty of
50 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
51 * GNU General Public License for more details.
52 *
53 * You should have received a copy of the GNU General Public License
54 * along with this program; if not, see http://www.gnu.org/licenses/
55 * or write to the Free Software Foundation, Inc., 51 Franklin Street,
56 * Fifth Floor, Boston, MA 02110-1301, USA.
57 *
58 */
59
60#ifndef guWhiteboard_NaoSonarProtectedWalkCommand_h
61#define guWhiteboard_NaoSonarProtectedWalkCommand_h
62
63#ifdef WHITEBOARD_POSTER_STRING_CONVERSION
64#include <cstdlib>
65#include <string.h>
66#include <sstream>
67#endif
68
69#include <gu_util.h>
71
72#undef guWhiteboard_NaoSonarProtectedWalkCommand_DEFINED
73#define guWhiteboard_NaoSonarProtectedWalkCommand_DEFINED
74
75#undef NaoSonarProtectedWalkCommand_DEFINED
76#define NaoSonarProtectedWalkCommand_DEFINED
77
78
79
80namespace guWhiteboard {
81
86
87 private:
88
92 void init(bool t_walkEngineOn = false, int16_t t_forward = 0, int16_t t_left = 0, int8_t t_turn = 0, int8_t t_priority = 1, bool t_exactStepsRequested = false, uint8_t t_speed = 100, bool t_isFast = false, bool t_kickWithLeftFoot = true, bool t_useShuffle = true, bool t_leftArmLimp = false, bool t_rightArmLimp = false, uint8_t t_power = 0, uint8_t t_odometryResetCounter = 0, uint8_t t_bend = 0) {
93 set_walkEngineOn(t_walkEngineOn);
94 set_forward(t_forward);
95 set_left(t_left);
96 set_turn(t_turn);
97 set_priority(t_priority);
98 set_exactStepsRequested(t_exactStepsRequested);
99 set_speed(t_speed);
100 set_isFast(t_isFast);
101 set_kickWithLeftFoot(t_kickWithLeftFoot);
102 set_useShuffle(t_useShuffle);
103 set_leftArmLimp(t_leftArmLimp);
104 set_rightArmLimp(t_rightArmLimp);
105 set_power(t_power);
106 set_odometryResetCounter(t_odometryResetCounter);
107 set_bend(t_bend);
108 }
109
110 public:
111
115 NaoSonarProtectedWalkCommand(bool t_walkEngineOn = false, int16_t t_forward = 0, int16_t t_left = 0, int8_t t_turn = 0, int8_t t_priority = 1, bool t_exactStepsRequested = false, uint8_t t_speed = 100, bool t_isFast = false, bool t_kickWithLeftFoot = true, bool t_useShuffle = true, bool t_leftArmLimp = false, bool t_rightArmLimp = false, uint8_t t_power = 0, uint8_t t_odometryResetCounter = 0, uint8_t t_bend = 0) {
116 this->init(t_walkEngineOn, t_forward, t_left, t_turn, t_priority, t_exactStepsRequested, t_speed, t_isFast, t_kickWithLeftFoot, t_useShuffle, t_leftArmLimp, t_rightArmLimp, t_power, t_odometryResetCounter, t_bend);
117 }
118
123 this->init(t_other.walkEngineOn(), t_other.forward(), t_other.left(), t_other.turn(), t_other.priority(), t_other.exactStepsRequested(), t_other.speed(), t_other.isFast(), t_other.kickWithLeftFoot(), t_other.useShuffle(), t_other.leftArmLimp(), t_other.rightArmLimp(), t_other.power(), t_other.odometryResetCounter(), t_other.bend());
124 }
125
130 this->init(t_other.walkEngineOn, t_other.forward, t_other.left, t_other.turn, t_other.priority, t_other.exactStepsRequested, t_other.speed, t_other.isFast, t_other.kickWithLeftFoot, t_other.useShuffle, t_other.leftArmLimp, t_other.rightArmLimp, t_other.power, t_other.odometryResetCounter, t_other.bend);
131 }
132
137 this->init(t_other.walkEngineOn(), t_other.forward(), t_other.left(), t_other.turn(), t_other.priority(), t_other.exactStepsRequested(), t_other.speed(), t_other.isFast(), t_other.kickWithLeftFoot(), t_other.useShuffle(), t_other.leftArmLimp(), t_other.rightArmLimp(), t_other.power(), t_other.odometryResetCounter(), t_other.bend());
138 return *this;
139 }
140
145 this->init(t_other.walkEngineOn, t_other.forward, t_other.left, t_other.turn, t_other.priority, t_other.exactStepsRequested, t_other.speed, t_other.isFast, t_other.kickWithLeftFoot, t_other.useShuffle, t_other.leftArmLimp, t_other.rightArmLimp, t_other.power, t_other.odometryResetCounter, t_other.bend);
146 return *this;
147 }
148
149 bool operator ==(const NaoSonarProtectedWalkCommand &t_other) const
150 {
151 return walkEngineOn() == t_other.walkEngineOn()
152 && forward() == t_other.forward()
153 && left() == t_other.left()
154 && turn() == t_other.turn()
155 && priority() == t_other.priority()
157 && speed() == t_other.speed()
158 && isFast() == t_other.isFast()
159 && kickWithLeftFoot() == t_other.kickWithLeftFoot()
160 && useShuffle() == t_other.useShuffle()
161 && leftArmLimp() == t_other.leftArmLimp()
162 && rightArmLimp() == t_other.rightArmLimp()
163 && power() == t_other.power()
165 && bend() == t_other.bend();
166 }
167
168 bool operator !=(const NaoSonarProtectedWalkCommand &t_other) const
169 {
170 return !(*this == t_other);
171 }
172
174 {
175 return *this == NaoSonarProtectedWalkCommand(t_other);
176 }
177
179 {
180 return !(*this == t_other);
181 }
182
184 {
186 }
187
188 const bool & walkEngineOn() const
189 {
191 }
192
193 void set_walkEngineOn(const bool &t_newValue)
194 {
196 }
197
198 int16_t & forward()
199 {
201 }
202
203 const int16_t & forward() const
204 {
206 }
207
208 void set_forward(const int16_t &t_newValue)
209 {
211 }
212
213 int16_t & left()
214 {
216 }
217
218 const int16_t & left() const
219 {
221 }
222
223 void set_left(const int16_t &t_newValue)
224 {
226 }
227
228 int8_t & turn()
229 {
231 }
232
233 const int8_t & turn() const
234 {
236 }
237
238 void set_turn(const int8_t &t_newValue)
239 {
241 }
242
243 int8_t & priority()
244 {
246 }
247
248 const int8_t & priority() const
249 {
251 }
252
253 void set_priority(const int8_t &t_newValue)
254 {
256 }
257
259 {
261 }
262
263 const bool & exactStepsRequested() const
264 {
266 }
267
268 void set_exactStepsRequested(const bool &t_newValue)
269 {
271 }
272
273 uint8_t & speed()
274 {
276 }
277
278 const uint8_t & speed() const
279 {
281 }
282
283 void set_speed(const uint8_t &t_newValue)
284 {
286 }
287
288 bool & isFast()
289 {
291 }
292
293 const bool & isFast() const
294 {
296 }
297
298 void set_isFast(const bool &t_newValue)
299 {
301 }
302
304 {
306 }
307
308 const bool & kickWithLeftFoot() const
309 {
311 }
312
313 void set_kickWithLeftFoot(const bool &t_newValue)
314 {
316 }
317
318 bool & useShuffle()
319 {
321 }
322
323 const bool & useShuffle() const
324 {
326 }
327
328 void set_useShuffle(const bool &t_newValue)
329 {
331 }
332
333 bool & leftArmLimp()
334 {
336 }
337
338 const bool & leftArmLimp() const
339 {
341 }
342
343 void set_leftArmLimp(const bool &t_newValue)
344 {
346 }
347
349 {
351 }
352
353 const bool & rightArmLimp() const
354 {
356 }
357
358 void set_rightArmLimp(const bool &t_newValue)
359 {
361 }
362
363 uint8_t & power()
364 {
366 }
367
368 const uint8_t & power() const
369 {
371 }
372
373 void set_power(const uint8_t &t_newValue)
374 {
376 }
377
379 {
381 }
382
383 const uint8_t & odometryResetCounter() const
384 {
386 }
387
388 void set_odometryResetCounter(const uint8_t &t_newValue)
389 {
391 }
392
393 uint8_t & bend()
394 {
396 }
397
398 const uint8_t & bend() const
399 {
401 }
402
403 void set_bend(const uint8_t &t_newValue)
404 {
406 }
407
408#ifdef WHITEBOARD_POSTER_STRING_CONVERSION
412 NaoSonarProtectedWalkCommand(const std::string &t_str) {
413 this->init();
414 this->from_string(t_str);
415 }
416
417 std::string description() {
418#ifdef USE_WB_NAO_SONAR_PROTECTED_WALK_COMMAND_C_CONVERSION
420 wb_nao_sonar_protected_walk_command_description(this, buffer, sizeof(buffer));
421 std::string descr = buffer;
422 return descr;
423#else
424 std::ostringstream ss;
425 ss << "walkEngineOn=" << (this->walkEngineOn() ? "true" : "false");
426 ss << ", ";
427 ss << "forward=" << static_cast<signed>(this->forward());
428 ss << ", ";
429 ss << "left=" << static_cast<signed>(this->left());
430 ss << ", ";
431 ss << "turn=" << static_cast<signed>(this->turn());
432 ss << ", ";
433 ss << "priority=" << static_cast<signed>(this->priority());
434 ss << ", ";
435 ss << "exactStepsRequested=" << (this->exactStepsRequested() ? "true" : "false");
436 ss << ", ";
437 ss << "speed=" << static_cast<unsigned>(this->speed());
438 ss << ", ";
439 ss << "isFast=" << (this->isFast() ? "true" : "false");
440 ss << ", ";
441 ss << "kickWithLeftFoot=" << (this->kickWithLeftFoot() ? "true" : "false");
442 ss << ", ";
443 ss << "useShuffle=" << (this->useShuffle() ? "true" : "false");
444 ss << ", ";
445 ss << "leftArmLimp=" << (this->leftArmLimp() ? "true" : "false");
446 ss << ", ";
447 ss << "rightArmLimp=" << (this->rightArmLimp() ? "true" : "false");
448 ss << ", ";
449 ss << "power=" << static_cast<unsigned>(this->power());
450 ss << ", ";
451 ss << "odometryResetCounter=" << static_cast<unsigned>(this->odometryResetCounter());
452 ss << ", ";
453 ss << "bend=" << static_cast<unsigned>(this->bend());
454 return ss.str();
455#endif
456 }
457
458 std::string to_string() {
459#ifdef USE_WB_NAO_SONAR_PROTECTED_WALK_COMMAND_C_CONVERSION
461 wb_nao_sonar_protected_walk_command_to_string(this, buffer, sizeof(buffer));
462 std::string toString = buffer;
463 return toString;
464#else
465 std::ostringstream ss;
466 ss << (this->walkEngineOn() ? "true" : "false");
467 ss << ", ";
468 ss << static_cast<signed>(this->forward());
469 ss << ", ";
470 ss << static_cast<signed>(this->left());
471 ss << ", ";
472 ss << static_cast<signed>(this->turn());
473 ss << ", ";
474 ss << static_cast<signed>(this->priority());
475 ss << ", ";
476 ss << (this->exactStepsRequested() ? "true" : "false");
477 ss << ", ";
478 ss << static_cast<unsigned>(this->speed());
479 ss << ", ";
480 ss << (this->isFast() ? "true" : "false");
481 ss << ", ";
482 ss << (this->kickWithLeftFoot() ? "true" : "false");
483 ss << ", ";
484 ss << (this->useShuffle() ? "true" : "false");
485 ss << ", ";
486 ss << (this->leftArmLimp() ? "true" : "false");
487 ss << ", ";
488 ss << (this->rightArmLimp() ? "true" : "false");
489 ss << ", ";
490 ss << static_cast<unsigned>(this->power());
491 ss << ", ";
492 ss << static_cast<unsigned>(this->odometryResetCounter());
493 ss << ", ";
494 ss << static_cast<unsigned>(this->bend());
495 return ss.str();
496#endif
497 }
498
499#ifdef USE_WB_NAO_SONAR_PROTECTED_WALK_COMMAND_C_CONVERSION
500 void from_string(const std::string &t_str) {
502#else
503 void from_string(const std::string &t_str) {
504 char * str_cstr = const_cast<char *>(t_str.c_str());
505 size_t temp_length = strlen(str_cstr);
506 int length = (temp_length <= INT_MAX) ? static_cast<int>(static_cast<ssize_t>(temp_length)) : -1;
507 if (length < 1 || length > NAO_SONAR_PROTECTED_WALK_COMMAND_DESC_BUFFER_SIZE) {
508 return;
509 }
511 char* var_str = &var_str_buffer[0];
512 char key_buffer[21];
513 char* key = &key_buffer[0];
514 int bracecount = 0;
515 int startVar = 0;
516 int index = 0;
517 int startKey = 0;
518 int endKey = -1;
519 int varIndex = 0;
520 if (index == 0 && str_cstr[0] == '{') {
521 index = 1;
522 }
523 startVar = index;
524 startKey = startVar;
525 do {
526 for (int i = index; i < length; i++) {
527 index = i + 1;
528 if (bracecount == 0 && str_cstr[i] == '=') {
529 endKey = i - 1;
530 startVar = index;
531 continue;
532 }
533 if (bracecount == 0 && isspace(str_cstr[i])) {
534 startVar = index;
535 if (endKey == -1) {
536 startKey = index;
537 }
538 continue;
539 }
540 if (bracecount == 0 && str_cstr[i] == ',') {
541 index = i - 1;
542 break;
543 }
544 if (str_cstr[i] == '{') {
545 bracecount++;
546 continue;
547 }
548 if (str_cstr[i] == '}') {
549 bracecount--;
550 if (bracecount < 0) {
551 index = i - 1;
552 break;
553 }
554 }
555 if (i == length - 1) {
556 index = i;
557 }
558 }
559 if (endKey >= startKey && endKey - startKey < length) {
560 strncpy(key, str_cstr + startKey, static_cast<size_t>((endKey - startKey) + 1));
561 key[(endKey - startKey) + 1] = 0;
562 } else {
563 key[0] = 0;
564 }
565 strncpy(var_str, str_cstr + startVar, static_cast<size_t>((index - startVar) + 1));
566 var_str[(index - startVar) + 1] = 0;
567 bracecount = 0;
568 index += 2;
569 startVar = index;
570 startKey = startVar;
571 endKey = -1;
572 if (strlen(key) > 0) {
573 if (0 == strcmp("walkEngineOn", key)) {
574 varIndex = 0;
575 } else if (0 == strcmp("forward", key)) {
576 varIndex = 1;
577 } else if (0 == strcmp("left", key)) {
578 varIndex = 2;
579 } else if (0 == strcmp("turn", key)) {
580 varIndex = 3;
581 } else if (0 == strcmp("priority", key)) {
582 varIndex = 4;
583 } else if (0 == strcmp("exactStepsRequested", key)) {
584 varIndex = 5;
585 } else if (0 == strcmp("speed", key)) {
586 varIndex = 6;
587 } else if (0 == strcmp("isFast", key)) {
588 varIndex = 7;
589 } else if (0 == strcmp("kickWithLeftFoot", key)) {
590 varIndex = 8;
591 } else if (0 == strcmp("useShuffle", key)) {
592 varIndex = 9;
593 } else if (0 == strcmp("leftArmLimp", key)) {
594 varIndex = 10;
595 } else if (0 == strcmp("rightArmLimp", key)) {
596 varIndex = 11;
597 } else if (0 == strcmp("power", key)) {
598 varIndex = 12;
599 } else if (0 == strcmp("odometryResetCounter", key)) {
600 varIndex = 13;
601 } else if (0 == strcmp("bend", key)) {
602 varIndex = 14;
603 } else {
604 varIndex = -1;
605 }
606 }
607 switch (varIndex) {
608 case -1: { break; }
609 case 0:
610 {
611 this->set_walkEngineOn(strcmp(var_str, "true") == 0 || strcmp(var_str, "1") == 0);
612 break;
613 }
614 case 1:
615 {
616 this->set_forward(static_cast<int16_t>(atoi(var_str)));
617 break;
618 }
619 case 2:
620 {
621 this->set_left(static_cast<int16_t>(atoi(var_str)));
622 break;
623 }
624 case 3:
625 {
626 this->set_turn(static_cast<int8_t>(atoi(var_str)));
627 break;
628 }
629 case 4:
630 {
631 this->set_priority(static_cast<int8_t>(atoi(var_str)));
632 break;
633 }
634 case 5:
635 {
636 this->set_exactStepsRequested(strcmp(var_str, "true") == 0 || strcmp(var_str, "1") == 0);
637 break;
638 }
639 case 6:
640 {
641 this->set_speed(static_cast<uint8_t>(atoi(var_str)));
642 break;
643 }
644 case 7:
645 {
646 this->set_isFast(strcmp(var_str, "true") == 0 || strcmp(var_str, "1") == 0);
647 break;
648 }
649 case 8:
650 {
651 this->set_kickWithLeftFoot(strcmp(var_str, "true") == 0 || strcmp(var_str, "1") == 0);
652 break;
653 }
654 case 9:
655 {
656 this->set_useShuffle(strcmp(var_str, "true") == 0 || strcmp(var_str, "1") == 0);
657 break;
658 }
659 case 10:
660 {
661 this->set_leftArmLimp(strcmp(var_str, "true") == 0 || strcmp(var_str, "1") == 0);
662 break;
663 }
664 case 11:
665 {
666 this->set_rightArmLimp(strcmp(var_str, "true") == 0 || strcmp(var_str, "1") == 0);
667 break;
668 }
669 case 12:
670 {
671 this->set_power(static_cast<uint8_t>(atoi(var_str)));
672 break;
673 }
674 case 13:
675 {
676 this->set_odometryResetCounter(static_cast<uint8_t>(atoi(var_str)));
677 break;
678 }
679 case 14:
680 {
681 this->set_bend(static_cast<uint8_t>(atoi(var_str)));
682 break;
683 }
684 }
685 if (varIndex >= 0) {
686 varIndex++;
687 }
688 } while(index < length);
689#endif
690 }
691#endif
692
693 public:
694
702 static NaoSonarProtectedWalkCommand walkProtected(int8_t t_priority, int16_t t_forward, int16_t t_left, int8_t t_turn) {
704 cmd.set_priority(t_priority);
705 cmd.set_walkEngineOn(true);
706 cmd.set_forward(t_forward);
707 cmd.set_left(t_left);
708 cmd.set_turn(t_turn);
709 cmd.set_bend(1);
710 return cmd;
711 }
712
720 static NaoSonarProtectedWalkCommand walkProtectedPrecisely(int8_t t_priority, int16_t t_forward, int16_t t_left, int8_t t_turn) {
721 NaoSonarProtectedWalkCommand cmd = walkProtected(t_priority, t_forward, t_left, t_turn);
722 cmd.set_exactStepsRequested(true);
723 return cmd;
724 }
725
732 cmd.set_priority(1);
733 cmd.set_walkEngineOn(true);
734 cmd.set_forward(0);
735 cmd.set_left(0);
736 cmd.set_turn(0);
737 cmd.set_bend(1);
738 return cmd;
739 }
740
747 cmd.set_walkEngineOn(true);
748 cmd.set_priority(1);
749 cmd.set_bend(1);
750 return cmd;
751 }
752
753
754
761 cmd.set_priority(1);
762 cmd.set_walkEngineOn(true);
763 cmd.set_bend(0);
764 return cmd;
765 }
766
773 cmd.set_priority(1);
774 cmd.set_walkEngineOn(false);
775 return cmd;
776 }
777 };
778
779}
780
781#endif
Provides a C++ wrapper around wb_nao_sonar_protected_walk_command.
NaoSonarProtectedWalkCommand(const struct wb_nao_sonar_protected_walk_command &t_other)
Copy Constructor.
static NaoSonarProtectedWalkCommand disconnectWalk()
Convenience function to disconnect the walk engine from the DCM.
NaoSonarProtectedWalkCommand & operator=(const NaoSonarProtectedWalkCommand &t_other)
Copy Assignment Operator.
static NaoSonarProtectedWalkCommand stop()
Convenience function to make the nao stop walking.
static NaoSonarProtectedWalkCommand standWithMinimalStiffness()
Convenience function to make the nao stand in the 'STANDING' position, upright with minimal stiffness...
static NaoSonarProtectedWalkCommand standWithStiffness()
Convenience function to make the nao stand in the 'walk' position (slightly crouched),...
NaoSonarProtectedWalkCommand(bool t_walkEngineOn=false, int16_t t_forward=0, int16_t t_left=0, int8_t t_turn=0, int8_t t_priority=1, bool t_exactStepsRequested=false, uint8_t t_speed=100, bool t_isFast=false, bool t_kickWithLeftFoot=true, bool t_useShuffle=true, bool t_leftArmLimp=false, bool t_rightArmLimp=false, uint8_t t_power=0, uint8_t t_odometryResetCounter=0, uint8_t t_bend=0)
Create a new NaoSonarProtectedWalkCommand.
bool operator!=(const NaoSonarProtectedWalkCommand &t_other) const
static NaoSonarProtectedWalkCommand walkProtectedPrecisely(int8_t t_priority, int16_t t_forward, int16_t t_left, int8_t t_turn)
Convenience function to make the nao walk, with precise step distances.
bool operator==(const NaoSonarProtectedWalkCommand &t_other) const
static NaoSonarProtectedWalkCommand walkProtected(int8_t t_priority, int16_t t_forward, int16_t t_left, int8_t t_turn)
WHITEBOARD_POSTER_STRING_CONVERSION.
NaoSonarProtectedWalkCommand(const std::string &t_str)
String Constructor.
NaoSonarProtectedWalkCommand(const NaoSonarProtectedWalkCommand &t_other)
Copy Constructor.
/file APM_Interface.h
bool rightArmLimp
lower stiffness in the arms when walking, allows the arm to move a little more.
bool leftArmLimp
lower stiffness in the arms when walking, allows the arm to move a little more.
int8_t priority
subsumption priority 1: unprotected walk, command unmodified.
bool useShuffle
limits the step height so the robot 'shuffles' instead of taking larger steps.
int16_t left
[-200 - 200] step-size(mm) per second, limited to +/- 200mm/step
uint8_t power
[0 - 100] stiffness, auto set to minimum needed values.
bool exactStepsRequested
No ratcheting, no speed 'buildup', just full step sizes.
uint8_t odometryResetCounter
Odometry will reset any time this is changed or incremented.
int16_t forward
[-300 - 300] step-size(mm) per second, limited to +/- 300mm/step
uint8_t bend
[0 - 1] controls what the robot does when stopped, 0 == STAND and lower stiffness,...
int8_t turn
[-85 - 85] step-size(mm) per second, limited to +/- 85deg/step
uint8_t speed
[0 - 100] modifier for forward etc.
struct wb_nao_sonar_protected_walk_command * wb_nao_sonar_protected_walk_command_from_string(struct wb_nao_sonar_protected_walk_command *self, const char *str)
Convert from a string.
const char * wb_nao_sonar_protected_walk_command_to_string(const struct wb_nao_sonar_protected_walk_command *self, char *toString, size_t bufferSize)
Convert to a string.
const char * wb_nao_sonar_protected_walk_command_description(const struct wb_nao_sonar_protected_walk_command *self, char *descString, size_t bufferSize)
Convert to a description string.
#define NAO_SONAR_PROTECTED_WALK_COMMAND_DESC_BUFFER_SIZE
#define NAO_SONAR_PROTECTED_WALK_COMMAND_TO_STRING_BUFFER_SIZE