{
    "componentChunkName": "component---src-components-page-template-jsx",
    "path": "/guides/hardware/darwin-op2-guide",
    "result": {"data":{"mdx":{"id":"270b1a6e-c1ed-551b-ba7f-7b71c976f549","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"section\": \"Guides\",\n  \"chapter\": \"Hardware\",\n  \"title\": \"DARwIn Op2 Robot Restoration and Calibration Guide\",\n  \"description\": \"How to use the provided instructions for setting up, restoring, and calibrating the Darwin Op2 robot system.\",\n  \"slug\": \"/guides/hardware/darwin-op2-guide\",\n  \"authors\": [\"Corah Oliver (@yippyy)\"]\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Alert = makeShortcode(\"Alert\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h2\", {\n    \"id\": \"darwin-op2-guide\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h2\",\n    \"href\": \"#darwin-op2-guide\",\n    \"aria-label\": \"darwin op2 guide permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"DARwIn-OP2 Guide\"), mdx(\"p\", null, \"The DARwIn-OP2 robot is a small humanoid robot that was originally developed by RoMeLa (Robotics and Mechanisms Laboratory) in collaboration with a South Korean robotics company called Robotis.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Darwins.jpg\",\n    \"alt\": \"A photo of DARwIn-OP's and a DARwIn-OP2\",\n    \"title\": \"DARwIn-OP (dark grey), DARwIn-OP2 (white)\"\n  })), mdx(\"h3\", {\n    \"id\": \"the-main-scenarios-in-which-a-darwin-op2-is-used-are\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#the-main-scenarios-in-which-a-darwin-op2-is-used-are\",\n    \"aria-label\": \"the main scenarios in which a darwin op2 is used are permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"The main scenarios in which a DARwIn-OP2 is used are:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Education\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Outreach purposes\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Research\")), mdx(\"p\", null, \"The current NUbots team uses the DARwIn-OP2's for outreach events and education by providing in-depth talks and demonstration's at local schools, university events and more.\"), mdx(\"p\", null, \"As time passed, the original DARwIn robot, called the DARwIn-OP, was later replaced with the DARwIn-OP2 to keep up with advancements in robotics technology and to help improve the limitations of the original OP.\"), mdx(\"h3\", {\n    \"id\": \"some-limitations-of-the-darwin-op-include\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#some-limitations-of-the-darwin-op-include\",\n    \"aria-label\": \"some limitations of the darwin op include permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Some limitations of the DARwIn-OP include:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Limited Hardware Capabilities\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Battery life\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Processor power\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Computational power\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Actuators (Dynamixel AX Series)\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Motion and Balance\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Speed of motion\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Stability concerns\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Software and AI\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Vision\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Perception\")))), mdx(\"h3\", {\n    \"id\": \"compared-to-the-darwin-op2\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#compared-to-the-darwin-op2\",\n    \"aria-label\": \"compared to the darwin op2 permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Compared to the DARwIn-OP2:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Hardware Capabilities\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Improved battery life\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Upgraded to Intel Atom N2600, faster and efficient\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Upgraded to Dynamixel MX Series, higher torque, better durability and control\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Motion and Balance\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Better Balance\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"More stable\"))), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Software and AI\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Enhanced vision processing software\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"More accurate ball detection\")))), mdx(\"h3\", {\n    \"id\": \"darwin-op2-specifications\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#darwin-op2-specifications\",\n    \"aria-label\": \"darwin op2 specifications permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"DARwIn-OP2 Specifications\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Mainboard: PICO-CV01\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Cpu: Intel Atom N2600 @1.6GHz single core\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Ram: Up to 4GB DDR3/240-ping SO-DIMM module (user replaceable)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Storage: Half-size mSATA module (32GB) (user replaceable)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Sub controller: CM-740\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Linux mint 17.3 'Rosa' installed on PICO-CV01 board\")), mdx(\"h3\", {\n    \"id\": \"powering-on-the-darwin-op2\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#powering-on-the-darwin-op2\",\n    \"aria-label\": \"powering on the darwin op2 permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Powering on the DARwIn-OP2\"), mdx(\"p\", null, \"To power the DARwIn-OP2, following these steps:\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Position the DARwIn-OP2 into the ready position.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/startingPosition.jpg\",\n    \"alt\": \"The Robotis page showing the ready position of the DARwIn-OP2\",\n    \"title\": \"Photo from Robotis of the ready position.\"\n  })), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, \"Make sure you have put the DARwIn into this starting position. Any other position may result in major damage to the robot.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Connect the 12V DC power supply connector into the DC jack located at the back of the robot.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/dcConnector.jpg\",\n    \"alt\": \"The Robotis page showing where the DC connector should go\",\n    \"title\": \"Photo from Robotis of the location where the DC connector belongs.\"\n  })), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, \"Make sure the power supply you are using is exactly 12V. Any other power supply may result in major damage to the robot.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Plug the power supply into the wall socket and flip the switch to on. After this, turn the DARwIn-OP2 power switch on. This is located to the right of the DC jack.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/powerSwitch.jpg\",\n    \"alt\": \"The Robotis page showing the power switch located on the DARwIn-OP2\",\n    \"title\": \"Photo from Robotis of the power switch.\"\n  }))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Once the DARwIn-OP2 has booted, the starting position will go stiff and the back panel will light up with different LED colours.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://emanual.robotis.com/assets/images/platform/op2/op2_010.png\",\n    \"alt\": \"The Robotis page showing the boot sequence\",\n    \"title\": \"Photo from Robotis of the boot sequence.\"\n  })))), mdx(\"h3\", {\n    \"id\": \"running-the-demonstration-programs-on-the-darwin-op2\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#running-the-demonstration-programs-on-the-darwin-op2\",\n    \"aria-label\": \"running the demonstration programs on the darwin op2 permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Running the demonstration programs on the DARwIn-OP2\"), mdx(\"p\", null, \"There are different types of operation modes for the DARwIn-OP2.\"), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, mdx(\"p\", null, \"To switch between modes: press the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"MODE\"), \" button.\"), mdx(\"p\", null, \"To start each mode: press the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"START\"), \" button.\"), mdx(\"p\", null, \"To reset the actuators and sub-controller, press the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"RESET\"), \" button.\")), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, mdx(\"p\", null, \"WARNING: Upon pressing the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"RESET\"), \" button, torque will be released on ALL of the actuators causing the DARwIn-OP2 to go limp.\\nBe careful when handling.\")), mdx(\"img\", {\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/buttons.jpg\",\n    \"alt\": \"The Robotis page showing the buttons upon the back panel of the DARwIn-OP2\",\n    \"title\": \"Photo from Robotis of the buttons upon the DARwIn-OP2.\"\n  }), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Demonstration-ready mode\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"This is the default mode when the DARwIn-OP2 is fully booted and is in the seated position.\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"The LEDs on the back panel will light up in the sequence: LED 1 (red), LED 2 (blue), and LED 3 (green).\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/demonstrationMode.jpg\",\n    \"alt\": \"The Robotis page showing the demonstration-ready mode LEDs\",\n    \"title\": \"Photo from Robotis of the demonstration-ready mode LEDs.\"\n  }))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Autonomous soccer mode\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"This mode gives the DARwIn-OP2 the ability to follow and kick a soccer ball. The head camera will follow the ball while the legs move along to follow.\\nWhile in this mode, the robot may fall. This is not an issue because the DARwIn-OP2 is programmed to recover by pulling itself from the floor.\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"If the DARwIn-OP2 is in this mode, the LEDs on the back will light up in the sequence: LED 1 (red).\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/soccerMode.jpg\",\n    \"alt\": \"The Robotis page showing the autonomous soccer mode LEDs\",\n    \"title\": \"Photo from Robotis of the autonomous soccer mode LEDs.\"\n  }))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Interactive motion mode\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"This mode allows the DARwIn-OP2 to perform pre-programmed motions.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/motions.jpg\",\n    \"alt\": \"The Robotis page showing the pre-programmed motions\",\n    \"title\": \"Photo from Robotis of the pre-programmed motions.\"\n  })), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"if the DARwIn-OP2 is in this mode, the LEDs on the back panel will light up in the sequence: LED 2 (blue).\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/interactiveMode.jpg\",\n    \"alt\": \"The Robotis page showing the interactive motion mode LEDs\",\n    \"title\": \"Photo from Robotis of the interactive motion mode LEDs.\"\n  }))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Vision processing mode\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"This mode allows the DARwIn-OP2 to observe coloured cards to perform motions based upon them.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/motionCards.jpg\",\n    \"alt\": \"The Robotis page showing the coloured cards\",\n    \"title\": \"Photo from Robotis of the coloured cards.\"\n  }), \"\\nThese coloured cards can be downloaded at the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://sourceforge.net/projects/darwinop/files/etc/ColorCards.ppt/download\"\n  }, \"SourceForge website\"), \".\\nCards are kept in the DARwIn case.\"), mdx(\"p\", {\n    parentName: \"li\"\n  }, \"If the DARwIn-OP2 is in this mode, the LEDs on the back panel will light up in the sequence: LED 3 (green).\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/visionProcessing.jpg\",\n    \"alt\": \"The Robotis page showing the vision processing mode LEDs\",\n    \"title\": \"Photo from Robotis of the vision processing mode LEDs.\"\n  })))), mdx(\"h3\", {\n    \"id\": \"creating-the-recovery-usb\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#creating-the-recovery-usb\",\n    \"aria-label\": \"creating the recovery usb permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Creating the recovery USB\"), mdx(\"p\", null, \"Creating a recovery USB is helpful in many ways.\\nThe ways that we are focusing on are:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Reflashing a DARwIn-OP2 robot, if there are problems with the software.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"For first time flashing of the demo code for a new DARwIn robot.\")), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Download Tuxboot from the \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://sourceforge.net/projects/tuxboot/files/0.6/\"\n  }, \"SourceForge website\"), \". For this demonstration we will be downloading the Linux version.\\n\", mdx(\"img\", {\n    parentName: \"li\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Tuxboot1.jpg\",\n    \"alt\": \"The SourceForge Tuxboot page showing the Home/0.6 directory\",\n    \"title\": \"Navigate into the 0.6 folder.\"\n  }), mdx(\"img\", {\n    parentName: \"li\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Tuxboot2.jpg\",\n    \"alt\": \"The SourceForge Tuxboot page showing the Home/0.6/Linux directory\",\n    \"title\": \"Navigate into the Linux folder.\"\n  }))), mdx(\"p\", null, \"Tuxboot is a very helpful tool that creates bootable USB drives. By downloading Tuxboot from SourceForge, we can prepare a USB for recovery.\"), mdx(\"ol\", {\n    \"start\": 2\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"When the first step is complete, run Tuxboot 0.6.\\n\", mdx(\"img\", {\n    parentName: \"li\",\n    \"src\": \"https://emanual.robotis.com/assets/images/platform/op/op_039.jpg\",\n    \"alt\": \"The Robotis page showing the usage of Tuxboot 0.6\",\n    \"title\": \"Photo from Robotis of the Tuxboot application.\"\n  }))), mdx(\"p\", null, \"Running Tuxboot helps prepare the USB drive for the Clonezilla software.\"), mdx(\"ol\", {\n    \"start\": 3\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Visit SourceForge for the \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://sourceforge.net/projects/clonezilla/\"\n  }, \"Clonezilla download\"), \".\\n\", mdx(\"img\", {\n    parentName: \"li\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Tuxboot4.jpg\",\n    \"alt\": \"The SourceForge Clonezilla download page\",\n    \"title\": \"Clonezilla on SourceForge\"\n  }))), mdx(\"p\", null, \"Click onto the 'Files' tab, then select 'clonezilla_live_stable'.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Tuxboot8.jpg\",\n    \"alt\": \"The SourceForge Clonezilla page showing the files tab, along with folders\",\n    \"title\": \"Navigate into the files tab.\"\n  })), mdx(\"p\", null, \"This will then direct you to a tab filled with different clonezilla versions. What we are looking for is the 'OldFiles' section.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Tuxboot5.jpg\",\n    \"alt\": \"The SourceForge Clonezilla page showing clonezilla versions\",\n    \"title\": \"Navigate into the the old files folder.\"\n  })), mdx(\"p\", null, \"Clicking into this, we now need to look for the section called '2.0.1-5' (in the following picture, it is the middle option).\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Tuxboot6.jpg\",\n    \"alt\": \"The SourceForge Clonezilla page showing version folders\",\n    \"title\": \"Navigate into the folder 2.0.1-5.\"\n  })), mdx(\"p\", null, \"In this folder, we need to download 'clonezilla-live-2.0.1-5-i486.iso'.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Tuxboot7.jpg\",\n    \"alt\": \"The SourceForge Clonezilla page showing iso files\",\n    \"title\": \"Choose the middle option.\"\n  })), mdx(\"p\", null, \"Clonezilla is a recovery tool which allows the user to create or restore disk images. This software is essential for recovering the DARwIn-OP2 system.\"), mdx(\"ol\", {\n    \"start\": 4\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"When you have successfully downloaded Clonezilla, reopen Tuxboot. Then select the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"pre-downloaded\"), \" option on screen.\\nSelect the 'clonezilla-live-2.0.1-5-i486.iso' from your files. Make sure you have ISO selected in the drop-down menu, for the 'Type' selection, pick USB and tick the MD5 check box.\\n\", mdx(\"img\", {\n    parentName: \"li\",\n    \"src\": \"https://emanual.robotis.com/assets/images/platform/op/op_041.jpg\",\n    \"alt\": \"Clonezilla 6\",\n    \"title\": \"Photo from Robotis of the Tuxboot application.\"\n  }))), mdx(\"p\", null, \"After you have done this step, press 'OK' and let the program run.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://emanual.robotis.com/assets/images/platform/op/op_043.jpg\",\n    \"alt\": \"Clonezilla 7\",\n    \"title\": \"Photo from Robotis of Tuxboot downloading the necessary files.\"\n  })), mdx(\"p\", null, \"Once this is complete press 'Exit'.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"https://emanual.robotis.com/assets/images/platform/op/op_044.jpg\",\n    \"alt\": \"Clonezilla 8\",\n    \"title\": \"Photo from Robotis of the completed process.\"\n  })), mdx(\"p\", null, \"Using Tuxboot and selecting the Clonezilla ISO, the user has now created a bootable USB drive which is ready for the recovery files.\"), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, \"This completes the Clonezilla portion of this recovery USB.\"), mdx(\"p\", null, \"Now that you have successfully created a Clonezilla USB, we now need to put the recovery software onto it. This is done by following the instructions below.\"), mdx(\"ol\", {\n    \"start\": 5\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Open your USB in your files but leave this for now and \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://sourceforge.net/projects/darwinop/files/Software/Main%20Controller/Recovery%20USB/\"\n  }, \"go to SourceForge\"), \".\\nWe now need to download the DARwIn recovery files. For this example, we are downloading the \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"ROBOTIS-OP2_Recovery_20150326.zip\"), \".\\n\", mdx(\"img\", {\n    parentName: \"li\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Recovery1.jpg\",\n    \"alt\": \"The SourceForge DARwIn recovery page showing recovery files\",\n    \"title\": \"Choose the middle option.\"\n  }))), mdx(\"p\", null, \"After this has finished downloading, we need to create a \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"home\"), \" folder in our USB. When you have created such folder, click into it and create another folder called \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"partimag\"), \", then click into it.\\nLeave this for the time being.\"), mdx(\"p\", null, \"Now, go into your downloads and locate your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"ROBOTIS-OP2_Recovery_20150326.zip\"), \", unzip the file and click into it.\\n\", mdx(\"img\", {\n    parentName: \"p\",\n    \"src\": \"/opt/build/repo/src/book/03-guides/03-hardware/images/darwin_op2_guide/Recovery2.jpg\",\n    \"alt\": \"The unzipped file of the DARwIn recovery folder\",\n    \"title\": \"The process should look like this.\"\n  })), mdx(\"p\", null, \"Select all these files and move them into your \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"partimag\"), \" folder (i.e.\\n\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"USB / home / partimag\"), \").\"), mdx(\"p\", null, \"The user must download the recovery files from SourceForge and move them into the correct places before flashing the DARwIn-OP2.\"), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, \"You have now completed the \\u2018creating the recovery USB\\u2019 section successfully!\"), mdx(\"h3\", {\n    \"id\": \"running-the-recovery-usb-through-the-bios\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#running-the-recovery-usb-through-the-bios\",\n    \"aria-label\": \"running the recovery usb through the bios permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Running the recovery USB through the BIOS\"), mdx(\"p\", null, \"Now that we have a recovery USB created with all the right files placed upon it, it is now time to run it on the PICO-CV01 board.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Boot up your PICO-CV01 in the BIOS menu (this is usually done by pressing either f12 or delete), locate the \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"boot\"), \" tab and search for \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"boot sequence\"), \".\\nSelect the Clonezilla USB as the first selection for the sequence, save the changes and restart.\\nOnce this restarts, Clonezilla should boot up straight away.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"When Clonezilla boots, a menu screen will appear. Execute the following instructions:\"), mdx(\"ol\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Clonezilla\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Select the default option \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'Clonezilla live (default settings. VGA 800x600)'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Language\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Choose language \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'Whichever is your preferred language'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Configuring Console-data\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Select default option \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'Don't touch keymap'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Start Clonezilla\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'Start_Clonezilla Start Clonezilla'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Clonezilla\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Select default option \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'device-image work with disks or partitions using images'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Mount Clonezilla Image Directory\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Select the following \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'skip Use existing/home/partimag (Writable device. E.g. hard disk/USB drive)'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Clonezilla - OpenSource Clone System (OCS)\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Select the following \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'Beginner Beginner mode'\"), \" then \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'Accept the default options'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Clonezilla Select mode\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Select the following \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'restoredisk Restore_an_image_to_local_disk'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Clonezilla - OpenSource Clone System (OCS)\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Choose the image file to restore \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'this will be your recovery image'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Clonezilla - OpenSource Clone System (OCS)\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Choose the target disk \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'this will be your SSD (make sure to check your SSD capacity to see if the recovery files will fit!)'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Starting to Restore Image to Device\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Wait until this is complete.\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Completed Restoration\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Press enter to continue\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Power Off or Reboot\"), mdx(\"ul\", {\n    parentName: \"li\"\n  }, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Select one of the following options \", mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"'(0) Power Off, (1) Reboot'\")))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"When the DARwIn-OP2 has successfully shut down, remove the USB and reboot the robot.\"))))), mdx(\"p\", null, \"For more information about this process check out the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://emanual.robotis.com/docs/en/platform/op/maintenance/\"\n  }, \"Robotis Clonezilla recovery page\"), \".\"), mdx(\"h3\", {\n    \"id\": \"calibrating-the-darwin-op2-ball-calibration\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#calibrating-the-darwin-op2-ball-calibration\",\n    \"aria-label\": \"calibrating the darwin op2 ball calibration permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Calibrating the DARwIn-OP2 (Ball Calibration)\"), mdx(\"p\", null, \"If the DARwIn-OP2 is unable to track the ball well, then vision needs calibrating.\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Using a portable monitor, plug in a HDMI to mini HDMI cable (mini is to be connect to the DARwIn-OP2, normal HDMI being connected to the monitor).\"), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, \"Do not power the monitor from the DARwIn-OP2.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Start the DARwIn-OP2 so the standard demo program is running. Once booted, it should be in the initial sitting pose.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Connect a keyboard and mouse to the DARwIn-OP2.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Once you are connected to the DARwIn-OP2, use a browser (e.g. Chrome or Firefox) to talk to the robot. The web address should be (\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"http://192.168.123.1:8080/\"\n  }, \"http://192.168.123.1:8080/\"), \").\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"While on this web address you should see the camera's live feed, with camera parameters on the side and bottom of image.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"The important parameter is the orange ball, which can be found in the DARwIn transport case.\\nYou will see the section of the camera view highlight pixels in orange, this is showing you an output of its applied color look up table for the ball. You don't want too many of these random\\npixels around if there is no ball in front of the robot, but once you place a ball in front of the robot, it should see it with the orange applied over the ball.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Once you are happy with the calibration, press save and exit the program.\"))), mdx(\"p\", null, \"For more information on camera calibration visit the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://emanual.robotis.com/docs/en/platform/op2/getting_started/#camera-calibration\"\n  }, \"Robotis website camera calibration page\"), \".\"), mdx(\"h3\", {\n    \"id\": \"calibrating-the-darwin-op2-walk-tuner\",\n    \"style\": {\n      \"position\": \"relative\"\n    }\n  }, mdx(\"a\", {\n    parentName: \"h3\",\n    \"href\": \"#calibrating-the-darwin-op2-walk-tuner\",\n    \"aria-label\": \"calibrating the darwin op2 walk tuner permalink\",\n    \"className\": \"anchor before\"\n  }, mdx(\"svg\", {\n    parentName: \"a\",\n    \"aria-hidden\": \"true\",\n    \"focusable\": \"false\",\n    \"height\": \"16\",\n    \"version\": \"1.1\",\n    \"viewBox\": \"0 0 16 16\",\n    \"width\": \"16\"\n  }, mdx(\"path\", {\n    parentName: \"svg\",\n    \"fillRule\": \"evenodd\",\n    \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n  }))), \"Calibrating the DARwIn-OP2 (Walk Tuner)\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Start the DARwIn-OP2 in the initial sitting pose and wait until the robot is fully booted. Once booted, run a terminal in the DARwIn-OP2's desktop interface.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"In the terminal, stop the demo binary (as it boots from the start) by using sudo pkill demo.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Change the current directory to the walk tuner directory: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"cd/robotis/Linux/project/walk_tuner/\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Run the walk tuner by running the command: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"./walk_tuner\"))), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"While on this terminal, a prompt will ask for the user to press any key to start the tuner. After this, a browser will be needed to access the parameters to tune: (\", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"http://192.168.123.1:8080/\"\n  }, \"http://192.168.123.1:8080/\"), \").\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Once on this browser, you will see different options to tune. You can change these until you are happy with the walk.\"), mdx(Alert, {\n    mdxType: \"Alert\"\n  }, \"Some of the important options that have been used previously are gains, PID controller, step height, DSP ratio, and duty cycle.\")), mdx(\"li\", {\n    parentName: \"ol\"\n  }, mdx(\"p\", {\n    parentName: \"li\"\n  }, \"Once you are happy, press save and exit the program.\"))), mdx(\"p\", null, \"For more information on parameters visit the \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://emanual.robotis.com/docs/en/platform/op/development/\"\n  }, \"Robotis website development page\"), \".\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#darwin-op2-guide","title":"DARwIn-OP2 Guide","items":[{"url":"#the-main-scenarios-in-which-a-darwin-op2-is-used-are","title":"The main scenarios in which a DARwIn-OP2 is used are:"},{"url":"#some-limitations-of-the-darwin-op-include","title":"Some limitations of the DARwIn-OP include:"},{"url":"#compared-to-the-darwin-op2","title":"Compared to the DARwIn-OP2:"},{"url":"#darwin-op2-specifications","title":"DARwIn-OP2 Specifications"},{"url":"#powering-on-the-darwin-op2","title":"Powering on the DARwIn-OP2"},{"url":"#running-the-demonstration-programs-on-the-darwin-op2","title":"Running the demonstration programs on the DARwIn-OP2"},{"url":"#creating-the-recovery-usb","title":"Creating the recovery USB"},{"url":"#running-the-recovery-usb-through-the-bios","title":"Running the recovery USB through the BIOS"},{"url":"#calibrating-the-darwin-op2-ball-calibration","title":"Calibrating the DARwIn-OP2 (Ball Calibration)"},{"url":"#calibrating-the-darwin-op2-walk-tuner","title":"Calibrating the DARwIn-OP2 (Walk Tuner)"}]}]},"frontmatter":{"section":"Guides","chapter":"Hardware","title":"DARwIn Op2 Robot Restoration and Calibration Guide","description":"How to use the provided instructions for setting up, restoring, and calibrating the Darwin Op2 robot system.","keywords":null,"slug":"/guides/hardware/darwin-op2-guide","hidden":null},"childNUbookContributions":{"authors":[{"name":"Corah Oliver","username":"yippyy"}],"lastCommit":{"date":"2025-01-09T11:13:56.000Z","hash":"1fb02f9a7e3624db6206f8b141211577de8323a6"}}}},"pageContext":{"mdxPath":"src/book/03-guides/03-hardware/04-DARwIn-OP2-guide.mdx","id":"270b1a6e-c1ed-551b-ba7f-7b71c976f549","next":{"chapter":"General","title":"Learning Resources","description":"Find resources to learn about the various aspects of NUbots.","slug":"/guides/general/learning-resources","hidden":null},"previous":{"chapter":"Hardware","title":"Batteries","description":"How to safely work with batteries","slug":"/guides/hardware/batteries","hidden":null},"menu":[{"title":"Team","slug":"/team/introduction","chapters":[{"title":"Introduction","slug":"/team/introduction","pages":[{"title":"Introduction to NUbots","slug":"/team/introduction","hidden":null},{"title":"Areas of Research","slug":"/team/areas-of-research","hidden":null},{"title":"Current Team","slug":"/team/current-members","hidden":null}],"hidden":false},{"title":"Joining the Team","slug":"/team/how-we-work","pages":[{"title":"How We Work","slug":"/team/how-we-work","hidden":null},{"title":"How to Join NUbots","slug":"/team/how-to-join","hidden":null},{"title":"Lab Induction","slug":"/team/induction","hidden":null}],"hidden":false},{"title":"Community","slug":"/team/sponsors","pages":[{"title":"Sponsors","slug":"/team/sponsors","hidden":null},{"title":"Connect","slug":"/team/connect","hidden":null}],"hidden":false},{"title":"History","slug":"/team/history","pages":[{"title":"Team History","slug":"/team/history","hidden":null},{"title":"Past Members","slug":"/team/past-members","hidden":null},{"title":"Publications","slug":"/team/publications","hidden":null}],"hidden":false},{"title":"RoboCup","slug":"/team/robocup","pages":[{"title":"RoboCup","slug":"/team/robocup","hidden":null},{"title":"Resources","slug":"/team/robocup/resources","hidden":null},{"title":"Debriefs","slug":"/team/robocup/debriefs","hidden":null}],"hidden":false}],"hidden":false},{"title":"System","slug":"/system/foundations/overview","chapters":[{"title":"Foundations","slug":"/system/foundations/overview","pages":[{"title":"Overview","slug":"/system/foundations/overview","hidden":null},{"title":"Build System","slug":"/system/foundations/build-system","hidden":null},{"title":"Continuous Integration","slug":"/system/foundations/ci-system","hidden":null},{"title":"NUClear","slug":"/system/foundations/nuclear","hidden":null},{"title":"Mathematics","slug":"/system/foundations/mathematics","hidden":null},{"title":"Configuration and Script System","slug":"/system/foundations/config-script","hidden":null},{"title":"Director","slug":"/system/foundations/director","hidden":null}],"hidden":false},{"title":"Subsystems","slug":"/system/subsystems/input","pages":[{"title":"Input","slug":"/system/subsystems/input","hidden":null},{"title":"Odometry","slug":"/system/subsystems/odometry","hidden":null},{"title":"Localisation","slug":"/system/subsystems/localisation","hidden":null},{"title":"Motion","slug":"/system/subsystems/motion","hidden":null},{"title":"Vision","slug":"/system/subsystems/vision","hidden":null},{"title":"Behaviour","slug":"/system/subsystems/behaviour","hidden":null},{"title":"Logging","slug":"/system/subsystems/logging","hidden":null}],"hidden":false},{"title":"Tools","slug":"/system/tools/nusight","pages":[{"title":"NUsight","slug":"/system/tools/nusight","hidden":null},{"title":"NUbook","slug":"/system/tools/nubook","hidden":null},{"title":"NUpbr","slug":"/system/tools/nupbr","hidden":null},{"title":"NUgan","slug":"/system/tools/nugan","hidden":null},{"title":"System Configuration","slug":"/system/tools/system_configuration","hidden":null},{"title":"NatNet SDK","slug":"/system/tools/natnet_sdk","hidden":null}],"hidden":false},{"title":"Hardware","slug":"/system/hardware/overview","pages":[{"title":"Overview and Specifications","slug":"/system/hardware/overview","hidden":null}],"hidden":false},{"title":"Modules","slug":"/system/modules/actuation/","pages":[{"title":"Actuation","slug":"/system/modules/actuation/","hidden":null},{"title":"Extension","slug":"/system/modules/extension/","hidden":null},{"title":"Input","slug":"/system/modules/input/","hidden":null},{"title":"Localisation","slug":"/system/modules/localisation/","hidden":null},{"title":"Nbs","slug":"/system/modules/nbs/","hidden":null},{"title":"Network","slug":"/system/modules/network/","hidden":null},{"title":"Output","slug":"/system/modules/output/","hidden":null},{"title":"Planning","slug":"/system/modules/planning/","hidden":null},{"title":"Platform","slug":"/system/modules/platform/","hidden":null},{"title":"Purpose","slug":"/system/modules/purpose/","hidden":null},{"title":"Skill","slug":"/system/modules/skill/","hidden":null},{"title":"Strategy","slug":"/system/modules/strategy/","hidden":null},{"title":"Support","slug":"/system/modules/support/","hidden":null},{"title":"Tools","slug":"/system/modules/tools/","hidden":null},{"title":"Vision","slug":"/system/modules/vision/","hidden":null}],"hidden":false}],"hidden":false},{"title":"Guides","slug":"/guides/main/getting-started","chapters":[{"title":"Main Codebase","slug":"/guides/main/getting-started","pages":[{"title":"Getting Started","slug":"/guides/main/getting-started","hidden":null},{"title":"NUClear","slug":"/guides/main/nuclear-tutorial","hidden":null},{"title":"Running and Tuning Scripts","slug":"/guides/main/tuning-and-running-scripts","hidden":null},{"title":"Maintaining Subsystems","slug":"/guides/main/maintaining-subsystems","hidden":null},{"title":"Data Recording and Playback","slug":"/guides/main/data-recording-playback","hidden":null},{"title":"Camera Calibration","slug":"/guides/main/camera-calibration","hidden":null},{"title":"Onboarding Workshop","slug":"/guides/main/onboarding","hidden":null}],"hidden":false},{"title":"Tools","slug":"/guides/tools/nusight-contribution","pages":[{"title":"Contributing to NUsight","slug":"/guides/tools/nusight-contribution","hidden":null},{"title":"Setting Up Webots","slug":"/guides/tools/webots-setup","hidden":null},{"title":"Visual Mesh Getting Started","slug":"/guides/tools/visualmesh","hidden":null},{"title":"Using NUpbr","slug":"/guides/tools/nupbr-guide","hidden":null},{"title":"GameController Setup","slug":"/guides/tools/gamecontroller","hidden":null}],"hidden":false},{"title":"Hardware","slug":"/guides/hardware/working-with-robots","pages":[{"title":"Working with Robots","slug":"/guides/hardware/working-with-robots","hidden":null},{"title":"Flashing a Robot","slug":"/guides/hardware/flashing","hidden":null},{"title":"Servo Setup and Calibration","slug":"/guides/hardware/servo-calibration","hidden":null},{"title":"Batteries","slug":"/guides/hardware/batteries","hidden":null},{"title":"DARwIn Op2 Robot Restoration and Calibration Guide","slug":"/guides/hardware/darwin-op2-guide","hidden":null}],"hidden":false},{"title":"General","slug":"/guides/general/learning-resources","pages":[{"title":"Learning Resources","slug":"/guides/general/learning-resources","hidden":null},{"title":"Contribution Workflow","slug":"/guides/general/contribute","hidden":null},{"title":"RoboCup Setup","slug":"/guides/general/robocup-setup","hidden":null},{"title":"Troubleshooting","slug":"/guides/general/troubleshooting","hidden":null},{"title":"Code Conventions","slug":"/guides/general/code-conventions","hidden":null},{"title":"Glossary","slug":"/guides/general/glossary","hidden":null}],"hidden":false}],"hidden":false},{"title":"Kitchen Sink","slug":"/kitchen-sink/headers","chapters":[{"title":"Markdown","slug":"/kitchen-sink/headers","pages":[{"title":"Headers","slug":"/kitchen-sink/headers","hidden":true},{"title":"Formatting and Paragraphs","slug":"/kitchen-sink/formatting-and-paragraphs","hidden":true},{"title":"Blockquotes","slug":"/kitchen-sink/blockquotes","hidden":true},{"title":"Alerts","slug":"/kitchen-sink/alerts","hidden":true},{"title":"Images","slug":"/kitchen-sink/images","hidden":true},{"title":"Lists","slug":"/kitchen-sink/lists","hidden":true},{"title":"Code","slug":"/kitchen-sink/code","hidden":true},{"title":"Math","slug":"/kitchen-sink/math","hidden":true},{"title":"Table of Contents","slug":"/kitchen-sink/table-of-contents","hidden":true},{"title":"Tables","slug":"/kitchen-sink/tables","hidden":true},{"title":"Collapsible Content","slug":"/kitchen-sink/collapsible","hidden":true},{"title":"GraphViz Diagrams","slug":"/kitchen-sink/graphviz-diagrams","hidden":true},{"title":"Referencing","slug":"/kitchen-sink/referencing","hidden":true}],"hidden":true}],"hidden":true}],"references":null,"hidden":null}},
    "staticQueryHashes": ["3715292327","445096115","466146812"]}