{"id":1002,"date":"2018-03-21T14:43:32","date_gmt":"2018-03-21T05:43:32","guid":{"rendered":"https:\/\/www.kdel.org\/wp\/?p=1002"},"modified":"2018-03-21T14:43:32","modified_gmt":"2018-03-21T05:43:32","slug":"btr2017","status":"publish","type":"post","link":"https:\/\/www.kdel.org\/wp\/?p=1002","title":{"rendered":"BTR2017"},"content":{"rendered":"<p>source codes for BTR2017.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nOnly in btr2017\/fawkes-robotino\/bin: debug.log\r\ndiff -r btr2017\/fawkes-robotino\/bin\/gazsim.bash btr2018\/fawkes-robotino\/bin\/gazsim.bash\r\n38,46d37\r\n&lt;    --team-cyan       Set cyan team name\r\n&lt;    --team-magenta\t\t Set magenta team name\r\n&lt;    --start-game      Automatically run game after initialization\r\n&lt;                      (if used with -t go into PRODUCTION phase,\r\n&lt;                       otherwise the phase will be EXPLORATION,\r\n&lt;                       optionally, &quot;--start-game=PHASE&quot; may be given\r\n&lt;                       to set the phase explicitly)\r\n&lt;                      Typically requires at least --team-cyan.\r\n&lt;    --rviz            Start Rviz\r\n75,78d65\r\n&lt; START_GAME=\r\n&lt; TEAM_CYAN=\r\n&lt; TEAM_MAGENTA=\r\n&lt; RVIZ=false\r\n80c67\r\n&lt; OPTS=$(getopt -o &quot;hx:c:lrksn:e:dm:aof:p:gvt&quot; -l &quot;ros,ros-launch-main:,ros-launch:,start-game::,team-cyan:,team-magenta:,rviz&quot; -- &quot;$@&quot;)\r\n---\r\n&gt; OPTS=$(getopt -o &quot;hx:c:lrksn:e:dm:aof:p:gvt&quot; -l &quot;ros,ros-launch-main:,ros-launch:&quot; -- &quot;$@&quot;)\r\n170,186d156\r\n&lt; \t --team-cyan)\r\n&lt; \t     TEAM_CYAN=&quot;$OPTARG&quot;\r\n&lt; \t     ;;\r\n&lt; \t --team-magenta)\r\n&lt; \t     TEAM_MAGENTA=&quot;$OPTARG&quot;\r\n&lt; \t     ;;\r\n&lt; \t --start-game)\r\n&lt; \t\t\t if &#x5B; -n &quot;$OPTARG&quot; ]; then\r\n&lt; \t\t\t\t\t START_GAME=&quot;$OPTARG&quot;\r\n&lt; \t\t\t else\r\n&lt; \t\t\t\t\t if &#x5B; -n &quot;$SKIP_EXPLORATION&quot; ]; then\r\n&lt; \t\t\t\t\t\t\t START_GAME=&quot;PRODUCTION&quot;\r\n&lt; \t\t\t\t\t else\r\n&lt; \t\t\t\t\t\t\t START_GAME=&quot;EXPLORATION&quot;\r\n&lt; \t\t\t\t\t fi\r\n&lt; \t\t\t fi\r\n&lt; \t     ;;\r\n196,198d165\r\n&lt;          --rviz)\r\n&lt;              RVIZ=true\r\n&lt;              ;;\r\n236d202\r\n&lt;     killall rviz\r\n254c220\r\n&lt;     rm \/dev\/shm\/*fawkes* 2&gt;&amp;1 &gt;\/dev\/null\r\n---\r\n&gt;     rm \/dev\/shm\/*fawkes*\r\n310,315d275\r\n&lt;     if $RVIZ\r\n&lt;     then\r\n&lt; #        OPEN_COMMAND=&quot;$OPEN_COMMAND --tab -e 'bash -c \\&quot;$startup_script_location -x rviz $KEEP\\&quot;'&quot;\r\n&lt;         OPEN_COMMAND=&quot;$OPEN_COMMAND --tab -e 'bash -c \\&quot;export TAB_START_TIME=$(date +%s); $script_path\/wait-at-first-start.bash 7; $startup_script_location -x rviz $KEEP\\&quot;'&quot;\r\n&lt;     fi \r\n&lt; \r\n317c277\r\n&lt;     echo $OPEN_COMMAND\r\n---\r\n&gt;     #echo $OPEN_COMMAND\r\n323c283\r\n&lt; \tsleep 5s\r\n---\r\n&gt; \tsleep 15s\r\n331,338d290\r\n&lt; \t\tif &#x5B; -n &quot;$START_GAME&quot; ]; then\r\n&lt; \t\t\t\tif &#x5B; ! -x $LLSF_REFBOX_DIR\/bin\/rcll-refbox-instruct ]; then\r\n&lt; \t\t\t\t\t\techo &quot;rcll-refbox-instruct not found, not built or old version?&quot;\r\n&lt; \t\t\t\telse\r\n&lt; \t\t\t\t\t\techo &quot;Starting game (Phase: $START_GAME ${TEAM_CYAN:+Cyan: ${TEAM_CYAN}}${TEAM_MAGENTA:+ Magenta: ${TEAM_MAGENTA}})&quot;\r\n&lt; \t\t\t\t\t\t$LLSF_REFBOX_DIR\/bin\/rcll-refbox-instruct -p $START_GAME -s RUNNING ${TEAM_CYAN:+-c ${TEAM_CYAN}}${TEAM_MAGENTA:+-m ${TEAM_MAGENTA}}\r\n&lt; \t\t\t\tfi\r\n&lt; \t\tfi\r\ndiff -r btr2017\/fawkes-robotino\/bin\/gazsim-publish-initial-pose.bash btr2018\/fawkes-robotino\/bin\/gazsim-publish-initial-pose.bash\r\n76c76\r\n&lt; \t\t     $set_pose -r localhost:1921 -t 2.0 --  4.5  0.5 -1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t\t   $set_pose -r localhost:1921 -t 2.0 --  3.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\n79c79\r\n&lt; \t\t     $set_pose -r localhost:1922 -t 2.0 --  5.5  0.5 -1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1922 -t 2.0 --  4.5 -0.5 0.0  0.0 0.0 0.7 0.7\r\n82c82\r\n&lt; \t\t     $set_pose -r localhost:1923 -t 2.0 --  6.5  0.5 -1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1923 -t 2.0 --  5.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\n85c85\r\n&lt; \t\t     $set_pose -r localhost:1924 -t 2.0 -- -4.5  0.5  1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1924 -t 2.0 -- -3.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\n88c88\r\n&lt; \t\t     $set_pose -r localhost:1925 -t 2.0 -- -5.5  0.5  1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1925 -t 2.0 -- -4.5 -0.5 0.0  0.0 0.0 0.7 0.7\r\n91c91\r\n&lt; \t\t     $set_pose -r localhost:1926 -t 2.0 -- -6.5  0.5  1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1926 -t 2.0 -- -5.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\ndiff -r btr2017\/fawkes-robotino\/bin\/gazsim-startup.bash btr2018\/fawkes-robotino\/bin\/gazsim-startup.bash\r\n36,37d35\r\n&lt;   ROS:\r\n&lt;    --rviz         start RVIZ\r\n159c157\r\n&lt; \t( gzserver $REPLAY $GAZEBO_WORLD_PATH &amp; ); sleep 10s; gzclient\r\n---\r\n&gt; \tgazebo $REPLAY $GAZEBO_WORLD_PATH\r\n209,212d206\r\n&lt;     rviz )\r\n&lt;         export ROS_MASTER_URI=&quot;http:\/\/localhost:11321&quot;\r\n&lt;         rviz \r\n&lt;         ;;        \r\nOnly in btr2017\/fawkes-robotino\/bin: rviz.bash\r\nOnly in btr2017\/fawkes-robotino\/bin: startBTR.sh\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/amcl.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/amcl.yaml\r\n10,11c10\r\n&lt; \r\n&lt;   #map_file: maps\/halle.png\r\n---\r\n&gt;   map_file: maps\/halle.png\r\n13,28d11\r\n&lt;   # resolution: 0.05\r\n&lt; \r\n&lt;   # -------- UTSUMI THESIS --------\r\n&lt;   # map_file: maps\/map1-432.png\r\n&lt;   # resolution: 0.0484\r\n&lt; \r\n&lt;   # -------- LLSF 2017 --------\r\n&lt;   # map_file: maps\/llsf-2017-map.png\r\n&lt;   # resolution: 0.05\r\n&lt; \r\n&lt;   # -------- RCLL 2017 --------\r\n&lt;   # map_file: maps\/rcll-2017-map.png\r\n&lt;   # resolution: 0.05\r\n&lt; \r\n&lt;   # -------- 4-floor --------\r\n&lt;   map-file: maps\/1-4-floor-map.png\r\n36,43c19,20\r\n&lt;   # origin_x: -7.0  \/\/ setting of version 2015\r\n&lt;   # origin_y: -1.1  \/\/ setting of version 2015\r\n&lt;   # origin_x: -8.0  \/\/ setting of version LLSF 2017\r\n&lt;   # origin_y:  0.0  \/\/ setting of version LLSF 2017\r\n&lt;   # origin_x: -9.5  \/\/ setting of version RCLL 2017\r\n&lt;   # origin_y: -2.0  \/\/ setting of version RCLL 2017\r\n&lt;   origin_x: 14.9\r\n&lt;   origin_y: 22.4\r\n---\r\n&gt;   origin_x: 0.0\r\n&gt;   origin_y: 0.0\r\n54c31\r\n&lt; \r\n---\r\n&gt;   \r\n59,60c36\r\n&lt;   # laser_max_range: 15.0\r\n&lt;   laser_max_range: 5.0\r\n---\r\n&gt;   laser_max_range: 15.0\r\n116,117c92\r\n&lt;   # laser_interface_id: Laser urg-filtered\r\n&lt;   laser_interface_id: Laser sweep-filtered\r\n---\r\n&gt;   laser_interface_id: Laser urg-filtered\r\n138,158c113,115\r\n&lt;   #init_pose_x: 4.5\r\n&lt;   #init_pose_y: -0.5\r\n&lt;   #init_pose_a: 1.57\r\n&lt; \r\n&lt;   # -----Initial pose 1-432 (x, y, yaw)-----\r\n&lt;   # init_pose_x: 3.97\r\n&lt;   # init_pose_y: -0.48\r\n&lt;   # init_pose_a: 1.57\r\n&lt; \r\n&lt;   # ----- Initial pose RCLL 2017 -----\r\n&lt;   # init_pose_x: 4.5\r\n&lt;   # init_pose_y: 0.5\r\n&lt;   # init_pose_a: 3.14 #1.57\r\n&lt; \r\n&lt;   # -----Initial pose 1-4floor (x, y, yaw) -----\r\n&lt;   init_pose_x: -8\r\n&lt;   init_pose_y: -21.5\r\n&lt;   init_pose_a: 3.14\r\n&lt;   # init_pose_x:\r\n&lt;   # init_pose_y:\r\n&lt;   # init_pose_a: \r\n---\r\n&gt;   init_pose_x: 4.5\r\n&gt;   init_pose_y: -0.5\r\n&gt;   init_pose_a: 1.57\r\n192,193c149\r\n&lt; \r\n&lt;     #map_file: maps\/halle-wall.png\r\n---\r\n&gt;     map_file: maps\/halle-wall.png\r\n195,210d150\r\n&lt;     #resolution: 0.05\r\n&lt; \r\n&lt;     # -------- UTSUMI THESIS --------\r\n&lt;     # map_file: maps\/map1-432.png\r\n&lt;     # resolution: 0.0484\r\n&lt; \r\n&lt;     # -------- LLSF 2017 --------\r\n&lt;     # map_file: maps\/llsf-2017-wall.png\r\n&lt;     # resolution: 0.05\r\n&lt; \r\n&lt;     # -------- RCLL 2017 --------\r\n&lt;     # map_file: maps\/rcll-2017-wall.png\r\n&lt;     # resolution: 0.05\r\n&lt; \r\n&lt;     # -------- 4-floor --------\r\n&lt;     map_file: maps\/1-4floor-wall.png\r\n218,225c158,159\r\n&lt;     # origin_x: -6.7  \/\/ setting of version 2015\r\n&lt;     # origin_y: -1.1  \/\/ setting of version 2015\r\n&lt;     # origin_x: -8.0  \/\/ setting of version LLSF 2017\r\n&lt;     # origin_y:  0.0  \/\/ setting of version LLSF 2017\r\n&lt;     # origin_x: -9.5  \/\/ setting of version RCLL 2017\r\n&lt;     # origin_y: -2.0  \/\/ setting of version RCLL 2017\r\n&lt;     origin_x: 14.9\r\n&lt;     origin_y: 22.4\r\n---\r\n&gt;     origin_x: 0.0\r\n&gt;     origin_y: 0.0\r\n226a161\r\n&gt; \r\n262a198\r\n&gt; \r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/bbsync.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/bbsync.yaml\r\n71c71\r\n&lt;         # mps-laser: Laser360Interface::Laser MPS\r\n---\r\n&gt;         mps-laser: Laser360Interface::Laser MPS\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: btr_gripper-ichikawa.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: btr_gripper_vision.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: btr_gripper.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: btr_gripper.yaml-ichikawa\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: btr_gripper.yaml.ichikawa\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: btr_gripper.yaml-max\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: clips-agent-4-floor.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: clips-agent-gazebo.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: clips-agent-rcll2017.yaml\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/clips-agent.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/clips-agent.yaml\r\n45,46c45\r\n&lt;   # agent: rcll2016\/rcll2016\r\n&lt;   agent: rcll2017\/btr2017\r\n---\r\n&gt;   agent: rcll2016\/rcll2016\r\n52,53c51\r\n&lt;   # rcll2016:\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n60,61c58\r\n&lt;     # peer-address: 172.26.255.255\r\n&lt;     peer-address: 127.0.0.1\r\n---\r\n&gt;     peer-address: 172.26.255.255\r\n66,68c63\r\n&lt;     team-name: BabyTigers\r\n&lt;     # crypto-key: L4rZV6Bk\r\n&lt;     # crypto-key: oQIFRx7m\r\n---\r\n&gt;     team-name: Carologistics\r\n133,138c128,130\r\n&lt;       # row-high: &#x5B;&quot;Z16&quot;, &quot;Z3&quot;, &quot;Z2&quot;, &quot;Z1&quot;, &quot;Z13&quot;, &quot;Z14&quot;, &quot;Z15&quot;, &quot;Z4&quot;]\r\n&lt;       # row-mid: &#x5B;&quot;Z9&quot;, &quot;Z10&quot;, &quot;Z11&quot;, &quot;Z12&quot;, &quot;Z8&quot;, &quot;Z7&quot;, &quot;Z6&quot;, &quot;Z5&quot;]\r\n&lt;       # row-low: &#x5B;&quot;Z17&quot;, &quot;Z18&quot;, &quot;Z19&quot;, &quot;Z20&quot;, &quot;Z24&quot;, &quot;Z23&quot;, &quot;Z22&quot;, &quot;Z21&quot;]\r\n&lt;       row-high: &#x5B;&quot;C_Z62&quot; ,&quot;C_Z72&quot;, &quot;C_Z73&quot;, &quot;C_Z74&quot;, &quot;C_Z75&quot;, &quot;C_Z76&quot;, &quot;C_Z77&quot;, &quot;C_Z78&quot;, &quot;C_Z68&quot;, &quot;C_Z67&quot;, &quot;C_Z66&quot;, &quot;C_Z65&quot;, &quot;C_Z64&quot;, &quot;C_Z63&quot;, &quot;C_Z53&quot;, &quot;C_Z54&quot;, &quot;C_Z55&quot;, &quot;C_Z56&quot;, &quot;C_Z57&quot;, &quot;C_Z58&quot;, &quot;C_Z48&quot;, &quot;C_Z47&quot;, &quot;C_Z46&quot;, &quot;C_Z45&quot;, &quot;C_Z44&quot;, &quot;C_Z43&quot;, &quot;C_Z42&quot;, &quot;C_Z32&quot;, &quot;C_Z33&quot;, &quot;C_Z34&quot;, &quot;C_Z35&quot;, &quot;C_Z36&quot;, &quot;C_Z37&quot;, &quot;C_Z38&quot;, &quot;C_Z28&quot;, &quot;C_Z27&quot;, &quot;C_Z26&quot;, &quot;C_Z25&quot;, &quot;C_Z24&quot;, &quot;C_Z23&quot;, &quot;C_Z22&quot;, &quot;C_Z12&quot;, &quot;C_Z13&quot;, &quot;C_Z14&quot;, &quot;C_Z15&quot;, &quot;C_Z16&quot;, &quot;C_Z17&quot;, &quot;C_Z18&quot;]\r\n&lt;       row-mid:  &#x5B;&quot;C_Z62&quot; ,&quot;C_Z72&quot;, &quot;C_Z73&quot;, &quot;C_Z74&quot;, &quot;C_Z75&quot;, &quot;C_Z76&quot;, &quot;C_Z77&quot;, &quot;C_Z78&quot;, &quot;C_Z68&quot;, &quot;C_Z67&quot;, &quot;C_Z66&quot;, &quot;C_Z65&quot;, &quot;C_Z64&quot;, &quot;C_Z63&quot;, &quot;C_Z53&quot;, &quot;C_Z54&quot;, &quot;C_Z55&quot;, &quot;C_Z56&quot;, &quot;C_Z57&quot;, &quot;C_Z58&quot;, &quot;C_Z48&quot;, &quot;C_Z47&quot;, &quot;C_Z46&quot;, &quot;C_Z45&quot;, &quot;C_Z44&quot;, &quot;C_Z43&quot;, &quot;C_Z42&quot;, &quot;C_Z32&quot;, &quot;C_Z33&quot;, &quot;C_Z34&quot;, &quot;C_Z35&quot;, &quot;C_Z36&quot;, &quot;C_Z37&quot;, &quot;C_Z38&quot;, &quot;C_Z28&quot;, &quot;C_Z27&quot;, &quot;C_Z26&quot;, &quot;C_Z25&quot;, &quot;C_Z24&quot;, &quot;C_Z23&quot;, &quot;C_Z22&quot;, &quot;C_Z12&quot;, &quot;C_Z13&quot;, &quot;C_Z14&quot;, &quot;C_Z15&quot;, &quot;C_Z16&quot;, &quot;C_Z17&quot;, &quot;C_Z18&quot;]\r\n&lt;       row-low:  &#x5B;&quot;C_Z62&quot; ,&quot;C_Z72&quot;, &quot;C_Z73&quot;, &quot;C_Z74&quot;, &quot;C_Z75&quot;, &quot;C_Z76&quot;, &quot;C_Z77&quot;, &quot;C_Z78&quot;, &quot;C_Z68&quot;, &quot;C_Z67&quot;, &quot;C_Z66&quot;, &quot;C_Z65&quot;, &quot;C_Z64&quot;, &quot;C_Z63&quot;, &quot;C_Z53&quot;, &quot;C_Z54&quot;, &quot;C_Z55&quot;, &quot;C_Z56&quot;, &quot;C_Z57&quot;, &quot;C_Z58&quot;, &quot;C_Z48&quot;, &quot;C_Z47&quot;, &quot;C_Z46&quot;, &quot;C_Z45&quot;, &quot;C_Z44&quot;, &quot;C_Z43&quot;, &quot;C_Z42&quot;, &quot;C_Z32&quot;, &quot;C_Z33&quot;, &quot;C_Z34&quot;, &quot;C_Z35&quot;, &quot;C_Z36&quot;, &quot;C_Z37&quot;, &quot;C_Z38&quot;, &quot;C_Z28&quot;, &quot;C_Z27&quot;, &quot;C_Z26&quot;, &quot;C_Z25&quot;, &quot;C_Z24&quot;, &quot;C_Z23&quot;, &quot;C_Z22&quot;, &quot;C_Z12&quot;, &quot;C_Z13&quot;, &quot;C_Z14&quot;, &quot;C_Z15&quot;, &quot;C_Z16&quot;, &quot;C_Z17&quot;, &quot;C_Z18&quot;]\r\n---\r\n&gt;       row-high: &#x5B;&quot;Z16&quot;, &quot;Z3&quot;, &quot;Z2&quot;, &quot;Z1&quot;, &quot;Z13&quot;, &quot;Z14&quot;, &quot;Z15&quot;, &quot;Z4&quot;]\r\n&gt;       row-mid: &#x5B;&quot;Z9&quot;, &quot;Z10&quot;, &quot;Z11&quot;, &quot;Z12&quot;, &quot;Z8&quot;, &quot;Z7&quot;, &quot;Z6&quot;, &quot;Z5&quot;]\r\n&gt;       row-low: &#x5B;&quot;Z17&quot;, &quot;Z18&quot;, &quot;Z19&quot;, &quot;Z20&quot;, &quot;Z24&quot;, &quot;Z23&quot;, &quot;Z22&quot;, &quot;Z21&quot;]\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: clips-agent.yaml.7-29\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/clusterdetector.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/clusterdetector.yaml\r\n9,10c9\r\n&lt;   # laser_interface: Laser urg\r\n&lt;   laser_interface: Laser sweep\r\n---\r\n&gt;   laser_interface: Laser urg\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/colli.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/colli.yaml\r\n22,23c22\r\n&lt;   # security_distance: 0\r\n&lt;   security_distance: 0.1\r\n---\r\n&gt;   security_distance: 0\r\n93,94d91\r\n&lt;     # width: 8 \r\n&lt;     # height: 8\r\n160c157\r\n&lt;     shape: 2\r\n---\r\n&gt;     shape: 1\r\n174c171\r\n&lt;       laser_offset_x_from_middle: 0.25\r\n---\r\n&gt;       laser_offset_x_from_middle: 0.19\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/dynamixel.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/dynamixel.yaml\r\n61c61\r\n&lt;     servos: &#x5B;]\r\n---\r\n&gt;     servos: &#x5B;1, 2]\r\n68c68\r\n&lt;     autorecover_enabled: true\r\n---\r\n&gt;     autorecover_enabled: false\r\n70,75d69\r\n&lt; \r\n&lt;     # set return_level\r\n&lt;     # 0: SRL_RESPONDE_NONE\r\n&lt;     # 1: SRL_RESPOND_READ\r\n&lt;     # 2: SRL_RESPOND_ALL\r\n&lt;     return_level: 1\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/firevision.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/firevision.yaml\r\n20,22c20,22\r\n&lt;       conveyor:\r\n&lt;         string: v4l2:conveyor:device=\/dev\/video_conveyor\r\n&lt;         frame: !frame base_link\r\n---\r\n&gt; #      conveyor:\r\n&gt; #        string: v4l2:conveyor:device=\/dev\/video_conveyor\r\n&gt; #        frame: !frame base_link\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/gazsim.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/gazsim.yaml\r\n137,138c137,138\r\n&lt;     team-cyan-name: &quot;BabyTigers&quot;\r\n&lt;     team-magenta-name: &quot;Carologistics&quot;\r\n---\r\n&gt;     team-cyan-name: &quot;Carologistics&quot;\r\n&gt;     team-magenta-name: &quot;Carologistics-2&quot;\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/joystick.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/joystick.yaml\r\n68,70c68\r\n&lt;     # deadman_button_mask: 4294965631\r\n&lt;     deadman_button_mask: 4294967295\r\n&lt; \r\n---\r\n&gt;     deadman_button_mask: 4294965631\r\n134,135c132\r\n&lt;     # laser_interface_id: Laser urg-filtered\r\n&lt;     laser_interface_id: Laser sweep-filtered\r\n---\r\n&gt;     laser_interface_id: Laser urg-filtered\r\nOnly in btr2017\/fawkes-robotino\/cfg\/conf.d: joystick.yaml-ichikawa\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/laser-cluster.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/laser-cluster.yaml\r\n15,16c15\r\n&lt;     # input_cloud: urg-filtered\r\n&lt;     input_cloud: sweep-filtered\r\n---\r\n&gt;     input_cloud: urg-filtered\r\n84,85c83\r\n&lt;     # input_cloud: urg-filtered\r\n&lt;     input_cloud: sweep-filtered\r\n---\r\n&gt;     input_cloud: urg-filtered\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/laser-filter.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/laser-filter.yaml\r\n11,13c11,12\r\n&lt;     # in\/urg: Laser360Interface::Laser urg\r\n&lt;     # in\/sick-tim55x: Laser360Interface::Laser tim55x 360\r\n&lt;     in\/sweep: Laser360Interface::Laser sweep\r\n---\r\n&gt;     #in\/urg: Laser360Interface::Laser urg\r\n&gt;     in\/sick-tim55x: Laser360Interface::Laser tim55x 360\r\n16,17c15\r\n&lt;     # out\/filtered: Laser360Interface::Laser urg-filtered\r\n&lt;     out\/filtered: Laser360Interface::Laser sweep-filtered\r\n---\r\n&gt;     out\/filtered: Laser360Interface::Laser urg-filtered\r\n36c34\r\n&lt;     active: false\r\n---\r\n&gt;     active: true\r\n39,41c37,38\r\n&lt;     # in\/urg: Laser360Interface::Laser urg\r\n&lt;     in\/sweep: Laser360Interface::Laser sweep\r\n&lt;     # in\/sick-tim55x: Laser1080Interface::Laser tim55x\r\n---\r\n&gt;     #in\/urg: Laser360Interface::Laser urg\r\n&gt;     in\/sick-tim55x: Laser1080Interface::Laser tim55x\r\n65,66c62\r\n&lt;     # in\/filtered: Laser360Interface::Laser urg-filtered\r\n&lt;     in\/filtered: Laser360Interface::Laser sweep-filtered\r\n---\r\n&gt;     in\/filtered: Laser360Interface::Laser urg-filtered\r\n93c89\r\n&lt;     active: false\r\n---\r\n&gt;     active: true\r\n96,97c92,93\r\n&lt;     in\/urg: Laser360Interface::Laser urg\r\n&lt;     # in\/sick-tim55x: Laser1080Interface::Laser tim55x\r\n---\r\n&gt;     #in\/urg: Laser360Interface::Laser urg\r\n&gt;     in\/sick-tim55x: Laser1080Interface::Laser tim55x\r\n109a106\r\n&gt;     in\/urg: Laser360Interface::Laser urg-filtered\r\n111,112d107\r\n&lt;     # in\/urg: Laser360Interface::Laser urg-filtered\r\n&lt;     in\/sweep: Laser360Interface::Laser sweep-filtered\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/laser-lines.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/laser-lines.yaml\r\n40c40\r\n&lt;   # input_cloud: filtered-1080\r\n---\r\n&gt;   input_cloud: filtered-1080\r\n42,43d41\r\n&lt;   # input_cloud: urg-filtered\r\n&lt;   input_cloud: sweep-filtered\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/laser.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/laser.yaml\r\n9a10\r\n&gt;     # Enable this configuration?\r\n11a13\r\n&gt;     # Configuration is for Hokuyo URG laser range finder using URG library\r\n14,23d15\r\n&lt;     device: \/dev\/ttyACM0\r\n&lt;     frame: !frame base_laser   \r\n&lt; \r\n&lt;   sweep:\r\n&lt;     # Enable this configuration?\r\n&lt;     active: true\r\n&lt; \r\n&lt;     # Configuration is for Sweep using URG library\r\n&lt;     type: sweep\r\n&lt; \r\n25,27c17\r\n&lt;     device: \/dev\/ttyUSB1\r\n&lt;     # serial: 115200\r\n&lt;     serial: DM00LK5N\r\n---\r\n&gt;     device: \/dev\/ttyACM0\r\n33c23\r\n&lt;     active: false\r\n---\r\n&gt;     active: true\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/meta_plugins.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/meta_plugins.yaml\r\n9d8\r\n&lt;   m-btr-joystick: webview,joystick,dynamixel,btr_gripper # , btr-gripper\r\n12,14c11,12\r\n&lt;   m-fv-vision: m-bare,m-fv,machine-signal,tag_vision,conveyor_vision,fvretriever #,machine-signal\r\n&lt;   get_pic: webview,ros,m-fv,tag_vision\r\n&lt;   m-clips: clips,clips-motor-switch,clips-protobuf,clips-webview,clips-navgraph,clips-tf,potential_field\r\n---\r\n&gt;   m-fv-vision: m-bare,m-fv,machine-signal,tag_vision,fvretriever\r\n&gt;   m-clips: clips,clips-motor-switch,clips-protobuf,clips-webview,clips-navgraph,clips-tf\r\n16c14\r\n&lt;   m-skiller: ros,m-fv-vision,navgraph,navgraph-generator,navgraph-generator-mps,skiller\r\n---\r\n&gt;   m-skiller: ros,m-fv-vision,ros-pcl,navgraph,navgraph-generator,navgraph-generator-mps,mps-laser-gen,skiller\r\n18,23c16\r\n&lt;   m-btr: ros,m-bare,m-fv,navgraph,navgraph-generator,navgraph-generator-mps,skiller,m-clips,clips-agent,joystick,dynamixel,ax12_gripper\r\n&lt;   m-wataru: ros,m-bare,m-fv,navgraph,navgraph-generator,navgraph-generator-mps,skiller,m-clips,clips-agent,joystick,dynamixel,btr_gripper,static-transforms,tag_vision,conveyor_vision,machine-signal,fvretriever\r\n&lt;   # m-kei: joystick,dynamixel,btr_gripper,webview\r\n&lt;   m-kei: webview,m-fv,btr_gripper_vision\r\n&lt;   m-pi: webview,m-fv,btr_vision,btr_gripper_vision\r\n&lt;   # ,tag_vision\r\n---\r\n&gt; \r\n26,32c19,22\r\n&lt;   \r\n&lt;   utsumi-meta-potential: gazebo,static-transforms,gazsim-robotino,gazsim-laser,laser-filter,laser-pointclouds,laser-cluster,gazsim-timesource,gazsim-gripper,gazsim-conveyor,webview,ros,amcl\r\n&lt; \r\n&lt; \r\n&lt;   gazsim-meta-robotino: gazebo,static-transforms,gazsim-robotino,gazsim-laser,laser-filter,laser-pointclouds,laser-cluster,gazsim-timesource,gazsim-gripper,gazsim-conveyor,webview\r\n&lt;   gazsim-meta-robotino-ros: gazsim-meta-robotino,ros,ros-clock,robotino-ros-joints,ros-odometry,ros-tf,ros-laserscan,ros-move-base,amcl,navgraph,navgraph-generator,navgraph-generator-mps,map-lasergen,laser-lines,colli,gazsim-vis-localization,skiller,potential_field\r\n&lt;   gazsim-meta-robotino-no-ros: gazsim-meta-robotino,amcl,navgraph,navgraph-generator,navgraph-generator-mps,map-lasergen,laser-lines,colli,gazsim-vis-localization,skiller,potential_field\r\n---\r\n&gt;   #\r\n&gt;   gazsim-meta-robotino: gazebo,static-transforms,gazsim-robotino,gazsim-laser,laser-filter,laser-pointclouds,laser-cluster,gazsim-timesource,gazsim-gripper,gazsim-conveyor,laser_front_dist,webview\r\n&gt;   gazsim-meta-robotino-ros: gazsim-meta-robotino,ros,ros-clock,robotino-ros-joints,ros-odometry,ros-tf,ros-laserscan,ros-move-base,amcl,navgraph,navgraph-generator,navgraph-generator-mps,map-lasergen,laser-lines,colli,gazsim-vis-localization,skiller\r\n&gt;   gazsim-meta-robotino-no-ros: gazsim-meta-robotino,amcl,navgraph,navgraph-generator,navgraph-generator-mps,map-lasergen,laser-lines,colli,gazsim-vis-localization,skiller\r\n38c28\r\n&lt;   gazsim-iitsuka: static-transforms,plugin-templete,ros,gazsim-laser,laser-filter,laser-pointclouds,laser-cluster,gazsim-robotino,amcl,navgraph,navgraph-generator \r\n---\r\n&gt;  \r\n42c32\r\n&lt;   m-base-bare: imu,robotino,webview,static-transforms\r\n---\r\n&gt;   m-base-bare: imu,robotino,webview,static-transforms,motor-led\r\n45c35\r\n&lt;   m-base-gripper: dynamixel,ax12_gripper\r\n---\r\n&gt;   m-base-gripper: arduino,dynamixel,ax12_gripper\r\n48,56c38\r\n&lt;   m-base-laser-btr: laser,laser-filter,map-lasergen,m-base-ros,laser-pointclouds,laser-lines,map-lasergen\r\n&lt; \r\n&lt;   m-base-full: m-base-bare,m-base-laser,m-base-gripper,m-base-ros,colli,amcl,potential_field\r\n&lt;   # m-base-btr: gazsim-meta-robotino-ros,webview,m-base-ros,colli,amcl\r\n&lt;   m-base-btr: m-base-bare,m-base-ros,m-base-laser-btr,colli,amcl,m-base-laser-btr,potential_field #,m-base-joy\r\n&lt;   # m-base-btr: m-base-bare,m-base-ros,m-base-laser-btr,colli,amcl,m-base-bare,m-base-laser-btr\r\n&lt; \r\n&lt;   m-base-kizuna: m-base-bare,m-base-laser,m-base-ros,colli,amcl #,m-base-joy\r\n&lt;   m-check: m-base-bare\r\n---\r\n&gt;   m-base-full: m-base-bare,m-base-laser,m-base-gripper,m-base-ros,colli,amcl,m-base-joy,laser_front_dist\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/navgraph-generator.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/navgraph-generator.yaml\r\n58,68d57\r\n&lt;   # Save a generated navgraph automatically to disk.\r\n&lt; \r\n&lt;   # This can be enabled, e.g., for later debugging or during automated\r\n&lt;   # experiments.\r\n&lt;   save-to-file:\r\n&lt;     enable: true\r\n&lt;     # Filename, if starting with a slash (\/), absolute path is assumed,\r\n&lt;     # otherwise, it is assumed to be relative to the config directory.\r\n&lt;     # Path may not contain two consecutive dots (..).\r\n&lt;     filename: navgraph-generated.yaml\r\n&lt; \r\n80,83c69\r\n&lt;   # base-graph: navgraph-basis.yaml\r\n&lt;   base-graph: navgraph-2017.yaml\r\n&lt;   # base-graph: navgraph-basis-1-432.yaml\r\n&lt; \r\n---\r\n&gt;   base-graph: navgraph-basis.yaml\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/navgraph.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/navgraph.yaml\r\n19,20d18\r\n&lt;   # graph_file: navgraph-btr.yaml\r\n&lt;   # graph_file: navgraph-basis-1-432.yaml\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/openprs-agent.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/openprs-agent.yaml\r\n23,24c23\r\n&lt;   # agent: llsf2014\r\n&lt;   agent: rcll2017\r\n---\r\n&gt;   agent: llsf2014\r\n27,28c26\r\n&lt;   # llsf2014:\r\n&lt;   rcll2017:\r\n---\r\n&gt;   llsf2014:\r\n44c42\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\n49c47\r\n&lt;     peer-address: 172.26.255.255\r\n---\r\n&gt;     peer-address: 137.226.233.255\r\n56,57c54\r\n&lt;     # peer-private-key: randomkey\r\n&lt;     peer-private-key: oQIFRx7m\r\n---\r\n&gt;     peer-private-key: randomkey\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/robotino.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/robotino.yaml\r\n14,15c14\r\n&lt;   # driver: direct\r\n&lt;   driver: openrobotino\r\n---\r\n&gt;   driver: direct\r\n36c35\r\n&lt;     quit_on_disconnect: false\r\n---\r\n&gt;     quit_on_disconnect: true\r\n80,81c79\r\n&lt;     # acceleration-limits: &#x5B;-11500, 11500]\r\n&lt;     acceleration-limits: &#x5B;-2875, 2875]\r\n---\r\n&gt;     acceleration-limits: &#x5B;-11500, 11500]\r\n83,84c81\r\n&lt;     # rpm-max: 3000\r\n&lt;     rpm-max: 200\r\n---\r\n&gt;     rpm-max: 3000\r\n95c92\r\n&lt;       gear: 16.0\r\n---\r\n&gt;       gear: 32.0\r\n133c130\r\n&lt;     # mode: copy\r\n---\r\n&gt;     #mode: copy\r\n159c156\r\n&lt;     enable_gripper: false\r\n---\r\n&gt;     enable_gripper: true\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/conf.d\/ros.yaml btr2018\/fawkes-robotino\/cfg\/conf.d\/ros.yaml\r\n36,38d35\r\n&lt; \r\n&lt;   navgraph-breakout:\r\n&lt;     action-topic: place_goto\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/config.yaml btr2018\/fawkes-robotino\/cfg\/config.yaml\r\n24d23\r\n&lt;     # max_thread_time: 0\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_1.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_1.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_2.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_2.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_3.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_3.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_4.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_4.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_5.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_5.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_6.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/clips-sim-comp\/host_robotino_6.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_1.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_1.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n38c38\r\n&lt;       row: MID\r\n---\r\n&gt;       row: HIGH\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\n70c70\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_2.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_2.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\n70c70\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_3.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_3.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\n70c70\r\n&lt;     team-name: BabyTigers\r\n---\r\n&gt;     team-name: Carologistics\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_4.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_4.yaml\r\n34c34\r\n&lt;   rcll2017777777:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers-2\r\n---\r\n&gt;     team-name: Carologistics-2\r\n70c70\r\n&lt;     team-name: BabyTigers-2\r\n---\r\n&gt;     team-name: Carologistics-2\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_5.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_5.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers-2\r\n---\r\n&gt;     team-name: Carologistics-2\r\n70c70\r\n&lt;     team-name: BabyTigers-2\r\n---\r\n&gt;     team-name: Carologistics-2\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_6.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/default\/host_robotino_6.yaml\r\n34c34\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n46c46\r\n&lt;     team-name: BabyTigers-2\r\n---\r\n&gt;     team-name: Carologistics-2\r\n70c70\r\n&lt;     team-name: BabyTigers-2\r\n---\r\n&gt;     team-name: Carologistics-2\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/gazsim-configurations\/gazsim-config-override.yaml btr2018\/fawkes-robotino\/cfg\/gazsim-configurations\/gazsim-config-override.yaml\r\n37c37\r\n&lt;   rcll2017:\r\n---\r\n&gt;   rcll2016:\r\n82,87c82,87\r\n&lt;   map_file: maps\/llsf-2017-map.png\r\n&lt;   origin_x: -8.0\r\n&lt;   origin_y: 0.0\r\n&lt;   map-lasergen\/map_file: maps\/llsf-2017-wall.png\r\n&lt;   map-lasergen\/origin_x: -8.0\r\n&lt;   map-lasergen\/origin_y: 0.0\r\n---\r\n&gt;   map_file: maps\/rc-2016.png\r\n&gt;   origin_x: -7.0\r\n&gt;   origin_y: -1.1\r\n&gt;   map-lasergen\/map_file: maps\/rc-2016-wall.png\r\n&gt;   map-lasergen\/origin_x: -7.0\r\n&gt;   map-lasergen\/origin_y: -1.1\r\nOnly in btr2017\/fawkes-robotino\/cfg\/gazsim-configurations: gazsim-config-override.yaml.iitsuka\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: 1-4floor-map.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: 1-4floor-wall.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: 1-4.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: llsf-2017-map.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: llsf-2017-wall.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: llsf-2017-wall.simple.png\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/maps\/llsf-map.yaml btr2018\/fawkes-robotino\/cfg\/maps\/llsf-map.yaml\r\n1,10c1\r\n&lt; #image: llsf-map-2015.png\r\n&lt; #resolution: 0.05\r\n&lt; #origin: &#x5B;-7.0, -1.0, 0.0]\r\n&lt; #occupied_thresh: 0.65\r\n&lt; #free_thresh: 0.196\r\n&lt; #negate: 0\r\n&lt; \r\n&lt; # image: map1-432.png\r\n&lt; image: llsf-2017-map.png \r\n&lt; # resolution: 0.0484\r\n---\r\n&gt; image: llsf-map-2015.png\r\n12,13c3\r\n&lt; # origin: &#x5B;-0.96, -1.89, 0.0]\r\n&lt; origin: &#x5B;-7.0, 0.0, 0.0]\r\n---\r\n&gt; origin: &#x5B;-7.0, -1.0, 0.0]\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: map1-432.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: map-4-floor.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: map-4-floor-wall.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: rcll-2017-map.png\r\nOnly in btr2017\/fawkes-robotino\/cfg\/maps: rcll-2017-wall.png\r\nOnly in btr2017\/fawkes-robotino\/cfg: navgraph-2017.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg: navgraph-basis-1-432.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg: navgraph-basis-4-floor2.yaml\r\nOnly in btr2017\/fawkes-robotino\/cfg: navgraph-basis-4-floor.yaml\r\ndiff -r btr2017\/fawkes-robotino\/cfg\/navgraph-basis.yaml btr2018\/fawkes-robotino\/cfg\/navgraph-basis.yaml\r\n56c56\r\n&lt;     pos: &#x5B;4.3, 0.55]\r\n---\r\n&gt;     pos: &#x5B;3.3, -0.55]\r\n61c61\r\n&lt;     pos: &#x5B;4.3, 0.75]\r\n---\r\n&gt;     pos: &#x5B;3.3, 0.75]\r\n67c67\r\n&lt;     pos: &#x5B;-4.3, 0.55]\r\n---\r\n&gt;     pos: &#x5B;-3.3, -0.55]\r\n72c72\r\n&lt;     pos: &#x5B;-4.3, 0.75]\r\n---\r\n&gt;     pos: &#x5B;-3.3, 0.75]\r\ndiff -r btr2017\/fawkes-robotino\/etc\/buildsys\/config.mk btr2018\/fawkes-robotino\/etc\/buildsys\/config.mk\r\n50,57c50\r\n&lt; CFLAGS_EXTRA += -m64 -mtune=generic -g -Wall -Werror -O3\r\n&lt; \r\n&lt; # for Raspberry Pi\r\n&lt; ifeq ($(shell hostname),pi-01)\r\n&lt;   CFLAGS_EXTRA  = -Wno-strict-aliasing\r\n&lt;   LDFLAGS_EXTRA = \r\n&lt; endif\r\n&lt; \r\n---\r\n&gt; CFLAGS_EXTRA  += -g -Wall -Werror -O3\r\ndiff -r btr2017\/fawkes-robotino\/etc\/scripts\/gazsim.bash btr2018\/fawkes-robotino\/etc\/scripts\/gazsim.bash\r\n38,46d37\r\n&lt;    --team-cyan       Set cyan team name\r\n&lt;    --team-magenta\t\t Set magenta team name\r\n&lt;    --start-game      Automatically run game after initialization\r\n&lt;                      (if used with -t go into PRODUCTION phase,\r\n&lt;                       otherwise the phase will be EXPLORATION,\r\n&lt;                       optionally, &quot;--start-game=PHASE&quot; may be given\r\n&lt;                       to set the phase explicitly)\r\n&lt;                      Typically requires at least --team-cyan.\r\n&lt;    --rviz            Start Rviz\r\n75,78d65\r\n&lt; START_GAME=\r\n&lt; TEAM_CYAN=\r\n&lt; TEAM_MAGENTA=\r\n&lt; RVIZ=false\r\n80c67\r\n&lt; OPTS=$(getopt -o &quot;hx:c:lrksn:e:dm:aof:p:gvt&quot; -l &quot;ros,ros-launch-main:,ros-launch:,start-game::,team-cyan:,team-magenta:,rviz&quot; -- &quot;$@&quot;)\r\n---\r\n&gt; OPTS=$(getopt -o &quot;hx:c:lrksn:e:dm:aof:p:gvt&quot; -l &quot;ros,ros-launch-main:,ros-launch:&quot; -- &quot;$@&quot;)\r\n170,186d156\r\n&lt; \t --team-cyan)\r\n&lt; \t     TEAM_CYAN=&quot;$OPTARG&quot;\r\n&lt; \t     ;;\r\n&lt; \t --team-magenta)\r\n&lt; \t     TEAM_MAGENTA=&quot;$OPTARG&quot;\r\n&lt; \t     ;;\r\n&lt; \t --start-game)\r\n&lt; \t\t\t if &#x5B; -n &quot;$OPTARG&quot; ]; then\r\n&lt; \t\t\t\t\t START_GAME=&quot;$OPTARG&quot;\r\n&lt; \t\t\t else\r\n&lt; \t\t\t\t\t if &#x5B; -n &quot;$SKIP_EXPLORATION&quot; ]; then\r\n&lt; \t\t\t\t\t\t\t START_GAME=&quot;PRODUCTION&quot;\r\n&lt; \t\t\t\t\t else\r\n&lt; \t\t\t\t\t\t\t START_GAME=&quot;EXPLORATION&quot;\r\n&lt; \t\t\t\t\t fi\r\n&lt; \t\t\t fi\r\n&lt; \t     ;;\r\n196,198d165\r\n&lt;          --rviz)\r\n&lt;              RVIZ=true\r\n&lt;              ;;\r\n236d202\r\n&lt;     killall rviz\r\n254c220\r\n&lt;     rm \/dev\/shm\/*fawkes* 2&gt;&amp;1 &gt;\/dev\/null\r\n---\r\n&gt;     rm \/dev\/shm\/*fawkes*\r\n310,315d275\r\n&lt;     if $RVIZ\r\n&lt;     then\r\n&lt; #        OPEN_COMMAND=&quot;$OPEN_COMMAND --tab -e 'bash -c \\&quot;$startup_script_location -x rviz $KEEP\\&quot;'&quot;\r\n&lt;         OPEN_COMMAND=&quot;$OPEN_COMMAND --tab -e 'bash -c \\&quot;export TAB_START_TIME=$(date +%s); $script_path\/wait-at-first-start.bash 7; $startup_script_location -x rviz $KEEP\\&quot;'&quot;\r\n&lt;     fi \r\n&lt; \r\n317c277\r\n&lt;     echo $OPEN_COMMAND\r\n---\r\n&gt;     #echo $OPEN_COMMAND\r\n323c283\r\n&lt; \tsleep 5s\r\n---\r\n&gt; \tsleep 15s\r\n331,338d290\r\n&lt; \t\tif &#x5B; -n &quot;$START_GAME&quot; ]; then\r\n&lt; \t\t\t\tif &#x5B; ! -x $LLSF_REFBOX_DIR\/bin\/rcll-refbox-instruct ]; then\r\n&lt; \t\t\t\t\t\techo &quot;rcll-refbox-instruct not found, not built or old version?&quot;\r\n&lt; \t\t\t\telse\r\n&lt; \t\t\t\t\t\techo &quot;Starting game (Phase: $START_GAME ${TEAM_CYAN:+Cyan: ${TEAM_CYAN}}${TEAM_MAGENTA:+ Magenta: ${TEAM_MAGENTA}})&quot;\r\n&lt; \t\t\t\t\t\t$LLSF_REFBOX_DIR\/bin\/rcll-refbox-instruct -p $START_GAME -s RUNNING ${TEAM_CYAN:+-c ${TEAM_CYAN}}${TEAM_MAGENTA:+-m ${TEAM_MAGENTA}}\r\n&lt; \t\t\t\tfi\r\n&lt; \t\tfi\r\ndiff -r btr2017\/fawkes-robotino\/etc\/scripts\/gazsim-publish-initial-pose.bash btr2018\/fawkes-robotino\/etc\/scripts\/gazsim-publish-initial-pose.bash\r\n76c76\r\n&lt; \t\t     $set_pose -r localhost:1921 -t 2.0 --  4.5  0.5 -1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t\t   $set_pose -r localhost:1921 -t 2.0 --  3.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\n79c79\r\n&lt; \t\t     $set_pose -r localhost:1922 -t 2.0 --  5.5  0.5 -1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1922 -t 2.0 --  4.5 -0.5 0.0  0.0 0.0 0.7 0.7\r\n82c82\r\n&lt; \t\t     $set_pose -r localhost:1923 -t 2.0 --  6.5  0.5 -1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1923 -t 2.0 --  5.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\n85c85\r\n&lt; \t\t     $set_pose -r localhost:1924 -t 2.0 -- -4.5  0.5  1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1924 -t 2.0 -- -3.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\n88c88\r\n&lt; \t\t     $set_pose -r localhost:1925 -t 2.0 -- -5.5  0.5  1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1925 -t 2.0 -- -4.5 -0.5 0.0  0.0 0.0 0.7 0.7\r\n91c91\r\n&lt; \t\t     $set_pose -r localhost:1926 -t 2.0 -- -6.5  0.5  1.57  0.0 0.0 0.7 0.7\r\n---\r\n&gt; \t\t     $set_pose -r localhost:1926 -t 2.0 -- -5.5  -0.5 0.0  0.0 0.0 0.7 0.7\r\ndiff -r btr2017\/fawkes-robotino\/etc\/scripts\/gazsim-startup.bash btr2018\/fawkes-robotino\/etc\/scripts\/gazsim-startup.bash\r\n36,37d35\r\n&lt;   ROS:\r\n&lt;    --rviz         start RVIZ\r\n159c157\r\n&lt; \t( gzserver $REPLAY $GAZEBO_WORLD_PATH &amp; ); sleep 10s; gzclient\r\n---\r\n&gt; \tgazebo $REPLAY $GAZEBO_WORLD_PATH\r\n209,212d206\r\n&lt;     rviz )\r\n&lt;         export ROS_MASTER_URI=&quot;http:\/\/localhost:11321&quot;\r\n&lt;         rviz \r\n&lt;         ;;        \r\nOnly in btr2017\/fawkes-robotino\/etc\/scripts: rviz.bash\r\nOnly in btr2017\/fawkes-robotino\/etc\/scripts: startBTR.sh\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/cfg\/conf.d\/navgraph-generator.yaml btr2018\/fawkes-robotino\/fawkes\/cfg\/conf.d\/navgraph-generator.yaml\r\n4c4\r\n&lt; doc-url: !url http:\/\/trac.fawkesrobotics.org\/wiki\/Plugins\/navgraph-generator\r\n---\r\n&gt; doc-url: !url http:\/\/trac.fawkesrobotics.org\/wiki\/Plugins\/laser-cluster\r\n52,62d51\r\n&lt; \r\n&lt;   # Save a generated navgraph automatically to disk.\r\n&lt;   \r\n&lt;   # This can be enabled, e.g., for later debugging or during automated\r\n&lt;   # experiments.\r\n&lt;   save-to-file:\r\n&lt;     enable: false\r\n&lt;     # Filename, if starting with a slash (\/), absolute path is assumed,\r\n&lt;     # otherwise, it is assumed to be relative to the config directory.\r\n&lt;     # Path may not contain two consecutive dots (..).\r\n&lt;     filename: navgraph-generated.yaml\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/cfg\/conf.d\/navgraph.yaml btr2018\/fawkes-robotino\/fawkes\/cfg\/conf.d\/navgraph.yaml\r\n51,57d50\r\n&lt;   # Allow that there are multiple graph segments without interconnect.\r\n&lt;   # This can also be useful, for example, if there are explicitly unconnected\r\n&lt;   # nodes in the graph, for example to store semantic information but which\r\n&lt;   # need not be traveled to.\r\n&lt;   # This flag is used during loading the graph_file initially, only.\r\n&lt;   allow_multi_graph: false\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/etc\/buildsys\/ext\/__gmsl btr2018\/fawkes-robotino\/fawkes\/etc\/buildsys\/ext\/__gmsl\r\n8c8\r\n&lt; # Copyright (c) 2005-2014 John Graham-Cumming\r\n---\r\n&gt; # Copyright (c) 2005-2007 John Graham-Cumming\r\n45,47c45\r\n&lt; gmsl_version := 1 1 7\r\n&lt; \r\n&lt; __gmsl_name := GNU Make Standard Library\r\n---\r\n&gt; gmsl_version := 1 0 9\r\n52a51,54\r\n&gt; __gmsl_name := GNU Make Standard Library\r\n&gt; __gmsl_warning = $(warning $(__gmsl_name): $1)\r\n&gt; __gmsl_error = $(error $(__gmsl_name): $1)\r\n&gt; \r\n55,56d56\r\n&lt; else\r\n&lt; __gmsl_warning = $(if $1,$(warning $(__gmsl_name): $1))\r\n58d57\r\n&lt; \r\n61,62d59\r\n&lt; else\r\n&lt;  __gmsl_error = $(if $1,$(error $(__gmsl_name): $1))\r\n78,85d74\r\n&lt; # See if spaces are valid in variable names (this was the case until\r\n&lt; # GNU Make 3.82)\r\n&lt; ifeq ($(MAKE_VERSION),3.82)\r\n&lt; __gmsl_spaced_vars := $(false)\r\n&lt; else\r\n&lt; __gmsl_spaced_vars := $(true)\r\n&lt; endif\r\n&lt; \r\n93,105d81\r\n&lt; # If this is being run with Electric Cloud's emake then warn that\r\n&lt; # their $(eval) support is incomplete in 1.x, 2.x, 3.x, 4.x and 5.0,\r\n&lt; # 5.1, 5.2 and 5.3\r\n&lt; \r\n&lt; ifdef ECLOUD_BUILD_ID\r\n&lt; __gmsl_emake_major := $(word 1,$(subst ., ,$(EMAKE_VERSION)))\r\n&lt; __gmsl_emake_minor := $(word 2,$(subst ., ,$(EMAKE_VERSION)))\r\n&lt; ifneq (&quot;$(findstring $(__gmsl_emake_major),1 2 3 4)$(findstring $(__gmsl_emake_major)$(__gmsl_emake_minor),50 51 52 53)&quot;,&quot;&quot;)\r\n&lt; $(warning You are using a version of Electric Cloud's emake which has incomplete $$(eval) support)\r\n&lt; __gmsl_have_eval := $(false)\r\n&lt; endif\r\n&lt; endif\r\n&lt; \r\n118c94\r\n&lt; $(call __gmsl_warning,Your make version $(MAKE_VERSION) does not support $$$$(eval): some functions disabled)\r\n---\r\n&gt; $(call __gmsl_warning,GNU Make $(MAKE_VERSION) does not support $$(eval): some functions disabled)\r\n121,124d96\r\n&lt; __gmsl_dollar := $$\r\n&lt; __gmsl_hash := \\#\r\n&lt; \r\n&lt; # ----------------------------------------------------------------------------\r\n131c103\r\n&lt; gmsl_compatible = $(strip                                                 \\\r\n---\r\n&gt; gmsl_compatible =                                                         \\\r\n140c112\r\n&lt;                     $(call lte,$(word 3,$1),$(word 3,$(gmsl_version))))))))\r\n---\r\n&gt;                     $(call lte,$(word 3,$1),$(word 3,$(gmsl_version)))))))\r\n245,246c217,218\r\n&lt; pairmap = $(strip $(__gmsl_tr3)\\\r\n&lt;           $(if $2$3,$(call $1,$(call first,$2),$(call first,$3))     \\\r\n---\r\n&gt; pairmap = $(__gmsl_tr3)\\\r\n&gt;           $(strip $(if $2$3,$(call $1,$(call first,$2),$(call first,$3))     \\\r\n279,280c251\r\n&lt; reverse =$(__gmsl_tr1)$(strip $(if $1,$(call reverse,$(call rest,$1)) \\\r\n&lt;                         $(call first,$1)))\r\n---\r\n&gt; reverse =$(__gmsl_tr1)$(if $1,$(call reverse,$(call rest,$1)) $(call first,$1))\r\n287,288c258\r\n&lt; uniq = $(strip $(__gmsl_tr1) $(if $1,$(firstword $1) \\\r\n&lt;                                $(call uniq,$(filter-out $(firstword $1),$1))))\r\n---\r\n&gt; uniq = $(__gmsl_tr1)$(if $1,$(call uniq,$(call chop,$1)) $(if $(filter $(call last,$1),$(call chop,$1)),,$(call last,$1)))\r\n312c282\r\n&lt; seq = $(__gmsl_tr2)$(if $(subst x$1,,x$2)$(subst x$2,,x$1),$(false),$(true))\r\n---\r\n&gt; seq = $(__gmsl_tr2)$(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),$(false),$(true))\r\n350,351c320\r\n&lt; tr = $(strip $(__gmsl_tr3)$(call assert_no_dollar,$0,$1$2$3)              \\\r\n&lt;      $(eval __gmsl_t := $3)                                               \\\r\n---\r\n&gt; tr = $(__gmsl_tr3)$(strip $(eval __gmsl_t := $3)                          \\\r\n372c341\r\n&lt; uc = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(call tr,$(&#x5B;a-z]),$(&#x5B;A-Z]),$1)\r\n---\r\n&gt; uc = $(__gmsl_tr1)$(call tr,$(&#x5B;a-z]),$(&#x5B;A-Z]),$1)\r\n379c348\r\n&lt; lc = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(call tr,$(&#x5B;A-Z]),$(&#x5B;a-z]),$1)\r\n---\r\n&gt; lc = $(__gmsl_tr1)$(call tr,$(&#x5B;A-Z]),$(&#x5B;a-z]),$1)\r\n386,390d354\r\n&lt; \r\n&lt; # This results in __gmsl_tab containing a tab\r\n&lt; \r\n&lt; __gmsl_tab :=\t#\r\n&lt; \r\n392c356\r\n&lt; __gmsl_characters += a b c d e f g h i j k l m n o p q r s t u v w x y z\r\n---\r\n&gt; __gmsl_characters += a b c d e f g h i j k l m n o p q r s t u v w y z\r\n396a361,367\r\n&gt; # Aside: if you read the above you might think that the lower-case\r\n&gt; # letter x is missing, and that that's an error.  It is missing, but\r\n&gt; # it's not an error.  __gmsl_characters is used by the strlen\r\n&gt; # function.  strlen works by transforming every character and space\r\n&gt; # into the letter x and then counting the x's.  Since there's no need\r\n&gt; # to transform x into x I omitted it.\r\n&gt; \r\n402c373\r\n&lt; strlen = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(strip $(eval __temp := $(subst $(__gmsl_space),x,$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,x,$(__temp))))$(eval __temp := $(subst x,x ,$(__temp)))$(words $(__temp)))\r\n---\r\n&gt; strlen = $(strip $(eval __temp := $(subst $(__gmsl_space),x,$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,x,$(__temp))))$(eval __temp := $(subst x,x ,$(__temp)))$(words $(__temp)))\r\n410a382,385\r\n&gt; # This results in __gmsl_tab containing a tab\r\n&gt; \r\n&gt; __gmsl_tab :=\t#\r\n&gt; \r\n414,415c389,390\r\n&lt; #            2: Start position (first character is 1)\r\n&lt; #            3: End position (inclusive)\r\n---\r\n&gt; # \t     2: Start position (first character is 1)\r\n&gt; #\t     3: End position (inclusive)\r\n420c395\r\n&lt; substr = $(if $2,$(__gmsl_tr3)$(call assert_no_dollar,$0,$1$2$3)$(strip $(eval __temp := $$(subst $$(__gmsl_space),\\A7 ,$$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,$$a$$(__gmsl_space),$(__temp))))$(eval __temp := $(wordlist $2,$3,$(__temp))))$(subst \\A7,$(__gmsl_space),$(subst $(__gmsl_space),,$(__temp))))\r\n---\r\n&gt; substr = $(strip $(eval __temp := $$(subst $$(__gmsl_space),\\A7 ,$$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,$$a$$(__gmsl_space),$(__temp))))$(eval __temp := $(wordlist $2,$3,$(__temp))))$(subst \\A7,$(__gmsl_space),$(subst $(__gmsl_space),,$(__temp)))\r\n459c434\r\n&lt; # Function:  set_is_member, set_is_not_member\r\n---\r\n&gt; # Function:  set_is_member\r\n462,463c437\r\n&lt; # Returns:   (set_is_member) Returns $(true) if the element is in the set\r\n&lt; #            (set_is_not_member) Returns $(false) if the element is in the set\r\n---\r\n&gt; # Returns:   Returns $(true) if the element is in the set\r\n465,466c439\r\n&lt; set_is_member = $(__gmsl_tr2)$(if $(filter $1,$2),$(true),$(false))\r\n&lt; set_is_not_member = $(__gmsl_tr2)$(if $(filter $1,$2),$(false),$(true))\r\n---\r\n&gt; set_is_member = $(if $(filter $1,$2),$(true),$(false))\r\n474c447\r\n&lt; set_union = $(__gmsl_tr2)$(sort $1 $2)\r\n---\r\n&gt; set_union = $(sort $1 $2)\r\n482c455\r\n&lt; set_intersection = $(__gmsl_tr2)$(filter $1,$2)\r\n---\r\n&gt; set_intersection = $(filter $1,$2)\r\n490c463\r\n&lt; set_is_subset = $(__gmsl_tr2)$(call set_equal,$(call set_intersection,$1,$2),$1)\r\n---\r\n&gt; set_is_subset = $(call set_equal,$(call set_intersection,$1,$2),$1)\r\n498c471\r\n&lt; set_equal = $(__gmsl_tr2)$(call seq,$1,$2)\r\n---\r\n&gt; set_equal = $(call seq,$1,$2)\r\n505c478,486\r\n&lt; # For example the number 4 is x x x x. \r\n---\r\n&gt; # For example the number 4 is x x x x.  The maximum integer that the\r\n&gt; # library can handle as _input_ is __gmsl_input_int which is defined\r\n&gt; # here as 65536\r\n&gt; \r\n&gt; __gmsl_sixteen := x x x x x x x x x x x x x x x x\r\n&gt; __gmsl_input_int := $(foreach a,$(__gmsl_sixteen),         \\\r\n&gt;                         $(foreach b,$(__gmsl_sixteen),     \\\r\n&gt;                             $(foreach c,$(__gmsl_sixteen), \\\r\n&gt;                                 $(__gmsl_sixteen)))))\r\n520,522c501\r\n&lt; __int_encode = $(if $1,$(if $(call seq,$(words $(wordlist 1,$1,$2)),$1),$(wordlist 1,$1,$2),$(call __int_encode,$1,$(if $2,$2 $2,x))))\r\n&lt; __strip_leading_zero = $(if $1,$(if $(call seq,$(patsubst 0%,%,$1),$1),$1,$(call __strip_leading_zero,$(patsubst 0%,%,$1))),0)\r\n&lt; int_encode = $(__gmsl_tr1)$(call __int_encode,$(call __strip_leading_zero,$1))\r\n---\r\n&gt; int_encode = $(__gmsl_tr1)$(wordlist 1,$1,$(__gmsl_input_int))\r\n551c530\r\n&lt; int_plus = $(strip $(__gmsl_tr2)$1 $2)\r\n---\r\n&gt; int_plus = $(__gmsl_tr2)$1 $2\r\n568,570c547,549\r\n&lt; int_subtract = $(strip $(__gmsl_tr2)$(if $(call int_gte,$1,$2), \\\r\n&lt;                 $(filter-out xx,$(join $1,$2)),                 \\\r\n&lt;                 $(call __gmsl_warning,Subtraction underflow)))\r\n---\r\n&gt; int_subtract = $(__gmsl_tr2)$(if $(call int_gte,$1,$2),       \\\r\n&gt;                 $(filter-out xx,$(join $1,$2)),               \\\r\n&gt;                 $(call __gmsl_warning,Subtraction underflow))\r\n587c566\r\n&lt; int_multiply = $(strip $(__gmsl_tr2)$(foreach a,$1,$2))\r\n---\r\n&gt; int_multiply = $(__gmsl_tr2)$(foreach a,$1,$2)\r\n604c583\r\n&lt; int_divide = $(__gmsl_tr2)$(strip $(if $1,$(if $2,                         \\\r\n---\r\n&gt; int_divide = $(__gmsl_tr2)$(if $2,                                         \\\r\n607c586\r\n&lt;                  $(call __gmsl_error,Division by zero))))\r\n---\r\n&gt;                  $(call __gmsl_error,Division by zero))\r\n691c670\r\n&lt; int_inc = $(strip $(__gmsl_tr1)$1 x)\r\n---\r\n&gt; int_inc = $(__gmsl_tr1)$1 x\r\n705,707c684,686\r\n&lt; int_dec = $(__gmsl_tr1)$(strip                        \\\r\n&lt;           $(if $(call sne,0,$(words $1)),             \\\r\n&lt;           $(wordlist 2,$(words $1),$1)))\r\n---\r\n&gt; int_dec = $(__gmsl_tr1)$(strip $(if $(call sne,0,$(words $1)), \\\r\n&gt;               $(wordlist 2,$(words $1),$1),                    \\\r\n&gt;               $(call __gmsl_warning,Decrement underflow)))\r\n723c702\r\n&lt; int_double = $(strip $(__gmsl_tr1)$1 $1)\r\n---\r\n&gt; int_double = $(__gmsl_tr1)$1 $1\r\n747,780d725\r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; # Function:  sequence\r\n&lt; # Arguments: 1: An integer\r\n&lt; #            2: An integer\r\n&lt; # Returns:   The sequence &#x5B;arg1, arg2] of integers if arg1 &lt; arg2 or\r\n&lt; #            &#x5B;arg2, arg1] if arg2 &gt; arg1. If arg1 == arg1 return &#x5B;arg1]\r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; sequence = $(__gmsl_tr2)$(strip $(if $(call lte,$1,$2),          \\\r\n&lt;          $(call __gmsl_sequence_up,$1,$2),                       \\\r\n&lt;          $(call __gmsl_sequence_dn,$2,$1)))\r\n&lt; \r\n&lt; __gmsl_sequence_up = $(if $(call seq,$1,$2),$1,$1 $(call __gmsl_sequence_up,$(call inc,$1),$2))\r\n&lt; __gmsl_sequence_dn = $(if $(call seq,$1,$2),$1,$2 $(call __gmsl_sequence_dn,$1,$(call dec,$2)))\r\n&lt; \r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; # Function:  dec2hex, dec2bin, dec2oct\r\n&lt; # Arguments: 1: An integer\r\n&lt; # Returns:   The decimal argument converted to hexadecimal, binary or\r\n&lt; #            octal\r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; \r\n&lt; __gmsl_digit = $(subst 15,f,$(subst 14,e,$(subst 13,d,$(subst 12,c,$(subst 11,b,$(subst 10,a,$1))))))\r\n&lt; \r\n&lt; dec2hex = $(call __gmsl_dec2base,$(call int_encode,$1),$(call int_encode,16))\r\n&lt; dec2bin = $(call __gmsl_dec2base,$(call int_encode,$1),$(call int_encode,2))\r\n&lt; dec2oct = $(call __gmsl_dec2base,$(call int_encode,$1),$(call int_encode,8))\r\n&lt; \r\n&lt; __gmsl_base_divide = $(subst $2,X ,$1)\r\n&lt; __gmsl_q = $(strip $(filter X,$1))\r\n&lt; __gmsl_r = $(words $(filter x,$1))\r\n&lt; \r\n&lt; __gmsl_dec2base = $(eval __gmsl_temp := $(call __gmsl_base_divide,$1,$2))$(call __gmsl_dec2base_,$(call __gmsl_q,$(__gmsl_temp)),$(call __gmsl_r,$(__gmsl_temp)),$2)\r\n&lt; __gmsl_dec2base_ = $(if $1,$(call __gmsl_dec2base,$(subst X,x,$1),$3))$(call __gmsl_digit,$2)\r\n&lt; \r\n786,789d730\r\n&lt; # Magic string that is very unlikely to appear in a key or value\r\n&lt; \r\n&lt; __gmsl_aa_magic := faf192c8efbc25c27992c5bc5add390393d583c6\r\n&lt; \r\n795c736\r\n&lt; # Returns:   Nothing\r\n---\r\n&gt; # Returns:   None\r\n797,801c738\r\n&lt; set = $(__gmsl_tr3)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2$3)$(eval __gmsl_aa_$1_$(__gmsl_aa_magic)_$2_gmsl_aa_$1 := $3)\r\n&lt; \r\n&lt; # Only used internally by memoize function\r\n&lt; \r\n&lt; __gmsl_set = $(call set,$1,$2,$3)$3\r\n---\r\n&gt; set = $(__gmsl_tr3)$(eval __gmsl_aa_$1_$2 = $3)\r\n809c746,747\r\n&lt; get = $(strip $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(__gmsl_aa_$1_$(__gmsl_aa_magic)_$2_gmsl_aa_$1))\r\n---\r\n&gt; get = $(__gmsl_tr2)$(if $(filter-out undefined,$(origin __gmsl_aa_$1_$2)), \\\r\n&gt;     $(__gmsl_aa_$1_$2))\r\n816,817c754,755\r\n&lt; keys = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(sort $(patsubst __gmsl_aa_$1_$(__gmsl_aa_magic)_%_gmsl_aa_$1,%, \\\r\n&lt;                   $(filter __gmsl_aa_$1_$(__gmsl_aa_magic)_%_gmsl_aa_$1,$(.VARIABLES))))\r\n---\r\n&gt; keys = $(__gmsl_tr1)$(sort $(patsubst __gmsl_aa_$1_%,%, \\\r\n&gt;                   $(filter __gmsl_aa_$1_%,$(.VARIABLES))))\r\n825c763\r\n&lt; defined = $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(call sne,$(call get,$1,$2),)\r\n---\r\n&gt; defined = $(__gmsl_tr2)$(call sne,$(call get,$1,$2),)\r\n841c779\r\n&lt; push = $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(eval __gmsl_stack_$1 := $2 $(if $(filter-out undefined,\\\r\n---\r\n&gt; push = $(__gmsl_tr2)$(eval __gmsl_stack_$1 := $2 $(if $(filter-out undefined,\\\r\n849c787\r\n&lt; pop = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(strip $(if $(filter-out undefined,$(origin __gmsl_stack_$1)), \\\r\n---\r\n&gt; pop = $(__gmsl_tr1)$(if $(filter-out undefined,$(origin __gmsl_stack_$1)), \\\r\n851c789\r\n&lt;     $(eval __gmsl_stack_$1 := $(call rest,$(__gmsl_stack_$1)))))\r\n---\r\n&gt;     $(eval __gmsl_stack_$1 := $(call rest,$(__gmsl_stack_$1))))\r\n858c796\r\n&lt; peek = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(call first,$(__gmsl_stack_$1))\r\n---\r\n&gt; peek = $(__gmsl_tr1)$(call first,$(__gmsl_stack_$1))\r\n865,888c803\r\n&lt; depth = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(words $(__gmsl_stack_$1))\r\n&lt; \r\n&lt; endif # __gmsl_have_eval\r\n&lt; \r\n&lt; ifdef __gmsl_have_eval\r\n&lt; # ###########################################################################\r\n&lt; # STRING CACHE\r\n&lt; # ###########################################################################\r\n&lt; \r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; # Function:  memoize\r\n&lt; # Arguments: 1. Name of the function to be called if the string\r\n&lt; #               has not been previously seen\r\n&lt; #            2. A string\r\n&lt; # Returns:   Returns the result of a memo function (which the user must\r\n&lt; #            define) on the passed in string and remembers the result.\r\n&lt; #\r\n&lt; # Example:   Set memo = $(shell echo &quot;$1&quot; | md5sum) to make a cache\r\n&lt; #            of MD5 hashes of strings. $(call memoize,memo,foo bar baz)\r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; __gmsl_memoize = $(subst $(__gmsl_space),\\A7,$1)cc2af1bb7c4482f2ba75e338b963d3e7$(subst $(__gmsl_space),\\A7,$2)\r\n&lt; memoize = $(__gmsl_tr2)$(strip $(if $(call defined,__gmsl_m,$(__gmsl_memoize)),\\\r\n&lt;                   $(call get,__gmsl_m,$(__gmsl_memoize)),                      \\\r\n&lt;                   $(call __gmsl_set,__gmsl_m,$(__gmsl_memoize),$(call $1,$2))))\r\n---\r\n&gt; depth = $(__gmsl_tr1)$(words $(__gmsl_stack_$1))\r\n912c827\r\n&lt; assert = $(if $2,$(if $1,,$(call __gmsl_error,Assertion failure: $2)))\r\n---\r\n&gt; assert = $(if $1,,$(call __gmsl_error,Assertion failure: $2))\r\n920,940c835\r\n&lt; assert_exists = $(if $0,$(call assert,$(wildcard $1),file '$1' missing))\r\n&lt; \r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; # Function:  assert_no_dollar\r\n&lt; # Arguments: 1: Name of a function being executd\r\n&lt; #            2: Arguments to check\r\n&lt; # Returns:   None\r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; assert_no_dollar = $(call __gmsl_tr2)$(call assert,$(call not,$(findstring $(__gmsl_dollar),$2)),$1 called with a dollar sign in argument)\r\n&lt; \r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; # Function:  assert_no_space\r\n&lt; # Arguments: 1: Name of a function being executd\r\n&lt; #            2: Arguments to check\r\n&lt; # Returns:   None\r\n&lt; # ----------------------------------------------------------------------------\r\n&lt; ifeq ($(__gmsl_spaced_vars),$(false))\r\n&lt; assert_no_space = $(call assert,$(call not,$(findstring $(__gmsl_aa_magic),$(subst $(__gmsl_space),$(__gmsl_aa_magic),$2))),$1 called with a space in argument)\r\n&lt; else\r\n&lt; assert_no_space =\r\n&lt; endif\r\n---\r\n&gt; assert_exists = $(call assert,$(wildcard $1),file '$1' missing)\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/libs\/logging\/console.cpp btr2018\/fawkes-robotino\/fawkes\/src\/libs\/logging\/console.cpp\r\n56,57d55\r\n&lt;   \/\/ make buffer line-buffered\r\n&lt;   setvbuf(outf_, NULL, _IOLBF, 0);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/libs\/logging\/file.cpp btr2018\/fawkes-robotino\/fawkes\/src\/libs\/logging\/file.cpp\r\n60,61d59\r\n&lt;   \/\/ make buffer line-buffered\r\n&lt;   setvbuf(log_file, NULL, _IOLBF, 0);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/libs\/navgraph\/yaml_navgraph.cpp btr2018\/fawkes-robotino\/fawkes\/src\/libs\/navgraph\/yaml_navgraph.cpp\r\n288d287\r\n&lt;  * @param allow_multi_graph if true, allows multiple disconnected graph segments\r\n293c292\r\n&lt; load_yaml_navgraph(std::string filename, bool allow_multi_graph)\r\n---\r\n&gt; load_yaml_navgraph(std::string filename)\r\n355c354\r\n&lt;   graph-&gt;calc_reachability(allow_multi_graph);\r\n---\r\n&gt;   graph-&gt;calc_reachability();\r\n418d416\r\n&lt;     if (node.unconnected())  out &lt;&lt; YAML::LocalTag(&quot;unconnected&quot;);\r\n447,456d444\r\n&lt;     if (edge.has_property(&quot;insert-mode&quot;)) {\r\n&lt; \t    std::string insert_mode = edge.property(&quot;insert-mode&quot;);\r\n&lt; \t    if (insert_mode == &quot;force&quot;) {\r\n&lt; \t\t    out &lt;&lt; YAML::LocalTag(&quot;allow-intersection&quot;);\r\n&lt; \t    } else if (insert_mode == &quot;no-intersection&quot;) {\r\n&lt; \t\t    out &lt;&lt; YAML::LocalTag(&quot;no-intersection&quot;);\r\n&lt; \t    } else if (insert_mode == &quot;split-intersection&quot;) {\r\n&lt; \t\t    out &lt;&lt; YAML::LocalTag(&quot;split-intersection&quot;);\r\n&lt; \t    }\r\n&lt;     }\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/libs\/navgraph\/yaml_navgraph.h btr2018\/fawkes-robotino\/fawkes\/src\/libs\/navgraph\/yaml_navgraph.h\r\n35c35\r\n&lt; extern NavGraph *  load_yaml_navgraph(std::string filename, bool allow_multi_graph = false);\r\n---\r\n&gt; extern NavGraph *  load_yaml_navgraph(std::string filename);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/libs\/protobuf_comm\/peer.cpp btr2018\/fawkes-robotino\/fawkes\/src\/libs\/protobuf_comm\/peer.cpp\r\n63,64c63\r\n&lt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), port)),\r\n&lt;     resolve_retry_timer_(io_service_)\r\n---\r\n&gt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), port))\r\n84,85c83\r\n&lt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), recv_on_port)),\r\n&lt;     resolve_retry_timer_(io_service_)\r\n---\r\n&gt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), recv_on_port))\r\n100,101c98\r\n&lt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), port)),\r\n&lt;     resolve_retry_timer_(io_service_)\r\n---\r\n&gt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), port))\r\n123,124c120\r\n&lt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), recv_on_port)),\r\n&lt;     resolve_retry_timer_(io_service_)\r\n---\r\n&gt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), recv_on_port))\r\n141d136\r\n&lt;     resolve_retry_timer_(io_service_),\r\n158,159c153\r\n&lt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), recv_on_port)),\r\n&lt;     resolve_retry_timer_(io_service_)\r\n---\r\n&gt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), recv_on_port))\r\n180d173\r\n&lt;     resolve_retry_timer_(io_service_),\r\n195,196c188\r\n&lt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), port)),\r\n&lt;     resolve_retry_timer_(io_service_)\r\n---\r\n&gt;     socket_(io_service_, ip::udp::endpoint(ip::udp::v4(), port))\r\n215d206\r\n&lt;     resolve_retry_timer_(io_service_),\r\n239d229\r\n&lt;     resolve_retry_timer_(io_service_),\r\n264,266d253\r\n&lt;   send_to_address_ = address;\r\n&lt;   send_to_port_    = send_to_port;\r\n&lt;   \r\n275,276c262,267\r\n&lt;   outbound_ready_ = outbound_active_ = false;\r\n&lt;   start_resolve();\r\n---\r\n&gt;   outbound_active_ = true;\r\n&gt;   ip::udp::resolver::query query(address, boost::lexical_cast&lt;std::string&gt;(send_to_port));\r\n&gt;   resolver_.async_resolve(query,\r\n&gt; \t\t\t  boost::bind(&amp;ProtobufBroadcastPeer::handle_resolve, this,\r\n&gt; \t\t\t\t      boost::asio::placeholders::error,\r\n&gt; \t\t\t\t      boost::asio::placeholders::iterator));\r\n288d278\r\n&lt; \tresolve_retry_timer_.cancel();\r\n395c385\r\n&lt;     outbound_ready_    = true;\r\n---\r\n&gt;     outbound_active_   = false;\r\n398,400c388\r\n&lt;     sig_send_error_(&quot;Resolving endpoint failed, retrying&quot;);\r\n&lt;     resolve_retry_timer_.expires_from_now(boost::posix_time::seconds(2));\r\n&lt;     resolve_retry_timer_.async_wait(boost::bind(&amp;ProtobufBroadcastPeer::retry_resolve, this, _1));\r\n---\r\n&gt;     sig_send_error_(&quot;Resolving endpoint failed&quot;);\r\n406,421d393\r\n&lt; ProtobufBroadcastPeer::retry_resolve(const boost::system::error_code &amp;ec)\r\n&lt; {\r\n&lt; \tif (! ec)  start_resolve();\r\n&lt; }\r\n&lt; \r\n&lt; void\r\n&lt; ProtobufBroadcastPeer::start_resolve()\r\n&lt; {\r\n&lt;   ip::udp::resolver::query query(send_to_address_, boost::lexical_cast&lt;std::string&gt;(send_to_port_));\r\n&lt;   resolver_.async_resolve(query,\r\n&lt; \t\t\t  boost::bind(&amp;ProtobufBroadcastPeer::handle_resolve, this,\r\n&lt; \t\t\t\t      boost::asio::placeholders::error,\r\n&lt; \t\t\t\t      boost::asio::placeholders::iterator));\r\n&lt; }\r\n&lt; \r\n&lt; void\r\n682c654\r\n&lt;   if (outbound_queue_.empty() || outbound_active_ || ! outbound_ready_)  return;\r\n---\r\n&gt;   if (outbound_queue_.empty() || outbound_active_)  return;\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/libs\/protobuf_comm\/peer.h btr2018\/fawkes-robotino\/fawkes\/src\/libs\/protobuf_comm\/peer.h\r\n164,165d163\r\n&lt;   void start_resolve();\r\n&lt;   void retry_resolve(const boost::system::error_code &amp;ec);\r\n176d173\r\n&lt;   boost::asio::deadline_timer     resolve_retry_timer_;\r\n186d182\r\n&lt;   unsigned int send_to_port_;\r\n191,192c187\r\n&lt;   bool                     outbound_ready_;\r\n&lt;   \r\n---\r\n&gt; \r\nOnly in btr2017\/fawkes-robotino\/fawkes\/src\/libs: sweep\r\nOnly in btr2017\/fawkes-robotino\/fawkes\/src\/plugins: 40laser\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/dynamixel\/driver_thread.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/dynamixel\/driver_thread.cpp\r\n88d87\r\n&lt;   cfg_return_level_\t\t\t= config-&gt;get_uint((cfg_prefix_ + &quot;return_level&quot;).c_str());\r\n148,152d146\r\n&lt;   unsigned char cfg_return_levels_&#x5B;] = {DynamixelChain::SRL_RESPOND_NONE, \r\n&lt; \t  \t\t\t\tDynamixelChain::SRL_RESPOND_READ,\r\n&lt; \t\t\t\t\tDynamixelChain::SRL_RESPOND_ALL};\r\n&lt; \r\n&lt;   \/* \r\n155,157d148\r\n&lt;   *\/\r\n&lt;   chain_-&gt;set_status_return_level(DynamixelChain::BROADCAST_ID, cfg_return_levels_&#x5B;cfg_return_level_]);\r\n&lt; \r\n446c437\r\n&lt;       \/\/ logger-&gt;log_info(name(), &quot;Received message of type %s, enqueueing&quot;, message-&gt;type());\r\n---\r\n&gt;       logger-&gt;log_info(name(), &quot;Received message of type %s, enqueueing&quot;, message-&gt;type());\r\n873,874c864,865\r\n&lt;     logger-&gt;log_warn(name(), &quot;Position out of bounds (id %d), min: %u  max: %u  des: %i&quot;,\r\n&lt; \t\t     servo_id, pos_min, pos_max, pos);\r\n---\r\n&gt;     logger-&gt;log_warn(name(), &quot;Position out of bounds, min: %u  max: %u  des: %i&quot;,\r\n&gt; \t\t     pos_min, pos_max, pos);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/dynamixel\/driver_thread.h btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/dynamixel\/driver_thread.h\r\n132d131\r\n&lt;   unsigned char cfg_return_level_;\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/dynamixel\/servo_chain.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/dynamixel\/servo_chain.cpp\r\n201,204c201,202\r\n&lt;   \/\/ cfsetospeed(&amp;param, B57600);\r\n&lt;   \/\/ cfsetispeed(&amp;param, B57600);\r\n&lt;   cfsetospeed(&amp;param, B1000000);\r\n&lt;   cfsetispeed(&amp;param, B1000000);\r\n---\r\n&gt;   cfsetospeed(&amp;param, B57600);\r\n&gt;   cfsetispeed(&amp;param, B57600);\r\n1260d1257\r\n&lt;   printf(&quot;DynamixelChain write_table_value P_RETURN_LEVEL = %d\\n&quot;, status_return_level);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/gazebo\/gazsim-comm\/gazsim_comm_thread.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/gazebo\/gazsim-comm\/gazsim_comm_thread.cpp\r\n25,26c25\r\n&lt; #include &quot;gazsim_comm_thread.h&quot;\r\n&lt; \r\n---\r\n&gt; #include &lt;aspect\/blocked_timing.h&gt;\r\n29c28,29\r\n&lt; #include &lt;utils\/time\/wait.h&gt;\r\n---\r\n&gt; #include &lt;stdlib.h&gt;\r\n&gt; #include &quot;gazsim_comm_thread.h&quot;\r\n31d30\r\n&lt; #include &lt;cstdlib&gt;\r\n42c41,42\r\n&lt;   : Thread(&quot;GazsimCommThread&quot;, Thread::OPMODE_CONTINUOUS)\r\n---\r\n&gt;   : Thread(&quot;GazsimCommThread&quot;, Thread::OPMODE_WAITFORWAKEUP),\r\n&gt;     BlockedTimingAspect(BlockedTimingAspect::WAKEUP_HOOK_WORLDSTATE)\r\n44d43\r\n&lt; \tset_prepfin_conc_loop(true);\r\n116d114\r\n&lt;     peers_&#x5B;i]-&gt;signal_send_error().connect(boost::bind(&amp;GazsimCommThread::peer_send_error, this, addresses_&#x5B;i], send_ports_&#x5B;i], _1));\r\n122d119\r\n&lt;       peers_crypto1_&#x5B;i]-&gt;signal_send_error().connect(boost::bind(&amp;GazsimCommThread::peer_send_error, this, addresses_&#x5B;i], send_ports_crypto1_&#x5B;i], _1));\r\n129d125\r\n&lt;       peers_crypto2_&#x5B;i]-&gt;signal_send_error().connect(boost::bind(&amp;GazsimCommThread::peer_send_error, this, addresses_&#x5B;i], send_ports_crypto2_&#x5B;i], _1));\r\n132,134d127\r\n&lt; \r\n&lt;   wait_ = new TimeWait(clock, 15000000);\r\n&lt; \r\n146d138\r\n&lt;   delete wait_;\r\n153,165c145,180\r\n&lt; \twait_-&gt;mark_start();\r\n&lt; \tauto i = peer_resolve_errors_.begin();\r\n&lt; \tfawkes::Time now(clock);\r\n&lt; \tnow.stamp_systime();\r\n&lt; \twhile (i != peer_resolve_errors_.end()) {\r\n&lt; \t\tif (now - &amp;i-&gt;second &gt;= 5.0) {\r\n&lt; \t\t\tlogger-&gt;log_info(name(), &quot;Peer %s:%u has recovered&quot;, i-&gt;first.first.c_str(), i-&gt;first.second);\r\n&lt; \t\t\ti = peer_resolve_errors_.erase(i);\r\n&lt; \t\t} else {\r\n&lt; \t\t\t++i;\r\n&lt; \t\t}\r\n&lt; \t}\r\n&lt; \twait_-&gt;wait_systime();\r\n---\r\n&gt; }\r\n&gt; \r\n&gt; \/**\r\n&gt;  * Receive and forward msg\r\n&gt;  * @param endpoint port msg received from\r\n&gt;  * @param component_id message_component_id\r\n&gt;  * @param msg_type msg_type\r\n&gt;  * @param msg Message\r\n&gt;  *\/\r\n&gt; void\r\n&gt; GazsimCommThread::receive_msg(boost::asio::ip::udp::endpoint &amp;endpoint,\r\n&gt; \t\t       uint16_t component_id, uint16_t msg_type,\r\n&gt; \t\t       std::shared_ptr&lt;google::protobuf::Message&gt; msg)\r\n&gt; {\r\n&gt;   \/\/logger-&gt;log_info(name(), &quot;Got Peer Message from port %d&quot;, endpoint.port());\r\n&gt;   unsigned int incoming_peer_port = endpoint.port(); \/\/this is suprisingly the send-port\r\n&gt;  \r\n&gt;   if(!initialized_)\r\n&gt;   {\r\n&gt;     return;\r\n&gt;   }\r\n&gt; \r\n&gt;   \/\/simulate package loss\r\n&gt;   double rnd = ((double) rand()) \/ ((double) RAND_MAX); \/\/0.0 &lt;= rnd &lt;= 1.0\r\n&gt;   if(rnd &lt; package_loss_)\r\n&gt;   {\r\n&gt;     return;\r\n&gt;   }\r\n&gt;   \/\/send message to all other peers\r\n&gt;   for(unsigned int i = 0; i &lt; peers_.size(); i++)\r\n&gt;   {\r\n&gt;     if(send_ports_&#x5B;i] != incoming_peer_port)\r\n&gt;     {\r\n&gt;       peers_&#x5B;i]-&gt;send(msg);\r\n&gt;     }\r\n&gt;   }\r\n177,178c192,193\r\n&lt;                                   protobuf_comm::frame_header_t &amp;header,\r\n&lt;                                   void * data, size_t length)\r\n---\r\n&gt; \t\t\t\t  protobuf_comm::frame_header_t &amp;header, void * data,\r\n&gt; \t\t\t\t  size_t length)\r\n222,246d236\r\n&lt; }\r\n&lt; \r\n&lt; void\r\n&lt; GazsimCommThread::peer_send_error(std::string address, unsigned int port, std::string err)\r\n&lt; {\r\n&lt; \tif (err.find(&quot;Resolving endpoint failed&quot;) == 0) {\r\n&lt; \t\tauto key = std::make_pair(address, port);\r\n&lt; \t\tif (peer_resolve_errors_.find(key) == peer_resolve_errors_.end()) {\r\n&lt; \t\t\tlogger-&gt;log_warn(name(), &quot;Cannot resolve %s:%u (muting warning for 1 min)&quot;,\r\n&lt; \t\t\t                 address.c_str(), port);\r\n&lt; \t\t\tfawkes::Time now(clock);\r\n&lt; \t\t\tnow.stamp_systime();\r\n&lt; \t\t\tpeer_resolve_errors_&#x5B;key] = now;\r\n&lt; \t\t} else {\r\n&lt; \t\t\tfawkes::Time now(clock);\r\n&lt; \t\t\tnow.stamp_systime();\r\n&lt; \t\t\tif (now - &amp;peer_resolve_errors_&#x5B;key] &gt;= 60.0) {\r\n&lt; \t\t\t\tlogger-&gt;log_warn(name(), &quot;Still cannot resolve %s:%u (muting warning again for 1 min)&quot;,\r\n&lt; \t\t\t\t                 address.c_str(), port);\r\n&lt; \t\t\t\tpeer_resolve_errors_&#x5B;key].stamp_systime();\r\n&lt; \t\t\t}\r\n&lt; \t\t}\r\n&lt; \t} else {\r\n&lt; \t\tlogger-&gt;log_warn(name(), &quot;Peer send error for %s:%u: %s&quot;, address.c_str(), port, err.c_str());\r\n&lt; \t}\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/gazebo\/gazsim-comm\/gazsim_comm_thread.h btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/gazebo\/gazsim-comm\/gazsim_comm_thread.h\r\n31c31\r\n&lt; #include &lt;aspect\/clock.h&gt;\r\n---\r\n&gt; #include &lt;aspect\/blocked_timing.h&gt;\r\n35a36\r\n&gt; #include &lt;list&gt;\r\n37,40d37\r\n&lt; #include &lt;vector&gt;\r\n&lt; #include &lt;string&gt;\r\n&lt; #include &lt;utility&gt;\r\n&lt; #include &lt;map&gt;\r\n45,47d41\r\n&lt; namespace fawkes {\r\n&lt; \tclass TimeWait;\r\n&lt; }\r\n50a45\r\n&gt;   public fawkes::BlockedTimingAspect,\r\n52,53c47\r\n&lt; \tpublic fawkes::LoggingAspect,\r\n&lt; \tpublic fawkes::ClockAspect\r\n---\r\n&gt;   public fawkes::LoggingAspect\r\n62a57,59\r\n&gt;   void receive_msg(boost::asio::ip::udp::endpoint &amp;endpoint,\r\n&gt; \t\t       uint16_t component_id, uint16_t msg_type,\r\n&gt; \t\t       std::shared_ptr&lt;google::protobuf::Message&gt; msg);\r\n67,68d63\r\n&lt;   void peer_send_error(std::string address, unsigned int port, std::string err);\r\n&lt;   \r\n90a86\r\n&gt;   \/\/helper variables\r\n92,94d87\r\n&lt; \r\n&lt;   fawkes::TimeWait *wait_;\r\n&lt;   std::map&lt;std::pair&lt;std::string, unsigned int&gt;, fawkes::Time&gt; peer_resolve_errors_;\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/laser\/laser.mk btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/laser\/laser.mk\r\n60c60\r\n&lt; ifeq  ($(HAVE_LIBUSB),1)\r\n---\r\n&gt; ifeq ($(HAVE_LIBUSB),1)\r\n65,70c65,70\r\n&lt; SWEEP_REQ_BOOST_LIBS = thread asio system\r\n&lt; HAVE_SWEEP_BOOST_LIBS = $(call boost-have-libs,$(SWEEP_REQ_BOOST_LIBS))\r\n&lt; ifeq ($(HAVE_SWEEP_BOOST_LIBS),1)\r\n&lt;   CFLAGS_SWEEP_BOOST  = -DHAVE_SWEEP_BOOST \\\r\n&lt; \t\t\t      $(call boost-libs-cflags,$(SWEEP_REQ_BOOST_LIBS))\r\n&lt;   LDFLAGS_SWEEP_BOOST = $(call boost-libs-ldflags,$(SWEEP_REQ_BOOST_LIBS)) \\\r\n---\r\n&gt; SICK_TIM55X_REQ_BOOST_LIBS = thread asio system\r\n&gt; HAVE_SICK_TIM55X_BOOST_LIBS = $(call boost-have-libs,$(SICK_TIM55X_REQ_BOOST_LIBS))\r\n&gt; ifeq ($(HAVE_SICK_TIM55X_BOOST_LIBS),1)\r\n&gt;   CFLAGS_SICK_TIM55X_BOOST  = -DHAVE_SICK55X_BOOST \\\r\n&gt; \t\t\t      $(call boost-libs-cflags,$(SICK_TIM55X_REQ_BOOST_LIBS))\r\n&gt;   LDFLAGS_SICK_TIM55X_BOOST = $(call boost-libs-ldflags,$(SICK_TIM55X_REQ_BOOST_LIBS)) \\\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/laser\/laser_plugin.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/laser\/laser_plugin.cpp\r\n24,38d23\r\n&lt; \/*\r\n&lt; #include &lt;sweep\/sweep\/config.h&gt;\r\n&lt; #include &lt;sweep\/sweep\/sweep.h&gt;\r\n&lt; #include &lt;sweep\/serial.hpp&gt;\r\n&lt; #include &lt;sweep\/protocol.hpp&gt;\r\n&lt; #include &lt;sweep\/error.hpp&gt;\r\n&lt; #include &lt;sweep\/queue.hpp&gt;\r\n&lt; *\/\r\n&lt; #include &lt;sweep\/build\/include\/sweep\/config.h&gt;\r\n&lt; #include &lt;sweep\/include\/sweep\/sweep.h&gt;\r\n&lt; #include &lt;sweep\/include\/serial.hpp&gt;\r\n&lt; #include &lt;sweep\/include\/queue.hpp&gt;\r\n&lt; #include &lt;sweep\/include\/protocol.hpp&gt;\r\n&lt; #include &lt;sweep\/include\/error.hpp&gt;\r\n&lt; \r\n51c36,39\r\n&lt; #  include &quot;sweep_aqt.h&quot;\r\n---\r\n&gt; #  include &quot;sick_tim55x_usb_aqt.h&quot;\r\n&gt; #endif\r\n&gt; #ifdef HAVE_SICK55X_BOOST\r\n&gt; #  include &quot;sick_tim55x_ethernet_aqt.h&quot;\r\n122,123c110,117\r\n&lt; \t  if ( type == &quot;sweep&quot; ) {\r\n&lt; \t    aqt = new SweepAcquisitionThread(cfg_name, cfg_prefix);\r\n---\r\n&gt; \t  if ( type == &quot;TiM55x-USB&quot; ) {\r\n&gt; \t    aqt = new SickTiM55xUSBAcquisitionThread(cfg_name, cfg_prefix);\r\n&gt; \t  } else \r\n&gt; #endif\r\n&gt; \r\n&gt; #ifdef HAVE_SICK55X_BOOST\r\n&gt; \t  if ( type == &quot;TiM55x-Ethernet&quot; ) {\r\n&gt; \t    aqt = new SickTiM55xEthernetAcquisitionThread(cfg_name, cfg_prefix);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/laser\/Makefile btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/laser\/Makefile\r\n21c21\r\n&lt; \t     Laser1080Interface sweep\r\n---\r\n&gt; \t     Laser1080Interface\r\n53,55c53,55\r\n&lt; # ifneq ($(HAVE_LIBUSB)$(HAVE_SWEEP_BOOST_LIBS),0)\r\n&lt; #   OBJS_laser += sweep_common_aqt.o\r\n&lt; # endif\r\n---\r\n&gt; ifneq ($(HAVE_LIBUSB)$(HAVE_SICK_TIM55X_BOOST_LIBS),0)\r\n&gt;   OBJS_laser += sick_tim55x_common_aqt.o\r\n&gt; endif\r\n57,58c57,58\r\n&lt;   OBJS_laser += sweep_aqt.o\r\n&lt;   CFLAGS     += $(CFLAGS_LIBUSB) -std=c++11\r\n---\r\n&gt;   OBJS_laser += sick_tim55x_usb_aqt.o\r\n&gt;   CFLAGS     += $(CFLAGS_LIBUSB)\r\n62a63,69\r\n&gt; ifeq ($(HAVE_SICK_TIM55X_BOOST_LIBS),1)\r\n&gt;   OBJS_laser += sick_tim55x_ethernet_aqt.o\r\n&gt;   CFLAGS     += $(CFLAGS_SICK_TIM55X_BOOST)\r\n&gt;   LDFLAGS    += $(LDFLAGS_SICK_TIM55X_BOOST)\r\n&gt; else\r\n&gt;   WARN_TARGETS_SICK_TIM55X_BOOST = $(foreach l,$(SICK_TIM55X_REQ_BOOST_LIBS),$(if $(call boost-have-lib,$l),, warning_sick_55x_boost_$l))\r\n&gt; endif\r\n89c96,99\r\n&lt; \t$(SILENT)echo -e &quot;$(INDENT_PRINT)--&gt; $(TYELLOW)No support for  Sweep-USB$(TNORMAL) (libusb not found)&quot;\r\n---\r\n&gt; \t$(SILENT)echo -e &quot;$(INDENT_PRINT)--&gt; $(TYELLOW)No support for Sick TiM55x-USB$(TNORMAL) (libusb not found)&quot;\r\n&gt; \r\n&gt; $(WARN_TARGETS_SICK_TIM55X_BOOST): warning_sick_tim55x_boost_%:\r\n&gt; \t$(SILENT)echo -e &quot;$(INDENT_PRINT)--&gt; $(TYELLOW)No suport for TiM55x-Ethernet$(TNORMAL) (Boost library $* not found)&quot;\r\nOnly in btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/laser: README.txt\r\nOnly in btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/laser: sweep_aqt.cpp\r\nOnly in btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/laser: sweep_aqt.h\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/laser-filter\/filters\/map_filter.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/laser-filter\/filters\/map_filter.cpp\r\n115,116c115,116\r\n&lt;         \/\/logger_-&gt;log_debug(&quot;map_filter&quot;, &quot;Can't transform laser-data using newest tf\\n(%s\\t%s\\t\\%lf)&quot;,\r\n&lt;         \/\/    frame_map_.c_str(), in&#x5B;a]-&gt;frame.c_str(), in&#x5B;a]-&gt;timestamp-&gt;in_sec());\r\n---\r\n&gt;         logger_-&gt;log_debug(&quot;map_filter&quot;, &quot;Can't transform laser-data using newest tf\\n(%s\\t%s\\t\\%lf)&quot;,\r\n&gt;             frame_map_.c_str(), in&#x5B;a]-&gt;frame.c_str(), in&#x5B;a]-&gt;timestamp-&gt;in_sec());\r\n118,119c118,119\r\n&lt;         logger_-&gt;log_warn(&quot;map_filter&quot;, &quot;Can't transform laser-data (%s -&gt; %s)&quot;,\r\n&lt;                           frame_map_.c_str(), in&#x5B;a]-&gt;frame.c_str());\r\n---\r\n&gt;         logger_-&gt;log_debug(&quot;map_filter&quot;, &quot;Can't transform laser-data at all (%s -&gt; %s)&quot;,\r\n&gt;                            frame_map_.c_str(), in&#x5B;a]-&gt;frame.c_str());\r\nOnly in btr2017\/fawkes-robotino\/fawkes\/src\/plugins: laser-kizuna\r\nOnly in btr2017\/fawkes-robotino\/fawkes\/src\/plugins: laser.old\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/Makefile btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/Makefile\r\n46,47c46\r\n&lt;     CFLAGS += $(CFLAGS_ROS) $(CFLAGS_TF)\r\n&lt;     LDFLAGS += $(LDFLAGS_ROS) $(LDFLAGS_TF)\r\n---\r\n&gt;     CFLAGS += $(CFLAGS_ROS)\r\n51,52c50,53\r\n&lt;         CFLAGS  += -DHAVE_VISUALIZATION $(call ros-pkg-cflags,visualization_msgs)\r\n&lt;         LDFLAGS += $(call ros-pkg-lflags,visualization_msgs)\r\n---\r\n&gt;         CFLAGS  += -DHAVE_VISUALIZATION\r\n&gt;         CFLAGS_visualization_thread = $(CFLAGS) $(CFLAGS_TF) \\\r\n&gt; \t\t\t\t                              $(call ros-pkg-cflags,visualization_msgs)\r\n&gt;         LDFLAGS += $(LDFLAGS_ROS) $(call ros-pkg-lflags,visualization_msgs)\r\n62,63c63,66\r\n&lt;       CFLAGS  += -DHAVE_FAWKES_MSGS $(call ros-pkg-cflags,fawkes_msgs)\r\n&lt;       LDFLAGS += $(call ros-pkg-lflags,fawkes_msgs)\r\n---\r\n&gt;       CFLAGS  += -DHAVE_FAWKES_MSGS\r\n&gt;       CFLAGS_rospub_thread = $(CFLAGS)  \\\r\n&gt; \t\t\t                       $(call ros-pkg-cflags,fawkes_msgs)\r\n&gt;       LDFLAGS += $(LDFLAGS_ROS) $(call ros-pkg-lflags,fawkes_msgs)\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/navgraph_thread.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/navgraph_thread.cpp\r\n93,97d92\r\n&lt;   cfg_allow_multi_graph_ = false;\r\n&lt;   try {\r\n&lt;     cfg_allow_multi_graph_ = config-&gt;get_bool(&quot;\/navgraph\/allow_multi_graph&quot;);\r\n&lt;   } catch (Exception &amp;e) {} \/\/ ignored\r\n&lt; \r\n436,437c431\r\n&lt;     return fawkes::LockPtr&lt;NavGraph&gt;(load_yaml_navgraph(filename, cfg_allow_multi_graph_),\r\n&lt;                                      \/* recursive mutex *\/ true);\r\n---\r\n&gt;     return fawkes::LockPtr&lt;NavGraph&gt;(load_yaml_navgraph(filename), \/* recursive mutex *\/ true);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/navgraph_thread.h btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/navgraph_thread.h\r\n116d115\r\n&lt;   bool         cfg_allow_multi_graph_;\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/rospub_thread.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/rospub_thread.cpp\r\n30,31d29\r\n&lt; #include &lt;cmath&gt;\r\n&lt; \r\n54,61c52\r\n&lt;   cfg_base_frame_      = config-&gt;get_string(&quot;\/frames\/base&quot;);\r\n&lt;   cfg_global_frame_    = config-&gt;get_string(&quot;\/frames\/fixed&quot;);\r\n&lt; \r\n&lt;   pub_ = rosnode-&gt;advertise&lt;fawkes_msgs::NavGraph&gt;(&quot;navgraph&quot;, 10, \/* latching *\/ true);\r\n&lt; \tsvs_search_path_ = rosnode-&gt;advertiseService(&quot;navgraph\/search_path&quot;,\r\n&lt; \t                                             &amp;NavGraphROSPubThread::svs_search_path_cb, this);\r\n&lt; \tsvs_get_pwcosts_ = rosnode-&gt;advertiseService(&quot;navgraph\/get_pairwise_costs&quot;,\r\n&lt; \t                                             &amp;NavGraphROSPubThread::svs_get_pwcosts_cb, this);\r\n---\r\n&gt; \tpub_ = rosnode-&gt;advertise&lt;fawkes_msgs::NavGraph&gt;(&quot;navgraph&quot;, 10, \/* latching *\/ true);\r\n71d61\r\n&lt; \tnavgraph-&gt;remove_change_listener(this);\r\n73,74d62\r\n&lt; \tsvs_search_path_.shutdown();\r\n&lt; \tsvs_get_pwcosts_.shutdown();\r\n79a68\r\n&gt; \tnavgraph-&gt;remove_change_listener(this);\r\n96d84\r\n&lt; \r\n98,99c86\r\n&lt; NavGraphROSPubThread::convert_nodes(const std::vector&lt;fawkes::NavGraphNode&gt; &amp;nodes,\r\n&lt;                                     std::vector&lt;fawkes_msgs::NavGraphNode&gt; &amp;out)\r\n---\r\n&gt; NavGraphROSPubThread::publish_graph()\r\n100a88,92\r\n&gt; \tMutexLocker lock(navgraph.objmutex_ptr());\r\n&gt; \r\n&gt; \tfawkes_msgs::NavGraph ngm;\r\n&gt; \r\n&gt; \tconst std::vector&lt;NavGraphNode&gt; &amp;nodes = navgraph-&gt;nodes();\r\n118c110\r\n&lt; \t\tout.push_back(ngn);\r\n---\r\n&gt; \t\tngm.nodes.push_back(ngn);\r\n120,131d111\r\n&lt; }\r\n&lt; \r\n&lt; void\r\n&lt; NavGraphROSPubThread::publish_graph()\r\n&lt; {\r\n&lt; \tMutexLocker lock(navgraph.objmutex_ptr());\r\n&lt; \r\n&lt; \tfawkes_msgs::NavGraph ngm;\r\n&lt; \r\n&lt; \tconst std::vector&lt;NavGraphNode&gt; &amp;nodes = navgraph-&gt;nodes();\r\n&lt; \tconvert_nodes(nodes, ngm.nodes);\r\n&lt; \r\n149,276d128\r\n&lt; }\r\n&lt; \r\n&lt; \r\n&lt; bool\r\n&lt; NavGraphROSPubThread::svs_search_path_cb(fawkes_msgs::NavGraphSearchPath::Request  &amp;req,\r\n&lt;                                          fawkes_msgs::NavGraphSearchPath::Response &amp;res)\r\n&lt; {\r\n&lt; \tNavGraphNode from, to;\r\n&lt; \r\n&lt; \r\n&lt; \tif (req.from_node.empty()) {\r\n&lt; \t\tfawkes::tf::Stamped&lt;fawkes::tf::Pose&gt; pose;\r\n&lt; \t\tif (! tf_listener-&gt;transform_origin(cfg_base_frame_, cfg_global_frame_, pose)) {\r\n&lt; \t\t\tlogger-&gt;log_warn(name(),\r\n&lt; \t\t\t                 &quot;Failed to compute pose, cannot generate plan&quot;);\r\n&lt; \r\n&lt; \t\t\tres.ok = false;\r\n&lt; \t\t\tres.errmsg = &quot;Failed to compute pose, cannot generate plan&quot;;\r\n&lt; \t\t\treturn true;\r\n&lt; \t\t}\r\n&lt; \r\n&lt; \t\tfrom =\r\n&lt; \t\t\tnavgraph-&gt;closest_node(pose.getOrigin().x(), pose.getOrigin().y());\r\n&lt; \t\tif (! from.is_valid()) {\r\n&lt; \t\t\tres.ok = false;\r\n&lt; \t\t\tres.errmsg = &quot;Failed to get closest node to pose&quot;;\r\n&lt; \t\t\treturn true;\r\n&lt; \t\t}\r\n&lt; \r\n&lt; \t\tfawkes_msgs::NavGraphNode free_start;\r\n&lt; \t\tfree_start.name = &quot;free-start&quot;;\r\n&lt; \t\tfree_start.pose.x = pose.getOrigin().x();\r\n&lt; \t\tfree_start.pose.y = pose.getOrigin().y();\r\n&lt; \t\tfree_start.has_orientation = true;\r\n&lt; \t\tfree_start.pose.theta = tf::get_yaw(pose.getRotation());\r\n&lt; \t\tres.path.push_back(free_start);\r\n&lt; \t} else {\r\n&lt; \t\tfrom = navgraph-&gt;node(req.from_node);\r\n&lt; \t\tif (! from.is_valid()) {\r\n&lt; \t\t\tres.ok = false;\r\n&lt; \t\t\tres.errmsg = &quot;Failed to find start node &quot; + req.from_node;\r\n&lt; \t\t\treturn true;\r\n&lt; \t\t}\r\n&lt; \t}\r\n&lt; \r\n&lt; \tNavGraphPath path;\r\n&lt; \r\n&lt; \tif (! req.to_node.empty()) {\r\n&lt; \t\tpath = navgraph-&gt;search_path(from.name(), req.to_node);\r\n&lt; \t} else {\r\n&lt; \t\tNavGraphNode close_to_goal = navgraph-&gt;closest_node(req.to_pose.x, req.to_pose.y);\r\n&lt; \t\tpath = navgraph-&gt;search_path(from, close_to_goal);\r\n&lt; \t\tif (! path.empty()) {\r\n&lt; \t\t\tNavGraphNode free_target(&quot;free-target&quot;, req.to_pose.x, req.to_pose.y);\r\n&lt; \t\t\tif (std::isfinite(req.to_pose.theta)) {\r\n&lt; \t\t\t\tfree_target.set_property(&quot;orientation&quot;, (float)req.to_pose.theta);\r\n&lt; \t\t\t}\r\n&lt; \t\t\tpath.add_node(free_target, navgraph-&gt;cost(path.nodes().back(), free_target));\r\n&lt; \t\t}\r\n&lt; \t}\r\n&lt; \r\n&lt; \t\/\/ translate path into result\r\n&lt; \tconvert_nodes(path.nodes(), res.path);\r\n&lt; \tres.cost = path.cost();\r\n&lt; \t\r\n&lt; \tres.ok = true;\r\n&lt; \treturn true;\r\n&lt; }\r\n&lt; \r\n&lt; bool\r\n&lt; NavGraphROSPubThread::svs_get_pwcosts_cb(fawkes_msgs::NavGraphGetPairwiseCosts::Request  &amp;req,\r\n&lt;                                          fawkes_msgs::NavGraphGetPairwiseCosts::Response &amp;res)\r\n&lt; {\r\n&lt; \tfor (unsigned int i = 0; i &lt; req.nodes.size(); ++i) {\r\n&lt; \t\tfor (unsigned int j = 0; j &lt; req.nodes.size(); ++j) {\r\n&lt; \t\t\tif (i == j) continue;\r\n&lt; \r\n&lt; \t\t\tfawkes::NavGraphNode from_node, to_node;\r\n&lt; \t\t\ttry {\r\n&lt; \t\t\t\tfrom_node = navgraph-&gt;node(req.nodes&#x5B;i]);\r\n&lt; \t\t\t\tto_node = navgraph-&gt;node(req.nodes&#x5B;j]);\r\n&lt; \t\t\t} catch (fawkes::Exception &amp;e) {\r\n&lt; \t\t\t\tres.ok = false;\r\n&lt; \t\t\t\tres.errmsg = &quot;Failed to get path from '&quot; + req.nodes&#x5B;i] + &quot;' to '&quot; +\r\n&lt; \t\t\t\t\treq.nodes&#x5B;j] + &quot;': &quot; + e.what_no_backtrace();\r\n&lt; \t\t\t\tres.path_costs.clear();\r\n&lt; \t\t\t\treturn true;\t\t\t\t\t\r\n&lt; \t\t\t}\r\n&lt; \r\n&lt; \t\t\tfawkes::NavGraphNode start_node, goal_node;\r\n&lt; \t\t\t\t\r\n&lt; \t\t\tif (from_node.unconnected()) {\r\n&lt; \t\t\t\tstart_node = navgraph-&gt;closest_node_to(from_node.name());\r\n&lt; \t\t\t\t\/\/logger-&gt;log_warn(name(), &quot;&#x5B;F-NavGraph] From node %s is UNCONNECTED, starting instead from %s&quot;,\r\n&lt; \t\t\t\t\/\/                 from_node.name().c_str(), start_node.name().c_str());\r\n&lt; \t\t\t} else {\r\n&lt; \t\t\t\tstart_node = from_node;\r\n&lt; \t\t\t}\r\n&lt; \t\t\tif (to_node.unconnected()) {\r\n&lt; \t\t\t\tgoal_node = navgraph-&gt;closest_node_to(to_node.name());\r\n&lt; \t\t\t\t\/\/logger-&gt;log_warn(name(), &quot;&#x5B;F-NavGraph] To node %s is UNCONNECTED, ending instead at %s&quot;,\r\n&lt; \t\t\t\t\/\/                 to_node.name().c_str(), goal_node.name().c_str());\r\n&lt; \t\t\t} else {\r\n&lt; \t\t\t\tgoal_node = to_node;\r\n&lt; \t\t\t}\r\n&lt; \t\t\tfawkes::NavGraphPath p = navgraph-&gt;search_path(start_node, goal_node);\r\n&lt; \t\t\tif (p.empty()) {\r\n&lt; \t\t\t\tres.ok = false;\r\n&lt; \t\t\t\tres.errmsg = &quot;Failed to get path from '&quot; + start_node.name() + &quot;' to '&quot; + goal_node.name() + &quot;'&quot;;\r\n&lt; \t\t\t\tres.path_costs.clear();\r\n&lt; \t\t\t\treturn true;\r\n&lt; \t\t\t}\r\n&lt; \t\t\tfawkes_msgs::NavGraphPathCost pc;\r\n&lt; \t\t\tpc.from_node = req.nodes&#x5B;i];\r\n&lt; \t\t\tpc.to_node = req.nodes&#x5B;j];\r\n&lt; \t\t\tpc.cost = p.cost();\r\n&lt; \t\t\tif (from_node.unconnected()) {\r\n&lt; \t\t\t\tpc.cost += navgraph-&gt;cost(from_node, start_node);\r\n&lt; \t\t\t}\r\n&lt; \t\t\tif (to_node.unconnected()) {\r\n&lt; \t\t\t\tpc.cost += navgraph-&gt;cost(goal_node, to_node);\r\n&lt; \t\t\t}\r\n&lt; \t\t\tres.path_costs.push_back(pc);\r\n&lt; \t\t}\r\n&lt; \t}\r\n&lt; \r\n&lt; \tres.ok = true;\r\n&lt; \treturn true;\t\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/rospub_thread.h btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph\/rospub_thread.h\r\n28c28\r\n&lt; #include &lt;aspect\/tf.h&gt;\r\n---\r\n&gt; #include &lt;aspect\/aspect_provider.h&gt;\r\n35,38d34\r\n&lt; #include &lt;ros\/service_server.h&gt;\r\n&lt; \r\n&lt; #include &lt;fawkes_msgs\/NavGraphSearchPath.h&gt;\r\n&lt; #include &lt;fawkes_msgs\/NavGraphGetPairwiseCosts.h&gt;\r\n45d40\r\n&lt; \tpublic fawkes::TransformAspect,\r\n49a45\r\n&gt;  private:\r\n65,71d60\r\n&lt;   void convert_nodes(const std::vector&lt;fawkes::NavGraphNode&gt; &amp;nodes,\r\n&lt;                      std::vector&lt;fawkes_msgs::NavGraphNode&gt; &amp;out);\r\n&lt; \r\n&lt;   bool svs_search_path_cb(fawkes_msgs::NavGraphSearchPath::Request  &amp;req,\r\n&lt;                           fawkes_msgs::NavGraphSearchPath::Response &amp;res);\r\n&lt;   bool svs_get_pwcosts_cb(fawkes_msgs::NavGraphGetPairwiseCosts::Request  &amp;req,\r\n&lt;                           fawkes_msgs::NavGraphGetPairwiseCosts::Response &amp;res);\r\n74,76d62\r\n&lt;   std::string  cfg_base_frame_;\r\n&lt;   std::string  cfg_global_frame_;\r\n&lt; \r\n78,79d63\r\n&lt;   ros::ServiceServer svs_search_path_;\r\n&lt;   ros::ServiceServer svs_get_pwcosts_;\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph-generator\/navgraph_generator_thread.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph-generator\/navgraph_generator_thread.cpp\r\n5c5\r\n&lt;  *  Copyright  2015-2017  Tim Niemueller &#x5B;www.niemueller.de]\r\n---\r\n&gt;  *  Copyright  2015  Tim Niemueller &#x5B;www.niemueller.de]\r\n28d27\r\n&lt; #include &lt;navgraph\/yaml_navgraph.h&gt;\r\n105,121d103\r\n&lt;   cfg_save_to_file_ = false;\r\n&lt;   try {\r\n&lt;     cfg_save_to_file_ = config-&gt;get_bool(CFG_PREFIX&quot;save-to-file\/enable&quot;);\r\n&lt;   } catch (Exception &amp;e) {} \/\/ ignore, use default\r\n&lt;   if (cfg_save_to_file_) {\r\n&lt; \t  cfg_save_filename_ = config-&gt;get_string(CFG_PREFIX&quot;save-to-file\/filename&quot;);\r\n&lt; \t  if (cfg_save_filename_.empty()) {\r\n&lt; \t\t  throw Exception(&quot;navgraph-generator: invalid empty filename&quot;);\r\n&lt; \t  }\r\n&lt; \t  if (cfg_save_filename_.find(&quot;..&quot;) != std::string::npos) {\r\n&lt; \t\t  throw Exception(&quot;navgraph-generator: filename may not contains two consecutive dots (..)&quot;);\r\n&lt; \t  }\r\n&lt; \t  if (cfg_save_filename_&#x5B;0] != '\/') {\r\n&lt; \t\t  cfg_save_filename_ = std::string(CONFDIR) + &quot;\/&quot; + cfg_save_filename_;\r\n&lt; \t  }\r\n&lt;   }\r\n&lt; \r\n298,302d279\r\n&lt;   }\r\n&lt; \r\n&lt;   if (cfg_save_to_file_) {\r\n&lt; \t  logger-&gt;log_debug(name(), &quot;  Writing to file '%s'&quot;, cfg_save_filename_.c_str());\r\n&lt; \t  save_yaml_navgraph(cfg_save_filename_, *navgraph);\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph-generator\/navgraph_generator_thread.h btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/navgraph-generator\/navgraph_generator_thread.h\r\n104,106d103\r\n&lt;   bool         cfg_save_to_file_;\r\n&lt;   std::string  cfg_save_filename_;\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/plugins\/robotino\/openrobotino_com_thread.cpp btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/robotino\/openrobotino_com_thread.cpp\r\n279c279\r\n&lt; \tupdate_velocities();\r\n---\r\n&gt; \r\nOnly in btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/ros: navgraph_breakout_plugin.cpp\r\nOnly in btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/ros: navgraph_breakout_thread.cpp\r\nOnly in btr2018\/fawkes-robotino\/fawkes\/src\/plugins\/ros: navgraph_breakout_thread.h\r\ndiff -r btr2017\/fawkes-robotino\/fawkes\/src\/tools\/set_pose\/ffset_pose.cpp btr2018\/fawkes-robotino\/fawkes\/src\/tools\/set_pose\/ffset_pose.cpp\r\n109c109\r\n&lt;   ArgumentParser argp(argc, argv, &quot;hr:i:t:f:&quot;);\r\n---\r\n&gt;   ArgumentParser argp(argc, argv, &quot;hr:i:t:&quot;);\r\n172,174c172,174\r\n&lt; \t      fprintf(stderr, &quot;Failed to localize %s:%u: %s\\n&quot;,\r\n&lt; \t              host.c_str(), port, e.what_no_backtrace());\r\n&lt; \t      break;\r\n---\r\n&gt; \tfprintf(stderr, &quot;Failed to localize %s:%u: %s\\n&quot;,\r\n&gt; \t\thost.c_str(), port, e.what_no_backtrace());\r\n&gt; \tbreak;\r\n176d175\r\n&lt;       usleep(1000000);\r\n180c179\r\n&lt;   return localized ? 0 : -1;\r\n---\r\n&gt;   return 0;\r\nOnly in btr2017\/fawkes-robotino\/lib: libsweep.so\r\nOnly in btr2017\/fawkes-robotino\/lib: libsweep.so.1\r\nOnly in btr2017\/fawkes-robotino\/lib: libsweep.so.1.3.0\r\nOnly in btr2017\/fawkes-robotino\/plugins: pi_gyro.so\r\ndiff -r btr2017\/fawkes-robotino\/src\/agents\/rcll2016\/blackboard-init.clp btr2018\/fawkes-robotino\/src\/agents\/rcll2016\/blackboard-init.clp\r\n34d33\r\n&lt;   (blackboard-open &quot;BTRPotentialInterface&quot; &quot;potential_value&quot;)\r\n52,54d50\r\n&lt;   (unwatch facts BTRPotentialInterface)\r\n&lt;   (unwatch rules BTRPotentialInterface-cleanup)\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/agents\/rcll2016\/globals.clp btr2018\/fawkes-robotino\/src\/agents\/rcll2016\/globals.clp\r\n11,14d10\r\n&lt;   ; potential variables\r\n&lt;   ?*BASE-POTENTIAL-VALUE* = 99.0\r\n&lt;   ?*NEW-POTENTIAL-VALUE* = 0.0\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/agents\/rcll2016\/lock-managing.clp btr2018\/fawkes-robotino\/src\/agents\/rcll2016\/lock-managing.clp\r\n97,125c97,98\r\n&lt; ;(defrule lock-getting-master\r\n&lt; ;  &quot;If master was not announced within the timeout limit announce self as master.&quot;\r\n&lt; ;  ?r &lt;- (lock-role SLAVE)\r\n&lt; ;  (time $?now)\r\n&lt; ;  ?mls &lt;- (master-last-seen $?last&amp;:(timeout ?now ?last (+ ?*CURRENT-MASTER-TIMEOUT* ?*MASTER-TIMEOUT-ROBOT-OFFSET*)))\r\n&lt; ;  ?mn &lt;- (master-name ?)\r\n&lt; ;  =&gt;\r\n&lt; ;  (printout t &quot;MASTER timed out -&gt; Getting MASTER&quot; crlf)\r\n&lt; ;  (retract ?r ?mn)\r\n&lt; ;  (assert (lock-role MASTER)\r\n&lt; ;\t  (master-name (str-cat ?*ROBOT-NAME*)))\r\n&lt; ;)\r\n&lt; \r\n&lt; ;;;;;MASTER\/SLAVE Slection by Potential Value;;;;;\r\n&lt; (defrule lock-binding-potential-value\r\n&lt;   &quot;Binding a potential value to the variables&quot;\r\n&lt;   (lock-role SLAVE)\r\n&lt;   (time $?now)\r\n&lt;   ;?bpv &lt;- (BTRPotentialInterface (id &quot;potential_value&quot;) (potential_value ?basepotential))\r\n&lt;   (BTRPotentialInterface (id &quot;potential_value&quot;) (potential_value ?basepotential))\r\n&lt;   ?mls &lt;- (master-last-seen $?)\r\n&lt;   =&gt;\r\n&lt;   (assert (base-potential ?basepotential))\r\n&lt;   (bind ?*BASE-POTENTIAL-VALUE* ?basepotential)\r\n&lt;   ;(printout t &quot;I'm a SLAVE, and I have BASEPOTENTIAL &quot;?*BASE-POTENTIAL-VALUE* crlf)\r\n&lt; )\r\n&lt; \r\n&lt; (defrule lock-getting-master-by-potential-value\r\n&lt;   &quot;If I had the lowest potential value among all bots, announce self as Master.&quot;\r\n---\r\n&gt; (defrule lock-getting-master\r\n&gt;   &quot;If master was not announced within the timeout limit announce self as master.&quot;\r\n128c101\r\n&lt;   ?mls &lt;- (master-last-seen $?last&amp;:(timeout ?now ?last (* 10 ?*BASE-POTENTIAL-VALUE*)))\r\n---\r\n&gt;   ?mls &lt;- (master-last-seen $?last&amp;:(timeout ?now ?last (+ ?*CURRENT-MASTER-TIMEOUT* ?*MASTER-TIMEOUT-ROBOT-OFFSET*)))\r\n131,132c104,105\r\n&lt;   (printout t &quot;I have the lowest potential value -&gt; Getting MASTER, and my base potential value is &quot;?*BASE-POTENTIAL-VALUE* crlf)\r\n&lt;   (retract ?r ?mn ?mls)\r\n---\r\n&gt;   (printout t &quot;MASTER timed out -&gt; Getting MASTER&quot; crlf)\r\n&gt;   (retract ?r ?mn)\r\n134,169c107\r\n&lt;     (master-name (str-cat ?*ROBOT-NAME*)))\r\n&lt;   (printout t &quot;I'm &quot;?*ROBOT-NAME* crlf)\r\n&lt; )\r\n&lt; \r\n&lt; (defrule lock-random-potential-generator\r\n&lt;   &quot;Hey you, I'll fxxk you!&quot;\r\n&lt;   (lock-role MASTER)\r\n&lt;   (time $?now)\r\n&lt;   ;?npv &lt;- (BTRPotentialInterface (id &quot;potential_value&quot;) (potential_value ?newpotential))\r\n&lt;   (BTRPotentialInterface (id &quot;potential_value&quot;) (potential_value ?newpotential))\r\n&lt;   =&gt;\r\n&lt;   (assert (new-potential ?newpotential))\r\n&lt;   (bind ?*NEW-POTENTIAL-VALUE* ?newpotential)\r\n&lt;   (printout t &quot;NEW POTENTIAL VALUE is &quot;?*NEW-POTENTIAL-VALUE*&quot; and BASE POTENTIAL VALUE is &quot;?*BASE-POTENTIAL-VALUE* crlf)\r\n&lt; )\r\n&lt; \r\n&lt; (defrule lock-master-reelection\r\n&lt;   &quot;If master's potential value got bigger than the value when he got the MASTER role, we reelect a new MASTER&quot;\r\n&lt;   ?r &lt;- (lock-role MASTER)\r\n&lt;   (time $?now)\r\n&lt;   ?mn &lt;- (master-name ?)\r\n&lt;   ?bp &lt;- (base-potential ?basepotential)\r\n&lt;   ?np &lt;- (new-potential ?newpotential)\r\n&lt;   =&gt;\r\n&lt;   (if (&gt; ?*NEW-POTENTIAL-VALUE* (+ 0.1 ?*BASE-POTENTIAL-VALUE*))\r\n&lt;     then\r\n&lt;       (printout t &quot;We reelect a new MASTER!  &quot;?*NEW-POTENTIAL-VALUE*&quot;   &quot;?*BASE-POTENTIAL-VALUE* crlf)\r\n&lt;       (bind ?*BASE-POTENTIAL-VALUE*)\r\n&lt;       (bind ?*NEW-POTENTIAL-VALUE*)\r\n&lt;       (retract ?r ?mn ?bp ?np)\r\n&lt;       (assert (lock-role SLAVE)\r\n&lt;         (master-last-seen $?now)\r\n&lt;         (master-name &quot;&quot;))\r\n&lt;     else\r\n&lt;       ;(printout t &quot;I keep my MASTER role new potential&quot;?*NEW-POTENTIAL-VALUE* crlf)\r\n&lt;   )\r\n---\r\n&gt; \t  (master-name (str-cat ?*ROBOT-NAME*)))\r\nOnly in btr2017\/fawkes-robotino\/src\/agents: rcll2017\r\nOnly in btr2017\/fawkes-robotino\/src\/libs\/interfaces: BTRGripperInterface.h\r\nOnly in btr2017\/fawkes-robotino\/src\/libs\/interfaces: BtrPotentialFieldInterface.h\r\nOnly in btr2017\/fawkes-robotino\/src\/libs\/interfaces: BTRPotentialInterface.h\r\nOnly in btr2017\/fawkes-robotino\/src\/libs\/interfaces: PiGyroInterface.h\r\nOnly in btr2018\/fawkes-robotino\/src\/libs\/interfaces: PolarPosition2DInterface.cpp\r\nOnly in btr2018\/fawkes-robotino\/src\/libs\/interfaces: SignalHintInterface.cpp\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/AttentionMessage.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/AttentionMessage.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/BeaconSignal.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/BeaconSignal.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/ExplorationInfo.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/ExplorationInfo.proto\r\n38d37\r\n&lt; \r\n41a41\r\n&gt; import &quot;Pose2D.proto&quot;;\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/GameInfo.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/GameInfo.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/GameState.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/GameState.proto\r\n38d37\r\n&lt; \r\n64a64,73\r\n&gt; \r\n&gt;     OPEN_CHALLENGE         = 1000;\r\n&gt;     NAVIGATION_CHALLENGE   = 1001;\r\n&gt;     WHACK_A_MOLE_CHALLENGE = 1002;\r\n&gt;   }\r\n&gt; \r\n&gt;   enum RefBoxMode {\r\n&gt;     STANDALONE  = 0;\r\n&gt;     MASTER      = 1;\r\n&gt;     SLAVE       = 2;\r\n66a76\r\n&gt; \r\n82a93,94\r\n&gt; \r\n&gt;   optional RefBoxMode refbox_mode = 7 &#x5B;default = STANDALONE];\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineCommands.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineCommands.proto\r\n38d37\r\n&lt; \r\n41,42d39\r\n&lt; import &quot;MachineInfo.proto&quot;;\r\n&lt; \r\n45a43,90\r\n&gt; \r\n&gt; \/\/ Remove a puck from a machine,\r\n&gt; \/\/ either from RFID sensor or machine\r\n&gt; \/\/ area. Can be overwritten by actual\r\n&gt; \/\/ PLC if that reports there actually\r\n&gt; \/\/ is the very puck.\r\n&gt; message RemovePuckFromMachine {\r\n&gt;   enum CompType {\r\n&gt;     COMP_ID  = 2000;\r\n&gt;     MSG_TYPE = 14;\r\n&gt;   }\r\n&gt; \r\n&gt;   \/\/ Machine to remove puck from\r\n&gt;   required string machine_name = 1;\r\n&gt;   \/\/ ID of the puck to remove\r\n&gt;   required uint32 puck_id = 2;\r\n&gt; }\r\n&gt; \r\n&gt; \r\n&gt; \/\/ Place a puck under an RFID sensor.\r\n&gt; \/\/ Note that this can be overwritten\r\n&gt; \/\/ by actual PLC input.\r\n&gt; message PlacePuckUnderMachine {\r\n&gt;   enum CompType {\r\n&gt;     COMP_ID  = 2000;\r\n&gt;     MSG_TYPE = 15;\r\n&gt;   }\r\n&gt; \r\n&gt;   \/\/ Machine to place puck at\r\n&gt;   required string machine_name = 1;\r\n&gt;   \/\/ ID of the puck to place\r\n&gt;   required uint32 puck_id = 2;\r\n&gt; }\r\n&gt; \r\n&gt; \/\/ Load puck into machine area.\r\n&gt; message LoadPuckInMachine {\r\n&gt;   enum CompType {\r\n&gt;     COMP_ID  = 2000;\r\n&gt;     MSG_TYPE = 16;\r\n&gt;   }\r\n&gt; \r\n&gt;   \/\/ Machine to place puck at\r\n&gt;   required string machine_name = 1;\r\n&gt;   \/\/ ID of the puck to place\r\n&gt;   required uint32 puck_id = 2;\r\n&gt; }\r\n&gt; \r\n&gt; \r\n52d96\r\n&lt;   RESET     = 15;\r\n78,90d121\r\n&lt; }\r\n&lt; \r\n&lt; \/\/ Set machine lights.\r\n&lt; message SetMachineLights {\r\n&lt;   enum CompType {\r\n&lt;     COMP_ID  = 2000;\r\n&lt;     MSG_TYPE = 19;\r\n&lt;   }\r\n&lt; \r\n&lt;   \/\/ Machine to place puck at\r\n&lt;   required string machine_name = 1;\r\n&lt;   \/\/ Desired state of the lights\r\n&lt;   repeated LightSpec lights = 2;\r\nOnly in btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs: MachineDescription.proto\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineInfo.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineInfo.proto\r\n7d6\r\n&lt;  *             2017  Tobias Neumann\r\n39d37\r\n&lt; \r\n47d44\r\n&lt; import &quot;MachineDescription.proto&quot;;\r\n51a49,60\r\n&gt; enum LightColor {\r\n&gt;   RED = 0;\r\n&gt;   YELLOW = 1;\r\n&gt;   GREEN = 2;\r\n&gt; }\r\n&gt; \r\n&gt; enum LightState {\r\n&gt;   OFF = 0;\r\n&gt;   ON = 1;\r\n&gt;   BLINK = 2;\r\n&gt; }\r\n&gt; \r\n63,68d71\r\n&lt; enum ExplorationState {\r\n&lt; \tNO_REPORT = 0;\r\n&lt; \tCORRECT_REPORT = 1;\r\n&lt; \tWRONG_REPORT = 2;\r\n&lt; }\r\n&lt; \r\n79a83,84\r\n&gt;   optional bool      prepared   = 15;\r\n&gt; \r\n86d90\r\n&lt;   optional uint32    rotation = 12;\r\n88c92\r\n&lt;   \/\/ Correctly reported? (zone and type correct)\r\n---\r\n&gt;   \/\/ Correctly reported?\r\n95c99,101\r\n&lt;   \/\/ Instruction information (only clients)\r\n---\r\n&gt; \r\n&gt;   \/\/ Instruction information\r\n&gt;   \/\/ only available to clients, not peers\r\n98d103\r\n&lt;   optional PrepareInstructionSS instruction_ss = 20;\r\n102,105d106\r\n&lt; \t\/\/ more fine-grained exploration (only clients)\r\n&lt; \toptional ExplorationState exploration_zone_state = 22;\r\n&lt; \toptional ExplorationState exploration_rotation_state = 21;\r\n&lt; \r\n117c118,119\r\n&lt;   \/\/ Team color (only broadcast)\r\n---\r\n&gt;   \/\/ Team name if all machines belong\r\n&gt;   \/\/ only to a single team (broadcast)\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineInstructions.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineInstructions.proto\r\n7d6\r\n&lt;  *             2017  Tobias Neumann\r\n39d37\r\n&lt; \r\n42d39\r\n&lt; import &quot;MachineDescription.proto&quot;;\r\n49,70c46,48\r\n&lt; message SetSignalLight {\r\n&lt;   required LightState red    = 2;\r\n&lt;   required LightState yellow = 3;\r\n&lt;   required LightState green  = 4;\r\n&lt; }\r\n&lt; \r\n&lt; message MoveConveyorBelt {\r\n&lt;   required ConveyorDirection direction   = 2;\r\n&lt;   required SensorOnMPS       stop_sensor = 3;\r\n&lt; }\r\n&lt; \r\n&lt; message BSPushBase {\r\n&lt;   required uint32 slot = 2; \/\/ &#x5B;0-2] where 0 is on the input side, 1 in the middle and 2 on the output side\r\n&lt; }\r\n&lt; \r\n&lt; message SSTask {\r\n&lt;   required SSOp   operation = 2;\r\n&lt;   required SSSlot slot      = 3;\r\n&lt; }\r\n&lt; \r\n&lt; message RSMountRing {\r\n&lt;   required uint32 feeder = 2; \/\/ &#x5B;0,1] where 0 is the feeder closer to the input side and 1 is the feeder closer to the output side\r\n---\r\n&gt; enum MachineSide {\r\n&gt;   INPUT  = 1;\r\n&gt;   OUTPUT = 2;\r\n73,74c51,53\r\n&lt; message CSTask {\r\n&lt;   required CSOp operation = 2;\r\n---\r\n&gt; enum CsOp {\r\n&gt;   RETRIEVE_CAP = 1;\r\n&gt;   MOUNT_CAP    = 2;\r\n77,135d55\r\n&lt; message DSActivateGate {\r\n&lt;   required uint32 gate = 2; \/\/ &#x5B;0-2] where 0 is the gate closest to the input, 1 is the gate in the middle and 2 is the last gate from the input\r\n&lt; }\r\n&lt; \r\n&lt; enum InstructMachineSet {\r\n&lt;   INSTRUCT_MACHINE_SET_SIGNAL_LIGHT = 1;\r\n&lt;   INSTRUCT_MACHINE_MOVE_CONVEYOR    = 2;\r\n&lt;   INSTRUCT_MACHINE_STOP_CONVEYOR    = 3;\r\n&lt;   INSTRUCT_MACHINE_WAIT_FOR_PICKUP  = 4;\r\n&lt;   INSTRUCT_MACHINE_BS = 11;\r\n&lt;   INSTRUCT_MACHINE_SS = 12;\r\n&lt;   INSTRUCT_MACHINE_RS = 13;\r\n&lt;   INSTRUCT_MACHINE_CS = 14;\r\n&lt;   INSTRUCT_MACHINE_DS = 15;\r\n&lt; }\r\n&lt; \r\n&lt; message InstructMachine {\r\n&lt;   enum CompType {\r\n&lt;     COMP_ID  = 2000;\r\n&lt;     MSG_TYPE = 102;\r\n&lt;   }\r\n&lt; \r\n&lt;   required uint32 id = 1;\r\n&lt; \/\/  required Team   team_color = 2;\r\n&lt;   \/\/ Machine name which to instruct\r\n&lt;   required string machine = 3;\r\n&lt;   \/\/ which MPS comand is set and has to be completed\r\n&lt;   required InstructMachineSet set = 4;\r\n&lt; \r\n&lt;   optional SetSignalLight   light_state   = 5;\r\n&lt;   optional MoveConveyorBelt conveyor_belt = 6;\r\n&lt; \r\n&lt;   optional BSPushBase     bs = 11;\r\n&lt;   optional SSTask         ss = 12;\r\n&lt;   optional RSMountRing    rs = 13;\r\n&lt;   optional CSTask         cs = 14;\r\n&lt;   optional DSActivateGate ds = 15;\r\n&lt; }\r\n&lt; \r\n&lt; enum MachineReplySet {\r\n&lt;   MACHINE_REPLY_FINISHED         = 1;\r\n&lt; }\r\n&lt; \r\n&lt; message MachineReply {\r\n&lt;   enum CompType {\r\n&lt;     COMP_ID  = 2000;\r\n&lt;     MSG_TYPE = 103;\r\n&lt;   }\r\n&lt; \r\n&lt;   required uint32 id = 1;\r\n&lt; \/\/  required Team   team_color = 2;\r\n&lt;   \/\/ Machine name which to instruct\r\n&lt;   required string machine = 3;\r\n&lt;   \/\/ which MPS comand is set and has to be completed\r\n&lt;   required MachineReplySet set = 4;\r\n&lt; }\r\n&lt; \r\n&lt; \r\n&lt; \r\n145,148d64\r\n&lt; message PrepareInstructionSS {\r\n&lt;   required SSTask task = 1;\r\n&lt; }\r\n&lt; \r\n154c70\r\n&lt;   required CSOp operation = 1;\r\n---\r\n&gt;   required CsOp operation = 1;\r\n169d84\r\n&lt;   optional PrepareInstructionSS instruction_ss = 8;\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineReport.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/MachineReport.proto\r\n7d6\r\n&lt;  *             2017  Tobias Neumann\r\n39d37\r\n&lt; \r\n41a40\r\n&gt; import &quot;MachineInfo.proto&quot;;\r\n57,58c56,57\r\n&lt;   optional Zone   zone = 3;\r\n&lt;   optional uint32 rotation = 4; \/\/ &#x5B;0-360] in deg\r\n---\r\n&gt;   required string type = 2;\r\n&gt;   required Zone   zone = 3;\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/OrderInfo.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/OrderInfo.proto\r\n38d37\r\n&lt; \r\n104,119d102\r\n&lt; }\r\n&lt; \r\n&lt; \r\n&lt; message SetOrderDeliveredByColor {\r\n&lt;   enum CompType {\r\n&lt;     COMP_ID  = 2000;\r\n&lt;     MSG_TYPE = 44;\r\n&lt;   }\r\n&lt; \r\n&lt;   required Team         team_color = 1;\r\n&lt; \r\n&lt; \t\/** Colors of delivered product. Zero,\r\n&lt; \t * or more rings orderd from bottom to top *\/\r\n&lt;   required BaseColor    base_color = 3;\r\n&lt;   repeated RingColor    ring_colors = 4;\r\n&lt;   required CapColor     cap_color = 5;\r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/Pose2D.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/Pose2D.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/ProductColor.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/ProductColor.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/RingInfo.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/RingInfo.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/RobotCommands.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/RobotCommands.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/RobotInfo.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/RobotInfo.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/SimTimeSync.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/SimTimeSync.proto\r\n36d35\r\n&lt; \r\n38,43d36\r\n&lt; \r\n&lt; option java_package =\r\n&lt;   &quot;org.robocup_logistics.llsf_msgs&quot;;\r\n&lt; option java_outer_classname =\r\n&lt;   &quot;SimTimeSyncProtos&quot;;\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/Team.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/Team.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/Time.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/Time.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/VersionInfo.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/VersionInfo.proto\r\n38d37\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/libs\/llsf_msgs\/Zone.proto btr2018\/fawkes-robotino\/src\/libs\/llsf_msgs\/Zone.proto\r\n7d6\r\n&lt;  *             2017       Tobias Neumann\r\n39d37\r\n&lt; \r\n47,168c45,68\r\n&lt;   C_Z18 = 1;\r\n&lt;   C_Z28 = 2;\r\n&lt;   C_Z38 = 3;\r\n&lt;   C_Z48 = 4;\r\n&lt;   C_Z58 = 5;\r\n&lt;   C_Z68 = 6;\r\n&lt;   C_Z78 = 7;\r\n&lt; \r\n&lt;   C_Z17 = 8;\r\n&lt;   C_Z27 = 9;\r\n&lt;   C_Z37 = 10;\r\n&lt;   C_Z47 = 11;\r\n&lt;   C_Z57 = 12;\r\n&lt;   C_Z67 = 13;\r\n&lt;   C_Z77 = 14;\r\n&lt; \r\n&lt;   C_Z16 = 15;\r\n&lt;   C_Z26 = 16;\r\n&lt;   C_Z36 = 17;\r\n&lt;   C_Z46 = 18;\r\n&lt;   C_Z56 = 19;\r\n&lt;   C_Z66 = 20;\r\n&lt;   C_Z76 = 21;\r\n&lt; \r\n&lt;   C_Z15 = 22;\r\n&lt;   C_Z25 = 23;\r\n&lt;   C_Z35 = 24;\r\n&lt;   C_Z45 = 25;\r\n&lt;   C_Z55 = 26;\r\n&lt;   C_Z65 = 27;\r\n&lt;   C_Z75 = 28;\r\n&lt; \r\n&lt;   C_Z14 = 29;\r\n&lt;   C_Z24 = 30;\r\n&lt;   C_Z34 = 31;\r\n&lt;   C_Z44 = 32;\r\n&lt;   C_Z54 = 33;\r\n&lt;   C_Z64 = 34;\r\n&lt;   C_Z74 = 35;\r\n&lt; \r\n&lt;   C_Z13 = 36;\r\n&lt;   C_Z23 = 37;\r\n&lt;   C_Z33 = 38;\r\n&lt;   C_Z43 = 39;\r\n&lt;   C_Z53 = 40;\r\n&lt;   C_Z63 = 41;\r\n&lt;   C_Z73 = 42;\r\n&lt; \r\n&lt;   C_Z12 = 43;\r\n&lt;   C_Z22 = 44;\r\n&lt;   C_Z32 = 45;\r\n&lt;   C_Z42 = 46;\r\n&lt;   C_Z52 = 47;\r\n&lt;   C_Z62 = 48;\r\n&lt;   C_Z72 = 49;\r\n&lt; \r\n&lt;   C_Z11 = 50;\r\n&lt;   C_Z21 = 51;\r\n&lt;   C_Z31 = 52;\r\n&lt;   C_Z41 = 53;\r\n&lt; \r\n&lt; \r\n&lt;   M_Z18 = 101;\r\n&lt;   M_Z28 = 102;\r\n&lt;   M_Z38 = 103;\r\n&lt;   M_Z48 = 104;\r\n&lt;   M_Z58 = 105;\r\n&lt;   M_Z68 = 106;\r\n&lt;   M_Z78 = 107;\r\n&lt; \r\n&lt;   M_Z17 = 108;\r\n&lt;   M_Z27 = 109;\r\n&lt;   M_Z37 = 110;\r\n&lt;   M_Z47 = 111;\r\n&lt;   M_Z57 = 112;\r\n&lt;   M_Z67 = 113;\r\n&lt;   M_Z77 = 114;\r\n&lt; \r\n&lt;   M_Z16 = 115;\r\n&lt;   M_Z26 = 116;\r\n&lt;   M_Z36 = 117;\r\n&lt;   M_Z46 = 118;\r\n&lt;   M_Z56 = 119;\r\n&lt;   M_Z66 = 120;\r\n&lt;   M_Z76 = 121;\r\n&lt; \r\n&lt;   M_Z15 = 122;\r\n&lt;   M_Z25 = 123;\r\n&lt;   M_Z35 = 124;\r\n&lt;   M_Z45 = 125;\r\n&lt;   M_Z55 = 126;\r\n&lt;   M_Z65 = 127;\r\n&lt;   M_Z75 = 128;\r\n&lt; \r\n&lt;   M_Z14 = 129;\r\n&lt;   M_Z24 = 130;\r\n&lt;   M_Z34 = 131;\r\n&lt;   M_Z44 = 132;\r\n&lt;   M_Z54 = 133;\r\n&lt;   M_Z64 = 134;\r\n&lt;   M_Z74 = 135;\r\n&lt; \r\n&lt;   M_Z13 = 136;\r\n&lt;   M_Z23 = 137;\r\n&lt;   M_Z33 = 138;\r\n&lt;   M_Z43 = 139;\r\n&lt;   M_Z53 = 140;\r\n&lt;   M_Z63 = 141;\r\n&lt;   M_Z73 = 142;\r\n&lt; \r\n&lt;   M_Z12 = 143;\r\n&lt;   M_Z22 = 144;\r\n&lt;   M_Z32 = 145;\r\n&lt;   M_Z42 = 146;\r\n&lt;   M_Z52 = 147;\r\n&lt;   M_Z62 = 148;\r\n&lt;   M_Z72 = 149;\r\n&lt; \r\n&lt;   M_Z11 = 150;\r\n&lt;   M_Z21 = 151;\r\n&lt;   M_Z31 = 152;\r\n&lt;   M_Z41 = 153;\r\n---\r\n&gt;   Z1  =  1;\r\n&gt;   Z2  =  2;\r\n&gt;   Z3  =  3;\r\n&gt;   Z4  =  4;\r\n&gt;   Z5  =  5;\r\n&gt;   Z6  =  6;\r\n&gt;   Z7  =  7;\r\n&gt;   Z8  =  8;\r\n&gt;   Z9  =  9;\r\n&gt;   Z10 = 10;\r\n&gt;   Z11 = 11;\r\n&gt;   Z12 = 12;\r\n&gt;   Z13 = 13;\r\n&gt;   Z14 = 14;\r\n&gt;   Z15 = 15;\r\n&gt;   Z16 = 16;\r\n&gt;   Z17 = 17;\r\n&gt;   Z18 = 18;\r\n&gt;   Z19 = 19;\r\n&gt;   Z20 = 20;\r\n&gt;   Z21 = 21;\r\n&gt;   Z22 = 22;\r\n&gt;   Z23 = 23;\r\n&gt;   Z24 = 24;\r\ndiff -r btr2017\/fawkes-robotino\/src\/lua\/skills\/robotino\/drive_into_field.lua btr2018\/fawkes-robotino\/src\/lua\/skills\/robotino\/drive_into_field.lua\r\n44c44\r\n&lt;    return pose:translation(1) &gt; 1.0\r\n---\r\n&gt;    return pose:translation(1) &gt; 0.0\r\n70d69\r\n&lt;    printf(&quot;Drive into field WAIT: %f&quot;, self.timeout_time)\r\n74d72\r\n&lt;    printf(&quot;Drive into field goto %s&quot;, self.fsm.vars.waypoints)\r\ndiff -r btr2017\/fawkes-robotino\/src\/lua\/skills\/robotino\/explore_zone.lua btr2018\/fawkes-robotino\/src\/lua\/skills\/robotino\/explore_zone.lua\r\n76,79c76,79\r\n&lt; local WALL_MIN_X = -6.95\r\n&lt; local WALL_MAX_X =  7.0\r\n&lt; local WALL_MIN_Y = -0.05\r\n&lt; local WALL_MAX_Y =  6.95\r\n---\r\n&gt; local WALL_MIN_X = -5.95\r\n&gt; local WALL_MAX_X =  6.0\r\n&gt; local WALL_MIN_Y =  0.05\r\n&gt; local WALL_MAX_Y =  5.95\r\ndiff -r btr2017\/fawkes-robotino\/src\/lua\/skills\/robotino\/goto.lua btr2018\/fawkes-robotino\/src\/lua\/skills\/robotino\/goto.lua\r\n84c84\r\n&lt;  {&quot;INIT&quot;,  &quot;SKILL_RELGOTO&quot;,  cond=true, desc=&quot;init skill_relgoto&quot;},\r\n---\r\n&gt;   {&quot;INIT&quot;,  &quot;SKILL_RELGOTO&quot;,  cond=true},\r\n92d91\r\n&lt; printf(&quot;goto INIT:init 1&quot;)\r\n94c93\r\n&lt; printf(&quot;goto INIT:init&quot;)\r\n---\r\n&gt; \r\n142,146d140\r\n&lt; \r\n&lt;   if self.fsm.vars.place ~= nil then\r\n&lt;     printf(&quot; place %s&quot;, self.fsm.vars.place)\r\n&lt;   end\r\n&lt;   printf(&quot;goto (%f, %f) delta is (%f, %f)&quot;, self.fsm.vars.x, self.fsm.vars.y, self.fsm.vars.rel_x, self.fsm.vars.rel_y)\r\ndiff -r btr2017\/fawkes-robotino\/src\/lua\/skills\/robotino\/relgoto.lua btr2018\/fawkes-robotino\/src\/lua\/skills\/robotino\/relgoto.lua\r\n57d56\r\n&lt; printf(&quot;relgoto target_reached to (%f, %f)&quot;, fsm.vars.x, fsm.vars.y)\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/agent-monitor\/agent-monitor-processor.cpp btr2018\/fawkes-robotino\/src\/plugins\/agent-monitor\/agent-monitor-processor.cpp\r\n65c65\r\n&lt;   own_name_ = config_-&gt;get_string(&quot;\/clips-agent\/rcll2017\/robot-name&quot;);\r\n---\r\n&gt;   own_name_ = config_-&gt;get_string(&quot;\/clips-agent\/llsf2014\/robot-name&quot;);\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/ax12_gripper\/ax12_gripper_thread.cpp btr2018\/fawkes-robotino\/src\/plugins\/ax12_gripper\/ax12_gripper_thread.cpp\r\n344c344\r\n&lt;     if (joystick_if_-&gt;pressed_buttons() &amp; JoystickInterface::BUTTON_1) {\r\n---\r\n&gt;     if (joystick_if_-&gt;pressed_buttons() &amp; JoystickInterface::BUTTON_13) {\r\n346c346\r\n&lt;     } else if (joystick_if_-&gt;pressed_buttons() &amp; JoystickInterface::BUTTON_2) {\r\n---\r\n&gt;     } else if (joystick_if_-&gt;pressed_buttons() &amp; JoystickInterface::BUTTON_12) {\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/ax12_gripper\/ax12_gripper_thread.h btr2018\/fawkes-robotino\/src\/plugins\/ax12_gripper\/ax12_gripper_thread.h\r\n102a103,108\r\n&gt;   \/* unsigned char __cfg_left_servo_id; *\/\r\n&gt;   \/* unsigned char __cfg_right_servo_id; *\/\r\n&gt;   \/* unsigned int __cfg_cw_compl_margin; *\/\r\n&gt;   \/* unsigned int __cfg_ccw_compl_margin; *\/\r\n&gt;   \/* unsigned int __cfg_cw_compl_slope; *\/\r\n&gt;   \/* unsigned int __cfg_ccw_compl_slope; *\/\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: btr_gripper\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: btr_gripper_vision\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: btr_utsumi_clips\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/gazebo\/gazsim-light-front\/Makefile btr2018\/fawkes-robotino\/src\/plugins\/gazebo\/gazsim-light-front\/Makefile\r\n35,39c35\r\n&lt;   ifneq ($(shell hostname),pi-01)\r\n&lt;     CFLAGS  += $(CFLAGS_TF) -mno-avx\r\n&lt;   else\r\n&lt;     CFLAGS  += $(CFLAGS_TF) \r\n&lt;   endif\r\n---\r\n&gt;   CFLAGS  += $(CFLAGS_TF) -mno-avx\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/gazebo\/gazsim-llsfrbcomm\/gazsim_llsfrbcomm_thread.cpp btr2018\/fawkes-robotino\/src\/plugins\/gazebo\/gazsim-llsfrbcomm\/gazsim_llsfrbcomm_thread.cpp\r\n105,106c105,106\r\n&lt; \/\/  place_puck_under_machine_sub_ = gazebo_world_node-&gt;Subscribe(config-&gt;get_string(&quot;\/gazsim\/topics\/place-puck-under-machine&quot;), &amp;GazsimLLSFRbCommThread::on_puck_place_msg, this);\r\n&lt; \/\/  remove_puck_under_machine_sub_ = gazebo_world_node-&gt;Subscribe(config-&gt;get_string(&quot;\/gazsim\/topics\/remove-puck-under-machine&quot;), &amp;GazsimLLSFRbCommThread::on_puck_remove_msg, this);\r\n---\r\n&gt;   place_puck_under_machine_sub_ = gazebo_world_node-&gt;Subscribe(config-&gt;get_string(&quot;\/gazsim\/topics\/place-puck-under-machine&quot;), &amp;GazsimLLSFRbCommThread::on_puck_place_msg, this);\r\n&gt;   remove_puck_under_machine_sub_ = gazebo_world_node-&gt;Subscribe(config-&gt;get_string(&quot;\/gazsim\/topics\/remove-puck-under-machine&quot;), &amp;GazsimLLSFRbCommThread::on_puck_remove_msg, this);\r\n208,209c208\r\n&lt; \/*\r\n&lt;  void GazsimLLSFRbCommThread::on_puck_place_msg(ConstPlacePuckUnderMachinePtr &amp;msg)\r\n---\r\n&gt; void GazsimLLSFRbCommThread::on_puck_place_msg(ConstPlacePuckUnderMachinePtr &amp;msg)\r\n219d217\r\n&lt; *\/\r\n221,222c219\r\n&lt; \/*\r\n&lt;  void GazsimLLSFRbCommThread::on_puck_remove_msg(ConstRemovePuckFromMachinePtr &amp;msg)\r\n---\r\n&gt; void GazsimLLSFRbCommThread::on_puck_remove_msg(ConstRemovePuckFromMachinePtr &amp;msg)\r\n232d228\r\n&lt; *\/\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/gazebo\/gazsim-llsfrbcomm\/gazsim_llsfrbcomm_thread.h btr2018\/fawkes-robotino\/src\/plugins\/gazebo\/gazsim-llsfrbcomm\/gazsim_llsfrbcomm_thread.h\r\n54,55c54,55\r\n&lt; \/\/ typedef const boost::shared_ptr&lt;llsf_msgs::PlacePuckUnderMachine const&gt; ConstPlacePuckUnderMachinePtr;\r\n&lt; \/\/ typedef const boost::shared_ptr&lt;llsf_msgs::RemovePuckFromMachine const&gt; ConstRemovePuckFromMachinePtr;\r\n---\r\n&gt; typedef const boost::shared_ptr&lt;llsf_msgs::PlacePuckUnderMachine const&gt; ConstPlacePuckUnderMachinePtr;\r\n&gt; typedef const boost::shared_ptr&lt;llsf_msgs::RemovePuckFromMachine const&gt; ConstRemovePuckFromMachinePtr;\r\n110,111c110,111\r\n&lt;   \/\/ void on_puck_place_msg(ConstPlacePuckUnderMachinePtr &amp;msg);\r\n&lt;   \/\/ void on_puck_remove_msg(ConstRemovePuckFromMachinePtr &amp;msg);\r\n---\r\n&gt;   void on_puck_place_msg(ConstPlacePuckUnderMachinePtr &amp;msg);\r\n&gt;   void on_puck_remove_msg(ConstRemovePuckFromMachinePtr &amp;msg);\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: gripper_tsuji\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/machine-signal\/Makefile btr2018\/fawkes-robotino\/src\/plugins\/machine-signal\/Makefile\r\n31,39d30\r\n&lt; # compile against and link against opencv\r\n&lt; CFLAGS\t += $(CFLAGS_OPENCV)\r\n&lt; LDFLAGS  += $(LDFLAGS_OPENCV)\r\n&lt; \r\n&lt; LDFLAGS  += &quot;-lopencv_core&quot;\r\n&lt; LDFLAGS  += &quot;-lopencv_imgproc&quot;\r\n&lt; LDFLAGS  += &quot;-lopencv_objdetect&quot; \r\n&lt; LDFLAGS  += &quot;-lopencv_highgui&quot;\r\n&lt; \r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/Makefile btr2018\/fawkes-robotino\/src\/plugins\/Makefile\r\n23d22\r\n&lt; \t  btr_gripper \\\r\n26c25\r\n&lt; \t  navgraph_broker \\\r\n---\r\n&gt;       navgraph_broker \\\r\n34,40c33,34\r\n&lt; \t  laser_front_dist \\\r\n&lt; \t  mps-laser-gen \\\r\n&lt; \t  btr_utsumi_clips \\\r\n&lt; \t  potential_field \\\r\n&lt; \t  btr_gripper_vision \\\r\n&lt; \t  pi_gyro \\\r\n&lt; \t  gripper_tsuji\r\n---\r\n&gt; \t\tlaser_front_dist \\\r\n&gt; \t\tmps-laser-gen\r\n44c38\r\n&lt; gazebo: ax12_gripper btr_gripper tag_vision machine-signal arduino\r\n---\r\n&gt; gazebo: ax12_gripper tag_vision machine-signal arduino\r\ndiff -r btr2017\/fawkes-robotino\/src\/plugins\/mps-laser-gen\/Makefile btr2018\/fawkes-robotino\/src\/plugins\/mps-laser-gen\/Makefile\r\n25,26c25\r\n&lt;                       fawkesblackboard fawkesinterface fawkesrosaspect \\\r\n&lt; \t\t      Laser360Interface\r\n---\r\n&gt;                       fawkesblackboard fawkesinterface fawkesrosaspect\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: pi_gyro\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: potential_field\r\nOnly in btr2018\/fawkes-robotino\/src\/plugins\/robotino_worldmodel\/interfaces: RobotinoWorldModelInterface.cpp\r\nOnly in btr2018\/fawkes-robotino\/src\/plugins\/robotino_worldmodel\/interfaces: RobotinoWorldModelInterface.h_ext\r\nOnly in btr2018\/fawkes-robotino\/src\/plugins\/robotino_worldmodel\/interfaces: RobotinoWorldModelInterface.tolua\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: shimizu2017xR351\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: shimizu2017xR601\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: shimizu2017xR602\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: shimizu2017xR603\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: shimizu2017xR604\r\nOnly in btr2017\/fawkes-robotino\/src\/plugins: ueji_opencv\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>source codes for BTR2017. Only in btr201 &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/www.kdel.org\/wp\/?p=1002\"> <span class=\"screen-reader-text\">BTR2017<\/span> \u7d9a\u304d\u3092\u8aad\u3080 &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[10,3,2,9],"tags":[],"class_list":["post-1002","post","type-post","status-publish","format-standard","hentry","category-fawkes","category-logistics-league","category-robocup","category-robotino-3"],"_links":{"self":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1002"}],"version-history":[{"count":1,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1002\/revisions"}],"predecessor-version":[{"id":1003,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=\/wp\/v2\/posts\/1002\/revisions\/1003"}],"wp:attachment":[{"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kdel.org\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}