diff --git a/README.md b/README.md index f07b73687..6c46f65d2 100644 --- a/README.md +++ b/README.md @@ -80,6 +80,8 @@ ## Workflow for publishing OutdoorNav User Manual updates +
+ The OutdoorNav User Manual is a "versioned" document, which means that a snapshot of the content is made to align with a release. This allows users to access version-specific copies of the documentation. @@ -88,7 +90,13 @@ documentation. During the development phase, follow steps 1-10 of the workflow above. Note that the updates will not affect the default view of the user manual, only the "next" version of the manual -(eg. http://docs.clearpathrobotics.com/docs_outdoornav_user_manual/next/index). +(eg. http://docs.clearpathrobotics.com/docs_outdoornav_user_manual/next/index). You can enable the visibility of the "next" version by setting + +``` +includeCurrentVersion: true, +``` + +in `docusaurus.config.js` alongside `id: "outdoornav_user_manual",` section. Ensure to reset this to false before releasing the changes. ### Release Phase @@ -99,22 +107,98 @@ When it is time to publish a numbered release of the user manual: npm run docusaurus docs:version:outdoornav_user_manual -3. Update /docs/software/navigation_packages.mdx to: - - Update the version number for the "Latest". - - Add an entry for the previous release. -4. Update /static/versions.js to update the outdoornav version to match the GitHub tag. -5. Build and test the changes (see steps 4-8 from the standard workflow above). -6. When ready, publish your branch on GitHub, and submit a Pull Request to merge your changes into the _development_ branch. +3. Update /static/versions.js to update the outdoornav version to match the GitHub tag. +4. Build and test the changes (see steps 4-8 from the standard workflow above). +5. When ready, publish your branch on GitHub, and submit a Pull Request to merge your changes into the _development_ branch. Be sure to include the updates to the following: - outdoornav_user_manual_versioned_docs/ - outdoornav_user_manual_versioned_sidebars/ - outdoornav_user_manual_versions.json -## Workflow for publishing OutdoorNav User Manual updates +
+ +## Workflow for publishing IndoorNav User Manual updates + +
Follow the steps for the OutdoorNav User Manual workflow above, replacing **outdoornav** with **indoornav**. +
+ +## Workflow for publishing Robots / ROS User Manual updates + +
+ +The Robots / ROS sections of the website are a "versioned" document called `docs`, which means that a snapshot of the content is +made to align with each ROS version. This allows users to access version-specific copies of the +documentation. + +### Maintenance Phase (For Existing Version) + +Follow steps 1-10 from [above](#workflow-for-making-updates). However, all changes will be made to the files within `docs_versioned_docs/` for the particular version that needs to be changed. E.g. any changes to the ROS 2 Humble documentation would be made to the files within `docs_versioned_docs/version-ros2humble/`. + +### Development Phase (For New Version) + +Start by following step 1 & 2 [above](#workflow-for-making-updates). + +Next, to start the development of a new version, the latest released version of the documentation must be copied over into the `docs/` folder. + +For Example, for making a new release after humble, the contents of `docs_versioned_docs/version-ros2humble/` would be copied to replace the contents of `docs/`. + +Continue through to step 10 of the workflow above. Note that the updates will not affect +the default view of the user manual, only the "next" version of the manual +(eg. http://docs.clearpathrobotics.com/docs_outdoornav_user_manual/next/index). You can enable the visibility of the "next" version by setting + +``` +includeCurrentVersion: true, +``` + +in `docusaurus.config.js` alongside `id: "docs",`. Ensure to reset this to false before releasing the changes. + +Once complete, continue to the release phase. + +> **Note** +> The documentation includes unversioned mdx components from `components/` and versioned components from `docs/components/`. If versioning needs to be added move the component into the versioned folder for each version and remap the imports (using relative links). + +### Release Phase (For New Version) + +When it is time to publish a new version of the manual: + +1. After developing the changes, run the versioning command, where _new_version_ is aligned with the corresponding software release: + + npm run docusaurus docs:version:docs + + where the `` has no spaces or dashes (E.g. for ROS 2 Humble the version should be set as `ros2humble`) + +2. Update the `docusaurus.config.js` file, adding an entry within versions to map the version name to the display label. + +```js + versions: { + ros2humble: { + label: 'ROS 2 Humble', + }, + ros1noetic: { + label: 'ROS 1 Noetic', + } + }, +``` + +3. Ensure that the "next" version is disabled in the following line in the config: + +``` +includeCurrentVersion: false, +``` + +4. Build and test the changes (see steps 4-8 from the standard workflow above). +5. When ready, publish your branch on GitHub, and submit a Pull Request to merge your changes into the _development_ branch. + Be sure to include the updates to the following: + - docs_versioned_docs/ + - docs_versioned_sidebars/ + - docs_versions.json + +
+ ## How should I write pages? 1. Refer to [Markdown's guide](https://www.markdownguide.org/basic-syntax/) for syntax @@ -142,11 +226,11 @@ This helps User's know where they downloaded the file from later, as the asset i /docs -2. Markdown component, like a section to be reused in multiple pages +2. Markdown component, like a section to be reused in multiple pages (unversioned) /components -3. Images +3. Unversioned Images /static/img @@ -154,6 +238,10 @@ This helps User's know where they downloaded the file from later, as the asset i /static/assets +5. Versioned Images + + In an `img/` folder next to the markdown files where it will be used. + ## How does the deployed website get updated? We have this site deployed on _AWS Amplify_. @@ -212,6 +300,12 @@ The list below are not strict rules, but are considered good practice to keep im Note: icons, logos, and symbols that are part of the physical product are exempt from this suggestion. +## Links and Imports + +All links to, or imports of versioned elements (images, markdown files etc.) must be referred to using relative links (`./img/image-name.png`). These versioned pages will be moved together and ensures that the correct version is used. + +All links to, or imports of unversioned static elements must be referred to using absolute paths (`/static/img/image-name.png`). This allows these assets to be found irrelevant of the location of the particular page. + ## SolidWorks image exports 1. Open your assembly in SolidWorks. diff --git a/components/common_software_integration.mdx b/components/common_software_integration.mdx index adeb5aa6b..532ae0da2 100644 --- a/components/common_software_integration.mdx +++ b/components/common_software_integration.mdx @@ -2,10 +2,4 @@ ROS has a large ecosystem of sensor drivers, some of which include pre-made URDF even simulation configurations. Refer to [Sensors supported by ROS](http://wiki.ros.org/Sensors). For the best experience, consider purchasing supported accessories from Clearpath Robotics for your -robot, which will include simulation, visualization, and driver support. Refer to the following -for more details: - -- [Computers](/docs/computers) -- [Sensors](/docs/sensors) -- [Manipulators](/docs/manipulators) -- [Accessories](/docs/accessories) +robot, which will include simulation, visualization, and driver support. diff --git a/components/installing_robot_software_ros2.mdx b/components/installing_robot_software_ros2.mdx deleted file mode 100644 index 012049a4e..000000000 --- a/components/installing_robot_software_ros2.mdx +++ /dev/null @@ -1,132 +0,0 @@ -import Tabs from "@theme/Tabs"; -import TabItem from "@theme/TabItem"; - -##### Add Clearpath Debian Package Repository - -Before you can install the robot-specific packages, you need to configure -Ubuntu's APT package manager to add Clearpath's package server: - -1. Install the authentication key for the - packages.clearpathrobotics.com repository. In a terminal, run: - - ```bash - wget https://packages.clearpathrobotics.com/public.key -O - | sudo apt-key add - - ``` - -2. Add the debian sources for the repository. In a terminal, run: - - ```bash - sudo sh -c 'echo "deb https://packages.clearpathrobotics.com/stable/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/clearpath-latest.list' - ``` - -3. Update your computer's package cache. In a terminal, run: - - ```bash - sudo apt-get update - ``` - -##### Installing from Debian Packages - -The preferred way to install robot-specific packages is using precompiled -Debian packages. These packages are available for Ubuntu 20.04. - -After your computer is configured to use Clearpath's debian package -repository, you can install the robot-specific packages needed for this tutorial. -In a terminal, run: - - - - sudo apt-get install ros-foxy-husky-desktop ros-foxy-husky-simulator - - - Debian packages not currently supported for Jackal. - - - -The `_robot` package only needs to be installed on the physical -robot; however, you can optionally install it on your computer -too. In a terminal, run: - - - - sudo apt-get install ros-foxy-husky-robot - - - sudo apt-get install ros-foxy-jackal-robot - - - -##### Installing from Source - -Robot packages are available on [GitHub](https://github.com/jackal/), and -can be compiled and installed from source if desired: - -1. Create a workspace directory. In a terminal, run: - - ```bash - mkdir -p ~/cpr_ws/src - ``` - -2. Clone the repositories into your workspace directory. In - terminal, run: - - - - - cd ~/cpr_ws/src -
- git clone -b foxy-devel https://github.com/husky/husky.git -
- cd .. -
-
-
- -3. Install additional dependencies. In a terminal, run: - - ```bash - rosdep install --from-paths src --ignore-src --rosdistro=$ROS_DISTRO -y - ``` - -4. Build the workspace. In a terminal, run: - - ```bash - colcon build - ``` - -5. You can now source your workspace to make use of the packages you - just built. In a terminal, run: - - ```bash - source install/setup.bash - ``` - -6. If you would like ROS to run on boot run: - - - - ros2 run husky_bringup install - - diff --git a/components/maintenance/getting_new_packages.mdx b/components/maintenance/getting_new_packages.mdx index c869f4a83..8df1ba304 100644 --- a/components/maintenance/getting_new_packages.mdx +++ b/components/maintenance/getting_new_packages.mdx @@ -1,6 +1,6 @@ :::note -If you are upgrading your robot from an older version of ROS, please refer to our upgrade instructions [here](https://clearpathrobotics.com/assets/guides/kinetic/kinetic-to-melodic/index.html) and [here](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). +If you are upgrading your robot from an older version of ROS, please refer to our upgrade instructions for upgrading to [Melodic](https://clearpathrobotics.com/assets/guides/kinetic/kinetic-to-melodic/index.html), [Noetic](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html) and [ROS 2 Humble](/docs/ros/installation/upgrading). ::: diff --git a/components/pacs_explanation_and_link.mdx b/components/pacs_explanation_and_link.mdx index d0c90b10c..f85b73e75 100644 --- a/components/pacs_explanation_and_link.mdx +++ b/components/pacs_explanation_and_link.mdx @@ -1,5 +1,5 @@ :::note -Refer to our [PACS page](/docs/tools/pacs) for more details about the configuration system, the available kits, and brackets that may help with your integration. +Refer to our [PACS™ page](../pacs) for more details about the configuration system, the available kits, and brackets that may help with your integration. ::: diff --git a/components/pacs_mechanical.mdx b/components/pacs_mechanical.mdx index 9bb43a1fc..0ff33dd80 100644 --- a/components/pacs_mechanical.mdx +++ b/components/pacs_mechanical.mdx @@ -1,10 +1,10 @@ -[PACS](/docs/tools/pacs) is a Clearpath Robotics standard. +[PACS™](../../../accessories/pacs) is a Clearpath Robotics standard. We add a grid of M5×0.8 holes onto the top plate of the robot. This grid of holes has a 80 mm X 80 mm spacing. You can create your own brackets to interface with these holes, or can use an existing Clearpath Robotics designed bracket. :::note -Our [Sensors](/docs/sensors) and [Accessories](/docs/accessories) pages indicate the required bracket for the particular attachment. +Our [Sensors](../../../accessories/sensors) and [Accessories](../../../accessories/add-ons) pages indicate the required bracket for the particular attachment. ::: diff --git a/components/remote_ros2_connection.mdx b/components/remote_ros2_connection.mdx deleted file mode 100644 index fe2628121..000000000 --- a/components/remote_ros2_connection.mdx +++ /dev/null @@ -1,45 +0,0 @@ -It is useful to connect your laptop to the same ROS2 network as your robot, -particularly if you want to interface with it through ROS2 -topics, services, and actions: - -1. Ensure that your laptop has ROS2 Foxy installed. -2. Connect your robot's computer and your laptop to the same (wired or - wireless) network. -3. Verify that your robot's computer can `ping` your laptop. In a terminal - on your robot's computer, run: - - ```bash - ping - ``` - -4. Verify that your laptop can `ping` your robot's computer. In a terminal - on your laptop, run: - - ```bash - ping - ``` - -5. You should be able to now be able to access your robot's ROS2 data from - your laptop, such as viewing ROS2 topics. In a terminal on - your laptop, run: - - ```bash - source /opt/ros/foxy/setup.bash - ros2 topic list - ``` - -6. If you are unable to access your robot's ROS2 data from your laptop, - make sure to set the `ROS_DOMAIN_ID` environment variable on your - laptop to the same value as on your robot's computer. By default, - `ROS_DOMAIN_ID` is set to 0 (in ROS2 and on your robot), so you will not - need to do this step. However, if `ROS_DOMAIN_ID` is set to a - different value on your robot, make sure to do the same on your laptop. - In a terminal on your laptop, run: - - ```bash - export ROS_DOMAIN_ID= - source /opt/ros/foxy/setup.bash - ``` - -You should now be able to access your robot's ROS2 data (e.g. topics, -services, and actions) from your laptop. diff --git a/components/ros1_to_ros2_upgrade_prep.mdx b/components/ros1_to_ros2_upgrade_prep.mdx deleted file mode 100644 index 6089ee9bf..000000000 --- a/components/ros1_to_ros2_upgrade_prep.mdx +++ /dev/null @@ -1,72 +0,0 @@ -##### Upgrading Ubuntu OS Version (Optional) - -:::note - -If you already have Ubuntu 20.04 installed, you can skip this step. - -::: - -ROS2 specifically targets Ubuntu 20.04; therefore, if your computer is -currently running an older Ubuntu OS version (e.g. Ubuntu 18.04 for ROS1 -Melodic, or Ubuntu 16.04 for ROS2 Kinetic), you will need to update it -to Ubuntu 20.04. - -The recommended method of installing Ubuntu 20.04 is from an ISO via a -bootable USB drive. The Ubuntu 20.04 ISO can be found from [Ubuntu's -official releases](https://releases.ubuntu.com/20.04/). - -On any computer: - -1. Download the `.iso` file from the link above. -2. Insert a USB drive. -3. Write the downloaded Ubuntu 20.04 ISO to the USB drive using a - software such as `Rufus`, `Etcher`, or `UNetbootin`. This will erase - all data already on the USB drive, so make sure you have backed up - anything important! - -On the computer to be upgraded to Ubuntu 20.04: - -1. Ensure that it is turned off and has internet access via ethernet. -2. Insert the newly formatted USB drive. -3. Turn on and choose to boot from the USB drive. -4. The installer should run automatically. Step through any prompts - that come up. The computer will turn off automatically when the - installation completes. -5. Once the computer turns off, remove the USB drive and turn on the - computer. It will now be running your fresh install of Ubuntu 20.04. - -##### Removing ROS1 Noetic (Optional) - -:::note - -If ROS1 Noetic was not previously installed, you can skip this step. - -::: - -If ROS1 Noetic was previous installed and there is a systemd job to -start it on boot, it must be disabled to use ROS2 on boot. This can be -done by running: - -```bash -source /opt/ros/noetic/setup.bash -rosrun robot_upstart uninstall ros -``` - -##### Installing ROS2 - - - -Simply follow the [official ROS2 Foxy installation -instructions](https://docs.ros.org/en/foxy/Installation.html) to install -ROS2 Foxy on your Ubuntu 20.04 computer. - -If your Ubuntu 20.04 computer for some reason has ROS1 Noetic installed -already, you will just need to `source` the desired ROS version and -distribution before using it. - -For example: - -```bash -source /opt/ros/foxy/setup.bash # Run this command to use ROS2 Foxy -source /opt/ros/noetic/setup.bash # Run this command to use ROS1 Noetic -``` diff --git a/components/using_ros.mdx b/components/using_ros.mdx index 24cef8a11..807f58f67 100644 --- a/components/using_ros.mdx +++ b/components/using_ros.mdx @@ -1,4 +1,4 @@ Robot Operating System (ROS) is an extensible framework for controlling and working with robotic systems. Clearpath Robotics recommends using ROS with your robot. If this is your first time using ROS, it is strongly -recommended to run through our series of [ROS 101 tutorials](http://support.clearpathrobotics.com) to learn +recommended to run through our series of [ROS tutorials](../../../ros) to learn the basics of ROS. diff --git a/docs/components/_tutorials_link.mdx b/docs/components/_tutorials_link.mdx new file mode 100644 index 000000000..91332034a --- /dev/null +++ b/docs/components/_tutorials_link.mdx @@ -0,0 +1,30 @@ +:::note + +These tutorials assume that you are comfortable working with [ROS](https://docs.ros.org/). We recommend starting with +[ROS 2 tutorials](https://docs.ros.org/en/humble/Tutorials.html) if you are not familiar with ROS already. + +::: + +## Topics + +You can view all topics that are active using `ros2 topic list`. + +For a general list of topics and descriptions see the [Clearpath API](../../../ros/api/platform_api) + +## Software Setup + +- [Robot Software](../../../ros/installation/robot) +- [Remote Computer](../../../ros/installation/remote_pc) +- [PS4 Joystick Controller (if applicable)](../../../ros/installation/controller) + +## Using your Robot + +The following tutorials are recommended to get to know your robot: + +- [Driving your Robot](../../../ros/tutorials/driving) +- [Simulating your Robot](../../../ros/tutorials/simulator/overview) +- [Navigating](../../../ros/tutorials/navigation_demos/overview) + +## Advanced Topics + +- [Configuring Network Bridge](../../../ros/networking/computer_setup) diff --git a/docs/robots/_category_.json b/docs/robots/_category_.json deleted file mode 100644 index 96ebe3a40..000000000 --- a/docs/robots/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Robots", - "position": 1 -} diff --git a/docs/robots/accessories/_category_.json b/docs/robots/accessories/_category_.json new file mode 100644 index 000000000..78c643b7c --- /dev/null +++ b/docs/robots/accessories/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Accessories", + "position": 6 +} diff --git a/docs/robots/accessories/accessories.mdx b/docs/robots/accessories/accessories.mdx new file mode 100644 index 000000000..7b90abfa8 --- /dev/null +++ b/docs/robots/accessories/accessories.mdx @@ -0,0 +1,17 @@ +--- +title: Accessories Overview +sidebar_label: Accessories Overview +sidebar_position: 6 +--- + +Many different types of accessories can be added onto Clearpath robot platforms to suit your specific needs. + +:::info links to accessory pages + +- [Computers](./computers) +- [Sensors](./sensors) +- [Manipulators](./manipulators) +- [PACS™](./pacs) +- [Add-ons](./add-ons) + +::: diff --git a/docs/robots/accessories/add-ons/_category_.json b/docs/robots/accessories/add-ons/_category_.json new file mode 100644 index 000000000..e4c5c20a4 --- /dev/null +++ b/docs/robots/accessories/add-ons/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Add-ons", + "position": 6 +} diff --git a/docs/accessories/accessories.mdx b/docs/robots/accessories/add-ons/add-ons.mdx similarity index 94% rename from docs/accessories/accessories.mdx rename to docs/robots/accessories/add-ons/add-ons.mdx index 0d1f59e5d..b5d53a61c 100644 --- a/docs/accessories/accessories.mdx +++ b/docs/robots/accessories/add-ons/add-ons.mdx @@ -1,6 +1,6 @@ --- -title: Accessories Overview -sidebar_label: Accessories +title: Add-ons Overview +sidebar_label: Add-ons sidebar_position: 1 --- diff --git a/docs/accessories/base_station.mdx b/docs/robots/accessories/add-ons/base_station.mdx similarity index 81% rename from docs/accessories/base_station.mdx rename to docs/robots/accessories/add-ons/base_station.mdx index 69ca85d9d..01ff51b3c 100644 --- a/docs/accessories/base_station.mdx +++ b/docs/robots/accessories/add-ons/base_station.mdx @@ -26,7 +26,7 @@ Our robots are configured to automatically connect to the Base Station's Wi-Fi n You can then connect your development computer to the Base Station through Wi-Fi or a network cable, and then share data with the robot over Wi-Fi. Our standard Base Station can send data at 100 Mbit/s at up to 100 metres range. -We also have a GPS variant of the Base Station where we add a [Swift Navigation Duro](/docs/sensors/gps/swift_navigation_duro) to the system, connecting it to the Access Point with a network cable. +We also have a GPS variant of the Base Station where we add a [Swift Navigation Duro](../sensors/gps/swift_navigation_duro) to the system, connecting it to the Access Point with a network cable. This GPS sensor allows the robot to apply an RTK (Real-Time Kinematic) correction for more accurate localization. :::note @@ -37,6 +37,6 @@ Clearpath uses this RTK correction in its OutdoorNav autonomy software, but we d :::note -Refer to the [Network IP Addresses page](/docs/tools/network_ip_addresses) for the commonly used device IP addresses. +Refer to the [Network IP Addresses page](../../../ros/networking/network_ip_addresses) for the commonly used device IP addresses. ::: diff --git a/docs/accessories/controllers.mdx b/docs/robots/accessories/add-ons/controllers.mdx similarity index 100% rename from docs/accessories/controllers.mdx rename to docs/robots/accessories/add-ons/controllers.mdx diff --git a/docs/accessories/din_rail.mdx b/docs/robots/accessories/add-ons/din_rail.mdx similarity index 97% rename from docs/accessories/din_rail.mdx rename to docs/robots/accessories/add-ons/din_rail.mdx index 00e31723a..748b70ff0 100644 --- a/docs/accessories/din_rail.mdx +++ b/docs/robots/accessories/add-ons/din_rail.mdx @@ -77,7 +77,7 @@ sidebar_position: 4 ### Parts List -The PACS kit for a stack light includes: +The PACS™ kit for a stack light includes: | ID | Description | CPR item | Quantity | | :-: | :----------------------------------------------------------------- | :-------------------------------------------------: | :------: | @@ -90,7 +90,7 @@ The PACS kit for a stack light includes: :::note -This only inlcudes the parts to mount a DIN rail on a PACS ready robot. +This only inlcudes the parts to mount a DIN rail on a PACS™ ready robot. Refer to the pictures at the top of this page to see the kit. ::: diff --git a/docs/accessories/network_access_point.mdx b/docs/robots/accessories/add-ons/network_access_point.mdx similarity index 100% rename from docs/accessories/network_access_point.mdx rename to docs/robots/accessories/add-ons/network_access_point.mdx diff --git a/docs/accessories/network_switch.mdx b/docs/robots/accessories/add-ons/network_switch.mdx similarity index 90% rename from docs/accessories/network_switch.mdx rename to docs/robots/accessories/add-ons/network_switch.mdx index dac95f7a3..434fbe064 100644 --- a/docs/accessories/network_switch.mdx +++ b/docs/robots/accessories/add-ons/network_switch.mdx @@ -18,14 +18,14 @@ import ComponentPacsExplanation from "/components/pacs_explanation_and_link.mdx" --- -## PACS Kits {#network_switch_pacs_kits} +## PACS™ Kits {#network_switch_pacs_kits} :::note -These installation kits use a PACS attachment which includes a DIN rail. -Refer to the [DIN Rail](/docs/accessories/din_rail) page for build instructions. +These installation kits use a PACS™ attachment which includes a DIN rail. +Refer to the [DIN Rail](./din_rail) page for build instructions. ::: diff --git a/docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit.mdx b/docs/robots/accessories/add-ons/outdoornav_starter_kit.mdx similarity index 96% rename from docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit.mdx rename to docs/robots/accessories/add-ons/outdoornav_starter_kit.mdx index 14ed166b5..8d985fa3c 100644 --- a/docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit.mdx +++ b/docs/robots/accessories/add-ons/outdoornav_starter_kit.mdx @@ -1,5 +1,6 @@ --- title: OutdoorNav Starter Kit +sidebar_label: OutdoorNav Starter Kit sidebar_position: 1 --- @@ -14,7 +15,7 @@ sidebar_position: 1 The OutdoorNav Starter Kit is a low-cost hardware bundle that allows you to begin autonomous outdoor navigation using -Clearpath's [OutdoorNav Autonomy Software](/docs/software/navigation_packages#outdoornav-autonomy-software). It integrates +Clearpath's [OutdoorNav Autonomy Software](/docs_outdoornav_user_manual/). It integrates easily onto Husky and Jackal, but is compatible with third-party robots as outlined below. ## Item Numbers {#item-numbers} diff --git a/docs/accessories/power_supplies.mdx b/docs/robots/accessories/add-ons/power_supplies.mdx similarity index 79% rename from docs/accessories/power_supplies.mdx rename to docs/robots/accessories/add-ons/power_supplies.mdx index 656431a9c..143baa449 100644 --- a/docs/accessories/power_supplies.mdx +++ b/docs/robots/accessories/add-ons/power_supplies.mdx @@ -8,13 +8,13 @@ import ComponentPacsExplanation from "/components/pacs_explanation_and_link.mdx" Clearpath's robots include User Power connectors with regulated 5 V, 12 V, and 24 V depending on the robot platorm. Refer to your robot platform's user manual for more details about these User Power connections: -- [Boxer](/docs/robots/indoor_robots/boxer/user_manual_boxer) -- [Dingo](/docs/robots/indoor_robots/dingo/user_manual_dingo) -- [Husky](/docs/robots/outdoor_robots/husky/user_manual_husky) -- [Jackal](/docs/robots/outdoor_robots/jackal/user_manual_jackal) -- [Ridgeback](/docs/robots/indoor_robots/ridgeback/user_manual_ridgeback) -- [TurtleBot4](/docs/robots/learing_platforms/turtlebot4/user_manual_turtlebot4) -- [Warthog](/docs/robots/outdoor_robots/warthog/user_manual_warthog) +- [Boxer](../../indoor_robots/boxer/user_manual_boxer) +- [Dingo](../../indoor_robots/dingo/user_manual_dingo) +- [Husky](../../outdoor_robots/husky/user_manual_husky) +- [Jackal](../../outdoor_robots/jackal/user_manual_jackal) +- [Ridgeback](../../indoor_robots/ridgeback/user_manual_ridgeback) +- [TurtleBot4](../../learning_platforms/turtlebot4) +- [Warthog](../../outdoor_robots/warthog/user_manual_warthog) If you need more power, or at a different output voltage, you can add an enclosed DC-DC power supply. This is our process for choosing a new enclosed power supply. @@ -38,15 +38,15 @@ This is our process for choosing a new enclosed power supply. :::tip - 1. Consider using one of the following [PACS Kits](#power_supplies_pacs_kits). + 1. Consider using one of the following [PACS™ Kits](#power_supplies_pacs_kits). - **15 Watt**: 028901 | Installation, Kit, Sensor—80 X 80, Power Supply, SB-15 - **25 Watt**: 028903 | Installation, Kit, Sensor—80 X 80, Power Supply, SB-25 - **150 Watt**: 028941 | Installation, Kit, Sensor—80 X 80, Power Supply, TEP 150 - 2. There are Power Supplies that include mounting brackets for [DIN Rails](/docs/accessories/din_rail), which could simplify your integration. + 2. There are Power Supplies that include mounting brackets for [DIN Rails](../add-ons/din_rail), which could simplify your integration. ::: -9. Review the electrical termination method to see if it is ideal for your application. It is common to see screw terminals for [Ring Terminals](/docs/components/connectors/ring_terminal), though there are other options. +9. Review the electrical termination method to see if it is ideal for your application. It is common to see screw terminals for [Ring Terminals](../../common/components/connectors/ring_terminal), though there are other options.
@@ -60,7 +60,7 @@ This is our process for choosing a new enclosed power supply. --- -## PACS Kits {#power_supplies_pacs_kits} +## PACS™ Kits {#power_supplies_pacs_kits} diff --git a/docs/accessories/relay_board.mdx b/docs/robots/accessories/add-ons/relay_board.mdx similarity index 93% rename from docs/accessories/relay_board.mdx rename to docs/robots/accessories/add-ons/relay_board.mdx index ee95590c0..99515b0ba 100644 --- a/docs/accessories/relay_board.mdx +++ b/docs/robots/accessories/add-ons/relay_board.mdx @@ -43,7 +43,7 @@ We have developed a ROS driver using Numato's API, so we can control the relays :::note -Refer to the [DIN Rail](/docs/accessories/din_rail) page for related PACS Kits, and item numbers of common DIN Rail lengths. +Refer to the [DIN Rail](../add-ons/din_rail) page for related PACS™ Kits, and item numbers of common DIN Rail lengths. ::: diff --git a/docs/robots/accessories/add-ons/stack_light.mdx b/docs/robots/accessories/add-ons/stack_light.mdx new file mode 100644 index 000000000..8bc536297 --- /dev/null +++ b/docs/robots/accessories/add-ons/stack_light.mdx @@ -0,0 +1,77 @@ +--- +title: Stack Light +sidebar_position: 9 +--- + +
+ +
+ +
+ +| Description | CPR Item | +| :-------------------------------------------------------------- | :------: | +| PACS™ kit, including mounting, controls base, and top cap | 027220 | +| Kit, controls base and top cap | 020711 | +| Mounting adapter | 020710 | +| Light Module, Green | 020714 | +| Light Module, Red | 020715 | +| Light Module, Amber | 020716 | +| Light Module, Blue | 020717 | +| Light Module, White | 020718 | +| Light Module, Yellow | 020719 | +| Light Module, Magenta | 020720 | + +## Pinout {#stack_light_pinout} + +| Pin | Description | Voltage | +| :-: | :------------------------------------ | :------ | +| COM | Ground | GND | +| 1 | Channel 1, lowest module in the stack | +24 VDC | +| 2 | channel 2 | +24 VDC | +| 3 | channel 3 | +24 VDC | +| 4 | channel 4 | +24 VDC | +| 5 | channel 5 | +24 VDC | +| 6 | channel 6 | +24 VDC | +| 7 | channel 7, highest possible module | +24 VDC | + +--- + +## Hardware Build + +### Parts List + +The PACS™ kit for a stack light includes: + +| ID | Description | CPR item | Quantity | +| :-------: | :--------------------------------------------------------- | :-------------------------------------------------: | :------: | +| 1 | Plate—80 X 80, Attachment Interface | [026914](/assets/pdf/clearpath_robotics_026914.pdf) | 1 | +| 2 | Stack Light Module, Mounting Adapter—Surface Mount | 020710 | 1 | +| 3A and 3B | Bundle, Stack Light Module, Controls Base and Top Cap | 020711 | 1 | +| 4 | Screw, Cap, Socket Head—M4×0.7 X 16, Stainless Steel | 023128 | 2 | +| 5 | Nut, Hex, Lock, Polymer Insert—M4×0.7 X 5, Stainless Steel | 019899 | 2 | +| 6 | Spacer, Round—Ø5.3 X Ø8 X 7, Aluminum Alloy | 026612 | 4 | +| 7 | Screw, Cap, Round Head—M5×0.8 X 16, Stainless Steel | 023257 | 4 | + +:::note + +Light Modules are not included in the PACS™ parts list since the configuration of modules depends on your specific integration. +Refer to the listed Light Modules at the top of this page for common modules. +Refer to [this catalog](/assets/pdf/clearpath_robotics_027220-TDS1.pdf) for all available modules and parts, including strobing lights, and buzzers. + +::: + +### Instructions + +1. Mount the Mounting Adapter (ID 2) to the attachment-plate (ID 1) using the M4 screws (ID 4) and nuts (ID 5). + Refer to the [attachment-plate's drawing notes](/assets/pdf/clearpath_robotics_026914.pdf) for what holes to use for mounting the stack light. +2. Place the Controls Base (ID 3A) onto the assembly and twist 10° clockwise to lock it in place. +3. Make and connect a cable for controlling the stack light's modules. + Refer to the [Pinout Section](#stack_light_pinout) above for details. +4. Mount this assembly onto your robot, using the included spacers (ID 6) and screws (ID 7). +5. Add light modules onto the assembly and twist 10° clockwise to lock them in place. + This locking connection creates an IP65 weatherproof seal, and completes the electrical connection to the Controls Base. +6. Place the Top Cap (ID 3B) onto the assembly and twist 10° to lock it in place. diff --git a/docs/accessories/tower.mdx b/docs/robots/accessories/add-ons/tower.mdx similarity index 100% rename from docs/accessories/tower.mdx rename to docs/robots/accessories/add-ons/tower.mdx diff --git a/docs/robots/accessories/add-ons/usb_hub.mdx b/docs/robots/accessories/add-ons/usb_hub.mdx new file mode 100644 index 000000000..a73fdd493 --- /dev/null +++ b/docs/robots/accessories/add-ons/usb_hub.mdx @@ -0,0 +1,51 @@ +--- +title: USB Hub +sidebar_position: 11 +--- + +## Item Numbers + +| Description | CPR Item | +| :----------------------------------------------- | :------------------------------------------------------: | +| USB 3.0 Hub, 7 port, 9 - 24 VDC | [025440](/assets/pdf/clearpath_robotics_025440-TDS1.pdf) | +| USB 3.0 Hub, 7 port, 9 - 24 VDC, PACS™ kit | 027642 | + +--- + +## Hardware Build + +
+
+ +
017642 | USB 3.0 Hub, 7 port, PACS™ kit
+
+
+ +### Parts List + +The PACS™ kit for this sensor includes: + +| ID | Description | CPR item | Quantity | +| :-: | :-------------------------------------- | :------------------------------------------------------: | :------: | +| 1 | Kit, Attachment—80 X 80, DIN Rail | [027881](../add-ons/din_rail) | 1 | +| 2 | USB Hub—7 Port, USB 3.0 | [025440](/assets/pdf/clearpath_robotics_025440-TDS1.pdf) | 1 | +| 3 | Spacer, DIN rail, Locking—35 X 7.5 X 10 | 023649 | 2 | + +### Instructions, 5 Port + +1. Build the DIN rail assembly. The instructions are listed on the [DIN Rail page](../add-ons/din_rail) +2. Mount this assembly onto your robot, using the DIN Rail kit's included spacers and screws. +3. Remove the USB Hub from its packaging. + Connect its included DIN Rail bracket to the USB Hub. +4. Connect the USB Hub assmbly onto the DIN Rail assembly. +5. Use two DIN Spacers (ID 3) to hold the USB Hub on the DIN Rail. +6. Make a power cable using the green terminal block connector that was included with the USB Hub. + There is white lettering on the side of the USB Hub designating +V and -V terminals. +7. Make sure the robot is off. + Connect the sensor's cable to the USB Hub, and to the related User Power terminal on the robot: + - +12 V regulated + - +12 V unregulated VBAT + - +24 V regulated diff --git a/docs/robots/accessories/add-ons/wireless_stop_system.mdx b/docs/robots/accessories/add-ons/wireless_stop_system.mdx new file mode 100644 index 000000000..b511cc27e --- /dev/null +++ b/docs/robots/accessories/add-ons/wireless_stop_system.mdx @@ -0,0 +1,89 @@ +--- +title: Wireless Stop System +sidebar_position: 12 +--- + +
+
+ +
FORT Robotics, Mobility
+
+
+ +## Item Numbers + +| Description | CPR item | Manufacturer item | +| :--------------------------------------- | :------: | :---------------- | +| Kar-Tech | 014663 | 3A4159A | +| Kar-Tech, PACS™ kit | 027297 | | +| FORT Robotics, Mobility | 025727 | | +| FORT Robotics, Mobility, PACS™ kit | 027216 | | + +--- + +## Hardware Build, Kar-Tech + +
+ +
+ +
+ +### Parts List, Kar-Tech + +| ID | Description | CPR Item | +| :-: | :--------------------------------------------------------- | :-------------------------------------------------: | +| 1 | Plate—80 X 80, Attachment Interface, Large | [026964](/assets/pdf/clearpath_robotics_026964.pdf) | +| 2 | Bundle, Wireless Safety Controller—Kartech | 014663 | +| 3 | Screw, Cap, Round Head—M4×0.7 X 12, Stainless Steel | 023310 | +| 4 | Nut, Hex, Lock, Polymer Insert—M4×0.7 X 5, Stainless Steel | 019899 | +| 5 | Spacer, Round—Ø5.3 X Ø8 X 7, Aluminum Alloy | 026612 | +| 6 | Screw, Cap, Round Head—M5×0.8 X 16, Stainless Steel | 023257 | + +### Instructions, Kar-Tech + +1. Fasten the Kar-Tech (ID 1) to the attachment-plate (ID 1) using M4 screws (ID 3) and nuts (ID 4). +2. Mount this assembly onto your robot, using the included spacers (ID 5) and screws (ID 6). +3. Add a connector to the Kar-Tech's cable. + Refer to [014663-TDS1](/assets/pdf/clearpath_robotics_014663-TDS1.pdf) for full details of the Kar-Tech component, including pinout. + +--- + +## Hardware Build, FORT Robotics Mobility + +
+ +
+ +
+ +### Parts List, FORT Robotics Mobility + +| ID | Description | CPR Item | Quantity | +| :-: | :------------------------------------------------- | :-------------------------------------------------: | :------: | +| 1 | Plate—80 X 80, Attachment Interface, Large | [027110](/assets/pdf/clearpath_robotics_027110.pdf) | 1 | +| 2 | Bundle, Wireless Safety Controller—FORT Robotics | 025727 | 1 | +| 3 | Antenna 2.4 GHz | 007198 | 1 | +| 4 | Screw, Cap, Flat Head—M4×0.7 X 10, Stainless Steel | 023455 | 4 | +| 5 | Screw, Cap, Flat Head—M5×0.8 X 12, Stainless Steel | 023471 | 4 | + +### Instructions, FORT Robotics Mobility + +1. Fasten the attachment-plate (ID 1) to the robot using M5 screws (ID 5) +2. Mount the FORT Robotics component (ID 2) to the attachment-plate (ID 1) using four M4×0.7 screws (ID 4). +3. Attach the antenna (ID 3) to the FORT (ID 2). +4. Add a connector to the cable included in the FOR bundle (ID 2). + Clearpath drawing [025657](/assets/pdf/clearpath_robotics_025657.pdf) shows an example configuration. + Refer to [015584-TDS2](/assets/pdf/clearpath_robotics_015584-TDS2.pdf) for full details of the FORT component, including pinout. +5. Connect the cable you just made to the robot's User Power connector, and to your motion-stop loop control wiring. +6. Connect a USB-mini 2.0 cable between your ROS computer and the FORT Robotics component. + This cable is not included in the PACS™ kit. diff --git a/docs/computers/_category_.json b/docs/robots/accessories/computers/_category_.json similarity index 100% rename from docs/computers/_category_.json rename to docs/robots/accessories/computers/_category_.json diff --git a/docs/computers/computers.mdx b/docs/robots/accessories/computers/computers.mdx similarity index 96% rename from docs/computers/computers.mdx rename to docs/robots/accessories/computers/computers.mdx index 0cd11fdfb..829aacaca 100644 --- a/docs/computers/computers.mdx +++ b/docs/robots/accessories/computers/computers.mdx @@ -16,7 +16,7 @@ sidebar_position: 1
-Clearpath's robots use ROS or ROS2, which require the robot to have a computer running an Operating System like Ubuntu. +Clearpath's robots use ROS or ROS 2, which require the robot to have a computer running an Operating System like Ubuntu. We mostly use Mini-ITX computers with Intel Core i3 and i7 processors, but we can run ROS on the major architectures including: - Intel Core i series diff --git a/docs/computers/jetson/_category_.json b/docs/robots/accessories/computers/jetson/_category_.json similarity index 100% rename from docs/computers/jetson/_category_.json rename to docs/robots/accessories/computers/jetson/_category_.json diff --git a/docs/computers/jetson/jetson_hardware/_category_.json b/docs/robots/accessories/computers/jetson/jetson_hardware/_category_.json similarity index 100% rename from docs/computers/jetson/jetson_hardware/_category_.json rename to docs/robots/accessories/computers/jetson/jetson_hardware/_category_.json diff --git a/docs/computers/jetson/jetson_hardware/jetson_hardware.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_hardware.mdx similarity index 79% rename from docs/computers/jetson/jetson_hardware/jetson_hardware.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_hardware.mdx index 1399aa6b0..70c0ae972 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_hardware.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_hardware.mdx @@ -10,4 +10,4 @@ Jetson Xavier AGX, Nano, and TX2 can be installed on a variety of platforms. Refer to the child pages for the details of the hardware installation. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../jetson_software). diff --git a/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/_category_.json b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/_category_.json similarity index 100% rename from docs/computers/jetson/jetson_hardware/jetson_nano_hardware/_category_.json rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/_category_.json diff --git a/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx similarity index 95% rename from docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx index 0081a8353..7059a0297 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx @@ -10,7 +10,7 @@ sidebar_position: 3 This page outlines the steps for installing the Nano hardware in Dingo. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: diff --git a/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx similarity index 96% rename from docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx index 51f28dfdd..71e0d1c0e 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx @@ -12,7 +12,7 @@ import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx" This page outlines the steps for installing the Nano hardware in Husky. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: diff --git a/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx similarity index 92% rename from docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx index 63a902069..c5c9219a9 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx @@ -12,7 +12,7 @@ import ComponentJackalComputerRemoval from "/components/jackal_remove_miniitx.md This page outlines the steps for installing the Nano hardware in Jackal. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: @@ -76,7 +76,7 @@ Custom mounting brackets are available on 5. Make a power cable that connects to the 12 V user power (Molex connector) to a barrel connector with center positive. Refer - to the [Jackal User Manual](/docs/robots/outdoor_robots/jackal/user_manual_jackal) for the + to the [Jackal User Manual](../../../../../outdoor_robots/jackal/user_manual_jackal) for the pinout of the user power. :::warning diff --git a/docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/_category_.json b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/_category_.json similarity index 100% rename from docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/_category_.json rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/_category_.json diff --git a/docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx similarity index 95% rename from docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx index 002c8505b..8401141a0 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx @@ -12,7 +12,7 @@ import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx" This page outlines the steps for installing the TX2 hardware in Husky. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: diff --git a/docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx similarity index 92% rename from docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx index 991b21ae5..669310772 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx @@ -12,7 +12,7 @@ import ComponentJackalComputerRemoval from "/components/jackal_remove_miniitx.md This page outlines the steps for installing the TX2 hardware in Jackal. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: @@ -58,7 +58,7 @@ Skip this step if you don't have an existing computer. 5. Make a power cable that connects to the 12 V user power (Molex connector) to a barrel connector with center positive. Refer - to the [Jackal User Manual](/docs/robots/outdoor_robots/jackal/user_manual_jackal) for the + to the [Jackal User Manual](../../../../../outdoor_robots/jackal/user_manual_jackal) for the pinout of the user power. :::warning diff --git a/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/_category_.json b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/_category_.json similarity index 100% rename from docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/_category_.json rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/_category_.json diff --git a/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx similarity index 95% rename from docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx index 224885df0..a381e3650 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx @@ -10,7 +10,7 @@ sidebar_position: 3 This page outlines the steps for installing the Xavier AGX hardware in Dingo. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: diff --git a/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx similarity index 96% rename from docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx index 48b1b1acf..1de0cb3f5 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx @@ -12,7 +12,7 @@ import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx" This page outlines the steps for installing the Xavier AGX hardware in Husky. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: diff --git a/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx similarity index 92% rename from docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx rename to docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx index 682e51cd6..517e1e41a 100644 --- a/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx +++ b/docs/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx @@ -12,7 +12,7 @@ import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx" This page outlines the steps for installing the Xavier AGX hardware in Husky. See also the instructions for -[installing the Jetson software](/docs/computers/jetson/jetson_software). +[installing the Jetson software](../../jetson_software). ::: @@ -66,7 +66,7 @@ Custom mounting brackets are available on 5. Make a power cable that connects to the 12V user power (Molex connector) to a barrel connector with center positive. Refer - to the [Jackal User Manual](/docs/robots/outdoor_robots/jackal/user_manual_jackal) for the + to the [Jackal User Manual](../../../../../outdoor_robots/jackal/user_manual_jackal) for the pinout of the user power. :::warning diff --git a/docs/robots/accessories/computers/jetson/jetson_software.mdx b/docs/robots/accessories/computers/jetson/jetson_software.mdx new file mode 100644 index 000000000..9f32f81c5 --- /dev/null +++ b/docs/robots/accessories/computers/jetson/jetson_software.mdx @@ -0,0 +1,387 @@ +--- +title: Jetson Software +sidebar_label: Jetson Software +sidebar_position: 3 +--- + +## Software Installation + +:::note + +This page outlines the steps for installing the Jetson software for a Husky, Jackal, or Dingo. See also +the instructions for installing the Jetson hardware. + +- Xavier AGX + - [Husky](./jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky) + - [Jackal](./jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal) + - [Dingo](./jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo) +- Nano + - [Husky](./jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky) + - [Jackal](./jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal) + - [Dingo](./jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo) +- TX2 + - [Husky](./jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky) + - [Jackal](./jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal) + +::: + +### Step 1: Put Jetson in Recovery Mode (TX2 and Xavier AGX only) + +:::caution +This step is not required for Jetson Nano +::: + +Put the Jetson into recovery mode by following these steps: + +1. Connect the Jetson to the computer onto which SDK Manager will be installed (see next step) using the provided microUSB cable. +2. Make sure the Jetson is powered off. +3. Connect a monitor, mouse, and keyboard to the Jetson. (The mouse is optional, but recommended. + If you do not have an all-in-one mouse+keyboard you will need to use a small USB hub, as the + Jetson only has a single USB port.) +4. Press and hold the REC button. +5. Press the power button. + +### Step 2A: Download and Install Nvidia's SDK Manager (TX2 and Xavier AGX only) + +:::caution +This step is not required for Jetson Nano +::: + +1. Download the appropriate version of [Nvidia's SDK Manager](https://developer.nvidia.com/nvidia-sdk-manager) + onto the computer connected to the Jetson. + + :::note + + SDK Manager is used for installing software on the Jetson from the host computer. + If using Jetson TX2, only JetPack 4.x is supported and the host computer will need to have Ubuntu 16.04 or + Ubuntu 18.04 installed. If using Jetson Xavier Nano/AGX, JetPack 5.x is supported and the host computer will need + to have Ubuntu 18.04 or Ubuntu 20.04 installed. + + ::: + +2. Install the SDK Manager by running the following commands: + + ``` + cd + sudo dpkg -i sdkmanager__amd64.deb + ``` + + :::note + If your system is missing dependencies you may see error messages in the output of the `dpkg` command. + To resolve these, run `sudo apt-get -f install`. + ::: + +3. Login the the SDK Manager using your Nvidia developer credentials. + +
+
+ +
Nvidia developer login
+
+
+ +4. Specify the Hardware Configuration. You do not need to setup your Host Machine unless you are planning on + doing Cuda work on your local computer. This can usually be disabled. Under the Target Hardware, make sure + to choose TX2 or Xavier AGX to match your hardware. Once complete, click "Continue to Step 02". + +
+
+ +
Selecting Target Hardware (TX2 shown)
+
+
+ +5. Accept the terms. Make sure the Download and Target directories are in locations that you have write-access + to and that your hard drive has enough space for the files. Click "Continue to Step 03". + +
+
+ +
Selecting Target Hardware
+
+
+ +6. Enter your sudo password and wait for the SDK manager will download the necessary files and install the image + on the Jetson. + +
+
+ +
Entering sudo password
+
+
+ +
+
+ +
Download in progress
+
+
+ +### Step 2B: Install Image on SD Card (Nano only) + +:::caution +This step is not required for Jetson Xavier AGX or TX2 +::: + +1. Download the latest version of the + [Nano SD Image](https://developer.nvidia.com/jetson-nano-sd-card-image). + +2. Download the latest version of [Balena Etcher](https://www.balena.io/etcher/). + +
+
+ +
Download in progress
+
+
+ +3. Use Etcher to flash the image onto your SD card. + +4. Install the SD card into the Nano and power up the Nano. + +### Step 3: Configure the Installation + +1. Make sure to plug a keyboard and monitor into the Jetson. On first boot, + it will go through the usual Ubuntu setup steps. Accept the Licenses. + +
+
+ +
Accepting licenses
+
+
+ +2. Choose your language. + +
+
+ +
Choosing your language
+
+
+ +3. Choose your keyboard layout. + +
+
+ +
Choosing your keyboard layout
+
+
+ +4. Set your location. + +
+
+ +
Setting your location
+
+
+ +5. Specify a hostname, username, and password for the machine. + + :::note + For compatibility with older versions of the Jetson software, set the username and + password to `nvidia`. To standardize with other Clearpath Robotics products, set the + username to `administrator` and the password to `clearpath`. + ::: + +
+
+ +
Specifying your hostname, username, and password
+
+
+ +6. (**Nano only**): If prompted for a partition size, use the default size, which should fill the + whole SD card. Make sure it matches the maximum possible size, unless you have other plans + for that space. + +
+
+ +
Specifying partition size (Nano only)
+
+
+ +7. Wait for the installation to install the remaining standard packages. + +
+
+ +
Waiting for remaining packages
+
+
+ +8. Once the OS is setup, you will be brought to the desktop. + +
+
+ +
Post-install desktop
+
+
+ +9. Open a terminal and run `ifconfig` or `ip a` to see the IP address it is using. You will + need to connect it to network through wireless or ethernet. + +
+
+ +
Finding the IP address
+
+
+ +### Step 4: Install Extra SDK Components (TX2 and Xavier AGX only) + +:::caution +This step is not required for Jetson Nano +::: + +1. Back in your host computer, it will be waiting to install the extra SDK components on your Jetson. + Enter the username, password, and IP address you found above. + +
+
+ +
Installing SDK components
+
+
+ +2. The install will connenct to the remote Jetson over the network. It will continue the install + by transferring the files and install them. + +
+
+ +
Waiting for SDK component installation
+
+
+ +3. You can check the terminal window to see the progress of individual commands. This process will + take a while, so it can be nice to verify that the process isn't stalled. + +
+
+ +
Installation terminal view
+
+
+ +4. Once the process is done, you can click FINISH to close the window. + +
+
+ +
Installation complete
+
+
+ +### Step 5: Configure for Use with your Clearpath Robot + +1. Once the OS has been written to the Jetson, log into it and run the following commands to configure + it for use with your Clearpath robot: + + ``` + wget -c https://raw.githubusercontent.com/clearpathrobotics/ros_computer_setup/main/install.sh && bash install.sh + ``` + + :::note + If `curl` is not installed on your Jetson by default you can install it by running `sudo apt-get install curl`. + ::: + +
+
+ +
ROS Computer Setup
+
+
+ + These commands will download and install ROS along with the necessary `apt` packages to get your robot up and running. + Depending on your network speed it may take a long time for everything to install. Reboot the Jetson after these commands + are done to complete the configuration. + +2. When the Jetson starts up again, it should be connected to the robot. To see that the robot is connected by opening a + terminal and executing `rostopic echo /status`. You should see a 1 Hz message containing the robot's diagnostic + information. + + Your Jetson should now be configured to operate as the robot's main computer. + +### Step 6: Pair a PS4 Controller with your Clearpath Robot (Optional) + +:::note +This step is optional. +::: + +See instructions [here](../../../../ros/installation/controller#ps4-controller) for how to pair the PS4 controller. + +### Step 7: Use Remote Computer with Jetson (Optional) + +:::note +This step is optional. +::: + +To use your Remote Computer (eg. laptop) with the Jetson, note the IP address of the Jetson, install the robot-specific +desktop packages on the Remote Computer, at set up your Remote Computer to use the Jetson as the ROS master. +Refer to the "Installing Remote Computer Software" section of your robot User Manual for details. diff --git a/docs/robots/accessories/computers/mini_itx.mdx b/docs/robots/accessories/computers/mini_itx.mdx new file mode 100644 index 000000000..cf48fa4da --- /dev/null +++ b/docs/robots/accessories/computers/mini_itx.mdx @@ -0,0 +1,83 @@ +--- +title: Mini ITX +sidebar_label: Mini ITX +sidebar_position: 2 +--- + +Mini ITX computers are the default computer option for many Clearpath robots. + +:::note + +To install and configure software on your Mini ITX computer, see +[Robot Installation](../../../ros/installation/robot). + +::: + +:::note + +If you want Clearpath Robotics to integrate sensors on your robot, contact our Sales team +at sales@clearpathrobotics.com, whether you want to use a new Clearpath Robotics platform, +or reuse your existing vehicle. + +::: + +:::note + +Contact our Support team at support@clearpathrobotics.com if you have any questions. + +::: + +## Troubleshooting + +#### Computer will not turn on automatically + +We configure the BIOS on our robots computers to boot automatically when they receive power. +This is typically used for servers and similar industrial computers were they need to automatically restart after a blackout. + +To update the BIOS: + +1. Connect a monitor and keyboard to the robot's computer. +2. Turn the computer on, and immediately start pressing the _delete_ key on the robot's keyboard. + You should be pressing it at least 4 times per second. + + :::note + + _delete_ is the most common key to enter BIOS, but your computer's motherboard may require a different key to be pressed. + The startup screen has a note stating what key needs to be pressed, but it passes by quickly, and starts loading the Operating System. + You can take a video of the monitor to review the information slowly. + + ::: + +3. The monitor should show the BIOS landing page. + There is a setting that will start the computer automatically. + Unfortunately, this setting seems to change names with every motherboard. + It is often in the Power or CPU areas of the BIOS settings. +4. Save and Reboot after your change the setting to have the computer start with automatic power on. + +#### Computer keeps reverting to old BIOS settings + +This is often due to a low voltage CMOS battery. +This is a battery on the computer's motherboard that powers firmware devices, like the computer's clock when the OS is not running. +The location will change depending on the motherboard, but the battery will look like a silver coin. + +To replace it: + +1. Shut off the robot. +2. Use a static grounding strap, so you do not damage the computer. +3. Use hand tools to disassemble your robot, to get access to the computer. +4. Open the computer, so you can see the motherboard. +5. Remove the CMOS battery from the motherboard. + It is usually held in a spring clip that also makes the electrical connection to the motherboard. + Some motherboards use a CMOS battery with a pigtail lead, but this is uncommon. +6. Purchase and install a replacement battery that matches the manufacturer information on the old battery. + You may find the battery on sites like [Amazon](https://www.amazon.com/), [Digi-Key](https://www.digikey.com/), and [Octopart](https://octopart.com/). + Contact our Support team if you cannot find a replacement. +7. Turn on the computer, and reenter your BIOS settings. + + diff --git a/docs/manipulators/_category_.json b/docs/robots/accessories/manipulators/_category_.json similarity index 100% rename from docs/manipulators/_category_.json rename to docs/robots/accessories/manipulators/_category_.json diff --git a/docs/robots/accessories/manipulators/flir_ptu_e46.mdx b/docs/robots/accessories/manipulators/flir_ptu_e46.mdx new file mode 100644 index 000000000..aed57c19a --- /dev/null +++ b/docs/robots/accessories/manipulators/flir_ptu_e46.mdx @@ -0,0 +1,62 @@ +--- +title: FLIR PTU E46 +sidebar_position: 2 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :---------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| PTU E46 | [018807](/assets/pdf/clearpath_robotics_018807-TDS1.pdf) | 028873 | 028872 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :----------------- | +| Mass, PTU | 1.4 kg | +| Mass, Payload Maximum | 2.72 kg | +| Voltage, Minimum | 12 V | +| Voltage, Maximum | 30 V | +| Voltage, Sensor | 24 V | +| Power, Average | 6 W | +| Data | Ethernet or RS-232 | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 5 | +| Operating Temperature, Min | -20 °C | +| Operating Temperature, Max | 60 °C | + +--- + +## Software Bringup + +This sensor is not included in the Clearpath Robotics robot package. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com) +2. [Datasheet](/assets/pdf/clearpath_robotics_018807-TDS1.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_018807-TDS2.pdf) +4. [FLIR PTU E46 Website](https://www.flir.com/products/ptu-e46/?vertical=mcs&segment=oem) +5. [ROS webpage](https://github.com/ros-drivers/flir_ptu) diff --git a/docs/robots/accessories/manipulators/kinova_gen3_lite.mdx b/docs/robots/accessories/manipulators/kinova_gen3_lite.mdx new file mode 100644 index 000000000..da3cd0764 --- /dev/null +++ b/docs/robots/accessories/manipulators/kinova_gen3_lite.mdx @@ -0,0 +1,336 @@ +--- +title: Kinova Gen3 Lite +sidebar_position: 3 +--- + +import Support from "/components/support.mdx"; +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | +| :-------------------------------- | :------------------------------------------------------: | +| Kinova Gen3 lite Bundle | [022586](/assets/pdf/clearpath_robotics_015822-TDS1.pdf) | +| Kinova Gen3 lite, PACS™ kit | 027219 | + +--- + +## Specifications + +### Overview + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass | 5.4 kg | +| Voltage, Minimum | 21 V | +| Voltage, Maximum | 30 V | +| Voltage, Sensor | 24 V | +| Power, Average | 20 W | +| Power, Peak | 100 W | +| Data | Ethernet, 100 Mbit/s | +| Reach | 760 mm | +| Payload | 0.5 kg | +| Speed | 250 mm/s | +| Range | ±155° | +| Ingress Protection, Solids | 2 | +| Ingress Protection, Liquids | 2 | +| Operating Temperature, Min | 0°C | +| Operating Temperature, Max | 40°C | + +### IP addresses + +| Description | IP address | +| :----------------------------------- | :----------- | +| Default from Manufacturer, USB - USB | 192.168.1.10 | + +--- + +## Hardware Build + +### Parts List + +The PACS™ kit for this sensor includes: + +| ID | Description | CPR Item | Quantity | +| :-: | :-------------------------------------------------- | :------------------------------------------------------: | :------: | +| 1 | Plate—80 X 80, Attachment Interface | [026914](/assets/pdf/clearpath_robotics_026914.pdf) | 1 | +| 2 | Manipulator Bundle | [022586](/assets/pdf/clearpath_robotics_022586-TDS1.pdf) | 1 | +| 3 | Screw, Cap, Round Head—M6×1 X 8, Stainless Steel | 023326 | 4 | +| 4 | Spacer, Round—Ø5.3 X Ø8 X 7, Aluminum Alloy | 026612 | 4 | +| 5 | Screw, Cap, Round Head—M5×0.8 X 16, Stainless Steel | 023257 | 4 | + +### Instructions + +1. Remove the Kinova arm from it's packaging. +2. There is a _Quick Connect Mounting Knob_ on the bottom of the arm. + You will need to remove this to mount the arm to the PACS™ bracket. + Hold the _Mounting Knob's_ square body using an adjustable wrench. + Then use a hex key to turn the _Mounting Knob's_ screw counerclockwise. + Then remove the _Mounting Knob_ from the arm. +3. Refer to the attachment-plate's (ID 1) drawing [026914](/assets/pdf/clearpath_robotics_026914.pdf). + The notes indicate which holes are for the Kinova arm. + You will need to enlarge the four holes to Ø6.3 mm with a drill. +4. Mount the arm (ID 2) to the attachment-plate (ID 1) using four M6×1 screws (ID 3). +5. Mount this assembly onto your robot, using the included spacers (ID 4) and screws (ID 5). + +--- + +## Software Bringup + +### Installing packages + + + +

1. Download packages:

+ cd ~/catkin_ws/src +
+ git clone --single-branch --branch noetic-devel https://github.com/Kinovarobotics/ros_kortex.git +
+ git clone --single-branch --branch noetic-devel https://github.com/husky/husky_manipulation.git +
+ rosdep install --from-paths . --ignore-src -r -y +
+
+

Rosdep may give warnings about unsatisfied dependencies. This is okay if you are only trying to install a single Kinova Gen3 lite on the robot.

+
+

2. Install dependencies per Kinova's github instructions:

+ sudo apt install python3 python3-pip +
+ sudo python3 -m pip install conan +
+
+

3. Build the workspace

+ cd ~/catkin_ws/ +
+ catkin_make +
+ source devel/setup.bash +
+
+ +

1. Download packages:

+ cd ~/catkin_ws/src +
+ git clone --single-branch --branch noetic-devel https://github.com/Kinovarobotics/ros_kortex.git +
+ git clone https://github.com/dingo-cpr/dingo_manipulation.git --recursive +
+ rosdep install --from-paths . --ignore-src -r -y +
+
+

Rosdep may give warnings about unsatisfied dependencies. This is okay if you are only trying to install a single Kinova Gen3 lite on the robot.

+
+

2. Install dependencies per Kinova's github instructions:

+ sudo apt install python3 python3-pip +
+ sudo python3 -m pip install conan +
+
+

3. Build the workspace

+ cd ~/catkin_ws/ +
+ catkin_make +
+ source devel/setup.bash +
+
+
+ +### Networking, with netplan + +The _Kinova Gen3 lite_ does not let you change its static IP address. +Its address is always _192.168.1.10._ when you connect using a USB - USB cable. + +You will need to extend the network bridge to the _192.168.1.x_ subnet to interface with the _Kinova Gen3 lite_ arm. + +Open the netplan configuration file with `/etc/netplan/50-clearpath-bridge.yaml`. +You will be adding a bridge*usb section to the file, and an additional \_192.168.1.1/24* address to the network bridge. +Your file should look like this: + +``` + +network: + version: 2 + renderer: networkd + ethernets: + bridge_en: + dhcp4: no + dhcp6: no + match: + name: en* + bridge_eth: + dhcp4: no + dhcp6: no + match: + name: eth* + bridge_usb: + dhcp4: no + dhcp6: no + match: + name: usb* + bridges: + br0: + dhcp4: yes + dhcp6: no + interfaces: [bridge_en, bridge_eth, bridge_usb] + addresses: + - 192.168.131.1/24 + - 192.168.1.1/24 +``` + +Close and save the file be pressing `ctrl + x`, then typing `y`, and pressing `Enter`. + +Now apply your new netplan changes by running `sudo netplan apply`. + +You can test the netplan settings by pinging the robot's computer, and pinging the Kinova arm: + +``` +ping 192.168.131.1 +ping 192.168.1.10 +``` + +:::tip + +If you cannot ping the computer or arm, try rebooting and replugging the Kinoca Gen3 lite arm before reviewing your installation steps. + +::: + +### Launching the ROS Driver {#kinova_gen3_lite_launch} + + + + roslaunch husky_kinova_bringup husky_gen3_lite_bringup.launch +
+ roslaunch husky_gen3_lite_moveit_config husky_gen3_lite_moveit_planning_execution.launch +
+
+ + roslaunch dingo_kinova_bringup dingo_gen3_lite_bringup.launch +
+ roslaunch dingo_gen3_lite_moveit_config dingo _gen3_lite_moveit_planning_execution.launch +
+
+
+ +### URDF + + + +

+ Refer to Clearpath's GitHub repository for Husky Manipulation, https://github.com/husky/husky_manipulation. +

+
+ +

+ Refer to Clearpath's GitHub repository for Dingo Manipulation, https://github.com/dingo-cpr/dingo_manipulation. +

+
+
+ +### MoveIt! + +MoveIt! should be used on the robot whenever possible. +MoveIt! tracks arm movements with regards to the robot's _base_link_. +MoveIt! will prevent the arm from colliding with the robot's base, assuming you have a detailed URDF that includes all the surfaces of the robot. + + + +

+ Refer to Clearpath's GitHub repository for Husky Manipulation, https://github.com/husky/husky_manipulation. +

+
+ +

+ Refer to Clearpath's GitHub repository for Dingo Manipulation, https://github.com/dingo-cpr/dingo_manipulation. +

+
+
+ +--- + +## Troubleshooting + +#### Arm is not turning on + +1. Turn off the robot. +2. Remove the Kinova's circular power connector. +3. Turn the robot back on. +4. Use a multimeter to check that the voltage is 24 V between: + - Position 2 and Position 3 + - Position 5 and Position 8 +5. If you are not reading 24 V, then: + - An upstream connector may not be fully seated. + - A fuse may be blown. + - A power supply may have failed. + +#### ROS driver won't start + +1. Restart the robot, or run the command `sudo systemctl restart ros`. +2. Make sure your _catkin_ws_ is sourced. + + :::note + + You can source your _catkin_ws_ in every terminal shell by adding a line to the file `~/.bashrc`. + + ::: + +3. Run the commands mentioned in the [Launch section](#kinova_gen3_lite_launch) of this page. + +#### Cannot see the Kinova in RViz + +1. Make sure the Kinova node is running. + You can check this with RQT, `rosnode list`, or reviewing the rostopics. +2. Start RViz. +3. Add in the robot's models. +4. Add the arm's rostopics. + +### If the Issue Persists + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/manipulators/products/gen3-lite) +2. [Datasheet](/assets/pdf/clearpath_robotics_022586-TDS1.pdf) +3. [Installation Guide](/assets/pdf/clearpath_robotics_022586-TDS3.pdf) +4. [User Manual](/assets/pdf/clearpath_robotics_022586-TDS2.pdf) +5. [Kinova Website](https://www.kinovarobotics.com/product/gen3-lite-robots) +6. [ROS webpage](https://github.com/Kinovarobotics/ros_kortex) diff --git a/docs/manipulators/manipulators.mdx b/docs/robots/accessories/manipulators/manipulators.mdx similarity index 100% rename from docs/manipulators/manipulators.mdx rename to docs/robots/accessories/manipulators/manipulators.mdx diff --git a/docs/robots/accessories/pacs.mdx b/docs/robots/accessories/pacs.mdx new file mode 100644 index 000000000..2f1c8caa6 --- /dev/null +++ b/docs/robots/accessories/pacs.mdx @@ -0,0 +1,159 @@ +--- +title: PACS™ +sidebar_label: PACS™ +sidebar_position: 5 +--- + +import Admonition from "@theme/Admonition"; + +
+
+ +
+ A Dingo-O with many M5×0.8 threaded holes on its full-riser.
These holes are aligned with M5×0.8 mounting holes on the lower plate. +
+
+
+ +## Overview + +The Platform Attachment Configuration System (PACS™) is a Clearpath Robotics standard for adding components to a robot. +Our robots have mounting plates with a 80 mm X 80 mm grid of M5×0.8 threaded holes. +This allows us to add sensors and attachments using adapter plates. +The _Parts Lists_ in our [Sensors pages](./sensors) include these 80 mm X 80 mm brackets. +Some example brackets are also detailed in the [Common PACS™ Items section](#pacs_common_pacs_items_for_all_robots) below. + +
+
+ +
A Husky configured with many sensors and accessories using PACS™ brackets.
+
+
+ +
+
+ +
+ A Husky top plate, with PACS™ hardpoint A01 in the front-left of the robot, and G08 in the back-right +
+
+
+ +The number of rows and columns is dependent on the robot platform. +Refer to the integration pages for our robots for more details: + +- [Dingo](../indoor_robots/dingo/integration_dingo) +- [Husky](../outdoor_robots/husky/integration_husky) +- [Jackal](../outdoor_robots/jackal/integration_jackal) +- [Warthog](../outdoor_robots/warthog/integration_warthog) + +## Common PACS™ Items, For All Robots {#pacs_common_pacs_items_for_all_robots} + +| Description | CPR Item | +| :------------------------------------------------------------- | :-----------------------------------------------------: | +| Plate—80 X 80, Attachment Interface (Blank) | [027627](/assets/pdf/clearpath_robotics_027627.pdf) | +| ~~Plate—80 X 80, Attachment Interface~~ | ~~[026914](/assets/pdf/clearpath_robotics_026914.pdf)~~ | +| Plate—80 X 80, Attachment Interface | [027303](/assets/pdf/clearpath_robotics_027303.pdf) | +| Plate—80 X 80, Attachment Interface | [028859](/assets/pdf/clearpath_robotics_028859.pdf) | +| Plate—80 X 80, Attachment Interface | [028877](/assets/pdf/clearpath_robotics_028877.pdf) | +| Plate—80 X 80, Attachment Interface, Vertical | [026964](/assets/pdf/clearpath_robotics_026964.pdf) | +| Plate—80 X 80, Attachment Interface, Large | [027110](/assets/pdf/clearpath_robotics_027110.pdf) | +| Plate—80 X 80, Attachment Interface, Manipulator (UR3 and UR5) | [027269](/assets/pdf/clearpath_robotics_027269.pdf) | +| Plate—80 X 80, Attachment Interface | [028866](/assets/pdf/clearpath_robotics_028866.pdf) | +| Screw, Round Head, M5×0.8 | [Many](../common/components/fasteners/screw_round_head) | + +## Sensor and Attachment Kits + +| Category | Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | Environment Variables in Clearpath OS? | +| :---------------- | :-------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------: | :----------------------------: | :------------------------------: | :------------------------------------: | +| **Accessories** | [DIN Rail](./add-ons/din_rail) | - | 027882 | 027881 | No | +| **Camera** | [Axis F1035-E](./sensors/cameras/axis_f1035_e) | 020068 | 027105 | 027212 | No | +| | [Axis F34](./sensors/cameras/axis_f1035_e) | 020442 | 027634 | 027633 | No | +| | [Axis M5525-E](./sensors/cameras/axis_m5525_e) | 006758 | 027106 | 027225 | No | +| | [FLIR Blackfly S](./sensors/cameras/flir_blackfly_s) | many | 027118 | 027218 | Yes | +| | [FLIR Ladybug5+](./sensors/cameras/flir_ladybug5p) | 017245 | 028894 | 028893 | No | +| | [Intel RealSense D435](./sensors/cameras/realsense_d435) | 024150 | 026869 | 027208 | Yes | +| | [Occam Omni 60 Colour](./sensors/cameras/occam_omni_60) | 019645 | 027102 | 027211 | No | +| | [Stereolabs ZED 2](./sensors/cameras/stereolabs_zed_2) | 023611 | 028960 | 028959 | No | +| | [Stereolabs ZED 2i](./sensors/cameras/stereolabs_zed_2) | 025844 | 026872 | 027210 | No | +| **Computer** | Mini-ITX Indoor | - | 027668 | 027667 | - | +| **GPS** | [Garmin GPS 18x](./sensors/gps/garmin_gps_18x) | 001893 | 028876 | 028875 | No | +| | [Swift Navigation Duro](./sensors/gps/swift_navigation_duro) | 015822 | 027107 | 027213 | No | +| | [Swift Navigation Duro Inertial](./sensors/gps/swift_navigation_duro) | 018151 | 027108 | 027214 | No | +| **IMU** | [Microstrain 3DM-GX5-10](./sensors/imu/microstrain_3dm_gx5) | 017839 | 028963 | 028962 | Yes | +| | [Microstrain 3DM-GX5-15](./sensors/imu/microstrain_3dm_gx5) | 017772 | 027114 | 027215 | Yes | +| | [Microstrain 3DM-GX5-25](./sensors/imu/microstrain_3dm_gx5) | 014603 | 027117 | 027217 | Yes | +| | [Microstrain 3DM-GX5-35](./sensors/imu/microstrain_3dm_gx5) | 028528 | 028964 | 028957 | Yes | +| | [Microstrain 3DM-GX5-45](./sensors/imu/microstrain_3dm_gx5) | 017391 | 028966 | 028965 | Yes | +| | [Redshift Labs UM7](./sensors/imu/redshift_labs_um7) | 011914 | 028881 | 028880 | No | +| **Lidar 2D** | [Hokuyo UST10-LX](./sensors/lidar_2d/hokuyo_ust10_lx) | 011759 | 027207 | 026611 | Yes | +| | [Hokuyo UST10-LX Vertical](./sensors/lidar_2d/hokuyo_ust10_lx) | 011759 | 026966 | 027224 | Yes | +| | [Hokuyo UST20-LX](./sensors/lidar_2d/hokuyo_ust20_lx) | 016359 | 029013 | 029012 | Yes | +| | [Hokuyo UST30-LX](./sensors/lidar_2d/hokuyo_ust30_lx) | 027584 | 029015 | 029014 | Yes | +| | [SICK LMS111](./sensors/lidar_2d/sick_lms111) | 006387 | 027657 | 027656 | Yes | +| **Lidar 3D** | [Velodyne Puck Lite](./sensors/lidar_3d/velodyne_puck_lite) | 016312
023729 | 029027 | 029026 | Yes | +| | [Velodyne Puck](./sensors/lidar_3d/velodyne_puck) | 011703
020972 | 026859 | 027206 | Yes | +| | [Velodyne Puck Vertical](./sensors/lidar_3d/velodyne_puck) | 011703
020972 | 026965 | 027222 | Yes | +| | [Velodyne Ultra Puck](./sensors/lidar_3d/velodyne_ultra_puck) | 016901
029035 | 029037 | 029036 | Yes | +| | [Ouster, OS0](./sensors/lidar_3d/ouster) | 028738
028740 | 028660
028661
028662 | 028850
028851
028852 | No | +| | [Ouster, OS1](./sensors/lidar_3d/ouster) | 028848
028742
028745 | 028663
028664
028665 | 028853
028854
028855 | No | +| | [Ouster, OS2](./sensors/lidar_3d/ouster) | 028849
028747
028749 | 028666
028667
028668 | 028856
028857
028858 | No | +| **Lights** | [Stack Light, Controls Base](./add-ons/stack_light) | 020710
020711
020715
020716
020717
020718
020719
020720 | 027111 | 027220 | No | +| **Manipulator** | [FLIR PTU E46](./manipulators/flir_ptu_e46) | 018807
027246 | 028873 | 028872 | No | +| | [Kinova Gen 3 Lite](./manipulators/kinova_gen3_lite) | 022586 | 026913 | 027219 | No | +| | Universal Robots UR5e Arm | 027264 | 027272 | 027271 | No | +| | Universal Robots UR5e Controls Cabinet | - | 027291
027293 | 027290
027292 | No | +| **Motion-Stop** | [Kar-Tech](./add-ons/wireless_stop_system) | 014663 | 027298 | 027297 | No | +| | [FORT Robotics Joystick](./add-ons/wireless_stop_system) | 025727 | 027112 | 027216 | No | +| **Network** | [Network Access Point, Microhard px2-ENC](./add-ons/network_access_point) | 015329 | 029104 | - | - | +| | [Network Access Point, Microhard BulletPlusAC](./add-ons/network_access_point) | 027795 | 029105 | - | - | +| | [Network Switch, 5 Port](./add-ons/network_switch) | 021044 | 027639 | 027638 | - | +| | [Network Switch, 8 Port](./add-ons/network_switch) | 025333 | 027641 | 027640 | - | +| | [Network Switch, 16 Port](./add-ons/network_switch) | 029098 | - | - | - | +| | [USB Hub, 7 Port](./add-ons/usb_hub) | 025440 | 027643 | 027642 | - | +| **OutdoorNav HW** | [OutdoorNav Starter Kit](../../robots/accessories/add-ons/outdoornav_starter_kit) | - | 028356 | - | - | +| **Power Supply** | [Power Supply, SB-15](./add-ons/power_supplies) | - | 028902 | 028901 | - | +| | [Power Supply, SB-25](./add-ons/power_supplies) | - | 028904 | 028903 | - | +| | [Power Supply, TEP 150](./add-ons/power_supplies) | - | 028942 | 028941 | - | +| **Relay** | [Relay, USB Controlled, 2 Channel](./add-ons/relay_board) | 019464 | 029099 | - | - | +| | [Relay, USB Controlled, 4 Channel](./add-ons/relay_board) | 019465 | 029100 | - | - | +| | [Relay, USB Controlled, 8 Channel](./add-ons/relay_board) | 019466 | 029101 | - | - | + +
+ + +

Click on a sensor's hyperlink for specifications, environment variables, and downloads.

+
+ + +

+ Ask for it by emailing info@clearpathrobotics.com. +

+
+ + +

+ To get in touch with a salesperson regarding Clearpath Robotics products, please email sales@clearpathrobotics.com. +

+
diff --git a/docs/sensors/_category_.json b/docs/robots/accessories/sensors/_category_.json similarity index 100% rename from docs/sensors/_category_.json rename to docs/robots/accessories/sensors/_category_.json diff --git a/docs/sensors/cameras/_category_.json b/docs/robots/accessories/sensors/cameras/_category_.json similarity index 100% rename from docs/sensors/cameras/_category_.json rename to docs/robots/accessories/sensors/cameras/_category_.json diff --git a/docs/robots/accessories/sensors/cameras/axis_f1035_e.mdx b/docs/robots/accessories/sensors/cameras/axis_f1035_e.mdx new file mode 100644 index 000000000..d06b2c30c --- /dev/null +++ b/docs/robots/accessories/sensors/cameras/axis_f1035_e.mdx @@ -0,0 +1,73 @@ +--- +title: Axis F1035-E +sidebar_position: 1 +--- + +import Support from "/components/support.mdx"; + +
+ + +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :---------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Axis F1035-E sensor | [020068](/assets/pdf/clearpath_robotics_020068-TDS1.pdf) | 027105 | 027212 | +| Axis F34 controller hub | [020442](/assets/pdf/clearpath_robotics_020442-TDS1.pdf) | 027634 | 027633 | + +--- + +## Specifications + +| Description | Value | +| :---------------------------------- | :------------------- | +| Mass, Camera | 96 g | +| Mass, Hub | 238 g | +| Voltage, Minimum | PoE, 8 V | +| Voltage, Maximum | PoE, 28 V | +| Voltage, Sensor | PoE, 24 V | +| Power, Average | 12.6 W | +| Data | Ethernet, 100 Mbit/s | +| View, Horizontal | 194° | +| View, Vertical | 113° | +| Ingress Protection, Solids, Camera | 6 | +| Ingress Protection, Liquids, Camera | 7 | +| Ingress Protection, Solids, Hub | 2 | +| Ingress Protection, Liquids, Hub | 0 | +| Operating Temperature, Min | 0°C | +| Operating Temperature, Max | 40°C | + +--- + +## Software Bringup + +This sensor is not currently included in the Clearpath Robotics robot package but may be in the future. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Datasheet, Camera](/assets/pdf/clearpath_robotics_020068-TDS1.pdf) +2. [Datesheet, Hub](/assets/pdf/clearpath_robotics_020442-TDS1.pdf) +3. [Dimensions, Camera](/assets/pdf/clearpath_robotics_020068-TDS2.pdf) +4. [Dimensions, Hub](/assets/pdf/clearpath_robotics_020442-TDS2.pdf) +5. [User Manual](/assets/pdf/clearpath_robotics_020442-TDS3.pdf) +6. [Axis website](https://www.axis.com/products/axis-f1035-e-sensor-unit) +7. [ROS webpage](http://wiki.ros.org/axis_camera) diff --git a/docs/robots/accessories/sensors/cameras/axis_m5525_e.mdx b/docs/robots/accessories/sensors/cameras/axis_m5525_e.mdx new file mode 100644 index 000000000..2961ab1cc --- /dev/null +++ b/docs/robots/accessories/sensors/cameras/axis_m5525_e.mdx @@ -0,0 +1,65 @@ +--- +title: Axis M5525-E +sidebar_position: 2 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :------------------ | :------------------------------------------------------: | :-------: | :------------------------------: | +| Axis M5525-E sensor | [006758](/assets/pdf/clearpath_robotics_006758-TDS1.pdf) | 027106 | 027225 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass, Camera | 1.1 kg | +| Voltage, Minimum | PoE, 20 V | +| Voltage, Maximum | PoE, 28 V | +| Voltage, Sensor | PoE, 24 V | +| Power, Average | 6.6 W | +| Data | Ethernet, 100 Mbit/s | +| View, Horizontal | 360° | +| View, Vertical | 0° - 90° | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 6 | +| Operating Temperature, Min | -10°C | +| Operating Temperature, Max | 50°C | + +--- + +## Software Bringup + +This sensor is not currently included in the Clearpath Robotics robot package but may be in the future. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Datasheet](/assets/pdf/clearpath_robotics_006758-TDS1.pdf) +2. [Dimensions](/assets/pdf/clearpath_robotics_006758-TDS3.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_006758-TDS2.pdf) +4. [Axis website](https://www.axis.com/products/axis-m5525-e) +5. [ROS webpage](http://wiki.ros.org/axis_camera) +6. [ROS tutorial](http://wiki.ros.org/axis_camera/Tutorials/SettingUpAxisNetworkCamera) +7. [GitHub](https://github.com/ros-drivers/axis_camera) diff --git a/docs/robots/accessories/sensors/cameras/flir_blackfly_s.mdx b/docs/robots/accessories/sensors/cameras/flir_blackfly_s.mdx new file mode 100644 index 000000000..04544a19c --- /dev/null +++ b/docs/robots/accessories/sensors/cameras/flir_blackfly_s.mdx @@ -0,0 +1,58 @@ +--- +title: FLIR Blackfly S +sidebar_position: 3 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :------------------- | :----------: | :-------: | :------------------------------: | +| FLIR Blackfly sensor | Many options | 027118 | 027218 | + +--- + +## Specifications + +| Description | Value | +| :------------------------- | :--------------------------------- | +| Mass, Camera | 53 g | +| Voltage, Minimum | 8 V or USB | +| Voltage, Maximum | 24 V or USB | +| Power, Average | 4.2 W | +| Data | GigE or USB3 | +| Resolution | 0.4 - 24.5 MP (depending on model) | +| Frame Rate | 15 - 552 FPS | +| Operating Temperature, Min | 0°C | +| Operating Temperature, Max | 50°C | + +--- + +## Software Bringup + +This sensor is not currently included in the Clearpath Robotics robot package but may be in the future. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/vision/products/blackfly-s) +2. [FLIR website](https://www.flir.ca/products/blackfly-s-gige/) +3. [ROS webpage](http://wiki.ros.org/spinnaker_sdk_camera_driver) diff --git a/docs/robots/accessories/sensors/cameras/flir_ladybug5p.mdx b/docs/robots/accessories/sensors/cameras/flir_ladybug5p.mdx new file mode 100644 index 000000000..9f56a53ed --- /dev/null +++ b/docs/robots/accessories/sensors/cameras/flir_ladybug5p.mdx @@ -0,0 +1,70 @@ +--- +title: FLIR Ladybug5+ +sidebar_position: 4 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :-------------------- | :------: | :-------: | :------------------------------: | +| FLIR Ladybug5+ sensor | 017245 | 028894 | 028893 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :--------------------------- | +| Mass, Camera | 3000 g | +| Voltage, Minimum | 12 V | +| Voltage, Maximum | 24 V | +| Power, Average | 13 W | +| Data | USB 3.1 | +| Resolution | 30 MP (5 MP X 6 sensors) | +| Frame Rate | 30 FPS @ 8k
60 FPS @ 4k | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 5 | +| Operating Temperature, Min | -20 °C | +| Operating Temperature, Max | 50 °C | + +--- + +## Software Bringup + +This sensor is not included in the Clearpath Robotics robot package. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +:::note + +This camera does not have an official ROS driver. +Clearpath checks that camera's data is being received on the robot's computer by using FLIR's [Software Development Kit](https://www.flir.com/products/ladybug-sdk/) + +::: + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/vision/products/ladybug-5p) +2. [Datasheet](/assets/pdf/clearpath_robotics_017245-TDS1.pdf) +3. [Datasheet](/assets/pdf/clearpath_robotics_017245-TDS2.pdf) +4. [Dimensions](/assets/pdf/clearpath_robotics_017245-TDS4.pdf) +5. [User Manual](/assets/pdf/clearpath_robotics_017245-TDS3.pdf) +6. [FLIR website](https://www.flir.com/products/ladybug5plus/) diff --git a/docs/robots/accessories/sensors/cameras/occam_omni_60.mdx b/docs/robots/accessories/sensors/cameras/occam_omni_60.mdx new file mode 100644 index 000000000..1c23a41a2 --- /dev/null +++ b/docs/robots/accessories/sensors/cameras/occam_omni_60.mdx @@ -0,0 +1,58 @@ +--- +title: Occam Omni 60 +sidebar_position: 5 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :--------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Occam Omni 60 sensor, colour | [019645](/assets/pdf/clearpath_robotics_019645-TDS1.pdf) | 027102 | 027211 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :----------- | +| Mass | 377 g | +| Voltage, Minimum | 4.75 VDC | +| Voltage, Maximum | 5.25 V | +| Voltage, Sensor | USB or 5 VDC | +| Power, Average | 2 W | +| Data | USB 3.0 | +| View, Horizontal | 360° | +| View, Vertical | 58° | +| Ingress Protection, Solids | 3 | +| Ingress Protection, Liquids | 0 | + +## Software Bringup + +This sensor is not included in the Clearpath Robotics robot package. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Dimensions](/assets/pdf/clearpath_robotics_019645-TDS2.pdf) +2. [User Manual](/assets/pdf/clearpath_robotics_019645-TDS3.pdf) +3. [Occam Website](http://occamvisiongroup.com/product/omni-60-omnidirectional-camera/) +4. [ROS webpage](http://wiki.ros.org/occam_vision_group_stereo-camera#ROS_SDK) diff --git a/docs/robots/accessories/sensors/cameras/realsense_d435.mdx b/docs/robots/accessories/sensors/cameras/realsense_d435.mdx new file mode 100644 index 000000000..af9ca3ca1 --- /dev/null +++ b/docs/robots/accessories/sensors/cameras/realsense_d435.mdx @@ -0,0 +1,64 @@ +--- +title: RealSense D435 +sidebar_position: 6 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :-------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Intel RealSense D435 sensor | [024150](/assets/pdf/clearpath_robotics_024150-TDS1.pdf) | 026869 | 027208 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------ | +| Mass | 75 g | +| Voltage, Minimum | 4.75 V | +| Voltage, Maximum | 5.25 V | +| Voltage, Sensor | USB ( 5 VDC ) | +| Power, Maximum | 3.5 W | +| Data | USB 3.0 | +| Range, Minimum | 0.2 m | +| Range, Maximum | 3 m | +| View, Horizontal | 69° at 2 m | +| View, Vertical | 42° at 2 m | +| Ingress Protection, Solids | 3 | +| Ingress Protection, Liquids | 0 | +| Operating Temperature, Min | 0 °C | +| Operating Temperature, Max | 35 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#cameras). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/vision/products/intel-realsense-d435) +2. [Datasheet](/assets/pdf/clearpath_robotics_024150-TDS1.pdf) +3. [Dimensions](/assets/pdf/clearpath_robotics_024150-TDS3.pdf) +4. [User Manual](/assets/pdf/clearpath_robotics_024150-TDS2.pdf) +5. [RealSense Website](https://www.intelrealsense.com/depth-camera-d435/) +6. [ROS webpage](http://wiki.ros.org/RealSense) diff --git a/docs/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx b/docs/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx new file mode 100644 index 000000000..1f2ba8a00 --- /dev/null +++ b/docs/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx @@ -0,0 +1,69 @@ +--- +title: Stereolabs Zed 2 +sidebar_position: 7 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :------------ | :------------------------------------------------------: | :-------: | :------------------------------: | +| ZED 2 sensor | [023611](/assets/pdf/clearpath_robotics_023611-TDS1.pdf) | 028960 | 028959 | +| ZED 2i sensor | [025844](/assets/pdf/clearpath_robotics_025844-TDS1.pdf) | 026872 | 027210 | + +--- + +## Specifications + +| Description | Value, ZED 2 | Value, ZED 2i | +| :-------------------------- | :------------------- | :------------ | +| Mass | 166 g | 166 g | +| Voltage, Minimum | 4.75 V | 4.75 V | +| Voltage, Maximum | 5.25 V | 5.25 V | +| Voltage, Sensor | USB (5 VDC) | USB (5 VDC) | +| Power, Average | 1.9 W | 1.9 W | +| Data | USB 3.0 | USB 3.0 | +| Range, Minimum | 0.3 m | 0.2 m | +| Range, Maximum | 20 m | 20 m | +| View, Horizontal | 110° | 110° | +| View, Vertical | 70° | 70° | +| Ingress Protection, Solids | Unknown ( assume 4 ) | 6 | +| Ingress Protection, Liquids | Unknown ( assume 0 ) | 6 | +| Operating Temperature, Min | -10 °C | -10 °C | +| Operating Temperature, Max | 45 °C | 45 °C | + +--- + +## Software Bringup + +This sensor is not included in the Clearpath Robotics robot package. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Datasheet, ZED 2](/assets/pdf/clearpath_robotics_023611-TDS1.pdf) +2. [Dimensions, ZED 2](/assets/pdf/clearpath_robotics_023611-TDS2.pdf) +3. [Datasheet, ZED 2i](/assets/pdf/clearpath_robotics_025844-TDS1.pdf) +4. [Dimensions, ZED 2i](/assets/pdf/clearpath_robotics_025844-TDS2.pdf) +5. [Stereolabs ZED Website](https://www.stereolabs.com) +6. [ROS webpage](http://wiki.ros.org/zed-ros-wrapper) +7. [ROS turorial](https://www.stereolabs.com/docs/ros/) +8. [GitHub](https://github.com/stereolabs/zed-ros-wrapper) diff --git a/docs/sensors/gps/_category_.json b/docs/robots/accessories/sensors/gps/_category_.json similarity index 100% rename from docs/sensors/gps/_category_.json rename to docs/robots/accessories/sensors/gps/_category_.json diff --git a/docs/robots/accessories/sensors/gps/garmin_gps_18x.mdx b/docs/robots/accessories/sensors/gps/garmin_gps_18x.mdx new file mode 100644 index 000000000..6e4d9a0a6 --- /dev/null +++ b/docs/robots/accessories/sensors/gps/garmin_gps_18x.mdx @@ -0,0 +1,63 @@ +--- +title: Garmin GPS 18x +sidebar_position: 1 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :-------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Garmin GPS 18x sensor, 5 Hz | [001893](/assets/pdf/clearpath_robotics_001893-TDS1.pdf) | 028876 | 028875 | + +--- + +## Specifications + +| Description | Value | +| :--------------------------------------------------------------------------------------------------------- | :------------------------------------------------------ | +| Mass | 165 kg | +| Voltage, Minimum | 4 V | +| Voltage, Maximum | 5.5 V | +| Voltage, Sensor | 5 V | +| Power, Average | 0.5 W | +| Data | TIA-232-F ( RS-232 )
Default setting is 19200 baud | +| View, Vertical | Unknown | +| Position Accuracy | 15 m | +| Position Accuracy RTK (requires a [Base Station](../../add-ons/base_station.mdx) or a positioning-service) | Unknown | +| Ingress Protection, Solids | Unknown ( assume 6 ) | +| Ingress Protection, Liquids | 7 | +| Operating Temperature, Min | -30 °C | +| Operating Temperature, Max | 80 °C | + +--- + +## Software Bringup + +This sensor is not included in the Clearpath Robotics robot package. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/gps) +2. [User Manual](/assets/pdf/clearpath_robotics_001893-TDS1.pdf) +3. [Swift Navigation Website](https://www.garmin.com/en-CA/p/13195) +4. [ROS webpage](https://github.com/ros-drivers/nmea_navsat_driver) diff --git a/docs/robots/accessories/sensors/gps/swift_navigation_duro.mdx b/docs/robots/accessories/sensors/gps/swift_navigation_duro.mdx new file mode 100644 index 000000000..666fd4888 --- /dev/null +++ b/docs/robots/accessories/sensors/gps/swift_navigation_duro.mdx @@ -0,0 +1,63 @@ +--- +title: Swift Navigation Duro +sidebar_position: 2 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :------------------------------------ | :------------------------------------------------------: | :-------: | :------------------------------: | +| Swift Navigation Duro sensor | [015822](/assets/pdf/clearpath_robotics_015822-TDS1.pdf) | 027107 | 027213 | +| Swift Navigation Duro inertial sensor | 018151 | 027108 | 027214 | + +--- + +## Specifications + +| Description | Value | +| :--------------------------------------------------------------------------------------------------------- | :------------------- | +| Mass | 0.8 kg | +| Voltage, Minimum | 10 V | +| Voltage, Maximum | 35 V | +| Voltage, Sensor | 12 V or 24 V | +| Power, Average | 5 W | +| Data | Ethernet, 100 Mbit/s | +| View, Vertical | ±60° from vertical | +| Position Accuracy | 2.5 m | +| Position Accuracy RTK (requires a [Base Station](../../add-ons/base_station.mdx) or a positioning-service) | 0.01 m | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 7 | +| Operating Temperature, Min | -40 °C | +| Operating Temperature, Max | 75 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#gps). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/gps/products/duro) +2. [Datasheet](/assets/pdf/clearpath_robotics_015822-TDS1.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_015822-TDS2.pdf) +4. [Swift Navigation Website](https://www.swiftnav.com/duro) +5. [ROS webpage](http://wiki.ros.org/swiftnav_ros) diff --git a/docs/sensors/imu/_category_.json b/docs/robots/accessories/sensors/imu/_category_.json similarity index 100% rename from docs/sensors/imu/_category_.json rename to docs/robots/accessories/sensors/imu/_category_.json diff --git a/docs/robots/accessories/sensors/imu/microstrain_3dm_gx5.mdx b/docs/robots/accessories/sensors/imu/microstrain_3dm_gx5.mdx new file mode 100644 index 000000000..9f32b62ec --- /dev/null +++ b/docs/robots/accessories/sensors/imu/microstrain_3dm_gx5.mdx @@ -0,0 +1,75 @@ +--- +title: MicroStrain 3DM-GX5 +sidebar_position: 1 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :---------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Microstrain 3DM-GX5-10 sensor | [017839](/assets/pdf/clearpath_robotics_017839-TDS1.pdf) | 028963 | 028962 | +| Microstrain 3DM-GX5-15 sensor | [017772](/assets/pdf/clearpath_robotics_017772-TDS1.pdf) | 027114 | 027215 | +| Microstrain 3DM-GX5-25 sensor | [014603](/assets/pdf/clearpath_robotics_014603-TDS1.pdf) | 027117 | 027217 | +| Microstrain 3DM-GX5-35 sensor | [028528](/assets/pdf/clearpath_robotics_028528-TDS1.pdf) | 028964 | 028957 | +| Microstrain 3DM-GX5-45 sensor | [017391](/assets/pdf/clearpath_robotics_017391-TDS2.pdf) | 028966 | 028965 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :---------------- | +| Mass | 16.5 - 20 g | +| Voltage, Minimum | 4 V, or USB | +| Voltage, Maximum | 36 V, or USB | +| Power, Maximum | 0.3 - 0.8 W | +| Data | USB 2.0 or RS-232 | +| Ingress Protection, Solids | 3 | +| Ingress Protection, Liquids | 0 | +| Operating Temperature, Min | -40 °C | +| Operating Temperature, Max | 85 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#imu). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store, 3DM-GX5-10](https://store.clearpathrobotics.com/collections/orientation/products/3dm-gx5-10) +2. [Clearpath Robotics Store, 3DM-GX5-15](https://store.clearpathrobotics.com/collections/vru/products/3dm-gx5-15) +3. [Clearpath Robotics Store, 3DM-GX5-25](https://store.clearpathrobotics.com/collections/ahrs/products/3dm-gx5-25) +4. [Clearpath Robotics Store, 3DM-GX5-35](https://store.clearpathrobotics.com/collections/ahrs/products/3dm-gx5-35) +5. [Clearpath Robotics Store, 3DM-GX5-45](https://store.clearpathrobotics.com/collections/gnss-ins/products/3dm-gx5-45) +6. [Datasheet, 3DM-GX5-10](/assets/pdf/clearpath_robotics_017839-TDS1.pdf) +7. [Datasheet, 3DM-GX5-15](/assets/pdf/clearpath_robotics_017772-TDS1.pdf) +8. [Datasheet, 3DM-GX5-25](/assets/pdf/clearpath_robotics_014603-TDS1.pdf) +9. [Datasheet, 3DM-GX5-35](/assets/pdf/clearpath_robotics_028528-TDS1.pdf) +10. [Datasheet, 3DM-GX5-45](/assets/pdf/clearpath_robotics_017391-TDS1.pdf) +11. [User Manual, 3DM-GX5-10](/assets/pdf/clearpath_robotics_017839-TDS2.pdf) +12. [User Manual, 3DM-GX5-15](/assets/pdf/clearpath_robotics_017772-TDS2.pdf) +13. [User Manual, 3DM-GX5-25](/assets/pdf/clearpath_robotics_014603-TDS2.pdf) +14. [User Manual, 3DM-GX5-35](/assets/pdf/clearpath_robotics_028528-TDS2.pdf) +15. [User Manual, 3DM-GX5-45](/assets/pdf/clearpath_robotics_017391-TDS2.pdf) +16. [LORD MicroStrain Website](https://www.microstrain.com/inertial-sensors/g-series) +17. [ROS webpage](http://wiki.ros.org/microstrain_inertial_driver) +18. [GitHub](https://github.com/LORD-MicroStrain/microstrain_inertial) diff --git a/docs/robots/accessories/sensors/imu/redshift_labs_um7.mdx b/docs/robots/accessories/sensors/imu/redshift_labs_um7.mdx new file mode 100644 index 000000000..7f66c9e16 --- /dev/null +++ b/docs/robots/accessories/sensors/imu/redshift_labs_um7.mdx @@ -0,0 +1,60 @@ +--- +title: Redshift Labs UM7 +sidebar_position: 2 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :----------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Redshift Labs UM7 sensor | [011914](/assets/pdf/clearpath_robotics_011914-TDS1.pdf) | 028881 | 028880 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :-------------------------------------------------- | +| Mass | 11 g | +| Voltage, Minimum | 4 V | +| Voltage, Maximum | 5.5 V | +| Voltage, Sensor | 5 V | +| Power, Average | 0.25 W | +| Data | UART ( RS-232 )
Default setting is 115200 baud | +| Ingress Protection, Solids | Unknown ( assume 4 ) | +| Ingress Protection, Liquids | Unknown ( assume 0 ) | +| Operating Temperature, Min | -40 °C | +| Operating Temperature, Max | 85 °C | + +--- + +## Software Bringup + +This sensor is not currently included in the Clearpath Robotics robot package but may be in the future. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/orientation) +2. [User Manual](/assets/pdf/clearpath_robotics_011914-TDS1.pdf) +3. [Redshift Labs UM7 Website](https://redshiftlabs.com.au/product/um7-orientation-sensor/) +4. [ROS webpage](https://github.com/ros-drivers/um7) diff --git a/docs/sensors/lidar_2d/_category_.json b/docs/robots/accessories/sensors/lidar_2d/_category_.json similarity index 100% rename from docs/sensors/lidar_2d/_category_.json rename to docs/robots/accessories/sensors/lidar_2d/_category_.json diff --git a/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust10_lx.mdx b/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust10_lx.mdx new file mode 100644 index 000000000..75b7cc107 --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust10_lx.mdx @@ -0,0 +1,65 @@ +--- +title: Hokuyo UST10-LX +sidebar_position: 1 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :------------------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Hokuyo UST10-LX | [011759](/assets/pdf/clearpath_robotics_011759-TDS1.pdf) | 027207 | 026611 | +| Hokuyo UST10-LX, 90° vertical mounting | [011759](/assets/pdf/clearpath_robotics_011759-TDS1.pdf) | 026966 | 027224 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass | 0.13 kg | +| Voltage, Minimum | 10 V | +| Voltage, Maximum | 30 V | +| Voltage, Sensor | 12 V or 24 V | +| Power, Average | 3.6 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.06 m | +| Range, Maximum | 10 m | +| Range, Accuracy | ± 40 mm | +| View, Horizontal | 270 ° | +| Resolution, Horizontal | 0.25 ° | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 5 | +| Operating Temperature, Min | -10 °C | +| Operating Temperature, Max | 50 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#lidar-2d). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/2dlidar/products/hokuyo-ust-10lx) +2. [Datasheet](/assets/pdf/clearpath_robotics_011759-TDS1.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_011759-TDS2.pdf) +4. [Hokuyo Website](https://www.hokuyo-aut.jp/search/single.php?serial=167#download) +5. [ROS webpage](http://wiki.ros.org/urg_node) diff --git a/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust20_lx.mdx b/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust20_lx.mdx new file mode 100644 index 000000000..00915b60d --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust20_lx.mdx @@ -0,0 +1,66 @@ +--- +title: Hokuyo UST20-LX +sidebar_position: 2 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :--------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Hokuyo UST20-LX sensor | [016359](/assets/pdf/clearpath_robotics_016359-TDS1.pdf) | 029013 | 029012 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass | 0.13 kg | +| Voltage, Minimum | 10 V | +| Voltage, Maximum | 30 V | +| Voltage, Sensor | 12 V or 24 V | +| Power, Average | 3.6 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.06 m | +| Range, Maximum | 20 m | +| Range, Accuracy | ± 40 mm | +| View, Horizontal | 270 ° | +| Resolution, Horizontal | 0.25 ° | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 5 | +| Operating Temperature, Min | -10 °C | +| Operating Temperature, Max | 50 °C | + +--- + +## Software Bringup + +This sensor is not currently included in the Clearpath Robotics robot package but may be in the future. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/2dlidar/products/hokuyo-ust-20lx) +2. [Datasheet](/assets/pdf/clearpath_robotics_016359-TDS1.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_016359-TDS2.pdf) +4. [Hokuyo Website](https://www.hokuyo-aut.jp/search/single.php?serial=167#download) +5. [ROS webpage](http://wiki.ros.org/urg_node) diff --git a/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust30_lx.mdx b/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust30_lx.mdx new file mode 100644 index 000000000..131dffdeb --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_2d/hokuyo_ust30_lx.mdx @@ -0,0 +1,64 @@ +--- +title: Hokuyo UST30-LX +sidebar_position: 3 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :--------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Hokuyo UST30-LX sensor | [027584](/assets/pdf/clearpath_robotics_027584-TDS1.pdf) | 029015 | 029014 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass | 0.13 kg | +| Voltage, Minimum | 10 V | +| Voltage, Maximum | 30 V | +| Voltage, Sensor | 12 V or 24 V | +| Power, Average | 3.6 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.06 m | +| Range, Maximum | 30 m | +| Range, Accuracy | ± 40 mm | +| View, Horizontal | 270 ° | +| Resolution, Horizontal | 0.25 ° | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 7 | +| Operating Temperature, Min | -30 °C | +| Operating Temperature, Max | 50 °C | + +## Software Bringup + +This sensor is not currently included in the Clearpath Robotics robot package but may be in the future. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/2dlidar) +2. [Datasheet](/assets/pdf/clearpath_robotics_027584-TDS1.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_027584-TDS2.pdf) +4. [Hokuyo Website](https://www.hokuyo-aut.jp/search/single.php?serial=233#download) +5. [ROS webpage](http://wiki.ros.org/urg_node) diff --git a/docs/robots/accessories/sensors/lidar_2d/sick_lms111.mdx b/docs/robots/accessories/sensors/lidar_2d/sick_lms111.mdx new file mode 100644 index 000000000..0ea510dc6 --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_2d/sick_lms111.mdx @@ -0,0 +1,62 @@ +--- +title: SICK LMS-111 +sidebar_position: 4 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :----------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| SICK LMS111-10100 sensor | [006387](/assets/pdf/clearpath_robotics_006387-TDS1.pdf) | 027657 | 027656 | + +--- + +## Specifications + +| Description | Value | +| :------------------------- | :------------------- | +| Mass | 1.1 kg | +| Voltage, Minimum | 10.8 V | +| Voltage, Maximum | 30 V | +| Voltage, Sensor | 24 V | +| Power, Average | 8 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.5 m | +| Range, Maximum | 20 m | +| Range, Accuracy | ±3 cm | +| View, Horizontal | 270 ° | +| Resolution, Horizontal | 0.25 ° | +| Operating Temperature, Min | -30 °C | +| Operating Temperature, Max | 50 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#lidar-2d). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/2dlidar/products/lms111) +2. [Datasheet](/assets/pdf/clearpath_robotics_006387-TDS1.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_006387-TDS2.pdf) +4. [SICK website](https://www.sick.com/ca/en/detection-and-ranging-solutions/2d-lidar-sensors/lms1xx/lms111-10100/p/p109842) +5. [ROS webpage](http://wiki.ros.org/LMS1xx) diff --git a/docs/sensors/lidar_3d/_category_.json b/docs/robots/accessories/sensors/lidar_3d/_category_.json similarity index 100% rename from docs/sensors/lidar_3d/_category_.json rename to docs/robots/accessories/sensors/lidar_3d/_category_.json diff --git a/docs/robots/accessories/sensors/lidar_3d/ouster.mdx b/docs/robots/accessories/sensors/lidar_3d/ouster.mdx new file mode 100644 index 000000000..6cfeac49b --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_3d/ouster.mdx @@ -0,0 +1,85 @@ +--- +title: Ouster +sidebar_position: 5 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :---------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Sensor, Ouster OS0-32, gen 7 | | | | +| Sensor, Ouster OS0-64, gen 7 | [028738](/assets/pdf/clearpath_robotics_028738-TDS1.pdf) | 028661 | 028851 | +| Sensor, Ouster OS0-128, gen 7 | [028740](/assets/pdf/clearpath_robotics_028740-TDS1.pdf) | 028662 | 028852 | +| Sensor, Ouster OS1-32, gen 7 | [028848](/assets/pdf/clearpath_robotics_028848-TDS1.pdf) | 028663 | 028853 | +| Sensor, Ouster OS1-64, gen 7 | [028742](/assets/pdf/clearpath_robotics_028742-TDS1.pdf) | 028664 | 028854 | +| Sensor, Ouster OS1-128, gen 7 | [028745](/assets/pdf/clearpath_robotics_028745-TDS1.pdf) | 028665 | 028855 | +| Sensor, Ouster OS2-32, gen 7 | [028849](/assets/pdf/clearpath_robotics_028849-TDS1.pdf) | 028666 | 028856 | +| Sensor, Ouster OS2-64, gen 7 | [028747](/assets/pdf/clearpath_robotics_028747-TDS1.pdf) | 028667 | 028857 | +| Sensor, Ouster OS2-128, gen 7 | [028749](/assets/pdf/clearpath_robotics_028749-TDS1.pdf) | 028668 | 028858 | + +--- + +## Specifications + +| Description | Value, OS0 | Value, OS1 | Value, OS2 | +| :--------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Mass | 447 g | 447 g | 1100 g | +| Voltage, Minimum | 9 V | 9 V | 9 V | +| Voltage, Maximum | 34 V | 34 V | 34 V | +| Voltage, Sensor | 12 V or 24 V | 12 V or 24 V | 12 V or 24 V | +| Power, Average | 17 W | 17 W | 21 W | +| Data |
  • **OS0-32**
    Ethernet, 65.6 Mbit/s

  • **OS0-64**
    Ethernet, 128.5 Mbit/s

  • **OS0-128**
    Ethernet 254.3 Mbit/s
|
  • **OS0-32**
    Ethernet, 65.6 Mbit/s

  • **OS0-64**
    Ethernet, 128.5 Mbit/s

  • **OS0-128**
    Ethernet 254.3 Mbit/s
|
  • **OS0-32**
    Ethernet, 65.6 Mbit/s

  • **OS0-64**
    Ethernet, 128.5 Mbit/s

  • **OS0-128**
    Ethernet 254.3 Mbit/s
| +| Range, Minimum | 0.3 m | 0.3 m | 1.0 m | +| Range, Maximum ( 10% reflectivity) | 15 m | 45 m | 80 m | +| Range, Maximum ( 80% reflectivity) | 45 m | 100 m | 210 m | +| Range, Accuracy | ± 3 cm | ± 3 cm | ± 3 cm | +| View, Horizontal | 360° | 360° | 360° | +| View, Vertical | ± 45° | ± 22.5° | ± 11.25° | +| Resolution, Horizontal | Configurable
  • 0.7°
  • 0.35°
  • 0.18°
| Configurable
  • 0.7°
  • 0.35°
  • 0.18°
| Configurable
  • 0.7°
  • 0.35°
  • 0.18°
| +| Resolution, Vertical |
  • **OS0-32**
    2.8°

  • **OS0-64**
    1.4°

  • **OS0-128**
    0.7°
|
  • **OS0-32**
    1.4°

  • **OS0-64**
    0.7°

  • **OS0-128**
    0.35°
|
  • **OS0-32**
    0.7°

  • **OS0-64**
    0.35°

  • **OS0-128**
    0.18°
| +| Ingress Protection, Solids | 6 | 6 | 6 | +| Ingress Protection, Liquids | 8 | 8 | 8 | +| Operating Temperature, Min | -40 °C | -40 °C | -20 °C | +| Operating Temperature, Max | 60 °C | 60 °C | 60 °C | + +--- + +## Software Bringup + +This sensor is not included in the Clearpath Robotics robot package. +If you purchased this sensor with your Clearpath robot, we will install the necessary ROS packages and configuration details on the robot's computer. + +Refer to this page's Further Reading section for more details. + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/3d-lidar) +2. [OS0, Datasheet](/assets/pdf/clearpath_robotics_028738-TDS1.pdf) +3. [OS0, Manual](/assets/pdf/clearpath_robotics_028738-TDS2.pdf) +4. [OS0, Drawing](/assets/pdf/clearpath_robotics_028738-TDS3.pdf) +5. [OS1, Datasheet](/assets/pdf/clearpath_robotics_028848-TDS1.pdf) +6. [OS1, Manual](/assets/pdf/clearpath_robotics_028848-TDS2.pdf) +7. [OS1, Drawing](/assets/pdf/clearpath_robotics_028848-TDS3.pdf) +8. [OS2, Datasheet](/assets/pdf/clearpath_robotics_028849-TDS1.pdf) +9. [OS2, Manual](/assets/pdf/clearpath_robotics_028849-TDS2.pdf) +10. [OS2, Drawing](/assets/pdf/clearpath_robotics_028849-TDS3.pdf) +11. [Ouster website](https://ouster.com/) +12. [ROS GitHub](https://github.com/ouster-lidar/ouster-ros) +13. [ROS tutorial](https://static.ouster.dev/sdk-docs/ros/index.html) diff --git a/docs/robots/accessories/sensors/lidar_3d/velodyne_puck hi_res.mdx b/docs/robots/accessories/sensors/lidar_3d/velodyne_puck hi_res.mdx new file mode 100644 index 000000000..84e45ae86 --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_3d/velodyne_puck hi_res.mdx @@ -0,0 +1,72 @@ +--- +title: Velodyne Hi-Res +sidebar_position: 3 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :--------------------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Velodyne Puck sensor | [013688](/assets/pdf/clearpath_robotics_029029-TDS1.pdf) | — | — | +| Velodyne Puck sensor, with M12 connector | [029029](/assets/pdf/clearpath_robotics_029029-TDS1.pdf) | 029032 | 029031 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass | 830 g | +| Voltage, Minimum | 9 V | +| Voltage, Maximum | 18 V | +| Voltage, Sensor | 12 V | +| Power, Average | 8 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.9 m | +| Range, Maximum | 100 m | +| Range, Accuracy | ±3 cm | +| View, Horizontal | 360° | +| View, Vertical | ±10° | +| Resolution, Horizontal | 0.4° | +| Resolution, Vertical | 1.33° | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 7 | +| Operating Temperature, Min | -10 °C | +| Operating Temperature, Max | 60 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#lidar-3d). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/3d-lidar/products/puck-hi-res) +2. [Datasheet](/assets/pdf/clearpath_robotics_029029-TDS1.pdf) +3. [User Manual, Sensor](/assets/pdf/clearpath_robotics_029029-TDS2.pdf) +4. [User Manual, Control Box](/assets/pdf/clearpath_robotics_029029-TDS3.pdf) +5. [Drawing, Sensor](/assets/pdf/clearpath_robotics_029029-TDS4.pdf) +6. [Drawing, Control Box](/assets/pdf/clearpath_robotics_029029-TDS6.pdf) +7. [Wiring, Contol Box](/assets/pdf/clearpath_robotics_029029-TDS5.pdf) +8. [Velodyne website](https://velodynelidar.com/products/puck-hi-res/) +9. [ROS webpage](http://wiki.ros.org/velodyne) +10. [ROS tutorial](http://wiki.ros.org/velodyne/Tutorials/Getting%20Started%20with%20the%20Velodyne%20VLP16) diff --git a/docs/robots/accessories/sensors/lidar_3d/velodyne_puck.mdx b/docs/robots/accessories/sensors/lidar_3d/velodyne_puck.mdx new file mode 100644 index 000000000..cbb525bc2 --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_3d/velodyne_puck.mdx @@ -0,0 +1,69 @@ +--- +title: Velodyne Puck +sidebar_position: 2 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :-------------------------------------------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Velodyne Puck sensor | [011703](/assets/pdf/clearpath_robotics_011703-TDS2.pdf) | — | — | +| Velodyne Puck sensor, with M12 connector | [020972](/assets/pdf/clearpath_robotics_020972-TDS2.pdf) | 026859 | 027206 | +| Velodyne Puck sensor, with M12 connector, 90° vertical mounting | [020972](/assets/pdf/clearpath_robotics_020972-TDS2.pdf) | 026965 | 027222 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass | 830 g | +| Voltage, Minimum | 9 V | +| Voltage, Maximum | 18 V | +| Voltage, Sensor | 12 V | +| Power, Average | 8 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.9 m | +| Range, Maximum | 100 m | +| Range, Accuracy | ±3 cm | +| View, Horizontal | 360° | +| View, Vertical | ±15° | +| Resolution, Horizontal | 0.4° | +| Resolution, Vertical | 2° | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 7 | +| Operating Temperature, Min | -10 °C | +| Operating Temperature, Max | 60 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#lidar-3d). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/3d-lidar/products/puck) +2. [Datasheet](/assets/pdf/clearpath_robotics_011703-TDS2.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_011703-TDS1.pdf) +4. [Velodyne website](https://store.clearpathrobotics.com/collections/3d-lidar/products/puck) +5. [ROS webpage](http://wiki.ros.org/velodyne) +6. [ROS tutorial](http://wiki.ros.org/velodyne/Tutorials/Getting%20Started%20with%20the%20Velodyne%20VLP16) diff --git a/docs/robots/accessories/sensors/lidar_3d/velodyne_puck_lite.mdx b/docs/robots/accessories/sensors/lidar_3d/velodyne_puck_lite.mdx new file mode 100644 index 000000000..460e29ed8 --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_3d/velodyne_puck_lite.mdx @@ -0,0 +1,70 @@ +--- +title: Velodyne Puck Lite +sidebar_position: 1 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :-------------------------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Velodyne Puck Lite sensor | [016312](/assets/pdf/clearpath_robotics_023729-TDS1.pdf) | — | — | +| Velodyne Puck Lite sensor, with M12 connector | [023729](/assets/pdf/clearpath_robotics_023729-TDS1.pdf) | 029027 | 029026 | + +--- + +## Specifications + +| Description | Value | +| :------------------------- | :------------------- | +| Mass | 590 g | +| Voltage, Minimum | 9 V | +| Voltage, Maximum | 18 V | +| Voltage, Sensor | 12 V | +| Power, Average | 8 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.9 m | +| Range, Maximum | 100 m | +| Range, Accuracy | ±3 cm | +| View, Horizontal | 360° | +| View, Vertical | ±15° | +| Resolution, Horizontal | 0.4° | +| Resolution, Vertical | 2° | +| Operating Temperature, Min | -10 °C | +| Operating Temperature, Max | 60 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#lidar-3d). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/3d-lidar/products/puck-lite) +2. [Datasheet](/assets/pdf/clearpath_robotics_023729-TDS1.pdf) +3. [User Manual, Sensor](/assets/pdf/clearpath_robotics_023729-TDS2.pdf) +4. [User Manual, Control Box](/assets/pdf/clearpath_robotics_023729-TDS3.pdf) +5. [Drawing, Sensor](/assets/pdf/clearpath_robotics_023729-TDS4.pdf) +6. [Drawing, Control Box](/assets/pdf/clearpath_robotics_023729-TDS6.pdf) +7. [Wiring, Contol Box](/assets/pdf/clearpath_robotics_023729-TDS5.pdf) +8. [Velodyne website](https://velodynelidar.com/products/puck-lite/) +9. [ROS webpage](http://wiki.ros.org/velodyne) +10. [ROS tutorial](http://wiki.ros.org/velodyne/Tutorials/Getting%20Started%20with%20the%20Velodyne%20VLP16) diff --git a/docs/robots/accessories/sensors/lidar_3d/velodyne_ultra_puck.mdx b/docs/robots/accessories/sensors/lidar_3d/velodyne_ultra_puck.mdx new file mode 100644 index 000000000..5aef9a67b --- /dev/null +++ b/docs/robots/accessories/sensors/lidar_3d/velodyne_ultra_puck.mdx @@ -0,0 +1,69 @@ +--- +title: Velodyne Ultra Puck +sidebar_position: 4 +--- + +import Support from "/components/support.mdx"; + +
+ +
+ +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :--------------------------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Velodyne Ultra Puck sensor | [016901](/assets/pdf/clearpath_robotics_029035-TDS1.pdf) | — | — | +| Velodyne Ultra Puck sensor, with M12 connector | [029035](/assets/pdf/clearpath_robotics_029035-TDS1.pdf) | 029037 | 029036 | + +--- + +## Specifications + +| Description | Value | +| :-------------------------- | :------------------- | +| Mass | 925 g | +| Voltage, Minimum | 10.5 V | +| Voltage, Maximum | 18 V | +| Voltage, Sensor | 12 V | +| Power, Average | 10 W | +| Data | Ethernet, 100 Mbit/s | +| Range, Minimum | 0.9 m | +| Range, Maximum | 200 m | +| Range, Accuracy | ±3 cm | +| View, Horizontal | 360° | +| View, Vertical | -25° to +15° | +| Resolution, Horizontal | 0.4° | +| Resolution, Vertical | 0.33° | +| Ingress Protection, Solids | 6 | +| Ingress Protection, Liquids | 7 | +| Operating Temperature, Min | -20 °C | +| Operating Temperature, Max | 60 °C | + +--- + +## Software Bringup + +This sensor is included in the Clearpath Robotics robot package that is installed on all of our robots. +This allows you to add or remove the sensor from your robot's software description by modifying the [robot configuration yaml](../../../../ros/config/yaml#lidar-3d). + +--- + +## Troubleshooting + + + +--- + +## Further Reading + +1. [Clearpath Robotics Store](https://store.clearpathrobotics.com/collections/3d-lidar/products/ultra-puck) +2. [Datasheet](/assets/pdf/clearpath_robotics_029035-TDS1.pdf) +3. [User Manual](/assets/pdf/clearpath_robotics_029035-TDS2.pdf) +4. [Drawing, Sensor](/assets/pdf/clearpath_robotics_029035-TDS3.pdf) +5. [Velodyne website](https://velodynelidar.com/products/ultra-puck/) +6. [ROS webpage](http://wiki.ros.org/velodyne) +7. [ROS tutorial](http://wiki.ros.org/velodyne/Tutorials/Getting%20Started%20with%20the%20Velodyne%20VLP16) diff --git a/docs/sensors/sensors.mdx b/docs/robots/accessories/sensors/sensors.mdx similarity index 100% rename from docs/sensors/sensors.mdx rename to docs/robots/accessories/sensors/sensors.mdx diff --git a/docs/robots/common/_category_.json b/docs/robots/common/_category_.json new file mode 100644 index 000000000..88b377b2c --- /dev/null +++ b/docs/robots/common/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Common", + "position": 6 +} diff --git a/docs/tools/colours.mdx b/docs/robots/common/colours.mdx similarity index 98% rename from docs/tools/colours.mdx rename to docs/robots/common/colours.mdx index 1b306377a..5cd241377 100644 --- a/docs/tools/colours.mdx +++ b/docs/robots/common/colours.mdx @@ -1,6 +1,6 @@ --- title: Colours -sidebar_position: 7 +sidebar_position: 3 ---
diff --git a/docs/components/_category_.json b/docs/robots/common/components/_category_.json similarity index 64% rename from docs/components/_category_.json rename to docs/robots/common/components/_category_.json index 458824ce7..32d855aed 100644 --- a/docs/components/_category_.json +++ b/docs/robots/common/components/_category_.json @@ -1,4 +1,4 @@ { "label": "Components", - "position": 6 + "position": 1 } diff --git a/docs/components/components.mdx b/docs/robots/common/components/components.mdx similarity index 79% rename from docs/components/components.mdx rename to docs/robots/common/components/components.mdx index 89346fa0e..882fd51fc 100644 --- a/docs/components/components.mdx +++ b/docs/robots/common/components/components.mdx @@ -19,7 +19,7 @@ sidebar_position: 1
The items listed on this page are common connectors, fasteners, and jellybeans that we frequently use in our robots. -Refer to our [Sensors](/docs/sensors) and [Accessories](/docs/accessories) sections for larger subassemblies. +Refer to our [Sensors](../../accessories/sensors) and [Add-ons](../../accessories/add-ons) sections for larger subassemblies. --- @@ -27,7 +27,7 @@ Refer to our [Sensors](/docs/sensors) and [Accessories](/docs/accessories) secti
- +
- +
- +
- +
- +
- +
- +
- + - + +Refer to the following for more details: + +- [Computers](../../accessories/computers) +- [Sensors](../../accessories/sensors) +- [Manipulators](../../accessories/manipulators) +- [Accessories](../../accessories/add-ons) + --- ## Support diff --git a/docs/robots/indoor_robots/boxer/maintenance_boxer.mdx b/docs/robots/indoor_robots/boxer/maintenance_boxer.mdx index eaf16cae0..bf001898f 100644 --- a/docs/robots/indoor_robots/boxer/maintenance_boxer.mdx +++ b/docs/robots/indoor_robots/boxer/maintenance_boxer.mdx @@ -5,7 +5,6 @@ sidebar_position: 4 --- import ComponentIntroductionBoxer from "/components/introduction_boxer.mdx"; -import GettingNewPackages from "/components/maintenance/getting_new_packages.mdx"; import Support from "/components/support.mdx"; @@ -54,7 +53,7 @@ If you see any errors, contact [Support](#support). ### Starting From Scratch If Boxer's computer has become inoperable, or for any reason you want to restore it to the factory state, you can -reinstall the operating system by following the steps outlined [Boxer Backpack Computer Software Setup](/docs/robots/indoor_robots/boxer/tutorials_boxer#boxer-software-setup). +reinstall the operating system by following the steps outlined [Boxer Backpack Computer Software Setup](./tutorials_boxer#boxer-software-setup). --- diff --git a/docs/robots/indoor_robots/boxer/troubleshooting_boxer.mdx b/docs/robots/indoor_robots/boxer/troubleshooting_boxer.mdx index a44c2cdda..5d92fafd6 100644 --- a/docs/robots/indoor_robots/boxer/troubleshooting_boxer.mdx +++ b/docs/robots/indoor_robots/boxer/troubleshooting_boxer.mdx @@ -18,11 +18,11 @@ import Support from "/components/support.mdx"; ### Not getting Wi-Fi internet connection -Refer to the [Networking page](/docs/software/networking). +Refer to the [Networking page](../../../ros/networking). ### Cannot connect to the robot's computer over a network cable -Reter to the [Networking page](/docs/software/networking). +Reter to the [Networking page](../../../ros/networking). --- @@ -30,11 +30,11 @@ Reter to the [Networking page](/docs/software/networking). ### The computer does not automatically start -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). ### The computer keeps reverting to old BIOS settings -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). --- @@ -47,7 +47,7 @@ Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are ### Sensors are not turning on 1. Check that the sensor's User Power connector has the correct voltage. -2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](/docs/sensors). +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). ## If the Issue Persists diff --git a/docs/robots/indoor_robots/boxer/tutorials_boxer.mdx b/docs/robots/indoor_robots/boxer/tutorials_boxer.mdx index a9eab84ab..09bb9437c 100644 --- a/docs/robots/indoor_robots/boxer/tutorials_boxer.mdx +++ b/docs/robots/indoor_robots/boxer/tutorials_boxer.mdx @@ -5,16 +5,6 @@ sidebar_position: 3 --- import ComponentIntroductionBoxer from "/components/introduction_boxer.mdx"; -import ComponentPs4ControllerPairing from "/components/ps4_controller_pairing.mdx"; -import ComponentChangingDefaultPassword from "/components/changing_default_password.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentConfiguringNetworkBridge from "/components/configuring_network_bridge.mdx"; -import ComponentPerformingABackup from "/components/performing_a_backup.mdx"; -import ComponentInstallingRobotSoftware from "/components/installing_robot_software.mdx"; -import ComponentInstallingRemoteComputerSoftware from "/components/installing_remote_computer_software.mdx"; -import ComponentAddingASourceWorkspace from "/components/adding_a_source_workspace.mdx"; -import ComponentDrivingWithRemoteController from "/components/driving_with_remote_controller.mdx"; import Support from "/components/support.mdx"; @@ -42,34 +32,11 @@ It is a lightly modified [OTTO 100](https://ottomotors.com/amrs) robot, equipped to the top of the Base Unit. This Backpack Computer communicates with the OTTO 100 via its attachment port, located on the top of the Base Unit. -For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/boxer). - -:::note - -These tutorials assume that you are comfortable working with ROS. -We recommend starting with our [ROS tutorial](https://www.clearpathrobotics.com/assets/guides/noetic/ros/index.html) if you are not familiar with ROS already. - -::: - -:::note - -These tutorials specifically target Boxer robots with a Backpack Computer running Ubuntu 20.04 with ROS Noetic, as it is the standard OS environment for Boxer. - -::: +The Boxer is currently only supported in [ROS 1](/docs/ros1noetic/robots/outdoor_robots/boxer/tutorials_boxer). -[Boxer ROS Packages](#boxer-ros-packages) provides the references for the software packages and key ROS topics. - -[Boxer Software Setup](#boxer-software-setup) outlines the steps for setting up the software on your Boxer robot and optionally on a remote computer. - -[Using Boxer](#using-boxer) describes how to simulate and drive your Boxer. [Simulation](#simulating-boxer) is a great way for most users to learn more about their Boxer; -understanding how to effectively operate Boxer in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a physical Boxer or you do not have one and are simply exploring the platform's capabilities. -[Driving Boxer](#driving-boxer) covers how to teleoperate Boxer using the remote control, as well as safety procedures for operating the physical robot. -Anyone working with a physical robot should be familiar with this section. - -[Mapping and Navigating with Boxer](#navigating-boxer) is a follow-on to what is learned in the [Simulation](#simulating-boxer) tutorial, as navigation and map-making may be run in the simulated environment. -However, this content is applicable to both the simulator and the real platform, if your Boxer is equipped with a laser scanner. +For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/boxer). -[Boxer Tests](#testing-boxer) outlines how to validate that your physical Boxer is working correctly. + --- -## Boxer Tests {#testing-boxer} - -Boxer robots come preinstalled with a set of test scripts as part of the `boxer_tests` ROS package, which can be run to verify robot functionality at the component and system levels. - -If your Boxer does not have the `boxer_tests` ROS package installed already, you can manually install it by opening terminal and running: - -``` -sudo apt-get install ros-noetic-boxer-tests -``` - -### ROS Tests - -The `ros_tests` script exposes a set of interactive tests to verify the functionality of core features. -These tests run at the ROS-level via ROS topics, and serve as a useful robot-level diagnostic tool for identifying the root cause of problems, or at the very least, narrowing down on where the root cause(s) may be. - -#### Running ROS Tests - -To run `ros_tests` on a Boxer robot, open terminal and run: - -``` -rosrun boxer_tests ros_tests -``` - -Upon running `ros_tests`, a list of available tests will be shown in a menu. -From the menu, you can choose individual tests to run, or simply choose the option to automatically run all the tests. - -The details of each test are shown below. - -- **Serial Number Test** - - The **Serial Number Test** checks that the robot's serial number is set correctly. - - This test checks the `ROS_ROBOT_SERIAL_NO` environment variable is set to a valid serial number. - -- **API Version Test** - - The **API Version Test** checks that the robot's API version is set correctly. - - This test checks the `BOXER_API_VERSION` environment variable is set to a valid API version, and that the robot is publishing data on ROS topics under this API version. - -- **ROS Bridge Test** - - The **ROS Bridge Test** checks that the ROS bridge is working properly, and that the robot's description model is loaded. - - This test checks that the list of expected ROS topics from the ROS bridge exist, and that these ROS topics are publishing data at the expected frequencies. The expected ROS topics are published by the robot's Base Unit, and the ROS bridge "bridges" these ROS topics to the robot's Backpack Computer, including the Base Unit's IMU, camera, laser, and battery data. - - This test also the robot's model is loaded into the `robot_description` ROS parameter. - -- **Emergency Stop Test** - - The **Emergency Stop Test** checks that the robot's emergency stop is working properly. - - This test subscribes to the `/platform/emergency_stop` ROS topic and checks that when the emergency stop is manually engaged and disengaged by the user, the emergency stop states are correctly reported on the `/platform/emergency_stop` ROS topic. - -- **Rotate Test** - - The **Rotate Test** rotates the robot counter clockwise 2 full revolutions and checks that the motors, IMU, and EKF odometry are working properly. - - This test: - - - Subscribes to the `/imu/module1/data` ROS topic to receive angular velocity measurements from the IMU's Gyroscope. These measurements are converted into angular displacement estimations, and the robot will rotate until 2 full revolutions are estimated. - - Subscribes to the `/odom` ROS topic to receive angular velocity estimations from the EKF odometry. These measurements are converted into angular displacement estimations, and are output as comparison to the angular displacement estimations from the IMU's Gyroscope. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to rotate the robot. - - The user will be asked to verify that the robot rotates 2 full revolutions. - - :::note - - The **Rotate Test** rotates the robot using the IMU's Gyroscope data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. - - ::: - -- **Drive Test** - - The **Drive Test** drives the robot forward 1 metre and checks that the motors, and EKF odometry are working properly. - - This test: - - - Subscribes to the `/odom` ROS topic to receive linear displacement estimations from the EKF odometry. The robot will drive forward until 1 metre is estimated, then it will drive backward until 1 metre is estimated. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to drive the robot. - - The user will be asked to verify that the robot drives forward 1 metre. - - :::note - - The **Drive Test** drives the robot using the Odometry data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. +## Support {#support} - ::: + diff --git a/docs/robots/indoor_robots/boxer/user_manual_boxer.mdx b/docs/robots/indoor_robots/boxer/user_manual_boxer.mdx index 7e78ebf4d..6ec0ac218 100644 --- a/docs/robots/indoor_robots/boxer/user_manual_boxer.mdx +++ b/docs/robots/indoor_robots/boxer/user_manual_boxer.mdx @@ -432,7 +432,7 @@ Detailed instructions for mapping can be found here: To use your controller, it must be paired with your Boxer and powered on. If your purchased the Backpack Computer from Clearpath Robotics, your controller is already paired with your Boxer. If your controller has become unpaired or if you wish to pair a new controller, following the instructions in the -[Boxer Tutorials](/docs/robots/indoor_robots/boxer/tutorials_boxer#pairing-the-controller). +[Boxer Tutorials](./tutorials_boxer#pairing-the-controller). To use the controller: @@ -457,6 +457,8 @@ To use the controller: + --- diff --git a/docs/robots/indoor_robots/dingo/integration_dingo/integration_dingo.mdx b/docs/robots/indoor_robots/dingo/integration_dingo/integration_dingo.mdx index 830c3feb9..e7b86eeea 100644 --- a/docs/robots/indoor_robots/dingo/integration_dingo/integration_dingo.mdx +++ b/docs/robots/indoor_robots/dingo/integration_dingo/integration_dingo.mdx @@ -25,23 +25,23 @@ supply, and software integration. This guide aims to equip you with respect to t When determining mechanical mounting, you have two options, both of which are described below. - the "Standard" mounting pattern on Dingo's trough cover -- the "PACS" mounting system and associated kits +- the "PACS™" mounting system and associated kits #### Mechanical, Standard A standard Dingo is delivered with an 80 mm square mounting pattern of M5 threaded holes on Dingo's trough cover as shown -in [Exterior Features](/docs/robots/indoor_robots/dingo/user_manual_dingo#dingo-exterior-features), which can be used for attaching external payloads. +in [Exterior Features](../user_manual_dingo#dingo-exterior-features), which can be used for attaching external payloads. The mounting holes come with M5 screws pre-installed. You may mount your hardware directly onto the trough cover or you may design and mount a new plate to the trough cover and secure it to the trough cover using M5 screws. -#### Mechanical, PACS +#### Mechanical, PACS™ Refer to the following pages for Dingo brackets that can simplify your integration. -- [Top Plate](/docs/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo) -- [Riser Full](/docs/robots/indoor_robots/dingo/integration_dingo/kits/riser_full_dingo) +- [Top Plate](./kits/top_plate_dingo) +- [Riser Full](./kits/riser_full_dingo) ### Electrical Integration {#dingo-payload-electrical-integration} @@ -244,6 +244,13 @@ If the system is working properly, these LEDs functions as follows: +Refer to the following for more details: + +- [Computers](../../../accessories/computers) +- [Sensors](../../../accessories/sensors) +- [Manipulators](../../../accessories/manipulators) +- [Accessories](../../../accessories/add-ons) + --- ## Support {#support} diff --git a/docs/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo.mdx b/docs/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo.mdx index fb4d07eec..d4e6f8aff 100644 --- a/docs/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo.mdx +++ b/docs/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo.mdx @@ -10,5 +10,5 @@ sidebar_position: 2 />
-The standard top plates for the Dingo include M5×0.8 threaded holes that match the Clearpath PACS standard. +The standard top plates for the Dingo include M5×0.8 threaded holes that match the Clearpath PACS™ standard. These top plates are included with all Dingo-D and Dingo-O robots. diff --git a/docs/robots/indoor_robots/dingo/troubleshooting_dingo.mdx b/docs/robots/indoor_robots/dingo/troubleshooting_dingo.mdx index 6eaa804f3..06a5da82c 100644 --- a/docs/robots/indoor_robots/dingo/troubleshooting_dingo.mdx +++ b/docs/robots/indoor_robots/dingo/troubleshooting_dingo.mdx @@ -18,11 +18,11 @@ import Support from "/components/support.mdx"; ### Not getting Wi-Fi internet connection -Refer to the [Networking page](/docs/software/networking). +Refer to the [Networking page](../../../ros/networking). ### Cannot connect to the robot's computer over a network cable -Reter to the [Networking page](/docs/software/networking). +Reter to the [Networking page](../../../ros/networking). --- @@ -30,11 +30,11 @@ Reter to the [Networking page](/docs/software/networking). ### The computer does not automatically start -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). ### The computer keeps reverting to old BIOS settings -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). --- @@ -47,7 +47,7 @@ Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are ### Sensors are not turning on 1. Check that the sensor's User Power connector has the correct voltage. -2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](/docs/sensors). +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). ## If the Issue Persists diff --git a/docs/robots/indoor_robots/dingo/tutorials_dingo.mdx b/docs/robots/indoor_robots/dingo/tutorials_dingo.mdx index ed38cf534..2abdea667 100644 --- a/docs/robots/indoor_robots/dingo/tutorials_dingo.mdx +++ b/docs/robots/indoor_robots/dingo/tutorials_dingo.mdx @@ -5,16 +5,6 @@ sidebar_position: 4 --- import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; -import ComponentPs4ControllerPairing from "/components/ps4_controller_pairing.mdx"; -import ComponentChangingDefaultPassword from "/components/changing_default_password.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentConfiguringNetworkBridge from "/components/configuring_network_bridge.mdx"; -import ComponentPerformingABackup from "/components/performing_a_backup.mdx"; -import ComponentInstallingRobotSoftware from "/components/installing_robot_software.mdx"; -import ComponentInstallingRemoteComputerSoftware from "/components/installing_remote_computer_software.mdx"; -import ComponentAddingASourceWorkspace from "/components/adding_a_source_workspace.mdx"; -import ComponentDrivingWithRemoteController from "/components/driving_with_remote_controller.mdx"; import Support from "/components/support.mdx"; @@ -24,958 +14,16 @@ import Support from "/components/support.mdx"; ### Introduction Dingo a lightweight and easy-to-use unmanned indoor ground vehicle for ROS, suitable for research and rapid prototyping applications. -These tutorials will assist you with setting up and operating your Dingo. -The tutorial topics are listed in the right column and presented in the suggested reading order. -For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/dingo). - -:::note - -These tutorials assume that you are comfortable working with ROS. -We recommend starting with our [ROS tutorial](https://www.clearpathrobotics.com/assets/guides/noetic/ros/index.html) if you are not familiar with ROS already. - -::: - -:::note - -These tutorials specifically target Dingo robots running Ubuntu 20.04 with ROS Noetic, as it is the standard OS environment for Dingo. -If instead you have an older Dingo robot running Ubuntu 18.04 with ROS Melodic, please follow [this tutorial](https://www.clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html) to upgrade the robot OS environment to Ubuntu 20.04 with ROS Noetic. - -::: - -[Dingo ROS Packages](#dingo-ros-packages) provides the references for the software packages and key ROS topics. - -[Dingo Software Setup](#dingo-software-setup) outlines the steps for setting up the software on your Dingo robot and optionally on a remote computer. - -[Using Dingo](#using-dingo) describes how to simulate and drive your Dingo. [Simulation](#simulating-dingo) is a great way for most users to learn more about their Dingo; -understanding how to effectively operate Dingo in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a physical Dingo or you do not have one and are simply exploring the platform's capabilities. -[Driving Dingo](#driving-dingo) covers how to teleoperate Dingo using the remote control, as well as safety procedures for operating the physical robot. -Anyone working with a physical robot should be familiar with this section. - -[Navigating Dingo](#navigating-dingo) is a follow-on to what is learned in the [Simulation](#simulating-dingo) tutorial, as navigation and map-making may be run in the simulated environment. -However, this content is applicable to both the simulator and the real platform, if your Dingo is equipped with a laser scanner. - -[Dingo Tests](#testing-dingo) outlines how to validate that your physical Dingo is working correctly. - -[Advanced Topics](#advanced-topics) covers items that are only required in atypical situations. - ---- - -## Dingo ROS Packages {#dingo-ros-packages} - -Dingo fully supports ROS; all of the packages are available in [Dingo Github](https://github.com/dingo-cpr). - -### Description Package {#description-package} - -The [dingo_description](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_description) repository provides a [URDF](http://wiki.ros.org/urdf) model of Dingo. - -Dingo's URDF model can be visualized in RViz. -Once you have installed the desktop software in an upcoming tutorial, you will be able to run: - -``` -roslaunch dingo_viz view_model.launch -``` - -
-
- -
Dingo model
-
-
- -### Environment Variables - -Dingo can be customized and extended through the use of several environment variables. -These are summarized in the [README](https://github.com/dingo-cpr/dingo/blob/melodic-devel/dingo_description/README.md) file. -Some of the most important ones are listed below. - -| Variable | Default | Description | -| :---------------------- | :------ | :-------------------------------------------------------------------------- | -| `DINGO_OMNI` | `0` | Set to 1 to switch from Dingo-D to Dingo-O (with omnidirectional wheels) | -| `DINGO_LASER` | `0` | Set to 1 to equip Dingo with a primary lidar unit, normally front-facing | -| `DINGO_LASER_SECONDARY` | `0` | Set to 1 to equip Dingo with a secondary lidar unit, normally rear-facing | -| `DINGO_LASER_3D` | `0` | Set to 1 to equip Dingo with a primary 3D lidar unit, normally front-facing | -| `DINGO_REALSENSE` | `0` | Set to 1 to equip Dingo with a RealSense depth camera | -| `DINGO_IMU_MICROSTRAIN` | `0` | Set to 1 to equip Dingo with a Microstrain IMU | - -### Mounting points - -Dingo-D has 6 evenly-spaced mounting points along its center channel for mounting sensors and other accessories. -Dingo-O has 7 similar mounting points. -The centers of these mounting points are represented as links in the URDF to facilitate adding sensors to simulated robots and modelling collisions when planning arm motions for mobile manipulation. - -| Link (front to back) | Dingo-D | Dingo-O | -| :------------------- | :------ | :------ | -| `front_mount` | Yes | Yes | -| `front_b_mount` | Yes | Yes | -| `front_c_mount` | Yes | Yes | -| `mid_mount` | No | Yes | -| `rear_c_mount` | Yes | Yes | -| `rear_b_mount` | Yes | Yes | -| `rear_mount` | Yes | Yes | - -
-
- -
Dingo-D mount points
-
-
- -
-
- -
Dingo-O mount points
-
-
- -Both versions of Dingo also provide a `front_bumper_mount`, located directly on the front of the robot. -While the physical robot does not have any mounting holes here, lightweight sensors (e.g. small cameras) can be placed here using double-sided adhesive if required. - -
-
- -
Dingo-D front bumper mount
-
-
- -### Configurations - -As an alternative to individually specifying each accessory, some fixed configurations are provided in the package. -These can be specified using the `config` arg to `description.launch`, and are intended especially as a convenience for simulation launch. - -| Config | Description | -| :------------ | :-------------------------------------------------- | -| `base` | Base Dingo | -| `front_laser` | Adds a SICK LMS1xx lidar to the Dingo's front mount | - -:::note - -Additional configurations coming soon - -::: - -### Key ROS Topics - -You can view all topics that are active using `rostopic list`. -The most important topics are summarized in the table below. - -| Topic | Message Type | Purpose | -| :------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/cmd_vel` | `geometry_msgs/Twist` | Input to Dingo's kinematic controller. Publish here to make Dingo go. | -| `/odometry/filtered` | `nav_msgs/Odometry` | Published by `robot_localization`, a filtered localization estimate based on wheel odometry (encoders) and integrated IMU. | -| `/imu/data` | `sensor_msgs/IMU` | Published by `imu_filter_madgwick`, an orientation estimated based on the Dingo's internal IMU. | -| `/mcu/status` | `dingo_msgs/Status` | Low-frequency status data for Dingo's systems. This information is republished in human readable form on the `diagnostics` topic and is best consumed with the Robot Monitor. | -| `/mcu/aux_input` | `dingo_msgs/UInt8` | User can subscribe to this topic to monitor the MCU user inputs. See [AUX Inputs](/docs/robots/indoor_robots/dingo/integration_dingo#dingo-aux-inputs). | -| `/mcu/aux_output` | `std_msgs/UInt8` | User can publish to this topic to enable and disable the AUX outputs as well as control relays on the MCU. See [AUX Outputs and Relays](/docs/robots/indoor_robots/dingo/integration_dingo#dingo-aux-outputs). | -| `/mcu/fans` | `dingo_msgs/Fans` | User can publish to this topic to control an optionally installed fan. See details [Optional Fan](/docs/robots/indoor_robots/dingo/integration_dingo#dingo-fan). | -| `/mcu/lights` | `dingo_msgs/Lights` | User can publish to this topic to override the default behavior of the Dingo corner LEDs. | - ---- - -## Dingo Software Setup {#dingo-software-setup} - -### Backing Up Robot Configuration - -Upgrading your Clearpath Dingo to ROS Noetic from older ROS distributions is a straightforward process; -however it's important to understand that each Dingo is different, having undergone customization to your specifications. -For more complete upgrade instructions see [this guide](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). - -Please take the time to understand what these modifications are, and how to recreate them on your fresh install of Ubuntu Focal/ROS Noetic. - -#### Performing a Backup {#performing-a-backup} - - - -### Installing and Configuring Robot Software - -:::note - -If you are upgrading your Dingo from an older version of ROS, please refer to our upgrade instructions [here](https://clearpathrobotics.com/assets/guides/kinetic/kinetic-to-melodic/index.html) -and [here](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). - -::: - -#### Installing Dingo Software - -:::note - -The physical Dingo robot comes pre-configured with ROS and the necessary Dingo packages already installed; -therefore, you will only need to follow the instructions below if you are re-installing software on the Dingo. - -::: - - - -#### Testing Base Configuration - -1. To test your configuration, start the background service with the following command: - - ``` - sudo systemctl start ros - ``` - -2. The Comms indicator - should turn green. You can check that the service has started correctly by checking the logs: - - ``` - sudo journalctl -u ros - ``` - -3. Your Dingo should now be accepting commands from your joystick (see next section). - The service will automatically start each time you boot your Dingo's computer. - -#### Pairing the Controller {#pairing-the-controller} - -##### PS4 Controller - - - -### Setting up Dingo's Network Configuration {#dingo-networking} - -Dingo is normally equipped with a combination Wi-Fi + Bluetooth module. -If this is your first unboxing, ensure that Dingo's wireless antennae are firmly screwed on to the chassis. - -#### First Connection - -By default, Dingo's Wi-Fi is in client mode, looking for the wireless network at the Clearpath factory. - - - -#### Changing the Default Password - - - -#### Wi-Fi Setup - - - -### Installing Remote Computer Software {#remote-computer-software} - -:::note - -This step is optional. - -::: - - - -#### Adding a Source Workspace - - - ---- - -## Using Dingo {#using-dingo} - -### Simulating Dingo {#simulating-dingo} - -Whether you actually have a Dingo robot or not, the Dingo simulator is a great way to get started with ROS robot development. -In this tutorial, we will go through the basics of starting Gazebo and RViz and how to drive your Dingo around. - -#### Installation - -To get started with the Dingo simulation, make sure you have a [working ROS installation](#remote-computer-software) set up on your Ubuntu desktop, and install the Dingo-specific metapackages for desktop and simulation: - -``` -sudo apt-get install ros-noetic-dingo-simulator ros-noetic-dingo-desktop -``` - -#### Launching Gazebo - -[Gazebo](https://gazebosim.org/home) is the most common simulation tool used in ROS. Dingo's model in Gazebo include reasonable approximations of its dynamics, including wheel slippage, skidding, and inertia. -To launch simulated Dingo in a simple example world, run the following command: - -``` -roslaunch dingo_gazebo dingo_world.launch -``` - -You should see the following window appear, or something like it. -You will see a base Dingo spawned with no additional sensors. -You can adjust the camera angle by clicking and dragging while holding CTRL, ALT, or the Shift key. - -
-
- -
Simulated Dingo in the Race World
-
-
- -The window which you are looking at is the Gazebo Client. -This window shows you the "true" state of the simulated world which the robot exists in. -It communicates on the backend with the Gazebo Server, which is doing the heavy lifting of actually maintaining the simulated world. -At the moment, you are running both the client and server locally on your own machine, but some advanced users may choose to run heavy duty simulations on separate hardware and connect to them over the network. - -:::note - -When simulating, you must leave Gazebo running. -Closing Gazebo will prevent other tools, such as RViz (see below) from working correctly. - -::: - -:::note - -See also [Additional Simulation Worlds](#additional-sim). - -::: - -##### Simulation Configs - -Note that like Dingo itself, Dingo's simulator comes in multiple flavours called configs. -A common one which you will need often is the `front_laser` config. -If you close the Gazebo window, and then CTRL-C out of the terminal process, you can re-launch the simulator with a specific config. - -``` -roslaunch dingo_gazebo dingo_world.launch config:=front_laser -``` - -You should now see the simulator running with the simulated SICK LMS-111 laser present. - -
-
- -
Simulated Dingo in the Race World with SICK LMS-111
-
-
- -Gazebo not only simulates the physical presence of the laser scanner, it also provides simulated data which reflects the robot's surroundings in its simulated world. -We will visualize the simulated laser scanner data shortly. - -### Interfacing with Dingo - -Both simulated and real Dingo robots expose the same ROS interface and can be interacted with in the same way. - -:::note - -Please make sure that the desktop packages for Dingo are installed: - -``` -sudo apt-get install ros-noetic-dingo-desktop -``` - -::: - -#### Launching RViz - -The next tool we will encounter is [RViz](http://wiki.ros.org/rviz). -Although superficially similar in appearance to Gazebo, RViz has a very different purpose. Unlike Gazebo, which shows the reality of the simulated world, RViz shows the robot's _perception_ of its world, whether real or simulated. -So while Gazebo won't be used with your real Dingo, RViz is used with both. - -You can use the following launch invocation to start RViz with a predefined configuration suitable for visualizing any standard Dingo config. - -``` -roslaunch dingo_viz view_robot.launch -``` - -You should see RViz appear. - -
-
- -
Dingo RViz
-
-
- -The RViz display only shows what the robot knows about its world, which presently, is nothing. -Because the robot doesn't yet know about the barriers which exist in its Gazebo world, they are not shown here. - -#### Driving with Interactive Controller - -RViz will also show Dingo's interactive markers around your Dingo's model. -These will appear as a blue ring and red arrows. -Depending on your robot, there will also be green arrows. -If you don't see them in your RViz display, select the Interact tool from the top toolbar and they should appear. - -Drag the red arrows in RViz to move in the linear X direction, and the blue circle to move in the angular Z direction. -If your robot supports lateral/sideways movement, you can drag the green arrows to move in the linear Y direction. -RViz shows you Dingo moving relative to its odometric frame, but it is also moving relative to the simulated world supplied by Gazebo. -If you click over to the Gazebo window, you will see Dingo moving within its simulated world. -Or, if you drive real Dingo using this method, it will have moved in the real world. - -#### Visualizing Sensors - -The RViz tool is capable of visualizing many common robotic sensors, as well as other data feeds which can give us clues as to what the robot is doing and why. -A great place to start with this is adding the [LaserScan](http://wiki.ros.org/rviz/DisplayTypes/LaserScan) plugin to visualize the laser scans being produced by the simulated LMS-111. In the left panel, click the "Add" button, then select the "Topics" tab, and then select the `front/scan` topic: - -
-
- -
Adding a laser scan visualization to Dingo
-
-
- -Click "OK" and you should see laser scan points now visible in the RViz window, relative to the robot. - -
-
- -
Visualizing Dingo with simulated laser scans
-
-
- -If you use the interactive markers to drive around, you'll notice that the laser scan points move a little bit but generally stay where they are. -This is the first step toward map making using [Gmapping](#gmapping-demo). - -#### Control - -There are three ways to send your Dingo control commands: - -1. Using the provided PS4 controller. - Refer to the [User Manual](/docs/robots/indoor_robots/dingo/user_manual_dingo/#controller) details on how to use the controller. - -2. Using the RViz instance above. - If you select the Interact option in the top toolbar, an interactive marker will appear around the Dingo and can be used to control speed. - -3. The [rqt_robot_steering plugin](http://wiki.ros.org/rqt_robot_steering). - Run the `rqt` command, and select **Plugins→Robot Tools→Robot Steering** from the top menu. - -Dingo uses [twist_mux](http://wiki.ros.org/twist_mux) to mix separate [geometry_msgs\Twist](http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html) control channels into the `dingo_velocity_controller/cmd_vel` topic. - -Additional velocity channels can be defined in [twist_mux.yaml](https://github.com/dingo-cpr/dingo/blob/melodic-devel/dingo_control/config/twist_mux.yaml), or can be piped into the lowest-priority `cmd_vel` topic. - -#### Odometry - -Dingo publishes odometry information on the `odometry/filtered` topic, as [nav_msgs/Odometry messages](http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html). -These are generated by [ekf_localization_node](http://wiki.ros.org/robot_localization), which processes data from several sensor sources using an Extended Kalman filter (EKF). -This includes data from the wheel encoders and IMU (if available). - -Additional odometry information sources can be added to the EKF in [robot_localization.yaml](https://github.com/dingo-cpr/dingo/blob/melodic-devel/dingo_control/config/robot_localization.yaml). - -#### Diagnostics - -:::note - -Diagnostics are only applicable to real Dingo robots, not simulation. - -::: - -Dingo provides hardware and software system [diagnostics](http://wiki.ros.org/diagnostics) on the ROS standard `/diagnostics` topic. -The best way to view these messages is using the [rqt_runtime_monitor](http://wiki.ros.org/rqt_runtime_monitor) plugin. -Run the `rqt` command, and select **Plugins→Robot Tools→Runtime Monitor** from the top menu. - -The same information is also published as a [dingo_msgs\Status](https://docs.ros.org/en/api/dingo_msgs/html/msg/Status.html) message on the `Status` topic. - -### Driving Dingo {#driving-dingo} - -There are four ways to drive Dingo and each way will work on a physical Dingo robot as well as on a simulated Dingo. - -1. Using the interactive remote controller in RViz. See [Simulating Dingo](#simulating-dingo). -2. Using autonomous navigation. See [Navigating Dingo](#navigating-dingo). -3. Using the controller for teleoperation. See below. -4. Publishing ROS messages. See below. - -:::warning - -Dingo is capable of reaching high speeds. -Careless driving can cause harm to the operator, bystanders, the robot, or other property. -Always remain vigilant, ensure you have a clear line of sight to the robot, and operate the robot at safe speeds. -We strongly recommend driving in normal (slow) mode first, and only enabling turbo in large, open areas that are free of people and obstacles. - -::: - -#### Driving with Remote Controller + -:::note +The Dingo is currently only supported in [ROS 1](/docs/ros1noetic/robots/outdoor_robots/dingo/tutorials_dingo). -For instructions on controller pairing, [Pairing the Controller](#pairing-the-controller). - -::: - - - -#### Driving with ROS Messages - -You can manually publish `geometry_msgs/Twist` ROS messages to either the `/dingo_velocity_controller/cmd_vel` or the `/cmd_vel` ROS topics to drive Dingo. - -For example, in terminal, run: - -``` -rostopic pub /dingo_velocity_controller/cmd_vel geometry_msgs/Twist '{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}' -``` - -The command above makes Dingo drive forward momentarily at 0.5 m/s without any rotation. - -### Extending Dingo Startup - -Now that you've had Dingo for a while, you may be interested in how to extend it, perhaps add some more payloads, or augment the URDF. - -#### Startup Launch Context - -When ROS packages are grouped together in a directory and then built as one, the result is referred to as a workspace. -Each workspace generates a `setup.bash` file which the user may source in order to correctly set up important environment variables such as `PATH`, `PYTHONPATH`, and `CMAKE_PREFIX_PATH`. - -The standard system-wide setup file is in `opt`: - -``` -source /opt/ros/noetic/setup.bash -``` - -When you run this command, you'll have access to `rosrun`, `roslaunch`, and all the other tools and packages installed on your system from Debian packages. - -However, sometimes you want to add additional system-specific environment variables, or perhaps packages built from source. -For this reason, Clearpath platforms use a wrapper setup file, located in `/etc/ros`: - -``` -source /etc/ros/setup.bash -``` - -This is the setup file which gets sourced by Dingo's background launch job, and in the default configuration, it is also sourced on your login session. -For this reason it can be considered the "global" setup file for Dingo's ROS installation. - -This file sets some environment variables and then sources a chosen ROS workspace, so it is one of your primary modification points for altering how Dingo launches. - -#### Launch Files - -The second major modification point is the `/etc/ros/noetic/ros.d` directory. -This location contains the launch files associated with the `ros` background job. -If you add launch files here, they will be launched with Dingo's startup. - -However, it's important to note that in the default configuration, any launch files you add may only reference ROS software installed in `/opt/ros/noetic`. -If you want to launch something from workspace in the home directory, you must change `/etc/ros/setup.bash` to source that workspace's setup file rather than the one from `opt`. - -#### Adding URDF - -There are two possible approaches to augmenting Dingo's URDF. -The first is that you may simply set the `Dingo_URDF_EXTRAS` environment variable in `/etc/ros/setup.bash`. -By default, it points to an empty dummy file, but you can point it to a file of additional links and joints which you would like mixed into Dingo's URDF (via xacro) at runtime. - -The second, more sophisticated way to modify the URDF is to create a _new_ package for your own robot, and build your own URDF which wraps the one provided by [dingo_description](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_description). - -### Keeping Dingo Updated - -For details on updating Dingo software or firmware, refer to [Software Maintenance](/docs/robots/indoor_robots/dingo/maintenance_dingo#software_maintenance). - ---- - -## Navigating Dingo {#navigating-dingo} - -To get all Navigation related files for Dingo, run: - -``` -sudo apt-get install ros-noetic-dingo-navigation -``` - -Below are the example launch files for three different configurations for navigating Dingo: - -- Navigation in an odometric frame without a map, using only [move_base](http://wiki.ros.org/move_base). -- Generating a map using [gmapping](http://wiki.ros.org/gmapping). -- Localization with a known map using [amcl](http://wiki.ros.org/amcl). - -Referring to the [Simulating Dingo](#simulating-dingo) instructions, bring up Dingo with the front laser enabled for the following demos: - -``` -roslaunch dingo_gazebo dingo_world.launch config:=front_laser -``` - -If you're working with a real Dingo, it's suggested to connect via SSH and launch the [dingo_navigation](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_navigation) launch files from on board the robot. -You'll need to have bidirectional communication with the robot's roscore in order to launch RViz on your workstation (see [here](#remote-computer-software)). - -### Navigation without a Map - -In the odometry navigation demo Dingo attempts to reach a given goal in the world within a user-specified tolerance. -The 2D navigation, generated by `move_base`, takes in information from odometry, laser scanner, and a goal pose and outputs safe velocity commands. -In this demo the configuration of move_base is set for navigation without a map in an odometric frame (that is, without reference to a map). - -To launch the navigation demo, run: - -``` -roslaunch dingo_navigation odom_navigation_demo.launch -``` - -To visualize with the suggested RViz configuration launch: - -``` -roslaunch dingo_viz view_robot.launch config:=navigation -``` - -
-
- -
RViz with Dingo's odom navigation configuration
-
-
- -To send goals to the robot, select the _2D Nav Goal_ tool from the top toolbar, and then click anywhere in the RViz view to set the position. -Alternatively, click and drag slightly to set the goal position and orientation. - -If you wish to customize the parameters of move_base, local costmap, global costmap and base_local_planner, clone [dingo_navigation](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_navigation) into your own workspace and modify the corresponding files in the `params` subfolder. - -### Making a Map {#gmapping-demo} - -In this demonstration, Dingo generates a map using Gmapping. Begin by launch the Gmapping launch file on the robot: - -``` -roslaunch dingo_navigation gmapping_demo.launch -``` - -And on your workstation, launch RViz with the suggested configuration: - -``` -roslaunch dingo_viz view_robot.launch config:=gmapping -``` - -
-
- -
RViz with Dingo's Gmapping configuration
-
-
- -You must slowly drive Dingo around to build the map. -As obstacles come into view of the laser scanner, they will be added to the map, which is shown in RViz. -You can either drive manually using the interactive markers, or semi-autonomously by sending navigation goals (as above). - -When you're satisfied, you can save the produced map using [map_saver](http://wiki.ros.org/map_server#map_saver): - -``` -rosrun map_server map_saver -f mymap -``` - -This will create a `mymap.yaml` and `mymap.pgm` file in your current directory. - -### Navigation with a Map - -Using [amcl](http://wiki.ros.org/amcl), Dingo is able to globally localize itself in a known map. -AMCL takes in information from odometry, laser scanner and an existing map and estimates the robot's pose. - -To start the AMCL demo: - -``` -roslaunch dingo_navigation amcl_demo.launch map_file:=/path/to/my/map.yaml -``` - -If you don't specify `map_file`, it defaults to an included pre-made map of the default "Dingo Race" environment which Dingo's simulator spawns in. -If you're using a real Dingo in your own environment, you'll definitely want to override this with the map created using the Gmapping demo. - -Before navigating, you need to initialize the localization system by setting the pose of the robot in the map. -This can be done using 2D Pose Estimate in RViz or by setting the amcl `initial_pose` parameters. To visualize with the suggested RViz configuration launch: - -``` -roslaunch dingo_viz view_robot.launch config:=localization -``` - -When RViz appears, select the _Set 2D Pose tool_ from the toolbar, and click on the map to indicate to the robot approximately where it is. - ---- - -## Dingo Tests {#testing-dingo} - -Dingo robots come preinstalled with a set of test scripts as part of the `dingo_tests` ROS package, which can be run to verify robot functionality at the component and system levels. - -If your Dingo does not have the `dingo_tests` ROS package installed already, you can manually install it by opening terminal and running: - -``` -sudo apt-get install ros-noetic-dingo-tests -``` - -### ROS Tests - -The `ros_tests` script exposes a set of interactive tests to verify the functionality of core features. -These tests run at the ROS-level via ROS topics, and serve as a useful robot-level diagnostic tool for identifying the root cause of problems, or at the very least, narrowing down on where the root cause(s) may be. - -#### Running ROS Tests - -To run `ros_tests` on a Dingo robot, open terminal and run: - -``` -rosrun dingo_tests ros_tests -``` - -Upon running `ros_tests`, a list of available tests will be shown in a menu. -From the menu, you can choose individual tests to run, or simply choose the option to automatically run all the tests. - -The details of each test are shown below. - -- **Lighting Test** - - The **Lighting Test** checks that the robot's lights are working properly. - - This test turns the lights off, red, green, and blue (in order) by publishing lighting commands to the `/cmd_lights` ROS topic. - The user will be asked to verify that the lights change to the expected colours. - -- **Motion Stop Test** - - The **Motion Stop Test** checks that the robot's motion-stop is working properly. - - This test subscribes to the `/mcu/status` ROS topic and checks that when the motion-stop is manually engaged by the user, the motion-stop state is correctly reported on the `/mcu/status` ROS topic. - The user will be asked to verify that the lights flash red while the motion-stop is engaged. - -- **ADC Test** - - The **ADC Test** checks that the robot's voltage and current values across its internal hardware components are within expected tolerances. - - This test subscribes to the `/mcu/status` ROS topic and checks that the voltage and current values across the internal hardware are within expected tolerances. - -- **Rotate Test** - - The **Rotate Test** rotates the robot counter clockwise 2 full revolutions and checks that the motors, IMU, and EKF odometry are working properly. - - This test: - - - Subscribes to the `/imu/data` ROS topic to receive angular velocity measurements from the IMU's Gyroscope. - These measurements are converted into angular displacement estimations, and the robot will rotate until 2 full revolutions are estimated. - - Subscribes to the `/odometry/filtered` ROS topic to receive angular velocity estimations from the EKF odometry. - These measurements are converted into angular displacement estimations, and are output as comparison to the angular displacement estimations from the IMU's Gyroscope. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to rotate the robot. - - The user will be asked to verify that the robot rotates 2 full revolutions. - - :::note - - The **Rotate Test** rotates the robot using the IMU's Gyroscope data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. - - ::: - -- **Drive Test** - - The **Drive Test** drives the robot forward 1 metre and checks that the motors, encoders, and encoder-fused odometry are working properly. - - This test: - - - Subscribes to the `/dingo_velocity_controller/odom` ROS topic to receive linear displacement estimations from the encoder-fused odometry. - The robot will drive forward until 1 metre is estimated. - - Subscribes to the `/feedback` ROS topic to receive linear displacement measurements from the individual encoders. - These measurements are output as comparison to the linear displacement estimations from the encoder-fused odometry. - - Subscribes to the `/joint_state` ROS topic to receive linear displacement measurements from individual the encoders. - These measurements are output as comparison to the linear displacement estimations from the encoder-fused odometry. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to drive the robot. - - The user will be asked to verify that the robot drives forward 1 metre. - - :::note - - The **Drive Test** drives the robot using the Odometry data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. - - ::: - -- **Cooling Test** - - The **Cooling Test** is an optional test that only applies to Dingo's with an external fan connected to the MCU, and checks that the external fan is working properly. - - This test makes the fan spin at different speeds by publishing fan speed commands to the `/mcu/cmd_fans` ROS topic. - The user will be asked to verify that the fan change to the expected speeds. - -### CAN Bus Test - -The `check_can_bus_interface` script checks that communication between the motors, encoders, robot's MCU, and robot's computer are working properly over the CAN bus interface. - -This script verifies that the `can0` interface is detected and activated, then proceeds to check the output of `candump` to verify that good CAN packets are being transmitted. -Based on the Dingo configuration, either Dingo-D or Dingo-O, this script will know to check for good CAN packets from 2 or 4 encoders, respectively. - -#### Running CAN Bus Test - -To run the `check_can_bus_interface` script on a Dingo robot, open terminal and run: - -``` -rosrun dingo_tests check_can_bus_interface -``` - ---- - -## Advanced Topics - -### Configuring the Network Bridge - - +For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/dingo). ### Jetson Installation -Refer to the [Jetson](/docs/computers/jetson/jetson_hardware) page for details on installing a Jetson in Dingo. - -### Additional Simulation Worlds {#additional-sim} - -In addtion to the default `dingo_world.launch` file, `dingo_gazebo` contains two additional launch files: - -- `empty_world.launch`, which spawns Dingo in a featureless, infinite plane; -- `spawn_dingo.launch`, which is intended to be included in any custom world to add a Dingo simulation to it. - -
-
- -
Dingo in the Empty World environment
-
-
- -To add a Dingo to any of your own worlds, simply include the `spawn_dingo.launch` file in your own world's launch: - -```markup - - - - - - - -``` - -Finally, Clearpath provides an additional suite of simulation environments that can be downloaded separately and used with Dingo, as described below. - -#### Clearpath Gazebo Worlds - -The Clearpath Gazebo Worlds collection contains 4 different simulation worlds, representative of different environments our robots are designed to operate in: - -- Inspection World: a hilly outdoor world with water and a cave -- Agriculture World: a flat outdoor world with a barn, fences, and solar farm -- Office World: a flat indoor world with enclosed rooms and furniture -- Construction World: office world, under construction with small piles of debris and partial walls - -Dingo is supported in the Office and Construction worlds. - -#### Installation - -To download the Clearpath Gazebo Worlds, clone the repository from github into the same workspace as your Dingo: - -``` -cd ~/catkin_ws/src -git clone https://github.com/clearpathrobotics/cpr_gazebo.git -``` - -Before you can build the package, make sure to install dependencies. -Because Clearpath Gazebo Worlds depends on all of our robot's simulation packages, and some of these are currently only available as source code, installing dependencies with `rosdep install --from-paths [...]` will likely fail. - -To simulate Dingo in the Office and Construction worlds the only additional dependency is the `gazebo_ros` package. - -Once the dependencies are installed, you can build the package: - -``` -cd ~/catkin_ws -catkin_make -source devel/setup.bash -``` - -#### Running the Office Simulation - -Office World is a small indoor environment representing a commercial office space. It features several large, open -areas with furniture, as well as a narrow hallway with smaller offices and meeting rooms. It is intended to simulate -missions in commercial spaces, such as facilitating deliveries, security monitoring, and inspecting equipment. - -
-
- -
Dingo in the Office World
-
-
- -To launch Office World with a Dingo, run the following command: - -``` -roslaunch cpr_office_gazebo office_world.launch platform:=dingo -``` - -You should see Dingo spawn in the office world, as pictured. You can see the complete layout of the office below: - -
-
- -
The layout of Office World
-
-
- -To add sensors to Dingo, use the environment variables described in [Description Package](#description-package). -For example, to simulate Dingo with a Sick LMS-1xx lidar, run: - -``` -export DINGO_LASER=1 -roslaunch cpr_office_gazebo office_world.launch platform:=dingo -``` - -You will see Dingo spawn with a lidar sensor mounted to it, which can be used for navigation as described in -[Simulating Dingo](#simulating-dingo). - -
-
- -
Dingo in Office World with a lidar sensor
-
-
- -#### Running the Construction Simulation - -Construction World is the same basic layout as Office World, representing the same office space under construction/renovation. -It is an indoor environment with small hills of debris/rubble, partial walls, and piles of construction supplies. It -is designed to simulate missions in any sort of construction site. - -
-
- -
Dingo in the Construction World
-
-
- -To launch Construction World with a Dingo, run the following command: - -``` -roslaunch cpr_office_gazebo office_construction_world.launch platform:=dingo -``` - -You should see Dingo spawn in the construction world, as pictured. You can see the complete layout of the office below: - -
-
- -
The layout of Construction World
-
-
- -To add sensors to Dingo, use the environment variables described in [Description Package](#description-package). -For example, to simulate Dingo with a Sick LMS-1xx lidar, run: - -``` -export DINGO_LASER=1 -roslaunch cpr_office_gazebo office_construction_world.launch platform:=dingo -``` - -You will see Dingo spawn with a lidar sensor mounted to it, which can be used for navigation as described in [Simulating Dingo](#simulating-dingo). +Refer to the [Jetson](../../accessories/computers/jetson/jetson_hardware) page for details on installing a Jetson in Dingo. --- diff --git a/docs/robots/indoor_robots/dingo/user_manual_dingo.mdx b/docs/robots/indoor_robots/dingo/user_manual_dingo.mdx index 5d6d87b32..b69f8bb50 100644 --- a/docs/robots/indoor_robots/dingo/user_manual_dingo.mdx +++ b/docs/robots/indoor_robots/dingo/user_manual_dingo.mdx @@ -9,9 +9,6 @@ toc_max_heading_level: 4 import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; import ComponentSupport from "/components/support.mdx"; import ComponentUsingRos from "/components/using_ros.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentRemoteRosConnectivity from "/components/remote_ros_connectivity.mdx"; import ComponentCommonSafeWorkProcedures from "/components/common_safe_work_procedures.mdx"; import ComponentSafetyWarning from "/components/safety_warning.mdx"; @@ -393,7 +390,7 @@ While in "Idle" and "Driving" states, the user can override the LEDs by publishi #### DC Shore Power -Dingo provides a DC Shore Power connection ([internal connector for Dingo 1.0](#dingo-payload-electrical-integration); [external connector for Dingo 1.5](#dingo-exterior-features)) +Dingo provides a DC Shore Power connection ([internal connector for Dingo 1.0](./integration_dingo#dingo-payload-electrical-integration); [external connector for Dingo 1.5](#dingo-exterior-features)) to allow the system to be powered without requiring batteries to be present. Note that when DC Shore Power is connected, the motors are disabled and it is not possible to drive the Dingo; however, all other electronics (computers, sensors, etc) will remain enabled. @@ -465,7 +462,7 @@ These two computers must be set up to communicate with each other. ### Onboard Computer Setup If you purchased an Onboard Computer from Clearpath Robotics with Dingo, it is already installed, connected, and powered. -If not, or to set up your own Onboard Computer, see the [Dingo Tutorials](/docs/robots/indoor_robots/dingo/tutorials_dingo). +If not, or to set up your own Onboard Computer, see the [Dingo Tutorials](./tutorials_dingo). Note that the Onboard Computer must be connected to Dingo's Ethernet port, which is accessible in the center channel. @@ -482,13 +479,13 @@ This indicates that ROS is up on the computer and has established communications To get Dingo connected to your local Wi-Fi network, you must first access the Onboard Computer using a wired connection to the robot. Remove the top trough cover and the appropriate yellow fairing to access the computer module, then connect to one of the network ports with a standard Ethernet cable. -See the [Dingo Tutorials](/docs/robots/indoor_robots/dingo/tutorials_dingo#dingo-networking) for details. +See the [Dingo Tutorials](./tutorials_dingo) for details. ### Connecting and Using the Controller {#controller} To use your controller, it must be paired with your Dingo and powered on. If your purchased the Onboard Computer from Clearpath Robotics, your controller is already paired with your Dingo. -If your controller has become unpaired or if you wish to pair a new controller, following the instructions in the [Dingo Tutorials](/docs/robots/indoor_robots/dingo/tutorials_dingo#pairing-the-controller). +If your controller has become unpaired or if you wish to pair a new controller, following the instructions in the [Dingo Tutorials](./tutorials_dingo#pairing-the-controller). To teleoperate Dingo, first clear the motion-stop. Then, power on the controller by pressing the `PS` button on the controller. @@ -598,7 +595,7 @@ Ensure that the Motion Stop button is accessible at all times. Avoid mounting payloads that extend over the rear of Dingo and would block access to the Motion Stop button. Note that the Dingo MCU board does provide a breakout to allow an external motion-stop button/switch to be integrated by the end user, which could be used to engage/disengage Stop Mode. -See [Optional External Motion Stop](/docs/robots/indoor_robots/dingo/integration_dingo#dingo-external-motion-stop) for details on adding an external motion-stop button/switch. +See [Optional External Motion Stop](./integration_dingo#dingo-external-motion-stop) for details on adding an external motion-stop button/switch. ### Electrical System diff --git a/docs/robots/indoor_robots/ridgeback/integration_ridgeback.mdx b/docs/robots/indoor_robots/ridgeback/integration_ridgeback.mdx index a065808a2..61e47194d 100644 --- a/docs/robots/indoor_robots/ridgeback/integration_ridgeback.mdx +++ b/docs/robots/indoor_robots/ridgeback/integration_ridgeback.mdx @@ -20,7 +20,7 @@ supply, and software integration. This guide aims to equip you with respect to t ### Mechanical Mounting When determining mechanical mounting, you can use the Standard mounting pattern on the Ridgeback. -At this time, the "PACS" mounting system is not available for Ridgeback. +At this time, the "PACS™" mounting system is not available for Ridgeback. #### Mechanical, Standard {#ridgeback-payload-mechanical-integration} @@ -154,6 +154,13 @@ The four pins should be connected as follows: +Refer to the following for more details: + +- [Computers](../../accessories/computers) +- [Sensors](../../accessories/sensors) +- [Manipulators](../../accessories/manipulators) +- [Accessories](../../accessories/add-ons) + --- ## Support {#support} diff --git a/docs/robots/indoor_robots/ridgeback/troubleshooting_ridgeback.mdx b/docs/robots/indoor_robots/ridgeback/troubleshooting_ridgeback.mdx index b62e1ee83..d287ff261 100644 --- a/docs/robots/indoor_robots/ridgeback/troubleshooting_ridgeback.mdx +++ b/docs/robots/indoor_robots/ridgeback/troubleshooting_ridgeback.mdx @@ -18,11 +18,11 @@ import Support from "/components/support.mdx"; ### Not getting Wi-Fi internet connection -Refer to the [Networking page](/docs/software/networking). +Refer to the [Networking page](../../../ros/networking). ### Cannot connect to the robot's computer over a network cable -Reter to the [Networking page](/docs/software/networking). +Reter to the [Networking page](../../../ros/networking). --- @@ -30,11 +30,11 @@ Reter to the [Networking page](/docs/software/networking). ### The computer does not automatically start -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). ### The computer keeps reverting to old BIOS settings -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). --- @@ -47,7 +47,7 @@ Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are ### Sensors are not turning on 1. Check that the sensor's User Power connector has the correct voltage. -2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](/docs/sensors). +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). ## If the Issue Persists diff --git a/docs/robots/indoor_robots/ridgeback/tutorials_ridgeback.mdx b/docs/robots/indoor_robots/ridgeback/tutorials_ridgeback.mdx index 0fe8c5127..2061af89e 100644 --- a/docs/robots/indoor_robots/ridgeback/tutorials_ridgeback.mdx +++ b/docs/robots/indoor_robots/ridgeback/tutorials_ridgeback.mdx @@ -5,16 +5,6 @@ sidebar_position: 4 --- import ComponentIntroductionRidgeback from "/components/introduction_ridgeback.mdx"; -import ComponentPs4ControllerPairing from "/components/ps4_controller_pairing.mdx"; -import ComponentChangingDefaultPassword from "/components/changing_default_password.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentConfiguringNetworkBridge from "/components/configuring_network_bridge.mdx"; -import ComponentPerformingABackup from "/components/performing_a_backup.mdx"; -import ComponentInstallingRobotSoftware from "/components/installing_robot_software.mdx"; -import ComponentInstallingRemoteComputerSoftware from "/components/installing_remote_computer_software.mdx"; -import ComponentAddingASourceWorkspace from "/components/adding_a_source_workspace.mdx"; -import ComponentDrivingWithRemoteController from "/components/driving_with_remote_controller.mdx"; import Support from "/components/support.mdx"; @@ -24,1054 +14,13 @@ import Support from "/components/support.mdx"; ### Introduction Ridgeback is a rugged, indoor omnidirectional platform designed to move manipulators and other heavy -payloads with ease and precision. These tutorials will assist you with setting up and operating your Ridgeback. -The tutorial topics are listed in the right column and presented in the suggested reading order. +payloads with ease and precision. -For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/ridgeback). - -:::note - -These tutorials assume that you are comfortable working with ROS. -We recommend starting with our [ROS tutorial](https://www.clearpathrobotics.com/assets/guides/noetic/ros/index.html) if you are not familiar with ROS already. - -::: - -:::note - -These tutorials specifically target Ridgeback robots running Ubuntu 20.04 with ROS Noetic, as it is the standard OS environment for Ridgeback. -If instead you have an older Ridgeback robot running Ubuntu 18.04 with ROS Melodic, please follow [this tutorial](https://www.clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html) to upgrade the robot OS environment to Ubuntu 20.04 with ROS Noetic. - -::: - -[Ridgeback ROS Packages](#ridgeback-ros-packages) provides the references for the software packages and key ROS topics. - -[Ridgeback Software Setup](#ridgeback-software-setup) outlines the steps for setting up the software on your Ridgeback robot and optionally on a remote computer. - -[Using Ridgeback](#using-ridgeback) describes how to simulate and drive your Ridgeback. [Simulation](#simulating-ridgeback) is a great way for most users to learn more about their Ridgeback; -understanding how to effectively operate Ridgeback in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a physical Ridgeback or you do not have one and are simply exploring the platform's capabilities. -[Driving Ridgeback](#driving-ridgeback) covers how to teleoperate Ridgeback using the remote control, as well as safety procedures for operating the physical robot. -Anyone working with a physical robot should be familiar with this section. - -[Navigating Ridgeback](#navigating-ridgeback) is a follow-on to what is learned in the [Simulation](#simulating-ridgeback) tutorial, as navigation and map-making may be run in the simulated environment. -However, this content is applicable to both the simulator and the real platform, if your Ridgeback is equipped with a laser scanner. - -[Ridgeback Tests](#testing-ridgeback) outlines how to validate that your physical Ridgeback is working correctly. - -[Advanced Topics](#advanced-topics) covers items that are only required in atypical situations. - ---- - -## Ridgeback ROS Packages {#ridgeback-ros-packages} - -Ridgeback fully supports ROS; all of the packages are available in [Ridgeback Github](https://github.com/ridgeback). - -### Description Package {#description-package} - -The [ridgeback_description](https://github.com/ridgeback/ridgeback/tree/melodic-devel/ridgeback_description) repository provides a [URDF](http://wiki.ros.org/urdf) model of Ridgeback. - -Ridgeback's URDF model can be visualized in RViz. -Once you have installed the desktop software in an upcoming tutorial, you will be able to run: - -``` -roslaunch ridgeback_viz view_model.launch -``` - -
-
- -
Ridgeback model
-
-
- -### Environment Variables - -Ridgeback can be customized and extended through the use of several environment variables. -The details are in the [ridgeback_description](https://github.com/ridgeback/ridgeback/tree/melodic-devel/ridgeback_description) repository. -Some of the most important ones are listed below. - -| Variable | Default | Description | -| :----------------------------- | :------ | :------------------------------------------------------------------------------------- | -| `RIDGEBACK_FRONT_HOKUYO_LASER` | `0` | Set to `1` if the robot is equipped with a front-facing Hokuyo LIDAR unit (e.g. UST10) | -| `RIDGEBACK_REAR_HOKUYO_LASER` | `0` | Set to `1` if the robot is equipped with a rear-facing Hokuyo LIDAR unit (e.g. UST10) | -| `RIDGEBACK_FRONT_SICK_LASER ` | `0` | Set to `1` if the robot is equipped with a front-facing SICK LMS-111 LIDAR unit | -| `RIDGEBACK_REAR_SICK_LASER ` | `0` | Set to `1` if the robot is equipped with a rear-facing SICK LMS-111 LIDAR unit | -| `RIDGEBACK_MICROTRAIN_IMU` | `0` | Set to `1` if the robot is equipped with a Microstrain IMU | - -### Configurations - -As an alternative to individually specifying each accessory, some fixed configurations are provided in the package. -These can be specified using the `config` arg to `description.launch`, and are intended especially as a convenience for simulation launch. - -| Config | Description | -| :------------------- | :------------------------------------------ | -| `base` | Base Ridgeback | -| `base_sick` | Ridgeback with front SICK laser | -| `dual_hokuyo_lasers` | Ridgeback with front and rear Hokuyo lasers | -| `dual_sick_lasers` | Ridgeback with front and rear SICK lasers | - -### Key ROS Topics - -You can view all topics that are active using `rostopic list`. -The most important topics are summarized in the table below. - -| Topic | Message Type | Purpose | -| :------------------- | :---------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/cmd_vel` | `geometry_msgs/Twist` | Input to Ridgeback's kinematic controller. Publish here to make Ridgeback go. | -| `/odometry/filtered` | `nav_msgs/Odometry` | Published by `robot_localization`, a filtered localization estimate based on wheel odometry (encoders) and integrated IMU. | -| `/imu/data` | `sensor_msgs/IMU` | Published by `imu_filter_madgwick`, an orientation estimated based on the Ridgeback's internal IMU. | -| `/mcu/status` | `ridgeback_msgs/Status` | Low-frequency status data for Ridgeback's systems. This information is republished in human readable form on the `diagnostics` topic and is best consumed with the Robot Monitor. | -| `/mcu/cmd_fans` | `ridgeback_msgs/Fans` | User can publish to this topic to control an the installed fans. | -| `/cmd_lights` | `ridgeback_msgs/Lights` | User can publish to this topic to override the default behavior of the Ridgeback body lights. | - ---- - -## Ridgeback Software Setup {#ridgeback-software-setup} - -### Backing Up Robot Configuration - -Upgrading your Clearpath Ridgeback to ROS Noetic from older ROS distributions is a straightforward process; -however it's important to understand that each Ridgeback is different, having undergone customization to your specifications. -For more complete upgrade instructions see [this guide](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). - -Please take the time to understand what these modifications are, and how to recreate them on your fresh install of Ubuntu Focal/ROS Noetic. - -#### Performing a Backup {#performing-a-backup} - - - -### Installing and Configuring Robot Software - -:::note - -If you are upgrading your Ridgeback from an older version of ROS, please refer to our upgrade instructions [here](https://clearpathrobotics.com/assets/guides/kinetic/kinetic-to-melodic/index.html) -and [here](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). - -::: - -#### Installing Ridgeback Software - -:::note - -The physical Ridgeback robot comes pre-configured with ROS and the necessary Ridgeback packages already installed; -therefore, you will only need to follow the instructions below if you are re-installing software on the Ridgeback. - -::: - - - -#### Testing Base Configuration - -You can check that the service has started correctly by checking the logs: - -``` -sudo journalctl -u ros -``` - -Your Ridgeback should now be accepting commands from your joystick (see next section). -The service will automatically start each time you boot your Ridgeback's computer. - -#### Pairing the Controller {#pairing-the-controller} - -##### PS4 Controller - - - -### Setting up Ridgeback's Network Configuration {#ridgeback-networking} - -Ridgeback is normally equipped with a combination Wi-Fi + Bluetooth module. -If this is your first unboxing, ensure that Ridgeback's wireless antennae are firmly screwed on to the chassis. - -#### First Connection - -By default, Ridgeback's Wi-Fi is in client mode, looking for the wireless network at the Clearpath factory. - - - -#### Changing the Default Password - - - -#### Wi-Fi Setup - - - -### Installing Remote Computer Software {#remote-computer-software} - -:::note - -This step is optional. - -::: - - - -#### Adding a Source Workspace - - - ---- - -## Using Ridgeback {#using-ridgeback} - -### Simulating Ridgeback {#simulating-ridgeback} - -Whether you actually have a Ridgeback robot or not, the Ridgeback simulator is a great way to get started with ROS robot development. -In this tutorial, we will go through the basics of starting Gazebo and RViz and how to drive your Ridgeback around. - -#### Installation - -To get started with the Ridgeback simulation, make sure you have a [working ROS installation](#remote-computer-software) set up on your Ubuntu desktop, and install the Ridgeback-specific metapackages for desktop and simulation: - -``` -sudo apt-get install ros-noetic-ridgeback-simulator ros-noetic-ridgeback-desktop -``` - -#### Launching Gazebo - -[Gazebo](https://gazebosim.org/home) is the most common simulation tool used in ROS. Ridgeback's model in Gazebo include reasonable approximations of its dynamics, including wheel slippage, skidding, and inertia. -To launch simulated Ridgeback in a simple example world, run the following command: - -``` -roslaunch ridgeback_gazebo ridgeback_world.launch -``` - -You should see the following window appear, or something like it. -You will see a base Ridgeback spawned with no additional sensors. -You can adjust the camera angle by clicking and dragging while holding CTRL, ALT, or the Shift key. - -
-
- -
Simulated Ridgeback in the Race World
-
-
- -The window which you are looking at is the Gazebo Client. -This window shows you the "true" state of the simulated world which the robot exists in. -It communicates on the backend with the Gazebo Server, which is doing the heavy lifting of actually maintaining the simulated world. -At the moment, you are running both the client and server locally on your own machine, but some advanced users may choose to run heavy duty simulations on separate hardware and connect to them over the network. - -:::note - -When simulating, you must leave Gazebo running. -Closing Gazebo will prevent other tools, such as RViz (see below) from working correctly. - -::: - -:::note - -See also [Additional Simulation Worlds](#additional-sim). - -::: - -##### Simulation Configs - -Note that like Ridgeback itself, Ridgeback's simulator comes in multiple flavours called configs. -A common one which you will need often is the `base_sick` config. -If you close the Gazebo window, and then CTRL-C out of the terminal process, you can re-launch the simulator with a specific config. - -``` -roslaunch ridgeback_gazebo ridgeback_world.launch config:=base_sick -``` - -You should now see the simulator running with the simulated SICK LMS-111 laser present. - -
-
- -
Simulated Ridgeback in the Race World with SICK LMS-111
-
-
- -Gazebo not only simulates the physical presence of the laser scanner, it also provides simulated data which reflects the robot's surroundings in its simulated world. -We will visualize the simulated laser scanner data shortly. - -### Interfacing with Ridgeback - -Both simulated and real Ridgeback robots expose the same ROS interface and can be interacted with in the same way. - -:::note - -Please make sure that the desktop packages for Ridgeback are installed: - -``` -sudo apt-get install ros-noetic-ridgeback-desktop -``` - -::: - -#### Launching RViz - -The next tool we will encounter is [RViz](http://wiki.ros.org/rviz). -Although superficially similar in appearance to Gazebo, RViz has a very different purpose. Unlike Gazebo, which shows the reality of the simulated world, RViz shows the robot's _perception_ of its world, whether real or simulated. -So while Gazebo won't be used with your real Ridgeback, RViz is used with both. - -You can use the following launch invocation to start RViz with a predefined configuration suitable for visualizing any standard Ridgeback config. - -``` -roslaunch ridgeback_viz view_robot.launch -``` - -You should see RViz appear. - -
-
- -
Ridgeback RViz
-
-
- -The RViz display only shows what the robot knows about its world, which presently, is nothing. -Because the robot doesn't yet know about the barriers which exist in its Gazebo world, they are not shown here. - -#### Driving with Interactive Controller - -RViz will also show Ridgeback's interactive markers around your Ridgeback's model. -These will appear as a blue ring and red arrows. -Depending on your robot, there will also be green arrows. -If you don't see them in your RViz display, select the Interact tool from the top toolbar and they should appear. - -Drag the red arrows in RViz to move in the linear X direction, and the blue circle to move in the angular Z direction. -If your robot supports lateral/sideways movement, you can drag the green arrows to move in the linear Y direction. -RViz shows you Ridgeback moving relative to its odometric frame, but it is also moving relative to the simulated world supplied by Gazebo. -If you click over to the Gazebo window, you will see Ridgeback moving within its simulated world. -Or, if you drive real Ridgeback using this method, it will have moved in the real world. - -#### Visualizing Sensors - -The RViz tool is capable of visualizing many common robotic sensors, as well as other data feeds which can give us clues as to what the robot is doing and why. -A great place to start with this is adding the [LaserScan](http://wiki.ros.org/rviz/DisplayTypes/LaserScan) plugin to visualize the laser scans being produced -by the simulated UST-10LX or LMS-111. In the left panel, click the "Add" button, then select the "Topics" tab, and then select the `front/scan` topic: - -
-
- -
Adding a laser scan visualization to Ridgeback
-
-
- -Click "OK" and you should see laser scan points now visible in the RViz window, relative to the robot. - -
-
- -
Visualizing Ridgeback with simulated laser scans
-
-
- -If you use the interactive markers to drive around, you'll notice that the laser scan points move a little bit but generally stay where they are. -This is the first step toward map making using [Gmapping](#gmapping-demo). - -#### Control - -There are three ways to send your Ridgeback control commands: - -1. Using the provided PS4 controller. - Refer to the [User Manual](/docs/robots/indoor_robots/ridgeback/user_manual_ridgeback/#controller) details on how to use the controller. - -2. Using the RViz instance above. - If you select the Interact option in the top toolbar, an interactive marker will appear around the Ridgeback and can be used to control speed. - -3. The [rqt_robot_steering plugin](http://wiki.ros.org/rqt_robot_steering). - Run the `rqt` command, and select **Plugins→Robot Tools→Robot Steering** from the top menu. - -Ridgeback uses [twist_mux](http://wiki.ros.org/twist_mux) to mix separate [geometry_msgs\Twist](http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html) control channels into the `ridgeback_velocity_controller/cmd_vel` topic. - -Additional velocity channels can be defined in [twist_mux.yaml](https://github.com/ridgeback/ridgeback/blob/melodic-devel/ridgeback_control/config/twist_mux.yaml), or can be piped into the lowest-priority `cmd_vel` topic. - -#### Odometry - -Ridgeback publishes odometry information on the `odometry/filtered` topic, as [nav_msgs/Odometry messages](http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html). -These are generated by [ekf_localization_node](http://wiki.ros.org/robot_localization), which processes data from several sensor sources using an Extended Kalman filter (EKF). -This includes data from the wheel encoders and IMU (if available). - -Additional odometry information sources can be added to the EKF in [robot_localization.yaml](https://github.com/ridgeback/ridgeback/blob/melodic-devel/ridgeback_control/config/robot_localization.yaml). - -#### Diagnostics - -:::note - -Diagnostics are only applicable to real Ridgeback robots, not simulation. - -::: - -Ridgeback provides hardware and software system [diagnostics](http://wiki.ros.org/diagnostics) on the ROS standard `/diagnostics` topic. -The best way to view these messages is using the [rqt_runtime_monitor](http://wiki.ros.org/rqt_runtime_monitor) plugin. -Run the `rqt` command, and select **Plugins→Robot Tools→Runtime Monitor** from the top menu. - -The same information is also published as a [ridgeback_msgs\Status](https://docs.ros.org/en/api/ridgeback_msgs/html/msg/Status.html) message on the `Status` topic. - -### Driving Ridgeback {#driving-ridgeback} - -There are four ways to drive Ridgeback and each way will work on a physical Ridgeback robot as well as on a simulated Ridgeback. - -1. Using the interactive remote controller in RViz. See [Simulating Ridgeback](#simulating-ridgeback). -2. Using autonomous navigation. See [Navigating Ridgeback](#navigating-ridgeback). -3. Using the controller for teleoperation. See below. -4. Publishing ROS messages. See below. - -:::warning - -Ridgeback is capable of reaching high speeds. -Careless driving can cause harm to the operator, bystanders, the robot, or other property. -Always remain vigilant, ensure you have a clear line of sight to the robot, and operate the robot at safe speeds. -We strongly recommend driving in normal (slow) mode first, and only enabling turbo in large, open areas that are free of people and obstacles. - -::: - -#### Driving with Remote Controller - -:::note - -For instructions on controller pairing, see [Pairing the Controller](#pairing-the-controller). - -::: - - - -#### Driving with ROS Messages - -You can manually publish `geometry_msgs/Twist` ROS messages to either the `/ridgeback_velocity_controller/cmd_vel` or the `/cmd_vel` ROS topics to drive Ridgeback. - -For example, in terminal, run: - -``` -rostopic pub /ridgeback_velocity_controller/cmd_vel geometry_msgs/Twist '{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}' -``` - -The command above makes Ridgeback drive forward momentarily at 0.5 m/s without any rotation. - -### Extending Ridgeback Startup - -Now that you've had Ridgeback for a while, you may be interested in how to extend it, perhaps add some more payloads, or augment the URDF. - -#### Startup Launch Context - -When ROS packages are grouped together in a directory and then built as one, the result is referred to as a workspace. -Each workspace generates a `setup.bash` file which the user may source in order to correctly set up important environment variables such as `PATH`, `PYTHONPATH`, and `CMAKE_PREFIX_PATH`. - -The standard system-wide setup file is in `/opt`: - -``` -source /opt/ros/noetic/setup.bash -``` - -When you run this command, you'll have access to `rosrun`, `roslaunch`, and all the other tools and packages installed on your system from Debian packages. - -However, sometimes you want to add additional system-specific environment variables, or perhaps packages built from source. -For this reason, Clearpath platforms use a wrapper setup file, located in `/etc/ros`: - -``` -source /etc/ros/setup.bash -``` - -This is the setup file which gets sourced by Ridgeback's background launch job, and in the default configuration, it is also sourced on your login session. -For this reason it can be considered the "global" setup file for Ridgeback's ROS installation. + -This file sets some environment variables and then sources a chosen ROS workspace, so it is one of your primary modification points for altering how Ridgeback launches. +The Ridgeback is currently only supported in [ROS 1](/docs/ros1noetic/robots/outdoor_robots/ridgeback/tutorials_ridgeback). -#### Launch Files - -The second major modification point is the `/etc/ros/noetic/ros.d` directory. -This location contains the launch files associated with the `ros` background job. -If you add launch files here, they will be launched with Ridgeback's startup. - -However, it's important to note that in the default configuration, any launch files you add may only reference ROS software installed in `/opt/ros/noetic`. -If you want to launch something from workspace in the home directory, you must change `/etc/ros/setup.bash` to source that workspace's setup file rather than the one from `/opt`. - -#### Adding URDF - -There are two possible approaches to augmenting Ridgeback's URDF. -The first is that you may simply set the `Ridgeback_URDF_EXTRAS` environment variable in `/etc/ros/setup.bash`. -By default, it points to an empty dummy file, but you can point it to a file of additional links and joints which you would like mixed into Ridgeback's URDF (via xacro) at runtime. - -The second, more sophisticated way to modify the URDF is to create a _new_ package for your own robot, and build your own URDF which wraps the one provided by [ridgeback_description](https://github.com/ridgeback/ridgeback/tree/melodic-devel/ridgeback_description). - -### Keeping Ridgeback Updated - -For details on updating Ridgeback software or firmware, refer to [Software Maintenance](/docs/robots/indoor_robots/ridgeback/maintenance_ridgeback#software_maintenance). - ---- - -## Navigating Ridgeback {#navigating-ridgeback} - -To get all Navigation related files for Ridgeback, run: - -``` -sudo apt-get install ros-noetic-ridgeback-navigation -``` - -Below are the example launch files for three different configurations for navigating Ridgeback: - -- Navigation in an odometric frame without a map, using only [move_base](http://wiki.ros.org/move_base). -- Generating a map using [Gmapping](http://wiki.ros.org/gmapping). -- Localization with a known map using [amcl](http://wiki.ros.org/amcl). - -Referring to the [Simulating Ridgeback](#simulating-ridgeback) instructions, bring up Ridgeback with the front laser enabled for the following demos: - -``` -roslaunch ridgeback_gazebo ridgeback_world.launch config:=front_laser -``` - -If you're working with a real Ridgeback, it's suggested to connect via SSH and launch the [ridgeback_navigation](https://github.com/ridgeback/ridgeback/tree/melodic-devel/ridgeback_navigation) launch files from onboard the robot. -You'll need to have bidirectional communication with the robot's roscore in order to launch RViz on your workstation (see [here](#remote-computer-software)). - -### Navigation without a Map - -In the odometry navigation demo Ridgeback attempts to reach a given goal in the world within a user-specified tolerance. -The 2D navigation, generated by `move_base`, takes in information from odometry, laser scanner, and a goal pose and outputs safe velocity commands. -In this demo the configuration of move_base is set for navigation without a map in an odometric frame (that is, without reference to a map). - -To launch the navigation demo, run: - -``` -roslaunch ridgeback_navigation odom_navigation_demo.launch -``` - -To visualize with the suggested RViz configuration launch: - -``` -roslaunch ridgeback_viz view_robot.launch config:=navigation -``` - -
-
- -
RViz with Ridgeback's odom navigation configuration
-
-
- -To send goals to the robot, select the _2D Nav Goal_ tool from the top toolbar, and then click anywhere in the RViz view to set the position. -Alternatively, click and drag slightly to set the goal position and orientation. - -If you wish to customize the parameters of move_base, local costmap, global costmap and base_local_planner, clone [ridgeback_navigation](https://github.com/ridgeback/ridgeback/tree/melodic-devel/ridgeback_navigation) into your own workspace and modify the corresponding files in the `params` subfolder. - -### Making a Map {#gmapping-demo} - -In this demonstration, Ridgeback generates a map using Gmapping. Begin by launch the Gmapping launch file on the robot: - -``` -roslaunch ridgeback_navigation gmapping_demo.launch -``` - -And on your workstation, launch RViz with the suggested configuration: - -``` -roslaunch ridgeback_viz view_robot.launch config:=gmapping -``` - -
-
- -
RViz with Ridgeback's Gmapping configuration
-
-
- -You must slowly drive Ridgeback around to build the map. -As obstacles come into view of the laser scanner, they will be added to the map, which is shown in RViz. -You can either drive manually using the interactive markers, or semi-autonomously by sending navigation goals (as above). - -When you're satisfied, you can save the produced map using [map_saver](http://wiki.ros.org/map_server#map_saver): - -``` -rosrun map_server map_saver -f mymap -``` - -This will create a `mymap.yaml` and `mymap.pgm` file in your current directory. - -### Navigation with a Map - -Using [amcl](http://wiki.ros.org/amcl), Ridgeback is able to globally localize itself in a known map. -AMCL takes in information from odometry, laser scanner and an existing map and estimates the robot's pose. - -To start the AMCL demo: - -``` -roslaunch ridgeback_navigation amcl_demo.launch map_file:=/path/to/my/map.yaml -``` - -If you don't specify `map_file`, it defaults to an included pre-made map of the default "Ridgeback Race" environment which Ridgeback's simulator spawns in. -If you're using a real Ridgeback in your own environment, you'll definitely want to override this with the map created using the Gmapping demo. - -Before navigating, you need to initialize the localization system by setting the pose of the robot in the map. -This can be done using 2D Pose Estimate in RViz or by setting the amcl `initial_pose` parameters. To visualize with the suggested RViz configuration launch: - -``` -roslaunch ridgeback_viz view_robot.launch config:=localization -``` - -When RViz appears, select the _Set 2D Pose tool_ from the toolbar, and click on the map to indicate to the robot approximately where it is. - ---- - -## Ridgeback Tests {#testing-ridgeback} - -Ridgeback robots come preinstalled with a set of test scripts as part of the `ridgeback_tests` ROS package, which can be run to verify robot functionality at the component and system levels. - -If your Ridgeback does not have the `ridgeback_tests` ROS package installed already, you can manually install it by opening terminal and running: - -``` -sudo apt-get install ros-noetic-ridgeback-tests -``` - -### ROS Tests - -The `ros_tests` script exposes a set of interactive tests to verify the functionality of core features. -These tests run at the ROS-level via ROS topics, and serve as a useful robot-level diagnostic tool for identifying the root cause of problems, or at the very least, narrowing down on where the root cause(s) may be. - -#### Running ROS Tests - -To run `ros_tests` on a Ridgeback robot, open terminal and run: - -``` -rosrun ridgeback_tests ros_tests -``` - -Upon running `ros_tests`, a list of available tests will be shown in a menu. -From the menu, you can choose individual tests to run, or simply choose the option to automatically run all the tests. - -The details of each test are shown below. - -- **Lighting Test** - - The **Lighting Test** checks that the robot's lights are working properly. - - This test turns the lights off, red, green, and blue (in order) by publishing lighting commands to the `/cmd_lights` ROS topic. - The user will be asked to verify that the lights change to the expected colours. - -- **Motion Stop Test** - - The **Motion Stop Test** checks that the robot's motion-stop is working properly. - - This test subscribes to the `/mcu/status` ROS topic and checks that when the motion-stop is manually engaged by the user, the motion-stop state is correctly reported on the `/mcu/status` ROS topic. - The user will be asked to verify that the lights flash red while the motion-stop is engaged. - -- **ADC Test** - - The **ADC Test** checks that the robot's voltage and current values across its internal hardware components are within expected tolerances. - - This test subscribes to the `/mcu/status` ROS topic and checks that the voltage and current values across the internal hardware are within expected tolerances. - -- **Rotate Test** - - The **Rotate Test** rotates the robot counter clockwise 2 full revolutions and checks that the motors, IMU, and EKF odometry are working properly. - - This test: - - - Subscribes to the `/imu/data` ROS topic to receive angular velocity measurements from the IMU's Gyroscope. - These measurements are converted into angular displacement estimations, and the robot will rotate until 2 full revolutions are estimated. - - Subscribes to the `/odometry/filtered` ROS topic to receive angular velocity estimations from the EKF odometry. - These measurements are converted into angular displacement estimations, and are output as comparison to the angular displacement estimations from the IMU's Gyroscope. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to rotate the robot. - - The user will be asked to verify that the robot rotates 2 full revolutions. - - :::note - - The **Rotate Test** rotates the robot using the IMU's Gyroscope data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. - - ::: - -- **Drive Test** - - The **Drive Test** drives the robot forward 1 metre and checks that the motors, encoders, and encoder-fused odometry are working properly. - - This test: - - - Subscribes to the `/ridgeback_velocity_controller/odom` ROS topic to receive linear displacement estimations from the encoder-fused odometry. - The robot will drive forward until 1 metre is estimated. - - Subscribes to the `/feedback` ROS topic to receive linear displacement measurements from the individual encoders. - These measurements are output as comparison to the linear displacement estimations from the encoder-fused odometry. - - Subscribes to the `/joint_state` ROS topic to receive linear displacement measurements from individual the encoders. - These measurements are output as comparison to the linear displacement estimations from the encoder-fused odometry. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to drive the robot. - - The user will be asked to verify that the robot drives forward 1 metre. - - :::note - - The **Drive Test** drives the robot using the Odometry data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. - - ::: - -- **Cooling Test** - - The **Cooling Test** checks that the fans are working properly. - - This test makes the fans spin at different speeds by publishing fan speed commands to the `/mcu/cmd_fans` ROS topic. - The user will be asked to verify that the fans change to the expected speeds. - -### CAN Bus Test - -The `check_can_bus_interface` script checks that communication between the motors, encoders, robot's MCU, and robot's computer are working properly over the CAN bus interface. - -This script verifies that the `can0` interface is detected and activated, then proceeds to check the output of `candump` to verify that good CAN packets are being transmitted. - -#### Running CAN Bus Test - -To run the `check_can_bus_interface` script on a Ridgeback robot, open terminal and run: - -``` -rosrun ridgeback_tests check_can_bus_interface -``` - ---- - -## Advanced Topics - -### Configuring the Network Bridge - - - -### Additional Simulation Worlds {#additional-sim} - -In addtion to the default `ridgeback_world.launch` file, `ridgeback_gazebo` also contains -`spawn_ridgeback.launch`, which is intended to be included in any custom world to add a -Ridgeback simulation to it. - -To add a Ridgeback to any of your own worlds, simply include the `spawn_ridgeback.launch` file in your own world's launch: - -```markup - - - - - - - -``` - -Finally, Clearpath provides an additional suite of simulation environments that can be downloaded separately and used with Ridgeback, as described below. - -#### Clearpath Gazebo Worlds - -The Clearpath Gazebo Worlds collection contains 4 different simulation worlds, representative of different environments our robots are designed to operate in: - -- Inspection World: a hilly outdoor world with water and a cave -- Agriculture World: a flat outdoor world with a barn, fences, and solar farm -- Office World: a flat indoor world with enclosed rooms and furniture -- Construction World: office world, under construction with small piles of debris and partial walls - -Ridgeback is supported in the Office and Construction worlds. - -#### Installation - -To download the Clearpath Gazebo Worlds, clone the repository from github into the same workspace as your Ridgeback: - -``` -cd ~/catkin_ws/src -git clone https://github.com/clearpathrobotics/cpr_gazebo.git -``` - -Before you can build the package, make sure to install dependencies. -Because Clearpath Gazebo Worlds depends on all of our robot's simulation packages, and some of these are currently only -available as source code, installing dependencies with `rosdep install --from-paths [...]` will likely fail. - -To simulate Ridgeback in the Office and Construction worlds the only additional dependency is the `gazebo_ros` package. - -Once the dependencies are installed, you can build the package: - -``` -cd ~/catkin_ws -catkin_make -source devel/setup.bash -``` - -#### Running the Office Simulation - -Office World is a small indoor environment representing a commercial office space. It features several large, open -areas with furniture, as well as a narrow hallway with smaller offices and meeting rooms. It is intended to simulate -missions in commercial spaces, such as facilitating deliveries, security monitoring, and inspecting equipment. - -
-
- -
Ridgeback in the Office World
-
-
- -To launch Office World with a Ridgeback, run the following command: - -``` -roslaunch cpr_office_gazebo office_world.launch platform:=ridgeback -``` - -You should see Ridgeback spawn in the office world, as pictured. - -To customize Ridgeback's payload, for example to add additional sensors, see -[Customizing Ridgeback's Payload](#customizing-ridgeback-payloads). - -Once the simulation is running you can use RViz and other tools as described -in [Simulating Ridgeback](#simulating-ridgeback) and -[Navigating Ridgeback](#navigating-ridgeback) to control and monitor the robot. -For example, below we can see the `gmapping_demo` from `ridgeback_navigation` -being used to build a map of the office world: - -
-
- -
Gmapping in Office World
-
-
- -You can see the complete layout of the office below: - -
-
- -
The layout of Office World
-
-
- -#### Running the Construction Simulation - -Construction World is the same basic layout as Office World, representing the same office space under construction/renovation. -It is an indoor environment with small hills of debris/rubble, partial walls, and piles of construction supplies. It -is designed to simulate missions in any sort of construction site. - -
-
- -
Ridgeback in the Construction World
-
-
- -To launch Construction World with a Ridgeback, run the following command: - -``` -roslaunch cpr_office_gazebo office_construction_world.launch platform:=ridgeback -``` - -You should see Ridgeback spawn in the construction world, as pictured. - -To customize Ridgeback's payload, for example to add additional sensors, see -[Customizing Ridgeback's Payload](#customizing-ridgeback-payloads). - -Once the simulation is running you can use RViz and other tools as described -in [Simulating Ridgeback](#simulating-ridgeback) and -[Navigating Ridgeback](#navigating-ridgeback) to control and monitor the robot. - -You can see the complete layout of the office below: - -
-
- -
The layout of Construction World
-
-
- -### Customizing Ridgeback's Payload {#customizing-ridgeback-payloads} - -To customize Ridgeback's payload you must use the environment variables described in -[ridgeback_description](https://github.com/ridgeback/ridgeback/tree/melodic-devel/ridgeback_description). -For example, to equip Ridgeback with a Sick LMS-111 lidar, as pictured in several of the images above, run - -``` -export RIDGEBACK_LASER=1 -``` - -before launching the simulation world. - -You can also add additional sensors by creating a customized URDF and setting the `RIDGEBACK_URDF_EXTRAS` environment -variable to point to it. - -For example, let's suppose you want to equip Ridgeback with an Intel RealSense D435 camera. First, install the `realsense2_camera` -and `realsense2_description` packages, along with the gazebo plugins: - -``` -sudo apt-get install ros-$ROS_DISTRO-realsense2-camera ros-$ROS_DISTRO-realsense2-description ros-$ROS_DISTRO-gazebo-plugins -``` - -Then create your customized URDF file, for example `$HOME/Desktop/realsense.urdf.xacro`. Put the following in it: - -```xml - - - - - - - - - - - - - - - - true - - 30 - - - 1.5184351666666667 - 1.0122901111111111 - - - 640 - 480 - RGB8 - - - - 0.01 - 50.0 - - - - 0.2 - true - 30 - realsense - color/image_raw - color/camera_info - depth/image_rect_raw - depth/camera_info - depth/color/points - front_realsense_gazebo - 0.105 - 8.0 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -This file defines the additional links for adding a RealSense camera to the robot, as well as configuring the `openni_kinect` -plugin for Gazebo to simulate data from a depth camera. The camera itself will be connected to the Ridgeback's `front_mount` -link, offset 5cm towards the front of the robot. - -Now, set the `RIDGEBACK_URDF_EXTRAS` environment variable and try viewing the Ridgeback model: - -``` -export RIDGEBACK_URDF_EXTRAS=$HOME/Desktop/realsense.urdf.xacro -roslaunch ridgeback_viz view_model.launch -``` - -You should see the Ridgeback model in RViz, with the RealSense camera mounted to it: - -
-
- -
Ridgeback with a RealSense D435
-
-
- -To launch the customized Ridgeback in any of the new simulation environments, similarly run: - -``` -export RIDGEBACK_URDF_EXTRAS=$HOME/Desktop/realsense.urdf.xacro -roslaunch cpr_office_gazebo office_world.launch platform:=ridgeback -``` - -You should see Ridgeback spawn in the office world with the RealSense camera: - -
-
- -
Ridgeback with a RealSense D435 in Office World
-
-
- -You can view the sensor data from the RealSense camera by running - -``` -roslaunch ridgeback_viz view_robot.launch -``` - -and adding the camera & pointcloud from the `/realsense/color/image_raw` and `/realsense/depth/color/points` topics: - -
-
- -
Ridgeback with a RealSense in RViz showing pointcloud and RGB topics
-
-
+For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/ridgeback). --- diff --git a/docs/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx b/docs/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx index 737207294..f31e1df3b 100644 --- a/docs/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx +++ b/docs/robots/indoor_robots/ridgeback/user_manual_ridgeback.mdx @@ -9,9 +9,6 @@ toc_max_heading_level: 4 import ComponentIntroductionRidgeback from "/components/introduction_ridgeback.mdx"; import ComponentSupport from "/components/support.mdx"; import ComponentUsingRos from "/components/using_ros.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentRemoteRosConnectivity from "/components/remote_ros_connectivity.mdx"; import ComponentCommonSafeWorkProcedures from "/components/common_safe_work_procedures.mdx"; import ComponentSafetyWarning from "/components/safety_warning.mdx"; @@ -99,7 +96,7 @@ See http://wiki.ros.org/ridgeback_base for information on commanding the body li The User Bay provides access to the User Power Panel, as well as USB and Ethernet ports, and additional space for stowing user equipment. The electrical panel can be used to power your payloads, with further details available -in [Electrical Integration](/docs/robots/indoor_robots/ridgeback/integration_ridgeback#ridgeback-payload-electrical-integration). +in [Electrical Integration](./integration_ridgeback#ridgeback-payload-electrical-integration). The USB3 ports are connected directly to the Onboard Computer, and the Ethernet ports connect to the onboard network switch. To connect a device to the onboard network, it is suggested to give it a static IP in the 192.168.131.x/24 subnet and this cannot be changed since the MCU is statically set to 192.168.131.2 and expects the computer to be at @@ -112,14 +109,14 @@ this cannot be changed since the MCU is statically set to 192.168.131.2 and expe | 192.168.131.20 | Front-facing LIDAR | | 192.168.131.21 | Rear-facing LIDAR (if present) | -See [Network IP Addresses](/docs/tools/network_ip_addresses) for a full list of common IP addresses. +See [Network IP Addresses](../../../ros/networking/network_ip_addresses) for a full list of common IP addresses. #### Payload Integration Plate The Payload Integration Plate provides a robust foundation for mounting payload structures such as UR5/UR10 manipulation arms or any other combination of sensors and manipulators. For more information and guidance on mounting payload structures on top of Ridgeback, please refer to -[Mechanical Integration](/docs/robots/indoor_robots/ridgeback/integration_ridgeback#ridgeback-payload-mechanical-integration). +[Mechanical Integration](./integration_ridgeback#ridgeback-payload-mechanical-integration). #### Orientation References @@ -175,7 +172,7 @@ are clear of the ground. A standard Ridgeback ships with an integrated Onboard Computer that is directly connected to the Ridgeback MCU. Most users will also make use of a Remote Computer, which is used to control Ridgeback and gather data. These two computers must be set up to communicate with each other. Details on the Remote Computer setup -can be found in [Ridgeback Tutorials](/docs/robots/indoor_robots/ridgeback/tutorials_ridgeback). +can be found in [Ridgeback Tutorials](./tutorials_ridgeback). ### Powering Up @@ -187,7 +184,7 @@ solid red lights in back, and solid white in front. To get Ridgeback connected to your local Wi-Fi network, you must first access the Onboard Computer using a wired connection to the robot. Open the User Bay, then connect to one of the network ports with a standard Ethernet cable. -Then, see [Ridgeback Tutorials](/docs/robots/indoor_robots/ridgeback/tutorials_ridgeback#ridgeback-networking) for details +Then, see [Ridgeback Tutorials](./tutorials_ridgeback) for details on completing the networking setup. ### Connecting and Using the Controller {#controller} @@ -195,7 +192,7 @@ on completing the networking setup. To use your controller, it must be paired with your Ridgeback and powered on. For a standard Ridgeback with the Onboard Computer from Clearpath Robotics, the controller is already paired with your Ridgeback. If your controller has become unpaired or if you wish to pair a new controller, following the instructions in the -[Ridgeback Tutorials](/docs/robots/indoor_robots/ridgeback/tutorials_ridgeback#pairing-the-controller). +[Ridgeback Tutorials](./tutorials_ridgeback#pairing-the-controller). To teleoperate Ridgeback, first clear the motion-stop. Then, power on the controller by pressing the `PS` button on the controller. @@ -287,7 +284,7 @@ front or rear of Ridgeback and would occlude the Stop buttons. Note that the Ridgeback MCU board includes a breakout to allow an external motion-stop button/switch to be integrated by the end user, which could be used to engage/disengage Stop Mode. -See [Optional External Motion Stop](/docs/robots/indoor_robots/ridgeback/integration_ridgeback#ridgeback-external-motion-stop) +See [Optional External Motion Stop](./integration_ridgeback#ridgeback-external-motion-stop) for details on adding an external motion-stop button/switch. ### Electrical System diff --git a/docs/robots/learing_platforms/turtlebot4/_category_.json b/docs/robots/learing_platforms/turtlebot4/_category_.json deleted file mode 100644 index deb597d80..000000000 --- a/docs/robots/learing_platforms/turtlebot4/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "TurtleBot 4", - "position": 1 -} diff --git a/docs/robots/learing_platforms/turtlebot4/integration_turtlebot4.mdx b/docs/robots/learing_platforms/turtlebot4/integration_turtlebot4.mdx deleted file mode 100644 index b3ed6dbcd..000000000 --- a/docs/robots/learing_platforms/turtlebot4/integration_turtlebot4.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: TurtleBot 4 Integration -sidebar_label: Integration -sidebar_position: 2 ---- - -:::note - -TurtleBot 4 documentation is hosted on a separate site. Use the links below -to access tutorial information. - -- [Link to TurtleBot 4 Mechanical Integration](https://turtlebot.github.io/turtlebot4-user-manual/mechanical/) -- [Link to TurtleBot 4 Electrical Integration](https://turtlebot.github.io/turtlebot4-user-manual/electrical/) - -::: diff --git a/docs/robots/learing_platforms/turtlebot4/troubleshooting_turtlebot4.mdx b/docs/robots/learing_platforms/turtlebot4/troubleshooting_turtlebot4.mdx deleted file mode 100644 index 9bf77971d..000000000 --- a/docs/robots/learing_platforms/turtlebot4/troubleshooting_turtlebot4.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: TurtleBot 4 Troubleshooting -sidebar_label: Troubleshooting -sidebar_position: 5 ---- - -:::note - -TurtleBot 4 documentation is hosted on a separate site. Use the link below -to access troubleshooting information. - -[Link to TurtleBot 4 Troubleshooting](https://turtlebot.github.io/turtlebot4-user-manual/troubleshooting/) - -::: diff --git a/docs/robots/learing_platforms/turtlebot4/tutorials_turtlebot4.mdx b/docs/robots/learing_platforms/turtlebot4/tutorials_turtlebot4.mdx deleted file mode 100644 index bc53e6e9a..000000000 --- a/docs/robots/learing_platforms/turtlebot4/tutorials_turtlebot4.mdx +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: TurtleBot 4 Tutorials -sidebar_label: Tutorials -sidebar_position: 3 ---- - -:::note - -TurtleBot 4 documentation is hosted on a separate site. Use the link below -to access tutorial information. - -[Link to TurtleBot 4 Tutorials](https://turtlebot.github.io/turtlebot4-user-manual/tutorials/) - -::: diff --git a/docs/robots/learing_platforms/_category_.json b/docs/robots/learning_platforms/_category_.json similarity index 69% rename from docs/robots/learing_platforms/_category_.json rename to docs/robots/learning_platforms/_category_.json index 637849069..1a7590254 100644 --- a/docs/robots/learing_platforms/_category_.json +++ b/docs/robots/learning_platforms/_category_.json @@ -1,4 +1,4 @@ { "label": "Learning Platforms", - "position": 3 + "position": 4 } diff --git a/docs/robots/learing_platforms/turtlebot4/user_manual_turtlebot4.mdx b/docs/robots/learning_platforms/turtlebot4.mdx similarity index 93% rename from docs/robots/learing_platforms/turtlebot4/user_manual_turtlebot4.mdx rename to docs/robots/learning_platforms/turtlebot4.mdx index 62312d94d..2a92e737d 100644 --- a/docs/robots/learing_platforms/turtlebot4/user_manual_turtlebot4.mdx +++ b/docs/robots/learning_platforms/turtlebot4.mdx @@ -1,6 +1,6 @@ --- title: TurtleBot 4 User Manual -sidebar_label: User Manual +sidebar_label: TurtleBot 4 sidebar_position: 1 --- diff --git a/docs/robots/legacy/_category_.json b/docs/robots/legacy/_category_.json index 158ad32de..2db18d85f 100644 --- a/docs/robots/legacy/_category_.json +++ b/docs/robots/legacy/_category_.json @@ -1,4 +1,4 @@ { "label": "Legacy", - "position": 4 + "position": 5 } diff --git a/docs/robots/outdoor_robots/_category_.json b/docs/robots/outdoor_robots/_category_.json index 604024920..74c9bd8fe 100644 --- a/docs/robots/outdoor_robots/_category_.json +++ b/docs/robots/outdoor_robots/_category_.json @@ -1,4 +1,4 @@ { "label": "Outdoor", - "position": 1 + "position": 2 } diff --git a/docs/robots/outdoor_robots/husky/integration_husky/integration_husky.mdx b/docs/robots/outdoor_robots/husky/integration_husky/integration_husky.mdx index 6d7a62aab..2113014aa 100644 --- a/docs/robots/outdoor_robots/husky/integration_husky/integration_husky.mdx +++ b/docs/robots/outdoor_robots/husky/integration_husky/integration_husky.mdx @@ -22,7 +22,7 @@ supply, and software integration. This guide aims to equip you with respect to t When determining mechanical mounting, you have two options, both of which are described below. - the "Standard" aluminum extrusion interface -- the "PACS" mounting system and associated kits +- the "PACS™" mounting system and associated kits ### Mechanical, Standard @@ -43,19 +43,19 @@ We suggest using the following items to interface with this extrusion: Misumi also offers a range of configurable products for this 20 X 20 extrusion that can help with your integration. -### Mechanical, PACS +### Mechanical, PACS™ Refer to the following pages for Husky brackets that can simplify your integration. -- [Top Plate](/docs/robots/outdoor_robots/husky/integration_husky/kits/top_plate_husky) -- [Weatherproofing Cover](/docs/robots/outdoor_robots/husky/integration_husky/kits/user_bay_cover_husky) -- [Riser, Full](/docs/robots/outdoor_robots/husky/integration_husky/kits/riser_full_husky) -- [Riser, Partial](/docs/robots/outdoor_robots/husky/integration_husky/kits/riser_partial_husky) -- [Riser, Stiffener](/docs/robots/outdoor_robots/husky/integration_husky/kits/riser_stiffener_husky) -- [Electronics Rack](/docs/robots/outdoor_robots/husky/integration_husky/kits/electronics_rack_husky) -- [OutdoorNav Starter Kit](/docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit) +- [Top Plate](./kits/top_plate_husky) +- [Weatherproofing Cover](./kits/user_bay_cover_husky) +- [Riser, Full](./kits/riser_full_husky) +- [Riser, Partial](./kits/riser_partial_husky) +- [Riser, Stiffener](./kits/riser_stiffener_husky) +- [Electronics Rack](./kits/electronics_rack_husky) +- [OutdoorNav Starter Kit](../../../accessories/add-ons/outdoornav_starter_kit) --- @@ -163,7 +163,7 @@ or your robot may have more Stop switches in series with this circuit. These additional components in series may be: - Emergency Stop buttons -- [Wireless Stop receivers](/docs/accessories/wireless_stop_system) +- [Wireless Stop receivers](../../../accessories/add-ons/wireless_stop_system) - Relays or similar PLC components - Manipulator control cabinets @@ -224,6 +224,13 @@ On older revisions of the Husky MCU PCBA, the labels are different, but the func +Refer to the following for more details: + +- [Computers](../../../accessories/computers) +- [Sensors](../../../accessories/sensors) +- [Manipulators](../../../accessories/manipulators) +- [Accessories](../../../accessories/add-ons) + --- ## Support {#support} diff --git a/docs/robots/outdoor_robots/husky/troubleshooting_husky.mdx b/docs/robots/outdoor_robots/husky/troubleshooting_husky.mdx index af99c0128..7e6b7c09a 100644 --- a/docs/robots/outdoor_robots/husky/troubleshooting_husky.mdx +++ b/docs/robots/outdoor_robots/husky/troubleshooting_husky.mdx @@ -43,7 +43,7 @@ If your robot was functioning recently, the most common causes are: If not, connect to the computer with SSH, or using a computer monitor to see if the computer is running. - The USB-Serial cable is not connected. Check that the USB end is seated in the robot's computer. - Check that the DE-9 end is seated on it's [jack in the Husky user bay](/docs/robots/outdoor_robots/husky/user_manual_husky/#husky_user_manual_pinout). + Check that the DE-9 end is seated on it's [jack in the Husky user bay](./user_manual_husky/#onboard-computer-setup). - Someone has changed ROS environment variables. You can review Husky's environment variables by running: ``` nano /etc/ros/setup.bash @@ -184,11 +184,11 @@ Your Husky will roll if: ### Not getting Wi-Fi internet connection -Refer to the [Networking page](/docs/software/networking). +Refer to the [Networking page](../../../ros/networking). ### Cannot connect to the robot's computer over a network cable -Reter to the [Networking page](/docs/software/networking). +Reter to the [Networking page](../../../ros/networking). --- @@ -196,11 +196,11 @@ Reter to the [Networking page](/docs/software/networking). ### The computer does not automatically start -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). ### The computer keeps reverting to old BIOS settings -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). --- @@ -213,7 +213,7 @@ Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are ### Sensors are not turning on 1. Check that the sensor's User Power connector has the correct voltage. -2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](/docs/sensors). +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). ### A ROS package isn't starting diff --git a/docs/robots/outdoor_robots/husky/tutorials_husky.mdx b/docs/robots/outdoor_robots/husky/tutorials_husky.mdx new file mode 100644 index 000000000..190ec65b2 --- /dev/null +++ b/docs/robots/outdoor_robots/husky/tutorials_husky.mdx @@ -0,0 +1,35 @@ +--- +title: Husky Tutorials +sidebar_label: Tutorials +sidebar_position: 4 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import ComponentIntroductionHusky from "/components/introduction_husky.mdx"; +import ComponentTutorialLinks from "../../../components/_tutorials_link.mdx"; +import Support from "/components/support.mdx"; + + + +## Husky Overview + +### Introduction + +Husky is a rugged, outdoor-ready unmanned ground vehicle (UGV), suitable for research and rapid prototyping applications. +These tutorials will assist you with setting up and operating your Husky. + +For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/husky). + + + +## Jetson Installation + +Refer to the [Jetson](../../accessories/computers/jetson/jetson_hardware) page for details on installing a Jetson in Husky. +However, at present, ROS 2 software is not supported on Jetson in Husky. + +--- + +## Support {#support} + + diff --git a/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky.mdx b/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky.mdx deleted file mode 100644 index e3402131d..000000000 --- a/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Husky Tutorials -sidebar_label: Tutorials -sidebar_position: 1 ---- - -As there are major changes between ROS1 and ROS2, the Husky tutorials are separated into two groups. -Choose the appropriate one for your Husky. - -- [Husky ROS1 Tutorials](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros1) -- [Husky ROS2 Tutorials](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros2) diff --git a/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros2.mdx b/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros2.mdx deleted file mode 100644 index 66afb1def..000000000 --- a/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros2.mdx +++ /dev/null @@ -1,512 +0,0 @@ ---- -title: Husky Tutorials (ROS2) -sidebar_label: ROS2 -sidebar_position: 3 -toc_min_heading_level: 2 -toc_max_heading_level: 4 ---- - -import ComponentIntroductionHusky from "/components/introduction_husky.mdx"; -import ComponentRos1ToRos2UpgradePrep from "/components/ros1_to_ros2_upgrade_prep.mdx"; -import ComponentPs4ControllerPairing from "/components/ps4_controller_pairing.mdx"; -import ComponentChangingDefaultPassword from "/components/changing_default_password.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentConfiguringNetworkBridge from "/components/configuring_network_bridge.mdx"; -import ComponentPerformingABackup from "/components/performing_a_backup.mdx"; -import ComponentInstallingRobotSoftwareRos2 from "/components/installing_robot_software_ros2.mdx"; -import ComponentRemoteRos2Connection from "/components/remote_ros2_connection.mdx"; -import ComponentAddingASourceWorkspace from "/components/adding_a_source_workspace.mdx"; -import ComponentDrivingWithRemoteController from "/components/driving_with_remote_controller.mdx"; -import Support from "/components/support.mdx"; - - - -## Husky Overview - -### Introduction - -Husky is a rugged, outdoor-ready unmanned ground vehicle (UGV), suitable for research and rapid prototyping applications. -These tutorials will assist you with setting up and operating your Husky. The tutorial topics are listed in -the right column and presented in the suggested reading order. - -For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/husky). - -:::note - -These tutorials assume that you are comfortable working with [ROS](https://docs.ros.org/). We recommend starting with -[ROS2 tutorials](https://docs.ros.org/en/foxy/Tutorials.html) if you are not familiar with ROS already. - -::: - -:::note - -These tutorials specifically target Husky robots running Ubuntu 20.04 with [ROS2 Foxy](https://docs.ros.org/en/foxy/index.html). - -::: - -[Husky ROS Packages](#husky-ros-packages) provides the references for the software packages and key ROS topics. - -[Husky Software Setup](#husky-software-setup) outlines the steps for setting up the software on -your Husky robot and optionally on a remote computer. - -[Using Husky](#using-husky) describes how to simulate and drive your Husky. [Simuation](#simulating-husky) -is a great way for most users to learn more about their Husky; understanding how to effectively operate Husky -in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a -physical Husky, or you do not have one and are simply exploring the platform's capabilities. -[Driving Husky](#driving-husky) covers how to teleoperate Husky using the remote control, as well as safety -procedures for operating the physical robot. Anyone working with a physical robot should be familiar with this section. - - - -[Advanced Topics](#advanced-topics) covers items that are only required in atypical situations. - ---- - -## Husky ROS Packages {#husky-ros-packages} - -Husky fully supports ROS; all of the packages are available in [Husky Github](https://github.com/husky). - -### Description Package - -The [husky_description](https://github.com/husky/husky/tree/foxy-devel/husky_description) repository -provides a [URDF](http://wiki.ros.org/urdf) model of Husky. - -Husky's URDF model can be visualized in RViz and can be customized and extended through the use of several -environment variables. Once you have installed the desktop software in an upcoming tutorial, -you will be able to run: - -``` -ros2 launch husky_viz view_model.launch.py -``` - -
-
- -
Husky model
-
-
- - - ---- - -## Husky Software Setup {#husky-software-setup} - -### Installing and Configuring Robot Software - -#### Backing Up Robot Configuration - -Upgrading your Clearpath Husky to ROS2 Foxy from older ROS distributions (including ROS1) is supported; -however it's important to understand that each Husky is different, having undergone customization to your -specifications. - -Please take the time to understand what these modifications are and how to recreate them on your fresh install of -Ubuntu Focal + ROS2 Foxy. - -##### Performing a Backup {#performing-a-backup} - - - -#### Installing Ubuntu OS + ROS2 - - - -#### Installing Husky Software - -:::note - -The physical Husky robot comes pre-configured with ROS and the necessary Husky packages already installed; -therefore, you will only need to follow the instructions below if you are re-installing software on the Husky. - -::: - -:::note - -If you wish to install the Husky packages on your computer (e.g. to -interface with the physical Husky robot and/or to simulate Husky), then -proceed with the following instructions below. A prequisite is to make -sure you have a working ROS2 Foxy installation set up on your computer. - -::: - - - -#### Testing Base Configuration - -After installing the software, check that the system has started correct. - -1. The `COMM` light on your Husky should go from red to green. - -2. Your Husky should be accepting commands from your joystick (see next section). - -#### Pairing the Controller {#pairing-the-controller} - -Joystick controllers are used for teleoperation; they allow you to -remotely drive the Husky, whether it is a physical Husky robot, or a -simulated Husky. The following instructions below detail how to pair -different controllers to the Husky's computer; however, these -instructions can also be used to pair these controllers to your own -computer. - -##### PS4 Controller - -:::note - -If your Husky comes with a PS4 controller, it will be paired already. -Simply turn on the Husky and turn on the controller. -::: - - - -##### Logitech F710 Controller - -:::caution - -Logitech controllers are not considered safe, and usage should be experimental only. If your robot has bluetooth -capabilities, please switch to using a PS4 controller instead. - -::: - -To re-pair the Logitech F710 controller or pair a new Logitech F710 -controller, plug the controller's USB dongle into the Husky's computer -and turn on the controller. The controller pairs automatically. - -### Setting up Husky's Network Configuration {#husky-networking} - -Husky is normally equipped with a combination Wi-Fi + Bluetooth module. -If this is your first unboxing, ensure that Husky's wireless antennae are firmly screwed on to the chassis. -Some Husky robots may only be equipped with a single antenna, depending on the exact model of computer installed in the robot. - -#### First Connection - -By default, Husky's Wi-Fi is in client mode, looking for the wireless network at the Clearpath factory. - - - -#### Changing the Default Password - - - -#### Wi-Fi Setup - - - -### Remote ROS2 Connection {#remote-computer-software} - -:::note - -This step is optional. - -::: - - - ---- - -## Using Husky {#using-husky} - -### Simulating Husky {#simulating-husky} - -Whether you actually have a Husky robot or not, the Husky simulator is a great way to get started with ROS2 -robot development. In this tutorial, we will go through the basics of starting Gazebo and RViz and how to drive -your Husky around. - -#### Installation - -To get started with the Husky simulation, make sure you have a [working ROS installation](#remote-computer-software) -set up on your Ubuntu desktop, and install the Husky-specific metapackages for desktop and simulation: - -``` -sudo apt-get install ros-noetic-husky-simulator ros-noetic-husky-desktop -``` - -#### Launching Gazebo - -[Gazebo](https://gazebosim.org/home) is a common simulation tool used in ROS2. Husky's model in -Gazebo includes reasonable approximations of its dynamics, including wheel slippage, skidding, and -inertia. To launch simulated Husky in a simple example world, run the following command: - -``` -ros2 launch husky_gazebo husky_playpen.launch.py -``` - -You should see the following window appear, or something like it. - -:::note - -You can adjust the camera angle by clicking and dragging while holding CTRL, ALT, -or the Shift key. - -::: - -
-
- -
Simulated Husky in the Play Pen
-
-
- -:::note - -To stop the simulation, close the Gazebo window, and then CTRL-C out of the terminal -process. - -::: - -The window which you are looking at is the Gazebo Client. This window shows you the "true" state of the -simulated world which the robot exists in. It communicates on the backend with the Gazebo Server, which -is doing the heavy lifting of actually maintaining the simulated world. At the moment, you're running -both the client and server locally on your own machine, but some advanced users may choose to run heavy -duty simulations on separate hardware and connect to them over the network. - -#### Launch RViz - -The next tool we will encounter is [RViz](http://wiki.ros.org/rviz). Although superficially similar -in appearance to Gazebo, RViz has a very different purpose--- unlike -Gazebo, which shows the reality of the simulated world, RViz shows the -robot's _perception_ of its world, whether real or simulated. So while -Gazebo won't be used with your real Husky, RViz is used with both. - -:::note - -If you are working with a simulated robot you should leave Gazebo -running and open a new terminal to launch RViz. If you installed the -Husky simulation packages from source, make sure to run -`source devel/setup.bash` in the workspace where the packages are -installed when opening the new terminal. -::: - -You can using the following launch invocation to start RViz with a -pre-cooked configuration suitable for visualizing any standard Husky -config: - -```bash -ros2 launch husky_viz view_robot.launch.py -``` - -You should see RViz appear: - -
-
- -
Husky in RViz
-
-
- -### Driving Husky {#driving-husky} - -There are four ways to drive Husky and each way will work on a physical Husky robot as well as on a simulated Husky. - -1. Using the interactive remote controller in RViz. See [Simulating Husky](#simulating-husky). -2. Using autonomous navigation. This will be covered in a future tutorial. -3. Using the controller for teleoperation. See below. -4. Publishing ROS2 messages. See below. - -:::warning - -Husky is a heavy, robot capable of reaching high speeds. Careless driving can cause harm to the operator, -bystanders, the robot, or other property. Always remain vigilant, ensure you have a clear line of sight to the -robot, and operate the robot at safe speeds. We strongly recommend driving in normal (slow) mode first, and only -enabling turbo in large, open areas that are free of people and obstacles. - -::: - -#### Driving with Remote Controller - -:::note - -For instructions on controller pairing, [Pairing the Controller](#pairing-the-controller). - -::: - - - -##### Using Remote Control with Gazebo - -:::note - -You can also use a remote controller to drive your robot in Gazebo. To set up your computer for teleop -using the remote controller follow these steps: - -1. Connect the controller to your computer. - -2. Set the `HUSKY_JOY_DEVICE` environment variable to point to your game controller device - Normally this will be `/dev/input/js0`. - -3. Launch Gazebo as described in [Simulation](#simulating-husky). - -::: - -#### Driving with ROS2 Messages - -You can manually publish `geometry_msgs/Twist` ROS2 messages to either the -`/husky_velocity_controller/cmd_vel_unstamped` or the `/cmd_vel` ROS2 topics to drive Husky. - -For example, in a terminal, run: - -``` -ros2 topic pub --once /husky_velocity_controller/cmd_vel_unstamped geometry_msgs/msg/Twist '{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}' -``` - -The command above makes Husky drive forward momentarily at 0.5 m/s without any rotation. To -have Husky move forward continually, remove `--once` and add `--rate 10` to the command above. - -### Keeping Husky Updated - -For details on updating Husky software or firmware, refer to [Software Maintenance](/docs/robots/outdoor_robots/husky/maintenance_husky#software_maintenance). - ---- - - - -## Advanced Topics {#advanced-topics} - -### Configuring the Network Bridge - - - -### Jetson Installation - -Refer to the [Jetson](/docs/computers/jetson/jetson_hardware) page for details on installing a Jetson in Husky. -However, at present, ROS2 software is not supported on Jetson in Husky. - -## Support {#support} - - diff --git a/docs/robots/outdoor_robots/husky/user_manual_husky.mdx b/docs/robots/outdoor_robots/husky/user_manual_husky.mdx index dd10bd82c..7f7353a81 100644 --- a/docs/robots/outdoor_robots/husky/user_manual_husky.mdx +++ b/docs/robots/outdoor_robots/husky/user_manual_husky.mdx @@ -97,8 +97,8 @@ See [Stop button and Lockout](#husky-stop-button-and-lockout) for details of the #### Payloads Additional payloads such IMUs, lidars, cameras, GPS, manipulators and many more can be integrated with Husky, either as part of your Husky purchase or installed after receiving your Husky. -You can find a list of supported packages and related documentation for payloads in this documention portal, under the [Computers](/docs/computers), [Sensors](/docs/sensors), [Manipulators](/docs/manipulators), and [Accessories](/docs/accessories) sections. -In addition, refer to [Husky Integration](/docs/robots/outdoor_robots/husky/integration_husky) for details on how to integrate your own payload or how to integrate a payload kit from Clearpath Robotics. +You can find a list of supported packages and related documentation for payloads in this documention portal, under the [Computers](../../accessories/computers), [Sensors](../../accessories/sensors), [Manipulators](../../accessories/manipulators), and [Accessories](../../accessories/add-ons) sections. +In addition, refer to [Husky Integration](./integration_husky) for details on how to integrate your own payload or how to integrate a payload kit from Clearpath Robotics. Each payload kit that ships from Clearpath Robotics comes with a custom mounting bracket and cabling for easy attachment to Husky. #### Orientation References @@ -184,7 +184,7 @@ These two computers must be set up to communicate with each other. ### Onboard Computer Setup If you purchased an Onboard Computer from Clearpath Robotics with Husky, it is already installed, connected, and powered. -If not, or to set up your own Onboard Computer, see the [Husky Tutorials](/docs/robots/outdoor_robots/husky/tutorials_husky). +If not, or to set up your own Onboard Computer, see the [Husky Tutorials](./tutorials_husky). Note that the Onboard Computer must be connected to Husky's serial port, which is located in the user power panel accessible from the User Bay. @@ -235,16 +235,14 @@ This indicates that ROS is up on the computer and has established communications ### Network Configuration To get Husky connected to your local Wi-Fi network, you must first access the Onboard Computer using a wired connection to the robot. -See the [Husky ROS1 Tutorials](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros1#husky-networking) or -the [Husky ROS2 Tutorials](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros2#husky-networking) for details. +See the [Husky Tutorials](./tutorials_husky) for details. ### Connecting and Using the Controller {#controller} To use your controller, it must be paired with your Husky and powered on. If your purchased the Onboard Computer from Clearpath Robotics, your controller is already paired with your Husky. If your controller has become unpaired or if you wish to pair a new controller, following the instructions in the -[Husky ROS1 Tutorials](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros1#pairing-the-controller) or the -[Husky ROS2 Tutorials](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros2#pairing-the-controller). +[Husky Tutorials](./tutorials_husky). To teleoperate Husky, first release the motion stop. Then, referring to the following images, press the enable button (either slow or fast mode) and use the left thumbstick to drive Husky. diff --git a/docs/robots/outdoor_robots/jackal/integration_jackal.mdx b/docs/robots/outdoor_robots/jackal/integration_jackal.mdx index 11f4cc7fc..68ba46340 100644 --- a/docs/robots/outdoor_robots/jackal/integration_jackal.mdx +++ b/docs/robots/outdoor_robots/jackal/integration_jackal.mdx @@ -20,7 +20,7 @@ supply, and software integration. This guide aims to equip you with respect to t ### Mechanical Mounting When determining mechanical mounting, you can use the Standard square mounting pattern on the lid of the Jackal. -At this time, the "PACS" mounting system is not available for Jackal. +At this time, the "PACS™" mounting system is not available for Jackal. #### Mechanical, Standard @@ -33,7 +33,7 @@ it to the lid using M5 screws. While Jackal does not yet support PACS directly, the following kits may simplify your integration. -- [OutdoorNav Starter Kit](/docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit) +- [OutdoorNav Starter Kit](../../accessories/add-ons/outdoornav_starter_kit) ### Electrical Integration {#jackal-payload-electrical-integration} @@ -109,6 +109,13 @@ If the system is working properly, these LEDs functions as follows: +Refer to the following for more details: + +- [Computers](../../accessories/computers) +- [Sensors](../../accessories/sensors) +- [Manipulators](../../accessories/manipulators) +- [Accessories](../../accessories/add-ons) + --- ## Support {#support} diff --git a/docs/robots/outdoor_robots/jackal/troubleshooting_jackal.mdx b/docs/robots/outdoor_robots/jackal/troubleshooting_jackal.mdx index 9242f0343..7a108d4e6 100644 --- a/docs/robots/outdoor_robots/jackal/troubleshooting_jackal.mdx +++ b/docs/robots/outdoor_robots/jackal/troubleshooting_jackal.mdx @@ -18,11 +18,11 @@ import Support from "/components/support.mdx"; ### Not getting Wi-Fi internet connection -Refer to the [Networking page](/docs/software/networking). +Refer to the [Networking page](../../../ros/networking). ### Cannot connect to the robot's computer over a network cable -Reter to the [Networking page](/docs/software/networking). +Reter to the [Networking page](../../../ros/networking). --- @@ -30,11 +30,11 @@ Reter to the [Networking page](/docs/software/networking). ### The computer does not automatically start -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). ### The computer keeps reverting to old BIOS settings -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). --- @@ -47,7 +47,7 @@ Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are ### Sensors are not turning on 1. Check that the sensor's User Power connector has the correct voltage. -2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](/docs/sensors). +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). ## If the Issue Persists diff --git a/docs/robots/outdoor_robots/jackal/tutorials_jackal.mdx b/docs/robots/outdoor_robots/jackal/tutorials_jackal.mdx new file mode 100644 index 000000000..b6da8c742 --- /dev/null +++ b/docs/robots/outdoor_robots/jackal/tutorials_jackal.mdx @@ -0,0 +1,35 @@ +--- +title: Jackal Tutorials +sidebar_label: Tutorials +sidebar_position: 4 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import ComponentIntroductionJackal from "/components/introduction_jackal.mdx"; +import ComponentTutorialLinks from "../../../components/_tutorials_link.mdx"; +import Support from "/components/support.mdx"; + + + +## Jackal Overview + +### Introduction + +Jackal is a rugged, lightweight, fast and easy-to-use unmanned ground robot for rapid prototyping +and research applications. These tutorials will assist you with setting up and operating your Jackal. + +For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/jackal). + + + +## Jetson Installation + +Refer to the [Jetson](../../accessories/computers/jetson/jetson_hardware) page for details on installing a Jetson in Jackal. +However, at present, ROS 2 software is not supported on Jetson in Jackal. + +--- + +## Support {#support} + + diff --git a/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal.mdx b/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal.mdx deleted file mode 100644 index 64ba8ef66..000000000 --- a/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Jackal Tutorials -sidebar_label: Tutorials -sidebar_position: 1 ---- - -As there are major changes between ROS1 and ROS2, the Jackal tutorials are separated into two groups. -Choose the appropriate one for your Jackal. - -- [Jackal ROS1 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros1) -- [Jackal ROS2 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros2) diff --git a/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros2.mdx b/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros2.mdx deleted file mode 100644 index 09b4ea201..000000000 --- a/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros2.mdx +++ /dev/null @@ -1,802 +0,0 @@ ---- -title: Jackal Tutorials (ROS2) -sidebar_label: ROS2 -sidebar_position: 3 -toc_min_heading_level: 2 -toc_max_heading_level: 4 ---- - -import ComponentIntroductionJackal from "/components/introduction_jackal.mdx"; -import ComponentRos1ToRos2UpgradePrep from "/components/ros1_to_ros2_upgrade_prep.mdx"; -import ComponentPs4ControllerPairing from "/components/ps4_controller_pairing.mdx"; -import ComponentChangingDefaultPassword from "/components/changing_default_password.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentConfiguringNetworkBridge from "/components/configuring_network_bridge.mdx"; -import ComponentPerformingABackup from "/components/performing_a_backup.mdx"; -import ComponentInstallingRobotSoftwareRos2 from "/components/installing_robot_software_ros2.mdx"; -import ComponentRemoteRos2Connection from "/components/remote_ros2_connection.mdx"; -import ComponentAddingASourceWorkspace from "/components/adding_a_source_workspace.mdx"; -import ComponentDrivingWithRemoteController from "/components/driving_with_remote_controller.mdx"; -import Support from "/components/support.mdx"; - - - -## Jackal Overview - -### Introduction - -Jackal is a rugged, lightweight, fast and easy-to-use unmanned ground robot for rapid prototyping -and research applications. These tutorials will assist you with setting up and operating your Jackal. -The tutorial topics are listed in the right column and presented in the suggested reading order. - -For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/jackal). - -:::note - -These tutorials assume that you are comfortable working with [ROS](https://docs.ros.org/). We recommend starting with -[ROS2 tutorials](https://docs.ros.org/en/foxy/Tutorials.html) if you are not familiar with ROS already. - -::: - -:::note - -These tutorials specifically target Jackal robots running Ubuntu 20.04 with [ROS2 Foxy](https://docs.ros.org/en/foxy/index.html). - -::: - -[Jackal ROS Packages](#jackal-ros-packages) provides the references for the software packages and key ROS topics. - -[Jackal Software Setup](#jackal-software-setup) outlines the steps for setting up the software on -your Jackal robot and optionally on a remote computer. - -[Using Jackal](#using-jackal) describes how to simulate and drive your Jackal. [Simuation](#simulating-jackal) -is a great way for most users to learn more about their Jackal; understanding how to effectively operate Jackal -in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a -physical Jackal, or you do not have one and are simply exploring the platform's capabilities. -[Driving Jackal](#driving-jackal) covers how to teleoperate Jackal using the remote control, as well as safety -procedures for operating the physical robot. Anyone working with a physical robot should be familiar with this section. - - - -[Advanced Topics](#advanced-topics) covers items that are only required in atypical situations. - ---- - -## Jackal ROS Packages {#jackal-ros-packages} - -Jackal fully supports ROS; all of the packages are available in [Jackal Github](https://github.com/jackal). -Notable packages include: - -- Jackal Common packages: [Git repository](https://github.com/jackal/jackal/tree/foxy-devel) -- Jackal Robot packages: [Git repository](https://github.com/jackal/jackal_robot/tree/foxy-devel) -- Jackal Simulator packages: [Git repository](https://github.com/jackal/jackal_simulator/tree/foxy-devel) -- Jackal Desktop packages: [Git repository](https://github.com/jackal/jackal_desktop/tree/foxy-devel) - -### Description Package - -The [jackal_description](https://github.com/jackal/jackal/tree/foxy-devel/jackal_description) repository -provides a [URDF](http://wiki.ros.org/urdf) model of Jackal. - -Jackal's URDF model can be visualized in RViz and can be customized and extended through the use of several -environment variables. Once you have installed the desktop software in an upcoming tutorial, -you will be able to run: - -``` -ros2 launch jackal_viz view_model.launch.py -``` - -
-
- -
Jackal model
-
-
- - - ---- - -## Jackal Software Setup {#jackal-software-setup} - -### Installing and Configuring Robot Software - -#### Backing Up Robot Configuration - -Upgrading your Clearpath Jackal to ROS2 Foxy from older ROS distributions (including ROS1) is supported; -however it's important to understand that each Jackal is different, having undergone customization to your -specifications. - -Please take the time to understand what these modifications are and how to recreate them on your fresh install of -Ubuntu Focal + ROS2 Foxy. - -##### Performing a Backup {#performing-a-backup} - - - -#### Updating firmware - -For ROS2 Foxy, Jackal uses new [microROS](https://micro.ros.org/) based -firmware. - -Install the Jackal firmware package on the Jackal: - -```bash -sudo apt-get update -sudo apt-get install ros-foxy-jackal-firmware -``` - -To update the firmware, place the Jackal MCU into bootloader mode by -switching the **PWR_MODE** switch from NORM to ALT, then -pressing the **M_RST** button. - -Then, on the Jackal, run: - -```bash -jackal_firmware_flash.sh -``` - -Wait for the firmware to be flashed. - -Once the firmware has been flashed, place the Jackal MCU back into -normal mode by switching the **PWR_MODE** switch from ALT to -NORM. The robot will power off. Turn the robot back on by pressing the -power button. - -#### Installing Ubuntu OS + ROS2 - - - -#### Installing Jackal Robot Software - -:::note - -The physical Jackal robot comes pre-configured with ROS and the necessary Jackal packages already installed; -therefore, you will only need to follow the instructions below if you are re-installing software on the Jackal. - -::: - -:::note - -If you wish to install the Jackal packages on your computer (e.g. to -interface with the physical Jackal robot and/or to simulate Jackal), then -proceed with the following instructions below. A prequisite is to make -sure you have a working ROS2 Foxy installation set up on your computer. - -::: - -##### Installing from Debian Packages - -:::note - -Jackal Debian packages are not yet available. Please install from -source. - -::: - -The preferred way to install Jackal's packages is using precompiled -Debian packages. These packages are available for Ubuntu 20.04. - -On the physical robot you need to install the `jackal_robot` package. In -terminal, run: - -``` -sudo apt-get install ros-foxy-jackal-robot -``` - -##### Installing from Source - -Jackal packages are available on [GitHub](https://github.com/jackal/), -and can be compiled and installed from source if desired: - -1. Install vcs: - - ```bash - sudo apt-get update - sudo apt-get install python3-vcstool - ``` - -2. Create a workspace directory. In a terminal, run: - - ```bash - mkdir -p ~/jackal_ws/src - ``` - -3. Clone the Jackal repositories into your workspace directory. In - terminal, run: - - ```bash - cd ~/jackal_ws - wget https://raw.githubusercontent.com/jackal/jackal_robot/foxy-devel/dependencies.repos - vcs import src < dependencies.repos - ``` - -4. Source the ROS2 Foxy installation. In a terminal, run: - - ```bash - source /opt/ros/foxy/setup.bash - ``` - -5. Install additional dependencies. In a terminal, run: - - ```bash - rosdep install --from-paths src --ignore-src --rosdistro=$ROS_DISTRO -y - ``` - -6. Build the workspace. In a terminal, run: - - ```bash - colcon build - ``` - -7. You can now source your workspace to make use of the packages you - just built. In a terminal, run: - - ```bash - source install/setup.bash - ``` - -##### Installing the microROS agent - -The microROS agent is not currently released as a debian package, so we -must build it from source. - -:::note - -If you have built the Jackal packages from source, you can skip to step 7. -::: - -1. If you don't yet have a workspace directory, create one. In - terminal, run: - - ```bash - mkdir -p ~/jackal_ws/src - ``` - -2. Clone the [micro_ros_setup]{.title-ref} repositories into your - workspace directory. In a terminal, run: - - ```bash - cd ~/jackal_ws/src - git clone -b foxy https://github.com/micro-ROS/micro_ros_setup.git - cd .. - ``` - -3. Source the ROS2 Foxy installation. In a terminal, run: - - ```bash - source /opt/ros/foxy/setup.bash - ``` - -4. Install additional dependencies. In a terminal, run: - - ```bash - sudo apt update && rosdep update - rosdep install --from-paths src --ignore-src -y - ``` - -5. Build the workspace. In a terminal, run: - - ```bash - colcon build - ``` - -6. You can now source your workspace to make use of the packages you - just built. In a terminal, run: - - ```bash - source install/setup.bash - ``` - -7. Create and build the microROS agent. In a terminal, run: - - ```bash - ros2 run micro_ros_setup create_agent_ws.sh - ros2 run micro_ros_setup build_agent.sh - source install/setup.bash - ``` - -##### Installing the systemd job - -If you would like ROS2 to run on boot on the Jackal, first make sure -your `ROBOT_SETUP` environment variable is set to your workspace before -installing: - -```bash -export ROBOT_SETUP=~/jackal_ws/install/setup.bash -``` - -Then install the job: - -```bash -ros2 run jackal_robot install -``` - -##### Launching Jackal Software Manually - -To run the ROS2 software in the terminal, first source the workspace: - -```bash -source ~/jackal_ws/install/setup.bash -``` - -Then launch Jackal bringup. In a terminal, run: - -```bash -ros2 launch jackal_robot bringup.launch.py -``` - -##### Testing Base Configuration - -After installing the software, check that the system has started correct. - -1. The Jackal Comms indicator should turn green. - -2. Your Jackal should be accepting commands from your joystick (see next section). - -#### Installing Jackal Desktop Software - -:::note - -If you wish to install the Jackal packages on your computer (e.g. to -interface with the physical Jackal robot and/or to simulate Jackal), -then proceed with the following instructions below. A prequisite is to -make sure you have a working ROS2 Foxy installation set up on your -computer. - -::: - -##### Add Clearpath Debian Package Repository - -Before you can install the Jackal packages, you need to configure -Ubuntu's APT package manager to add Clearpath's package server: - -1. Install the authentication key for the - packages.clearpathrobotics.com repository. In a terminal, run: - - ```bash - wget https://packages.clearpathrobotics.com/public.key -O - | sudo apt-key add - - ``` - -2. Add the debian sources for the repository. In a terminal, run: - - ```bash - sudo sh -c 'echo "deb https://packages.clearpathrobotics.com/stable/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/clearpath-latest.list' - ``` - -3. Update your computer's package cache. In a terminal, run: - - ```bash - sudo apt-get update - ``` - -##### Installing from Debian Packages - -The preferred way to install Jackal's packages is using precompiled -Debian packages. These packages are available for Ubuntu 20.04. - -After your computer is configured to use Clearpath's debian package -repository, you can install the Jackal packages needed for this -tutorial. In a terminal, run: - -``` -sudo apt-get install ros-foxy-jackal-desktop ros-foxy-jackal-simulator -``` - -##### Installing from Source - -Jackal packages are available on [GitHub](https://github.com/jackal/), -and can be compiled and installed from source if desired: - -1. Create a workspace directory. In a terminal, run: - - ```bash - mkdir -p ~/jackal_ws/src - ``` - -2. Clone the Jackal repositories into your workspace directory. In - terminal, run: - - ```bash - cd ~/jackal_ws/src - git clone -b foxy-devel https://github.com/jackal/jackal.git - git clone -b foxy-devel https://github.com/jackal/jackal_desktop.git - git clone -b foxy-devel https://github.com/jackal/jackal_simulator.git - cd .. - ``` - -3. Source the ROS2 Foxy installation. In a terminal, run: - - ```bash - source /opt/ros/foxy/setup.bash - ``` - -4. Install additional dependencies. In a terminal, run: - - ```bash - rosdep install --from-paths src --ignore-src --rosdistro=$ROS_DISTRO -y - ``` - -5. Build the workspace. In a terminal, run: - - ```bash - colcon build - ``` - -6. You can now source your workspace to make use of the packages you - just built. In a terminal, run: - - ```bash - source install/setup.bash - ``` - -#### Pairing the Controller {#pairing-the-controller} - -Joystick controllers are used for teleoperation; they allow you to -remotely drive the Jackal, whether it is a physical Jackal robot, or a -simulated Jackal. The following instructions below detail how to pair -different controllers to the Jackal's computer; however, these -instructions can also be used to pair these controllers to your own -computer. - -##### PS4 Controller - -:::note - -If your Jackal comes with a PS4 controller, it will be paired already. -Simply turn on the Jackal and turn on the controller. -::: - - - -##### Logitech F710 Controller - -:::caution - -Logitech controllers are not considered safe, and usage should be experimental only. If your robot has bluetooth -capabilities, please switch to using a PS4 controller instead. - -::: - -To re-pair the Logitech F710 controller or pair a new Logitech F710 -controller, plug the controller's USB dongle into the Jackal's computer -and turn on the controller. The controller pairs automatically. - -### Setting up Jackal's Network Configuration {#jackal-networking} - -Jackal is normally equipped with a combination Wi-Fi + Bluetooth module. -If this is your first unboxing, ensure that Jackal's wireless antennae are firmly screwed on to the chassis. -Some Jackal robots may only be equipped with a single antenna, depending on the exact model of computer installed in the robot. - -#### First Connection - -By default, Jackal's Wi-Fi is in client mode, looking for the wireless network at the Clearpath factory. - - - -#### Changing the Default Password - - - -#### Wi-Fi Setup - - - -### Remote ROS2 Connection {#remote-computer-software} - -:::note - -This step is optional. - -::: - - - ---- - -## Using Jackal {#using-jackal} - -### Simulating Jackal {#simulating-jackal} - -Whether you actually have a Jackal robot or not, the Jackal simulator is a great way to get started with ROS2 -robot development. In this tutorial, we will go through the basics of starting Gazebo and RViz and how to drive -your Jackal around. - -#### Launching Gazebo - -[Gazebo](https://gazebosim.org/home) is a common simulation tool used in ROS2. Jackal's model in -Gazebo includes reasonable approximations of its dynamics, including wheel slippage, skidding, and -inertia. To launch simulated Jackal in a simple example world, run the following command: - -``` -ros2 launch jackal_gazebo jackal_world.launch.py -``` - -You should see the following window appear, or something like it. - -:::note - -You can adjust the camera angle by clicking and dragging while holding CTRL, ALT, -or the Shift key. - -::: - -
-
- -
Simulated Jackal in the Race World
-
-
- -:::note - -To stop the simulation, close the Gazebo window, and then CTRL-C out of the terminal -process. - -::: - -The window which you are looking at is the Gazebo Client. This window shows you the "true" state of the -simulated world which the robot exists in. It communicates on the backend with the Gazebo Server, which -is doing the heavy lifting of actually maintaining the simulated world. At the moment, you're running -both the client and server locally on your own machine, but some advanced users may choose to run heavy -duty simulations on separate hardware and connect to them over the network. - -#### Launch RViz - -The next tool we will encounter is [RViz](http://wiki.ros.org/rviz). Although superficially similar -in appearance to Gazebo, RViz has a very different purpose--- unlike -Gazebo, which shows the reality of the simulated world, RViz shows the -robot's _perception_ of its world, whether real or simulated. So while -Gazebo won't be used with your real Jackal, RViz is used with both. - -:::note - -If you are working with a simulated robot you should leave Gazebo -running and open a new terminal to launch RViz. If you installed the -Jackal simulation packages from source, make sure to run -`source install/setup.bash` in the workspace where the packages are -installed when opening the new terminal. -::: - -You can using the following launch invocation to start RViz with a -pre-cooked configuration suitable for visualizing any standard Jackal -config: - -```bash -ros2 launch jackal_viz view_robot.launch.py -``` - -You should see RViz appear: - -
-
- -
Jackal RViz
-
-
- -### Driving Jackal {#driving-jackal} - -There are four ways to drive Jackal and each way will work on a physical Jackal robot as well as on a simulated Jackal. - -1. Using the interactive remote controller in RViz. See [Simulating Jackal](#simulating-jackal). -2. Using autonomous navigation. This will be covered in a future tutorial. -3. Using the controller for teleoperation. See below. -4. Publishing ROS2 messages. See below. - -:::warning - -Jackal is capable of reaching high speeds. -Careless driving can cause harm to the operator, bystanders, the robot, or other property. -Always remain vigilant, ensure you have a clear line of sight to the robot, and operate the robot at safe speeds. -We strongly recommend driving in normal (slow) mode first, and only enabling turbo in large, open areas that are free of people and obstacles. - -::: - -#### Driving with Remote Controller - -:::note - -For instructions on controller pairing, [Pairing the Controller](#pairing-the-controller). - -::: - - - -##### Using Remote Control with Gazebo - -:::note - -You can also use a remote controller to drive your robot in Gazebo. To set up your computer for teleop -using the remote controller follow these steps: - -1. Connect the controller to your computer. - -2. Set the `JACKAL_JOY_DEVICE` environment variable to point to your game controller device - Normally this will be `/dev/input/js0`. - -3. Launch Gazebo as described in [Simulation](#simulating-jackal). - -::: - -#### Driving with ROS2 Messages - -You can manually publish `geometry_msgs/Twist` ROS2 messages to either the -`/jackal_velocity_controller/cmd_vel_unstamped` or the `/cmd_vel` ROS2 topics to drive Jackal. - -For example, in a terminal, run: - -``` -ros2 topic pub --once /jackal_velocity_controller/cmd_vel_unstamped geometry_msgs/msg/Twist '{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}' -``` - -The command above makes Jackal drive forward momentarily at 0.5 m/s without any rotation. To -have Jackal move forward continually, remove `--once` and add `--rate 10` to the command above. - -### Keeping Jackal Updated - -For details on updating Jackal software or firmware, refer to [Software Maintenance](/docs/robots/outdoor_robots/jackal/maintenance_jackal#software_maintenance). - ---- - - - -## Advanced Topics {#advanced-topics} - -### Configuring the Network Bridge - - - -### Jetson Installation - -Refer to the [Jetson](/docs/computers/jetson/jetson_hardware) page for details on installing a Jetson in Jackal. -However, at present, ROS2 software is not supported on Jetson in Jackal. - -## Support {#support} - - diff --git a/docs/robots/outdoor_robots/jackal/user_manual_jackal.mdx b/docs/robots/outdoor_robots/jackal/user_manual_jackal.mdx index 1cce7329c..f3fcb5a0d 100644 --- a/docs/robots/outdoor_robots/jackal/user_manual_jackal.mdx +++ b/docs/robots/outdoor_robots/jackal/user_manual_jackal.mdx @@ -99,8 +99,8 @@ The human-machine-interface (HMI) panel is shown below and includes from left: Additional payloads such IMUs, lidars, cameras, GPS, manipulators and many more can be integrated with Jackal, either as part of your Jackal purchase or installed after receiving your Jackal. You can find a list of supported packages and related documentation for payloads in this -documention portal, under the [Computers](/docs/computers), [Sensors](/docs/sensors), [Manipulators](/docs/manipulators), -and [Accessories](/docs/accessories) sections. In addition, refer to [Jackal Integration](/docs/robots/outdoor_robots/jackal/integration_jackal) for +documention portal, under the [Computers](../../accessories/computers), [Sensors](../../accessories/sensors), [Manipulators](../../accessories/manipulators), +and [Accessories](../../accessories/add-ons) sections. In addition, refer to [Jackal Integration](./integration_jackal) for details on how to integrate your own payload or how to integrate a payload kit from Clearpath Robotics. Each payload kit that ships from Clearpath Robotics comes with a custom mounting bracket and cabling for easy attachment to Jackal. @@ -129,7 +129,7 @@ revealing Jackal's onboard computer, user power supplies, and internal user hard The figures below illustrate the components of the tray and user power supplies. Note that the fused user power is available as four-pin Molex connectors, or a plug-in screw terminal block. For more information on integrating payloads electrically, see -[Jackal Integration](/docs/robots/outdoor_robots/jackal/integration_jackal#jackal-payload-electrical-integration). +[Jackal Integration](./integration_jackal#jackal-payload-electrical-integration).
@@ -206,8 +206,7 @@ which is used to control Jackal and gather data. These two computers must be set If you purchased an Onboard Computer from Clearpath Robotics with Jackal, it is already installed, connected, and powered. If not, or to set up your own Onboard Computer, see the -[Jackal ROS1 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros1#jackal-software-setup) or -[Jackal ROS2 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros2#jackal-software-setup). +[Jackal Tutorials](./tutorials_jackal). Note that the Onboard Computer must be connected to the USB port on the Jackal MCU, which is accessible inside the Jackal. @@ -224,8 +223,7 @@ This indicates that ROS is up on the computer and has established communications To get Jackal connected to your local Wi-Fi network, you must first access the Onboard Computer using a wired connection to the robot. Open the chassis, lower the computer tray, and connect to the network port labeled STATIC with a standard -ethernet cable. See the [Jackal ROS1 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros1#jackal-networking) or -[Jackal ROS2 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros2#jackal-networking) for details +ethernet cable. See the [Jackal Tutorials](./tutorials_jackal) for details on completing the Wi-Fi setup. ### Connecting and Using the Controller {#controller} @@ -233,8 +231,7 @@ on completing the Wi-Fi setup. To use your controller, it must be paired with your Jackal and powered on. If your purchased the Onboard Computer from Clearpath Robotics, your controller is already paired with your Jackal. If your controller has become unpaired or if you wish to pair a new controller, following the instructions in -the [Jackal ROS1 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros1#pairing-the-controller) or -[Jackal ROS2 Tutorials](/docs/robots/outdoor_robots/jackal/tutorials_jackal/tutorials_jackal_ros2#pairing-the-controller). +the [Jackal Tutorials](./tutorials_jackal). To teleoperate Jackal, first clear the motion-stop. Then, power on the controller by pressing the `PS` button on the controller. diff --git a/docs/robots/outdoor_robots/warthog/integration_warthog/integration_warthog.mdx b/docs/robots/outdoor_robots/warthog/integration_warthog/integration_warthog.mdx index dc3caf256..ee8b62d48 100644 --- a/docs/robots/outdoor_robots/warthog/integration_warthog/integration_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/integration_warthog/integration_warthog.mdx @@ -19,22 +19,22 @@ This section aims to equip you with respect to these challenges. When determining mechanical mounting, you have two options, both of which are described below. - the "Standard" aluminum extrusion interface -- the "PACS" mounting system and associated kits +- the "PACS™" mounting system and associated kits ### Mechanical, Standard A standard Warthog includes thru holes on the sides of the battery compartment. You can besign mounting brackets to interface with these holes. -### Mechanical, PACS +### Mechanical, PACS™ Refer to the following pages for Warthog brackets that can simplify your integration. -- [Extrusion Rails](/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_rails_warthog) -- [Extrusion Cross-Bar](/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_crossbar_warthog) -- [Top Plate](/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/top_plate_warthog) +- [Extrusion Rails](./kits_warthog/extrusion_rails_warthog) +- [Extrusion Cross-Bar](./kits_warthog/extrusion_crossbar_warthog) +- [Top Plate](./kits_warthog/top_plate_warthog) ### Common Mechanical Integration Guidelines @@ -113,7 +113,7 @@ The user power breakouts are intended for small sensors, like lidar and cameras. Warthog's 48 V battery pack is fused at 275 A (13200 W). We often add DC-DC and DC-AC supplies inside the Warthog to power large devices like manipulators, lights, and other custom integration attachments. -Refer to the process described on our [Power Supplies](/docs/accessories/power_supplies/#choosing_a_power_supply) page to help you choose a power supply or inverter. +Refer to the process described on our [Power Supplies](../../../accessories/add-ons/power_supplies/#choosing_a_power_supply) page to help you choose a power supply or inverter. ::: @@ -141,6 +141,13 @@ Always use adequately sized fuses for your selected wire thickness to prevent el +Refer to the following for more details: + +- [Computers](../../../accessories/computers) +- [Sensors](../../../accessories/sensors) +- [Manipulators](../../../accessories/manipulators) +- [Accessories](../../../accessories/add-ons) + --- ## Support diff --git a/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_crossbar_warthog.mdx b/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_crossbar_warthog.mdx index 17b11ac99..dee19477f 100644 --- a/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_crossbar_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_crossbar_warthog.mdx @@ -10,7 +10,7 @@ sidebar_position: 2 />
-This is a 25 mm X 50 mm aluminum extrusion that mounts between the Warthog's [Extrusion Rails](/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_rails_warthog). +This is a 25 mm X 50 mm aluminum extrusion that mounts between the Warthog's [Extrusion Rails](./extrusion_rails_warthog). The Cross-Bar is installed with T-slot nuts and 90° brackets. The Cross-Bar can be attached anywhere along the length of the Warthog's Extrusion Rails. diff --git a/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_rails_warthog.mdx b/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_rails_warthog.mdx index 066d03fd4..cd35820b8 100644 --- a/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_rails_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_rails_warthog.mdx @@ -48,7 +48,7 @@ Please email if you want Clearpath's team to desig ## Tools Required - Drill, with Ø6 mm drill bit -- Rivet installation tool (Refer to our [Physical Tools](/docs/tools/physical_tools) page for a suggested rivet installation tool) +- Rivet installation tool (Refer to our [Physical Tools](../../../../common/physical_tools) page for a suggested rivet installation tool) - Large flat-head screwdriver, or a thread insert installation tool - Hex Key, 5 mm - Torque wrench _(optional, for safety applications)_ diff --git a/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/top_plate_warthog.mdx b/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/top_plate_warthog.mdx index 9f18a6db4..70e7cd3e2 100644 --- a/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/top_plate_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/top_plate_warthog.mdx @@ -10,17 +10,17 @@ sidebar_position: 3 />
-The top plates for the Warthog include M5×0.8 threaded holes that match the Clearpath PACS standard. +The top plates for the Warthog include M5×0.8 threaded holes that match the Clearpath PACS™ standard. :::note -These top plates require [extrusion rails](/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_rails_warthog) to be mounted on the Warthog. +These top plates require [extrusion rails](./extrusion_rails_warthog) to be mounted on the Warthog. ::: :::note -You can install an [extrusion cross-bar](/docs/robots/outdoor_robots/warthog/integration_warthog/kits_warthog/extrusion_crossbar_warthog) under the top plates to add stiffness. +You can install an [extrusion cross-bar](./extrusion_crossbar_warthog) under the top plates to add stiffness. ::: diff --git a/docs/robots/outdoor_robots/warthog/maintenance_warthog.mdx b/docs/robots/outdoor_robots/warthog/maintenance_warthog.mdx index 08377b75b..e60f81e28 100644 --- a/docs/robots/outdoor_robots/warthog/maintenance_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/maintenance_warthog.mdx @@ -5,6 +5,7 @@ sidebar_position: 5 --- import ComponentIntroductionWarthog from "/components/introduction_warthog.mdx"; +import GettingNewPackages from "/components/maintenance/getting_new_packages.mdx"; import Support from "/components/support.mdx"; @@ -157,24 +158,7 @@ If your unit came equipped with the tread upgrade, please keep the following con ## Software Maintenance {#software_maintenance} -:::note - -If you are upgrading your Warthog from an older version of ROS, please refer to our upgrade instructions [here](https://clearpathrobotics.com/assets/guides/kinetic/kinetic-to-melodic/index.html) and [here](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). - -::: - -### Getting New Packages - -Warthog is always being improved, both its own software and the many community ROS packages upon which it depends! -You can use the `apt` package management system to receive new versions all software running on the platform. - -Each Warthog leaves the factory already configured to pull packages from http://packages.ros.org as well as http://packages.clearpathrobotics.com. -To update your package and download new package versions, simply run: - -``` -sudo apt-get update -sudo apt-get dist-upgrade -``` + ### MCU Firmware Update diff --git a/docs/robots/outdoor_robots/warthog/troubleshooting_warthog.mdx b/docs/robots/outdoor_robots/warthog/troubleshooting_warthog.mdx index 08b7e3983..42484b069 100644 --- a/docs/robots/outdoor_robots/warthog/troubleshooting_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/troubleshooting_warthog.mdx @@ -18,11 +18,11 @@ import Support from "/components/support.mdx"; ### Not getting Wi-Fi internet connection -Refer to the [Networking page](/docs/software/networking). +Refer to the [Networking page](../../../ros/networking). ### Cannot connect to the robot's computer over a network cable -Reter to the [Networking page](/docs/software/networking). +Reter to the [Networking page](../../../ros/networking). --- @@ -30,11 +30,11 @@ Reter to the [Networking page](/docs/software/networking). ### The computer does not automatically start -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). ### The computer keeps reverting to old BIOS settings -Refer to the [Mini ITX troubleshooting page](/docs/computers/mini_itx). +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). --- @@ -47,7 +47,7 @@ Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are ### Sensors are not turning on 1. Check that the sensor's User Power connector has the correct voltage. -2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](/docs/sensors). +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). ## If the Issue Persists diff --git a/docs/robots/outdoor_robots/warthog/tutorials_warthog.mdx b/docs/robots/outdoor_robots/warthog/tutorials_warthog.mdx index 26dae6732..c8e8f78ae 100644 --- a/docs/robots/outdoor_robots/warthog/tutorials_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/tutorials_warthog.mdx @@ -5,15 +5,7 @@ sidebar_position: 4 --- import ComponentIntroductionWarthog from "/components/introduction_warthog.mdx"; -import ComponentChangingDefaultPassword from "/components/changing_default_password.mdx"; -import ComponentWiredRobotConnection from "/components/wired_robot_connection.mdx"; -import ComponentWifiRobotConnection from "/components/wifi_robot_connection.mdx"; -import ComponentConfiguringNetworkBridge from "/components/configuring_network_bridge.mdx"; -import ComponentPerformingABackup from "/components/performing_a_backup.mdx"; -import ComponentInstallingRobotSoftware from "/components/installing_robot_software.mdx"; -import ComponentInstallingRemoteComputerSoftware from "/components/installing_remote_computer_software.mdx"; -import ComponentAddingASourceWorkspace from "/components/adding_a_source_workspace.mdx"; -import ComponentDrivingWithRemoteController from "/components/driving_with_remote_controller.mdx"; +import ComponentTutorialLinks from "../../../components/_tutorials_link.mdx"; import Support from "/components/support.mdx"; @@ -22,917 +14,13 @@ import Support from "/components/support.mdx"; ### Introduction -Clearpath Robotics Warthog is a rugged, all-terrain unmanned ground vehicle. These tutorials will -assist you with setting up and operating your Warthog. The tutorial topics are listed in the right -column and presented in the suggested reading order. +Clearpath Robotics Warthog is a rugged, all-terrain unmanned ground vehicle. -For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/warthog). - -:::note - -These tutorials assume that you are comfortable working with ROS. -We recommend starting with our [ROS tutorial](https://www.clearpathrobotics.com/assets/guides/noetic/ros/index.html) if you are not familiar with ROS already. - -::: - -:::note - -These tutorials specifically target Warthog robots running Ubuntu 20.04 with ROS Noetic, as it is the standard OS environment for Warthog. -If instead you have an older Warthog robot running Ubuntu 18.04 with ROS Melodic, please follow [this tutorial](https://www.clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html) to upgrade the robot OS environment to Ubuntu 20.04 with ROS Noetic. - -::: - -[Warthog ROS Packages](#warthog-ros-packages) provides the references for the software packages and key ROS topics. - -[Warthog Software Setup](#warthog-software-setup) outlines the steps for setting up the software on your Warthog robot and optionally on a remote computer. - -[Using Warthog](#using-warthog) describes how to simulate and drive your Warthog. [Simulation](#simulating-warthog) is a great way for most users to learn more about their Warthog; -understanding how to effectively operate Warthog in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a physical Warthog or you do not have one and are simply exploring the platform's capabilities. -[Driving Warthog](#driving-warthog) covers how to teleoperate Warthog using the remote control, as well as safety procedures for operating the physical robot. -Anyone working with a physical robot should be familiar with this section. - -[Warthog Tests](#testing-warthog) outlines how to validate that your physical Warthog is working correctly. - -[Advanced Topics](#advanced-topics) covers items that are only required in atypical situations. - ---- - -## Warthog ROS Packages {#warthog-ros-packages} - -Warthog fully supports ROS; all of the packages are available in [Warthog Github](https://github.com/warthog-cpr). - -### Description Package {#description-package} - -The [warthog_description](https://github.com/warthog-cpr/warthog/tree/kinetic-devel/warthog_description) repository provides a [URDF](http://wiki.ros.org/urdf) model of Warthog. - -Warthog's URDF model can be visualized in RViz. -Once you have installed the desktop software in an upcoming tutorial, you will be able to run: - -``` -roslaunch warthog_viz view_model.launch -``` - -
-
- -
Warthog model
-
-
- -### Environment Variables {#environment-variables} - -Warthog can be customized and extended through the use of several environment variables. -The details are in the [warthog_description](https://github.com/warthog-cpr/warthog/tree/kinetic-devel/warthog_description) repository. -Some of the most important ones are listed below. - -| Variable | Default | Description | -| :----------------------------- | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | -| `WARTHOG_ARM_MOUNT` | `0` | If enabled, a link called "arm_mount_link" will be created on the bulkhead | -| `WARTHOG_BULKHEAD` | `0` | Switch for enabling a large, rigid bulkhead on the front of the warthog for mount accessories like arms | -| `WARTHOG_IMU_RPY` | `0 0 0` | Compound rotations in radians of the IMU | -| `WARTHOG_IMU_XYX` | `0 0 0` | Position of the IMU in meters | -| `WARTHOG_JOY_TELEOP` | `0` | Switch to enable teleop control of the platform | -| `WARTHOG_NAVSAT_SMART6` | `0` | Is the platform equipped with a Smart7 GPS? | -| `WARTHOG_NAVSAT_SMART6_BAUD` | `57600` | Sets the baud rate for serial communication with the GPS module | -| `WARTHOG_NAVSAT_SMART6_MOUNT` | `navsat` | The mount on the robot model that the GPS antenna is mounted to. See the Warthog URDF and `WARTHOG_URDF_EXTRAS` for more details on mount points. | -| `WARTHOG_NAVSAT_SMART6_OFFSET` | `0 0 0` | Position of the Smart 6 GPS in meters | -| `WARTHOG_NAVSAT_SMART6_PORT` | `/dev/ttyS1` | The serial port that the GPS module communicates over | -| `WARTHOG_NAVSAT_SMART6_RPY` | `0 0 0` | Compound rotations in radians of the Smart 6 GPS | -| `WARTHOG_OFFBOARD_STOP` | `false` | Is a remote e-stop setup on the platform? | -| `WARTHOG_TRACKS` | `0` | Used to specify that Warthog is equipped with tracks instead of wheels | -| `WARTHOG_TWIST_MUX_EXTRAS` | `0` | Add additional sources to be controlled by the twise mux of the platform | -| `WARTHOG_URDF_EXTRAS` | `empty.urdf` | Path to a URDF file with additional modules connected to the robot | - -### Configurations - -As an alternative to individually specifying each accessory, some fixed configurations are provided in the package. -These can be specified using the `config` arg to `description.launch`, and are intended especially as a convenience for simulation launch. - -| Config | Description | -| :---------- | :------------------------------------------------------- | -| `arm_mount` | Includes mounting points for am arm payload | -| `base` | Base Warthog, includes IMU and GPS | -| `bulkhead` | Includes a mounting point for additional payload options | -| `empty` | Includes no accessories at all | - -### Key ROS Topics - -You can view all topics that are active using `rostopic list`. -The most important topics are summarized in the table below. - -| Topic | Message Type | Purpose | -| :------------------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/cmd_vel` | `geometry_msgs/Twist` | Input to Warthog's kinematic controller. Publish here to make Warthog go. | -| `/odometry/filtered` | `nav_msgs/Odometry` | Published by robot_localization, a filtered localization estimate based on wheel odometry (encoders) and integrated IMU. | -| `/imu/data` | `sensor_msgs/IMU` | Published by imu_filter_madgwick, an orientation estimate based on Warthog's internal gyroscope, accelerometer, and magnetometer. | -| `/status` | `warthog_msgs/Status` | Low-frequency status data for Warthog's systems. This information is republished in human readable form on the diagnostics topic and is best consumed with the Robot Monitor. | -| `/cmd_lights` | `warthog_msgs/Lights` | Input to controlling the Warthog's body lights when not in an error state. | -| `/SIDE/speed` | `std_msgs/Float64` | Input velocity for each motor where SIDE is either left or right. This should not be published to directly, commands from /cmd_vel will be converted to this. | -| `/SIDE/status/speed` | `std_msgs/Float64` | Reported velocity from each motor's encoder where SIDE is either left or right. | -| `/SIDE/status/fault` | `std_msgs/Bool` | Reported state from each motor controller where SIDE is either left or right. | -| `/SIDE/status/motor_temperature` | `std_msgs/Int32` | Reported temperature from each motor controller where SIDE is either left or right. | - -
-
- -
Warthog node and topic connections
-
-
- ---- - -## Warthog Software Setup {#warthog-software-setup} - -### Backing Up Robot Configuration - -Upgrading your Clearpath Warthog to ROS Noetic from older ROS distributions is a straightforward process; -however it's important to understand that each Warthog is different, having undergone customization to your specifications. -For more complete upgrade instructions see [this guide](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). - -Please take the time to understand what these modifications are, and how to recreate them on your fresh install of Ubuntu Focal/ROS Noetic. - -#### Performing a Backup {#performing-a-backup} - - - -### Installing and Configuring Robot Software - -:::note - -If you are upgrading your Warthog from an older version of ROS, please refer to our upgrade instructions [here](https://clearpathrobotics.com/assets/guides/kinetic/kinetic-to-melodic/index.html) -and [here](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). - -::: - -#### Installing Warthog Software - -:::note - -The physical Warthog robot comes pre-configured with ROS and the necessary Warthog packages already installed; -therefore, you will only need to follow the instructions below if you are re-installing software on the Warthog. - -::: - - - -#### Testing Base Configuration - -You can check that the service has started correctly by checking the logs: - -``` -sudo journalctl -u ros -``` - -Your Warthog should now be accepting commands from your joystick (see next section). -The service will automatically start each time you boot your Warthog's computer. - -### Setting up Warthog's Network Configuration {#warthog-networking} - -Warthog is normally equipped with a combination Wi-Fi + Bluetooth module. -If this is your first unboxing, ensure that Warthog's wireless antennae are firmly screwed onto the chassis. - -#### First Connection - -By default, Warthog's Wi-Fi is in client mode, looking for the wireless network at the Clearpath factory. - - - -#### Changing the Default Password - - - -#### Wi-Fi Setup - - - -### Installing Remote Computer Software {#remote-computer-software} - -:::note - -This step is optional. - -::: - - - -#### Adding a Source Workspace - - - ---- - -## Using Warthog {#using-warthog} - -### Simulating Warthog {#simulating-warthog} - -Whether you actually have a Warthog robot or not, the Warthog simulator is a great way to get started with ROS robot development. -In this tutorial, we will go through the basics of starting Gazebo and RViz and how to drive your Warthog around. - -#### Installation - -To get started with the Warthog simulation, make sure you have a [working ROS installation](#remote-computer-software) set up on your Ubuntu desktop, and install the Warthog-specific metapackages for desktop and simulation: - -``` -sudo apt-get install ros-noetic-warthog-simulator ros-noetic-warthog-desktop -``` - -#### Launching Gazebo - -[Gazebo](https://gazebosim.org/home) is the most common simulation tool used in ROS. Warthog's model in Gazebo include reasonable approximations of its dynamics, including wheel slippage, skidding, and inertia. -To launch simulated Warthog in a simple example world, run the following command: - -``` -roslaunch warthog_gazebo warthog_world.launch -``` - -You should see the following window appear, or something like it. -You will see a base Warthog spawned with no additional sensors. -You can adjust the camera angle by clicking and dragging while holding CTRL, ALT, or the Shift key. - -
-
- -
Simulated Warthog in Example World
-
-
- -The window which you are looking at is the Gazebo Client. -This window shows you the "true" state of the simulated world which the robot exists in. -It communicates on the backend with the Gazebo Server, which is doing the heavy lifting of actually maintaining the simulated world. -At the moment, you are running both the client and server locally on your own machine, but some advanced users may choose to run heavy duty simulations on separate hardware and connect to them over the network. - -:::note - -When simulating, you must leave Gazebo running. -Closing Gazebo will prevent other tools, such as RViz (see below) from working correctly. - -::: - -:::note - -See also [Additional Simulation Worlds](#additional-sim). - -::: - -### Interfacing with Warthog - -Both simulated and real Warthog robots expose the same ROS interface and can be interacted with in the same way. - -:::note - -Please make sure that the desktop packages for Warthog are installed: - -``` -sudo apt-get install ros-noetic-warthog-desktop -``` - -::: - -#### Launching RViz - -The next tool we will encounter is [RViz](http://wiki.ros.org/RViz). -Although superficially similar in appearance to Gazebo, RViz has a very different purpose. Unlike Gazebo, which shows the reality of the simulated world, RViz shows the robot's _perception_ of its world, whether real or simulated. -So while Gazebo won't be used with your real Warthog, RViz is used with both. - -You can use the following launch invocation to start RViz with a predefined configuration suitable for visualizing any standard Warthog config. - -``` -roslaunch warthog_viz view_robot.launch -``` - -You should see RViz appear. - -
-
- -
Warthog RViz
-
-
- -The RViz display only shows what the robot knows about its world, which presently, is nothing. -Because the robot doesn't yet know about the barriers which exist in its Gazebo world, they are not shown here. - -#### Driving with Interactive Controller - -RViz will also show Warthog's interactive markers around your Warthog's model. -These will appear as a blue ring and red arrows. -Depending on your robot, there will also be green arrows. -If you don't see them in your RViz display, select the Interact tool from the top toolbar and they should appear. - -Drag the red arrows in RViz to move in the linear X direction, and the blue circle to move in the angular Z direction. -If your robot supports lateral/sideways movement, you can drag the green arrows to move in the linear Y direction. -RViz shows you Warthog moving relative to its odometric frame, but it is also moving relative to the simulated world supplied by Gazebo. -If you click over to the Gazebo window, you will see Warthog moving within its simulated world. -Or, if you drive real Warthog using this method, it will have moved in the real world. - -#### Control - -There are three ways to send your Warthog control commands: - -1. Using the provided Fubata controller. - Refer to the [User Manual](/docs/robots/outdoor_robots/warthog/user_manual_warthog/#controller) details on how to use the controller. - -2. Using the RViz instance above. - If you select the Interact option in the top toolbar, an interactive marker will appear around the Warthog and can be used to control speed. - -3. The [rqt_robot_steering plugin](http://wiki.ros.org/rqt_robot_steering). - Run the `rqt` command, and select **Plugins→Robot Tools→Robot Steering** from the top menu. - -Warthog uses [twist_mux](http://wiki.ros.org/twist_mux) to mix separate [geometry_msgs\Twist](http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html) control channels into the `warthog_velocity_controller/cmd_vel` topic. - -Additional velocity channels can be defined in [twist_mux.yaml](https://github.com/warthog-cpr/warthog/blob/kinetic-devel/warthog_control/config/twist_mux.yaml), or can be piped into the lowest-priority `cmd_vel` topic. - -#### Odometry - -Warthog publishes odometry information on the `odometry/filtered` topic, as [nav_msgs/Odometry messages](http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html). -These are generated by [ekf_localization_node](http://wiki.ros.org/robot_localization), which processes data from several sensor sources using an Extended Kalman filter (EKF). -This includes data from the wheel encoders and IMU (if available). - -#### Diagnostics - -:::note - -Diagnostics are only applicable to real Warthog robots, not simulated ones. - -::: - -Warthog provides hardware and software system [diagnostics](http://wiki.ros.org/diagnostics) on the ROS standard `/diagnostics` topic. -The best way to view these messages is using the [rqt_runtime_monitor](http://wiki.ros.org/rqt_runtime_monitor) plugin. -Run the `rqt` command, and select **Plugins→Robot Tools→Runtime Monitor** from the top menu. - -The same information is also published as a [warthog_msgs\Status](https://docs.ros.org/en/api/warthog_msgs/html/msg/Status.html) message on the `Status` topic. - -From your desktop, you can also launch the standard RQT Robot Monitor. This will report the diagnostic output -from Warthog's self-monitoring capabilities, as shown in the figure below. - -``` -rosrun rqt_robot_monitor rqt_robot_monitor -``` - -
-
- -
Robot Monitor
-
-
- -### Driving Warthog {#driving-warthog} - -There are three ways to drive Warthog and each way will work on a physical Warthog robot as well as on a simulated Warthog. - -1. Using the interactive remote controller in RViz. See [Simulating Warthog](#simulating-warthog). -2. Using the controller for teleoperation. See below. -3. Publishing ROS messages. See below. - -:::warning - -Warthog is capable of reaching high speeds. -Careless driving can cause harm to the operator, bystanders, the robot, or other property. -Always remain vigilant, ensure you have a clear line of sight to the robot, and operate the robot at safe speeds. -The maximum speed is controllable through a dial on the Fubata controller; we strongly recommend setting the maximum -speed to a low value for initial driving tests and only setting maximum speed to a high value in open areas that are -free of people and obstacles. - -::: - -:::caution Pinch Points - -Refer to [Pinch Points](/docs/robots/outdoor_robots/warthog/user_manual_warthog#warthog-pinch-points) for -pinch points on the Warthog that should be avoided during operation. - -::: - -#### Driving with Remote Controller - -Warthog uses a standard Futaba remote control radio transmitter. To operate the remote, first power it on by sliding -the power switch to the ON position, as indicated in the image below. - -
-
- -
Fubata Controller
-
-
- -To drive the Warthog, the spring-loaded deadman switch in the upper-right corner must be held down. Releasing this switch will prevent the robot from moving. +The Warthog is currently only supported in [ROS 1](/docs/ros1noetic/robots/outdoor_robots/warthog/tutorials_warthog). -The lever on the left controls the robot's speed and the lever on the right controls the robot's rotation. - -#### Driving with ROS Messages - -You can manually publish `geometry_msgs/Twist` ROS messages to either the `/warthog_velocity_controller/cmd_vel` or the `/cmd_vel` ROS topics to drive Warthog. - -For example, in terminal, run: - -``` -rostopic pub /warthog_velocity_controller/cmd_vel geometry_msgs/Twist '{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}' -``` - -The command above makes Warthog drive forward momentarily at 0.5 m/s without any rotation. - -### Extending Warthog Startup - -Now that you've had Warthog for a while, you may be interested in how to extend it, perhaps add some more payloads, or augment the URDF. - -#### Startup Launch Context - -When ROS packages are grouped together in a directory and then built as one, the result is referred to as a workspace. -Each workspace generates a `setup.bash` file which the user may source in order to correctly set up important environment variables such as `PATH`, `PYTHONPATH`, and `CMAKE_PREFIX_PATH`. - -The standard system-wide setup file is in `/opt`: - -``` -source /opt/ros/noetic/setup.bash -``` - -When you run this command, you'll have access to `rosrun`, `roslaunch`, and all the other tools and packages installed on your system from Debian packages. - -However, sometimes you want to add additional system-specific environment variables, or perhaps packages built from source. -For this reason, Clearpath platforms use a wrapper setup file, located in `/etc/ros`: - -``` -source /etc/ros/setup.bash -``` - -This is the setup file which gets sourced by Warthog's background launch job, and in the default configuration, it is also sourced on your login session. -For this reason it can be considered the "global" setup file for Warthog's ROS installation. - -This file sets some environment variables and then sources a chosen ROS workspace, so it is one of your primary modification points for altering how Warthog launches. - -#### Launch Files - -The second major modification point is the `/etc/ros/noetic/ros.d` directory. -This location contains the launch files associated with the `ros` background job. -If you add launch files here, they will be launched with Warthog's startup. - -However, it's important to note that in the default configuration, any launch files you add may only reference ROS software installed in `/opt/ros/noetic`. -If you want to launch something from workspace in the home directory, you must change `/etc/ros/setup.bash` to source that workspace's setup file rather than the one from `/opt`. - -#### Adding URDF - -There are two possible approaches to augmenting Warthog's URDF. -The first is that you may simply set the `Warthog_URDF_EXTRAS` environment variable in `/etc/ros/setup.bash`. -By default, it points to an empty dummy file, but you can point it to a file of additional links and joints which you would like mixed into Warthog's URDF (via xacro) at runtime. - -The second, more sophisticated way to modify the URDF is to create a _new_ package for your own robot, and build your own URDF which wraps the one provided by -[warthog_description](https://github.com/warthog-cpr/warthog/tree/kinetic-devel/warthog_description). - -### Keeping Warthog Updated - -For details on updating Warthog software or firmware, refer to [Software Maintenance](/docs/robots/outdoor_robots/warthog/maintenance_warthog#software_maintenance). - ---- - -## Warthog Tests {#testing-warthog} - -Warthog robots come preinstalled with a set of test scripts as part of the `warthog_tests` ROS package, which can be run to verify robot functionality at the component and system levels. - -If your Warthog does not have the `warthog_tests` ROS package installed already, you can manually install it by opening terminal and running: - -``` -sudo apt-get install ros-noetic-warthog-tests -``` - -### ROS Tests - -The `ros_tests` script exposes a set of interactive tests to verify the functionality of core features. -These tests run at the ROS-level via ROS topics, and serve as a useful robot-level diagnostic tool for identifying the root cause of problems, or at the very least, narrowing down on where the root cause(s) may be. - -#### Running ROS Tests - -To run `ros_tests` on a Warthog robot, open terminal and run: - -``` -rosrun warthog_tests ros_tests -``` - -Upon running `ros_tests`, a list of available tests will be shown in a menu. -From the menu, you can choose individual tests to run, or simply choose the option to automatically run all the tests. - -The details of each test are shown below. - -- **Lighting Test** - - The **Lighting Test** checks that the robot's lights are working properly. - - This test turns the lights off, red, green, and blue (in order) by publishing lighting commands to the `/cmd_lights` ROS topic. - The user will be asked to verify that the lights change to the expected colours. - -- **Motion Stop Test** - - The **Motion Stop Test** checks that the robot's motion-stop is working properly. - - This test subscribes to the `/mcu/status` ROS topic and checks that when the motion-stop is manually engaged by the user, the motion-stop state is correctly reported on the `/mcu/status` ROS topic. - The user will be asked to verify that the lights flash red while the motion-stop is engaged. - -- **ADC Test** - - The **ADC Test** checks that the robot's voltage and current values across its internal hardware components are within expected tolerances. - - This test subscribes to the `/mcu/status` ROS topic and checks that the voltage and current values across the internal hardware are within expected tolerances. - -- **Rotate Test** - - The **Rotate Test** rotates the robot counter clockwise 2 full revolutions and checks that the motors, IMU, and EKF odometry are working properly. - - This test: - - - Subscribes to the `/imu/data` ROS topic to receive angular velocity measurements from the IMU's Gyroscope. - These measurements are converted into angular displacement estimations, and the robot will rotate until 2 full revolutions are estimated. - - Subscribes to the `/odometry/filtered` ROS topic to receive angular velocity estimations from the EKF odometry. - These measurements are converted into angular displacement estimations, and are output as comparison to the angular displacement estimations from the IMU's Gyroscope. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to rotate the robot. - - The user will be asked to verify that the robot rotates 2 full revolutions. - - :::note - - The **Rotate Test** rotates the robot using the IMU's Gyroscope data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. - - ::: - -- **Drive Test** - - The **Drive Test** drives the robot forward 1 metre and checks that the motors, encoders, and encoder-fused odometry are working properly. - - This test: - - - Subscribes to the `/warthog_velocity_controller/odom` ROS topic to receive linear displacement estimations from the encoder-fused odometry. - The robot will drive forward until 1 metre is estimated. - - Subscribes to the `/joint_state` ROS topic to receive linear displacement measurements from individual the encoders. - These measurements are output as comparison to the linear displacement estimations from the encoder-fused odometry. - - Publishes to the `/cmd_vel` ROS topic to send drive commands to drive the robot. - - The user will be asked to verify that the robot drives forward 1 metre. - - :::note - - The **Drive Test** drives the robot using the Odometry data, which inherently will not be 100% accurate. - Therefore, some undershoot/overshoot is to be expected. - - ::: - -### CAN Bus Test - -The `check_can_bus_interface` script checks that communication between the motors, encoders, robot's MCU, and robot's computer are working properly over the CAN bus interface. - -This script verifies that the `can0` interface is detected and activated, then proceeds to check the output of `candump` to verify that good CAN packets are being transmitted. - -#### Running CAN Bus Test - -To run the `check_can_bus_interface` script on a Warthog robot, open terminal and run: - -``` -rosrun warthog_tests check_can_bus_interface -``` - ---- - -## Advanced Topics - -### Configuring the Network Bridge - - - -### Additional Simulation Worlds {#additional-sim} - -In addtion to the default `warthog_world.launch` file, `warthog_gazebo` contains -three additional launch files: - -- `empty_world.launch`, which spawns Warthog in a featureless, infinite plane; -- `warthog_race.launch`, which spawns a world with lots of linear barriers; and -- `spawn_warthog.launch`, which is intended to be included in any custom world to add a Warthog simulation to it. - -To add a Warthog to any of your own worlds, simply include the `spawn_warthog.launch` file in your own world's launch: - -```markup - - - - - - - -``` - -Finally, Clearpath provides an additional suite of simulation environments that can be downloaded separately and used with Warthog, as described below. - -#### Clearpath Gazebo Worlds - -The Clearpath Gazebo Worlds collection contains 4 different simulation worlds, representative of different environments our robots are designed to operate in: - -- Inspection World: a hilly outdoor world with water and a cave -- Agriculture World: a flat outdoor world with a barn, fences, and solar farm -- Office World: a flat indoor world with enclosed rooms and furniture -- Construction World: office world, under construction with small piles of debris and partial walls - -Warthog is supported in Inspection and Agriculture Worlds. - -#### Installation - -To download the Clearpath Gazebo Worlds, clone the repository from github into the same workspace as your Warthog: - -``` -cd ~/catkin_ws/src -git clone https://github.com/clearpathrobotics/cpr_gazebo.git -``` - -Before you can build the package, make sure to install dependencies. -Because Clearpath Gazebo Worlds depends on all of our robot's simulation packages, and some of these are currently only -available as source code, installing dependencies with `rosdep install --from-paths [...]` will likely fail. - -To simulate Warthog in the Office and Construction worlds the only additional dependency is the `gazebo_ros` package. - -Once the dependencies are installed, you can build the package: - -``` -cd ~/catkin_ws -catkin_make -source devel/setup.bash -``` - -#### Running the Inspection Simulation - -Inspection World is a hilly, outdoor world that includes a water feature, bridge, pipeline, small cave/mine, -and a small solar farm. It is intended to simulate a variety of missions, including pipeline inspection, -cave/underground navigation, and localization on non-planar terrain. - -
-
- -
Warthog driving over the bridge in the inspection world
-
-
- -To launch the inspection simulation, run - -``` -roslaunch cpr_inspection_gazebo inspection_world.launch platform:=warthog -``` - -To customize Warthog's payload, for example to add additional sensors, see -[Customizing Warthog's Payload](#customize-payload). - -Once the simulation is running you can use RViz and other tools as described in -[Simulating Warthog](#simulating-warthog) to control and monitor the robot. -For example, below we can see Warthog exploring the cave: - -
-
- -
Warthog exploring the cave
-
-
- -and Warthog's perception of the inside of the cave as a 3D pointcloud in RViz: - -
-
- -
Warthog in RViz exploring the cave
-
-
- -You can see the complete layout of the Inspection World below: - -
-
- -
Inspection World
-
-
- -#### Running the Agriculture Simulation - -Agriculture World is a flat, mixed indoor/outdoor world that include a large barn, open fields surrounded by fences, -and a large solar farm. It is intended to simulate missions such as solar panel inspection and area coverage. - -
-
- -
Warthog in the agriculture world
-
-
- -To launch the agriculture simulation, run - -``` -roslaunch cpr_agriculture_gazebo agriculture_world.launch platform:=warthog -``` - -To customize Warthog's payload, for example to add additional sensors, see -[Customizing Warthog's Payload](#customize-payload). - -Once the simulation is running you can use RViz and other tools as described in -[Simulating Warthog](#simulating-warthog) to control and monitor the robot. - -
-
- -
Agriculture World
-
-
- -#### Customizing Warthog's Payload {#customize-payload} - -To customize Warthog's payload you must use the environment variables described in -[Environment Variables](#environment-variables). - -You can add additional sensors by creating a customized URDF and setting the `WARTHOG_URDF_EXTRAS` environment -variable to point to it. - -For example, let's suppose you want to equip Warthog with an Intel RealSense D435 camera. First, install the `realsense2_camera` -and `realsense2_description` packages, along with the gazebo plugins: - -``` -sudo apt-get install ros-$ROS_DISTRO-realsense2-camera ros-$ROS_DISTRO-realsense2-description ros-$ROS_DISTRO-gazebo-plugins -``` - -Then create your customized URDF file, for example `$HOME/Desktop/realsense.urdf.xacro`. Put the following in it: - -```markup - - - - - - - - - - - - - - - true - - 30 - - - 1.5184351666666667 - 1.0122901111111111 - - - 640 - 480 - RGB8 - - - - 0.01 - 50.0 - - - - 0.2 - true - 30 - realsense - color/image_raw - color/camera_info - depth/image_rect_raw - depth/camera_info - depth/color/points - front_realsense_gazebo - 0.105 - 8.0 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0.00000001 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - -``` - -This file defines the additional links for adding a RealSense camera to the robot, as well as configuring the `openni_kinect` -plugin for Gazebo to simulate data from a depth camera. The camera itself will be connected to the Warthog's `top_chassis_link` -link, offset 62.5 cm towards the front of the robot. - -Now, set the `WARTHOG_URDF_EXTRAS` environment variable and try viewing the Warthog model: - -``` -export WARTHOG_URDF_EXTRAS=$HOME/Desktop/realsense.urdf.xacro -roslaunch warthog_viz view_model.launch -``` - -You should see the Warthog model in RViz, with the RealSense camera mounted to it: - -
-
- -
Warthog with a RealSense D435 connected to it
-
-
- -To launch the customized Warthog in any of the new simulation environments, similarly run: - -``` -export WARTHOG_URDF_EXTRAS=$HOME/Desktop/realsense.urdf.xacro -roslaunch cpr_inspection_gazebo inspection_world.launch platform:=warthog -``` - -You should see Warthog spawn in the office world with the RealSense camera: - -
-
- -
Warthog in Inspection cave
-
-
- -You can view the sensor data from the RealSense camera by running - -``` -roslaunch warthog_viz view_robot.launch -``` - -and adding the camera & pointcloud from the `/realsense/color/image_raw` and `/realsense/depth/color/points` topics: +For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/warthog). -
-
- -
Warthog with a RealSense in RViz showing pointcloud data
-
-
+ --- diff --git a/docs/robots/outdoor_robots/warthog/user_manual_warthog.mdx b/docs/robots/outdoor_robots/warthog/user_manual_warthog.mdx index 452c1aa55..549f654c0 100644 --- a/docs/robots/outdoor_robots/warthog/user_manual_warthog.mdx +++ b/docs/robots/outdoor_robots/warthog/user_manual_warthog.mdx @@ -7,7 +7,6 @@ toc_max_heading_level: 4 --- import ComponentIntroductionWarthog from "/components/introduction_warthog.mdx"; -import ComponentNetplanSetup from "/components/netplan_setup.mdx"; import ComponentUsingRos from "/components/using_ros.mdx"; import Support from "/components/support.mdx"; import ComponentCommonSafeWorkProcedures from "/components/common_safe_work_procedures.mdx"; @@ -108,7 +107,7 @@ To connect a device to the onboard network, it's suggested to give it a static I | 192.168.131.2 | Ethernet-connected MCU | Typically addresses numbered 192.168.131.100 and above will not collide with any of Warthog's payloads. -Please see [Electrical Integration](/docs/robots/outdoor_robots/warthog/integration_warthog/#warthog-electrical-integration) for more information. +Please see [Electrical Integration](./integration_warthog/#warthog-electrical-integration) for more information. #### Payload Integration Area @@ -116,7 +115,7 @@ All payloads should be mounted to the central chassis when traversing through wa The primary payload of the unit should be placed on the central chassis. If necessary loading can be placed on the drive units however payloads should not exceed 23 kg (50 lbs) on each drive unit. -For more information and guidance on mounting payload structures on top of Warthog, please refer to subsection [Mechanical Mounting](/docs/robots/outdoor_robots/warthog/integration_warthog/#warthog-mechanical-mounting). +For more information and guidance on mounting payload structures on top of Warthog, please refer to subsection [Mechanical Mounting](./integration_warthog/#warthog-mechanical-mounting). #### Body Lights @@ -186,7 +185,7 @@ These two computers must be set up to communicate with each other. ### Onboard Computer Setup Warthog ships with an Onboard Computer from Clearpath Robotics, which is already installed, connected, and powered. -If you need to reinstall the software on it, refer to the [Warthog Tutorials](/docs/robots/outdoor_robots/warthog/tutorials_warthog#warthog-software-setup). +If you need to reinstall the software on it, refer to the [Warthog Tutorials](./tutorials_warthog). ### Powering Up @@ -335,7 +334,7 @@ The Futaba RC will always publish messages to the `/rc_teleop/cmd_vel` topic whe To get Warthog connected to your local Wi-Fi network, you must first access the Onboard Computer using a wired connection to the robot. Locate the User Breakout Panel on the rear of the chassis and connect to an Ethernet port with a standard -Ethernet cable. See the [Warthog Tutorials](/docs/robots/outdoor_robots/warthog/tutorials_warthog#warthog-networking) for details +Ethernet cable. See the [Warthog Tutorials](./tutorials_warthog) for details on completing the Wi-Fi setup. ### Using ROS diff --git a/docs/robots/robots.mdx b/docs/robots/robots.mdx index 803349cbf..7829d8be8 100644 --- a/docs/robots/robots.mdx +++ b/docs/robots/robots.mdx @@ -1,6 +1,6 @@ --- title: Robots Overview -sidebar_label: Robots +sidebar_label: Robots Overview sidebar_position: 1 --- @@ -35,12 +35,12 @@ The extensibility of ROS has also allowed Clearpath to use it to develop the pro :::info links to our robot pages -- [Boxer](/docs/robots/indoor_robots/boxer/user_manual_boxer) -- [Dingo](/docs/robots/indoor_robots/dingo/user_manual_dingo) -- [Husky](/docs/robots/outdoor_robots/husky/user_manual_husky) -- [Jackal](/docs/robots/outdoor_robots/jackal/user_manual_jackal) -- [Ridgeback](/docs/robots/indoor_robots/ridgeback/user_manual_ridgeback) -- [TurtleBot 4](/docs/robots/learing_platforms/turtlebot4/user_manual_turtlebot4) -- [Warthog](/docs/robots/outdoor_robots/warthog/user_manual_warthog) +- [Boxer](./indoor_robots/boxer/user_manual_boxer) +- [Dingo](./indoor_robots/dingo/user_manual_dingo) +- [Husky](./outdoor_robots/husky/user_manual_husky) +- [Jackal](./outdoor_robots/jackal/user_manual_jackal) +- [Ridgeback](./indoor_robots/ridgeback/user_manual_ridgeback) +- [TurtleBot 4](./learning_platforms/turtlebot4) +- [Warthog](./outdoor_robots/warthog/user_manual_warthog) ::: diff --git a/docs/ros/api/_category_.json b/docs/ros/api/_category_.json new file mode 100644 index 000000000..a4b6671f1 --- /dev/null +++ b/docs/ros/api/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "API", + "position": 3 +} diff --git a/docs/ros/api/mcu_api.mdx b/docs/ros/api/mcu_api.mdx new file mode 100644 index 000000000..39962e84c --- /dev/null +++ b/docs/ros/api/mcu_api.mdx @@ -0,0 +1,26 @@ +--- +title: ROS 2 MCU API +sidebar_label: MCU API +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +## MCU topics + +| Topic | Message type | Publisher | Description | QoS | +| :------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :-------------------------------------- | :------------------------------------------ | +| platform/emergency_stop | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | MCU node | State of platform emergency stop | [Sensor Data](overview#sensor-data) | +| platform/mcu/status | [clearpath_platform_msgs/Status](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Status.msg) | MCU node | MCU status | [Sensor Data](overview#sensor-data) | +| platform/mcu/status/power | [clearpath_platform_msgs/Power](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Power.msg) | MCU node | Robot Power status | [Sensor Data](overview#sensor-data) | +| platform/mcu/status/stop | [clearpath_platform_msgs/StopStatus](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/StopStatus.msg) | MCU node | Stop loop status | [Sensor Data](overview#sensor-data) | +| platform/motors/cmd_drive | [clearpath_platform_msgs/Drive](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Drive.msg) | Control node | Command velocities to individual wheels | [Sensor Data](overview#sensor-data) | +| platform/motors/feedback | [clearpath_platform_msgs/DriveFeedback](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/DriveFeedback.msg) | MCU node | Feedback from motor drive unit | [Sensor Data](overview#sensor-data) | +| platform/wifi_connected | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | Wireless Watcher node | Wi-Fi connected status | [Sensor Data](overview#sensor-data) | +| /rosout | [rcl_interfaces/Log](https://github.com/ros2/rcl_interfaces/blob/humble/rcl_interfaces/msg/Log.msg) | MCU node | System Logs | [Transient Local](overview#transient-local) | + +## MCU services + +| Service | Service type | Server | Description | QoS | +| :--------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | :------------------------------------ | :------------- | +| platform/mcu/configure | [clearpath_platform_msgs/ConfigureMcu](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/srv/ConfigureMcu.srv) | MCU node | Configure MCU domain ID and namespace | System default | diff --git a/docs/ros/api/overview.mdx b/docs/ros/api/overview.mdx new file mode 100644 index 000000000..6bd30a5ed --- /dev/null +++ b/docs/ros/api/overview.mdx @@ -0,0 +1,96 @@ +--- +title: ROS 2 Robot API +sidebar_label: Overview +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +The ROS 2 API is a standard naming scheme for ROS 2 topics and services. Every supported Clearpath +robot uses this API, making it easy to use the robots interchangeably. + +## QoS Profiles {#qos-profiles} + +Topics and services in ROS 2 use Quality of Service (QoS) profiles to change communication policies. The QoS profile +of a topic or service has several policies such as history, depth, reliability, durability, and more. For more details on +QoS settings, visit the [ROS 2 documentation](https://docs.ros.org/en/humble/Concepts/About-Quality-of-Service-Settings.html). + +For Clearpath platforms, the main policies that may change between different topics and services are reliability and durability. For reliability +there are two options: _Best Effort_, and _Reliable_. A _Best Effort_ reliability suggests that an attempt will be made to publish +the data, but if the network is not robust then the data may be lost. On the other hand, _Reliable_ guarantees that the data will be received. +This may require that the data be sent multiple times. + +The durability of a QoS profile can be either _Transient Local_ or _Volatile_. _Transient Local_ means that data for published messages will +be stored by the publisher even after it has been published. A new subscriber will receive the data even if a lot of time has passed since it was originally published. +This durability is typically used for data that only needs to be published once, such as the robot description. The other durability policy is _Volatile_ which does not +store old messages. The messages are published and only active subscribers will receive the data. New subscribers will have to wait for the next message to be published. +Most topics will use a _Volatile_ durability policy. + +It is important to check for [QoS compatibility](https://docs.ros.org/en/humble/Concepts/Intermediate/About-Quality-of-Service-Settings.html#qos-compatibilities) when interacting with ROS 2. +Mixing of QoS policies when publishing or subscribing to topics can lead to incompatibility. For example, subscribing to a Best Effort publisher with a Reliable subscriber +is not compatible and will result in no data being received on the subscriber. The easiest way to check the QoS profile of a topic is to use the ROS 2 command line interface. + +``` +ros2 topic info /topic_name -v +``` + +### Common QoS profiles {#common-qos-profiles} + +The following are some common QoS profiles used by Clearpath platforms. + +#### System Default + +- **History**: _Keep Last_ +- **Depth**: _10_ +- **Reliability**: _Reliable_ +- **Durability**: _Volatile_ +- **Deadline**: _System Default_ +- **Lifespan**: _System Default_ +- **Liveliness**: _Automatic_ +- **Lease Duration**: _System Default_ + +The _System Default_ QoS profile is the most common profile used by most topics. + +#### Sensor Data + +- **History**: _Keep Last_ +- **Depth**: _5_ +- **Reliability**: _Best Effort_ +- **Durability**: _Volatile_ +- **Deadline**: _System Default_ +- **Lifespan**: _System Default_ +- **Liveliness**: _Automatic_ +- **Lease Duration**: _System Default_ + +The _Sensor Data_ QoS Profile uses a _Best Effort_ reliability to send the latest data +as soon as possible, without bothering to resend data that was not received. This is mostly used +by the MCU and sensor drivers. + +:::note +Not all sensor drivers use this QoS profile. Always check the QoS profile before trying to subscribe to the topic. +::: + +#### Transient Local + +- **History**: _Keep Last_ +- **Depth**: _10_ +- **Reliability**: _Reliable_ +- **Durability**: _Transient Local_ +- **Deadline**: _System Default_ +- **Lifespan**: _System Default_ +- **Liveliness**: _Automatic_ +- **Lease Duration**: _System Default_ + +The _Transient Local_ QoS Profile offers a _Transient Local_ durability, and is typically used by topics that only +want to send messages once. For Clearpath platforms, this includes the robot description topic and the `/rosout` topic +which offers system logs. + +## Namespacing + +Namespacing is the method of adding a prefix to a robot's nodes and topics; this helps differentiate them from another robot that +may be on the same network. For example, every robot will have a `cmd_vel` topic for commanding velocity. If both robots +used the same topic, then they would both drive when a message is published to that topic. By namespacing, we can remap the topic +to `robot1/cmd_vel` and `robot2/cmd_vel` for each respective robot. + +By default, the namespace of the robot will be obtained from the serial number of the robot. If your serial number is `cpr-a200-0001`, then your namespace +will be `a200_0001`. This can be overwritten in the [robot.yaml](../config/yaml) file. diff --git a/docs/ros/api/platform_api.mdx b/docs/ros/api/platform_api.mdx new file mode 100644 index 000000000..8c2349778 --- /dev/null +++ b/docs/ros/api/platform_api.mdx @@ -0,0 +1,31 @@ +--- +title: ROS 2 Platform API +sidebar_label: Platform API +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +## Platform topics + +| Topic | Message type | Publisher | Description | QoS | +| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------- | :-------------------------------------------- | :------------------------------------------ | +| cmd_vel | [geometry_msgs/Twist](https://github.com/ros2/common_interfaces/blob/humble/geometry_msgs/msg/Twist.msg) | User | Commands the robot to drive at a velocity | [System Default](overview#system-default) | +| diagnostics | [diagnostics_msgs/DiagnosticArray](https://github.com/ros2/common_interfaces/blob/humble/diagnostic_msgs/msg/DiagnosticArray.msg) | Various nodes | Diagnostic messages reported by various nodes | [System Default](overview#system-default) | +| joy_teleop/cmd_vel | [geometry_msgs/Twist](https://github.com/ros2/common_interfaces/blob/humble/geometry_msgs/msg/Twist.msg) | Joy node | Velocity commands from joystick inputs | [System Default](overview#system-default) | +| joy_teleop/joy | [sensor_msgs/Joy](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Joy.msg) | Joy node | Joystick input states | [System Default](overview#system-default) | +| platform/cmd_vel_unstamped | [geometry_msgs/Twist](https://github.com/ros2/common_interfaces/blob/humble/geometry_msgs/msg/Twist.msg) | Twist Mux node | Resulting velocity commands from twist mux | [System Default](overview#system-default) | +| platform/dynamic_joint_states | [control_msgs/DynamicJointState](https://github.com/ros-controls/control_msgs/blob/humble/control_msgs/msg/DynamicJointState.msg) | Control node | Platform dynamic joint state | [System Default](overview#system-default) | +| platform/emergency_stop | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | MCU node | State of platform emergency stop | [Sensor Data](overview#sensor-data) | +| platform/joint_states | [sensor_msgs/JointState](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/JointState.msg) | Control node | Platform joint state | [System Default](overview#system-default) | +| platform/motors/cmd_drive | [clearpath_platform_msgs/Drive](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/Drive.msg) | Control node | Command velocities to individual wheels | [Sensor Data](overview#sensor-data) | +| platform/motors/feedback | [clearpath_platform_msgs/DriveFeedback](https://github.com/clearpathrobotics/clearpath_msgs/blob/main/clearpath_platform_msgs/msg/DriveFeedback.msg) | MCU node | Feedback from motor drive unit | [Sensor Data](overview#sensor-data) | +| platform/odom | [nav_msgs/Odometry](https://github.com/ros2/common_interfaces/blob/humble/nav_msgs/msg/Odometry.msg) | Control node | Platform wheel odometry | [System Default](overview#system-default) | +| platform/odom/filtered | [nav_msgs/Odometry](https://github.com/ros2/common_interfaces/blob/humble/nav_msgs/msg/Odometry.msg) | EKF node | Platform wheel odometry fused with IMU data | [System Default](overview#system-default) | +| platform/wifi_connected | [std_msgs/Bool](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/Bool.msg) | Wireless Watcher node | Wi-Fi connected status | [System Default](overview#system-default) | +| platform/wifi_status | [wireless_msgs/Connection](https://github.com/clearpathrobotics/wireless/blob/foxy-devel/wireless_msgs/msg/Connection.msg) | Wireless Watcher node | Wi-Fi signal status | [System Default](overview#system-default) | +| robot_description | [std_msgs/String](https://github.com/ros2/common_interfaces/blob/humble/std_msgs/msg/String.msg) | Robot State Publisher | Robot description | [Transient Local](overview#transient-local) | +| tf | [tf2_msgs/TFMessage](https://github.com/ros2/geometry2/blob/humble/tf2_msgs/msg/TFMessage.msg) | Various nodes | Link transforms | [System Default](overview#system-default) | +| tf_static | [tf2_msgs/TFMessage](https://github.com/ros2/geometry2/blob/humble/tf2_msgs/msg/TFMessage.msg) | Various nodes | Static link transforms | [Transient Local](overview#transient-local) | +| twist_marker_server/cmd_vel | [geometry_msgs/Twist](https://github.com/ros2/common_interfaces/blob/humble/geometry_msgs/msg/Twist.msg) | Twist Marker Server | Velocity commands from twist marker | [System Default](overview#system-default) | +| /rosout | [rcl_interfaces/Log](https://github.com/ros2/rcl_interfaces/blob/humble/rcl_interfaces/msg/Log.msg) | Various nodes | System Logs | [Transient Local](overview#transient-local) | diff --git a/docs/ros/api/sensors_api.mdx b/docs/ros/api/sensors_api.mdx new file mode 100644 index 000000000..f1d53ef6b --- /dev/null +++ b/docs/ros/api/sensors_api.mdx @@ -0,0 +1,50 @@ +--- +title: ROS 2 Sensors API +sidebar_label: Sensors API +sidebar_position: 4 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +## 2D Lidar topics + +| Topic | Message type | Description | QoS | +| :------------------------------- | :----------------------------------------------------------------------------------------------------------- | :-------------- | :---------------------------------------- | +| platform/sensors/lidar2d\_#/scan | [sensor_msgs/LaserScan](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/LaserScan.msg) | Lidar scan data | [System Default](overview#system-default) | + +## 3D Lidar topics + +| Topic | Message type | Description | QoS | +| :--------------------------------- | :--------------------------------------------------------------------------------------------------------------- | :-------------------- | :---------------------------------------- | +| platform/sensors/lidar3d\_#/points | [sensor_msgs/PointCloud2](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/PointCloud2.msg) | Lidar pointcloud data | [System Default](overview#system-default) | +| platform/sensors/lidar3d\_#/scan | [sensor_msgs/LaserScan](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/LaserScan.msg) | Lidar scan data | [System Default](overview#system-default) | + +## Camera topics + +| Topic | Message type | Description | QoS | +| :------------------------------------------- | :--------------------------------------------------------------------------------------------------------------- | :-------------- | :---------------------------------------- | +| platform/sensors/camera\_#/color/image | [sensor_msgs/Image](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Image.msg) | Raw RGB image | [System Default](overview#system-default) | +| platform/sensors/camera\_#/color/camera_info | [sensor_msgs/CameraInfo](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/CameraInfo.msg) | Camera Info | [System Default](overview#system-default) | +| platform/sensors/camera\_#/depth/image | [sensor_msgs/Image](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Image.msg) | Raw depth image | [System Default](overview#system-default) | +| platform/sensors/camera\_#/depth/camera_info | [sensor_msgs/CameraInfo](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/CameraInfo.msg) | Camera Info | [System Default](overview#system-default) | +| platform/sensors/camera\_#/points | [sensor_msgs/PointCloud2](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/PointCloud2.msg) | Pointcloud data | [System Default](overview#system-default) | +| platform/sensors/camera\_#/imu | [sensor_msgs/Imu](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Imu.msg) | IMU data | [System Default](overview#system-default) | + +## IMU topics + +| Topic | Message type | Description | QoS | +| :------------------------------- | :------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------- | :---------------------------------------- | +| platform/sensors/imu\_#/data_raw | [sensor_msgs/Imu](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Imu.msg) | Raw IMU orientation, angular velocity, and linear acceleration data | [Sensor Data](overview#sensor-data) | +| platform/sensors/imu\_#/data | [sensor_msgs/Imu](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/Imu.msg) | Filtered IMU orientation, angular velocity, and linear acceleration data | [System Default](overview#system-default) | +| platform/sensors/imu\_#/mag | [sensor_msgs/MagneticField](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/MagneticField.msg) | IMU magnetic field data | [System Default](overview#system-default) | + +## GPS topics + +| Topic | Message type | Description | QoS | +| :-------------------------- | :----------------------------------------------------------------------------------------------------------- | :--------------------- | :---------------------------------------- | +| platform/sensors/gps\_#/fix | [sensor_msgs/NavSatFix](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/NavSatFix.msg) | Navsat Fix information | [System Default](overview#system-default) | + +:::note +The '#' in the topic represents the index of the sensor. Indexing begins at 0 and will increment for +each new sensor of that type that is added. Internal sensors such as IMU's will be indexed first. +::: diff --git a/docs/ros/config/_category_.json b/docs/ros/config/_category_.json new file mode 100644 index 000000000..f4eab1657 --- /dev/null +++ b/docs/ros/config/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Robot Configuration", + "position": 2 +} diff --git a/docs/ros/config/generators.mdx b/docs/ros/config/generators.mdx new file mode 100644 index 000000000..d49e7cf0b --- /dev/null +++ b/docs/ros/config/generators.mdx @@ -0,0 +1,65 @@ +--- +title: Generators +sidebar_label: Generators +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +Part of the appeal of using the robot YAML configuration file is that it allows us to generate the necessary files +to operate the robot at runtime. There are 4 types of files that need to be generated: bash shell scripts, URDF description files, +launch files, and parameter files. Each file type has a generator which will use the [Clearpath Config](../../ros#terminology) to figure out which files need to +be created, and what the contents should be. Each generator also has a writer class which contains methods for writting formatted +lines specific to the file type. + +:::note +Generator scripts do not need to be modified by the user. Rather the user should modify their robot YAML file to suit their needs. +::: + +### Bash + +The main bash script that needs to be generated is the `setup.bash` file. This file will source the Humble `setup.bash`, as well as any +additional workspaces. It will also contain environment variables for setting up ROS 2. This file will be sourced by the `robot_upstart` job, as well +as the user terminal. This way we can ensure that the bash environment of the upstart jobs matches the user's. + +### Description + +The description generator will generate a `robot.urdf.xacro` file which will define the robot. By parsing the robot YAML file, we can determine which +platform the robot is using, as well as which mounts, accessories, and sensors will need to be added on top of the platform. This URDF file will later +be used with the robot state publisher to publish all of the static transforms that make up the robot. + +### Launch + +The launch generator creates ROS 2 [python launch files](https://docs.ros.org/en/humble/Tutorials/Intermediate/Launch/Creating-Launch-Files.html). It will create both the platform and sensor launch files by parsing the robot config. Typically, the generated launch file will include a default launch file, and pass in launch arguments as appropriate. Python classes have been defined for adding other launch files, nodes, and processes to the generated launch file, making it intuitive to use. + +### Parameter + +The parameter generator creates `.yaml` ROS parameter files that are used by the corresponding launch file. Each node has default parameters set that the user can overwrite by setting them in the robot configuration YAML. + +### Setup folder structure + +Once all files are generated, the resulting setup folder structure under `/etc/clearpath/` will look like this: + +- **platform** + - **launch** + - _platform-service.launch.py_ + - **config** + - _control.yaml_ + - _imu_filter.yaml_ + - _localization.yaml_ + - _teleop_interactive_markers.yaml_ + - _teleop_joy.yaml_ + - _twist_mux.yaml_ +- **sensors** + - **launch** + - _sensors-service.launch.py_ + - _camera_0.launch.py_ + - _camera_1.launch.py_ + - ... + - **config** + - _camera_0.yaml_ + - _camera_1.yaml_ + - ... +- _robot.urdf.xacro_ +- _robot.yaml_ +- _setup.bash_ diff --git a/docs/ros/config/img/husky_accessories_0.png b/docs/ros/config/img/husky_accessories_0.png new file mode 100644 index 000000000..464d2ba29 Binary files /dev/null and b/docs/ros/config/img/husky_accessories_0.png differ diff --git a/docs/ros/config/img/husky_mounts_0.png b/docs/ros/config/img/husky_mounts_0.png new file mode 100644 index 000000000..59337c67f Binary files /dev/null and b/docs/ros/config/img/husky_mounts_0.png differ diff --git a/docs/ros/config/img/husky_mounts_1.png b/docs/ros/config/img/husky_mounts_1.png new file mode 100644 index 000000000..0b51a3c4d Binary files /dev/null and b/docs/ros/config/img/husky_mounts_1.png differ diff --git a/docs/ros/config/img/husky_platform_0.png b/docs/ros/config/img/husky_platform_0.png new file mode 100644 index 000000000..0be0dde66 Binary files /dev/null and b/docs/ros/config/img/husky_platform_0.png differ diff --git a/docs/ros/config/img/husky_platform_1.png b/docs/ros/config/img/husky_platform_1.png new file mode 100644 index 000000000..8f31095c5 Binary files /dev/null and b/docs/ros/config/img/husky_platform_1.png differ diff --git a/docs/ros/config/img/husky_platform_2.png b/docs/ros/config/img/husky_platform_2.png new file mode 100644 index 000000000..b9c38c500 Binary files /dev/null and b/docs/ros/config/img/husky_platform_2.png differ diff --git a/docs/ros/config/img/husky_sample.png b/docs/ros/config/img/husky_sample.png new file mode 100644 index 000000000..583d799e1 Binary files /dev/null and b/docs/ros/config/img/husky_sample.png differ diff --git a/docs/ros/config/img/husky_sensors_0.png b/docs/ros/config/img/husky_sensors_0.png new file mode 100644 index 000000000..d8a8db251 Binary files /dev/null and b/docs/ros/config/img/husky_sensors_0.png differ diff --git a/docs/ros/config/img/husky_sensors_1.png b/docs/ros/config/img/husky_sensors_1.png new file mode 100644 index 000000000..f9f7d4c6c Binary files /dev/null and b/docs/ros/config/img/husky_sensors_1.png differ diff --git a/docs/ros/config/img/husky_sensors_2.png b/docs/ros/config/img/husky_sensors_2.png new file mode 100644 index 000000000..378e893c9 Binary files /dev/null and b/docs/ros/config/img/husky_sensors_2.png differ diff --git a/docs/ros/config/services.mdx b/docs/ros/config/services.mdx new file mode 100644 index 000000000..d2d0a8140 --- /dev/null +++ b/docs/ros/config/services.mdx @@ -0,0 +1,32 @@ +--- +title: Services +sidebar_label: Services +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +To run all ROS 2 nodes in the background and from boot, we use [robot_upstart](https://github.com/clearpathrobotics/robot_upstart/tree/foxy-devel) to install +the launch files as [systemd](https://manpages.ubuntu.com/manpages/jammy/en/man5/systemd.service.5.html) services. In ROS 1 there was a single `ros` service that +ran everything. For ROS 2 Humble, we have split this into three separate services: +[Platform](https://github.com/clearpathrobotics/clearpath_robot/blob/main/clearpath_robot/services/clearpath-platform.service), +[Sensors](https://github.com/clearpathrobotics/clearpath_robot/blob/main/clearpath_robot/services/clearpath-sensors.service), and +[Robot](https://github.com/clearpathrobotics/clearpath_robot/blob/main/clearpath_robot/services/clearpath-robot.service). + +### Clearpath Platform + +The `clearpath-platform` service launches the `clearpath-platform.launch.py` file found under `/etc/clearpath/platform/launch/`. This will launch the nodes +required to operate the base platform, such as control, teleop, localization, and more. Running this service alone is enough to drive the robot, visualise it +in Rviz, and get platform data. This service can be stopped or started without interrupting the sensor service. + +### Clearpath Sensors + +The `clearpath-sensors` service launches the `clearpath-sensors.launch.py` file found under `/etc/clearpath/sensors/launch/`. This will launch any +sensors defined in the robot YAML. This service can be stopped or started without interrupting the platform service. + +### Clearpath Robot + +The `clearpath-robot` service is the "parent" service of `clearpath-platform` and `clearpath-sensors`. If it is restarted, then both the platform and sensors services +will restart. This service will run all of the [generators](generators) in the `PreExec` step, before allowing the two dependent services to start. While +the platform and sensors services are running, the robot service will periodically check for changes in the `robot.yaml` file. If a change is detected +the service restarts, re-generating all files and restarting the platform and sensors services. diff --git a/docs/ros/config/yaml.mdx b/docs/ros/config/yaml.mdx new file mode 100644 index 000000000..267882bac --- /dev/null +++ b/docs/ros/config/yaml.mdx @@ -0,0 +1,968 @@ +--- +title: Robot YAML +sidebar_label: Robot YAML +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +Our robots provide users with a wide range of customization options: sensors, sensor mounting structures, and custom-made parts. Matching the flexibility of our hardware, Clearpath's ROS 2 system is designed to keep all these customization decisions in a single configuration file. + +The **Clearpath Robot Configuration YAML**, or `robot.yaml` for short, contains all information pertinent to the entire robot system, allowing robot builders and users to quickly and easily modify any ROS 2 component. + +## Overview + +The `robot.yaml` is composed of five major sections: + +1. [**system**](#system) level information such as the robot's hostname, IP, and ROS middleware implementation. +2. [**platform**](#platform) level configurations such as robot specific mounting structures and specifying an extra URDF to attach. +3. [**accessories**](#accessories) that are URDF primitives: boxes, cylinders, and meshes. +4. [**mounts**](#mounts) that are predefined, generic, sensor mounting structures. +5. [**sensors**](#sensors) that are selected from an inventory of Clearpath supported sensors. + +Additionally, there are two other, required parameters: + +1. The robot's [**serial_number**](#serial-number); which is used to determine the model and version. +2. The configuration **version** to use, as future updates are released. + +#### Sample + +
+
+ +
Sample customization Husky A200
+
+
+ +Below is the sample **Husky A200** robot YAML of the robot displayed above. In the following sections, we will reference each and every component of this sample file, and show how to robot looks as we build it up. + +You can also skip to each section to get an explanation of each part of the sample configuration: + +1. [**Serial Number Sample**](#serial-sample) +2. [**System Sample**](#system-sample) +3. [**Platform Sample**](#platform-sample) +4. [**Accessories Sample**](#accessories-sample) +5. [**Mounts Sample**](#mounts-sample) +6. [**Sensors Sample**](#sensors-sample) + +
Sample A200 YAML +

+ +```yaml +serial_number: a200-0000 +version: 0 +system: + hosts: + self: cpr-a200-0000 + platform: + cpr-a200-0000: 192.168.131.1 + onboard: {} + remote: {} + ros2: + username: administrator + namespace: a200_0000 + domain_id: 0 + rmw_implementation: rmw_fastrtps_cpp +platform: + controller: ps4 + decorations: + front_bumper: + enabled: true + model: default + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 + rear_bumper: + enabled: true + model: default + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 + structure: + enabled: true + model: sensor_arch_300 + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + top_plate: + enabled: true + model: pacs + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extras: + urdf: null + control: null +accessories: + box: + - name: user_bay_cover + parent: top_plate_link + xyz: [0.0, 0.0, 0.00735] + rpy: [0.0, 0.0, 0.0] + size: [0.4, 0.4, 0.002] + cylinder: [] + link: [] + mesh: [] + sphere: [] +mounts: + bracket: + - parent: top_plate_mount_d1 + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + model: horizontal + fath_pivot: + - parent: sensor_arch_mount + xyz: [0.0, 0.0, -0.021] + rpy: [3.1415, 0.0, 0.0] + angle: 0.0 + riser: [] +sensors: + camera: + - model: intel_realsense + urdf_enabled: true + launch_enabled: true + parent: fath_pivot_0_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + camera_name: camera_0 + device_type: d435 + serial_no: "0" + enable_color: true + rgb_camera.profile: 640,480,30 + enable_depth: true + depth_module.profile: 640,480,30 + pointcloud.enable: true + gps: [] + imu: [] + lidar2d: + - model: hokuyo_ust10 + urdf_enabled: true + launch_enabled: true + parent: bracket_0_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + laser_frame_id: lidar2d_0_laser + ip_address: 192.168.131.20 + ip_port: 10940 + angle_min: -3.141592653589793 + angle_max: 3.141592653589793 + lidar3d: + - model: velodyne_lidar + urdf_enabled: true + launch_enabled: true + parent: sensor_arch_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + frame_id: lidar3d_0_laser + device_ip: 192.168.131.25 + port: 2368 + model: VLP16 + fixed_frame: lidar3d_0_laser + target_frame: lidar3d_0_laser +``` + +

+
+ +## Serial Number + +The Clearpath serial number is composed of two sections: an alpha-numerical code corresponding to the robot platform, followed by an integer corresponding to the unit number, and separated by a hyphen, `-`. e.g. `a200-0001`. + +At this moment, the supported robot platforms are: + +1. [Husky A200](../../robots/outdoor_robots/husky/user_manual_husky/#introduction): `a200-0000` +2. [Jackal J100](../../robots/outdoor_robots/jackal/user_manual_jackal/#introduction): `j100-0000` + +Every robot platform has specific [decorations](#decorations), i.e. platform specific parts, that are selected based on the serial number passed. Therefore, it is required that a serial number is specified in the `robot.yaml`. + +### Sample {#serial-sample} + +In our sample, we use a **Husky A200** and therefore have set our serial number to: + +```yaml +serial_number: "a200-0000" +``` + +## System + +Proper networking setup is crucial in setting up the ROS 2 middleware and ensure other onboard computers communicate reliably. + +### Hosts + +The **hosts** section serves as a way to match IP addresses to hostnames. By default, Clearpath robots use the serial number as the hostname and have a default IP of `192.168.131.1`. + +- The **self** entry refers to what hostname is this configuration file on. +- The **platform** entry refers to the hostname and IP of the robot platform's main computer. +- The **onboard** entry is used to define the hostname and IP of other computers on the robot. +- The **remote** entry is used to define the hostname and IP of computers in the system that are not on the robot, such as a user's PC. + +### ROS 2 Environment + +The **ros2** sections is necessary to setup the ROS 2 middleware. + +- **username** must match the username of the user that is to run all ROS nodes. +- **namespace** specified will be appended as a prefix to all sensor topics to prevent topic cloberring when multiple robots are on the same network and domain ID. +- **domain_id** specifies the ROS 2 domain ID to use. +- **rmw_implementation** specifies the ROS 2 middleware to use. **Currently, it only supports `rmw_fastrtps_cpp`.** + +### Sample {#system-sample} + +
Sample A200 System Section +

+ +In our sample, we have a **Husky A200** platform whose primary computer has hostname: `cpr-a200-0000` and IP: `192.168.131.1`. + +And, note that this configuration YAML is meant to be on that primary computer, hence `self: cpr-a200-0000`. + +By default, all Clearpath robots use username `administrator` and the robot's namespace matches the `serial_number`. + +```yaml +system: + hosts: + self: cpr-a200-0000 + platform: + cpr-a200-0000: 192.168.131.1 + onboard: {} + remote: {} + ros2: + username: administrator + namespace: a200_0000 + domain_id: 0 + rmw_implementation: rmw_fastrtps_cpp +``` + +At this point, with just the **serial_number** and **system** defined: our robot is just the standard **Husky A200** platform, and looks like this: + +

+
+ +
Default Husky A200
+
+
+ +

+
+ +## Platform + +Every robot platform has unique structures such as versatile sensor mounting solutions, wireless charging receivers, and waterproofing enclosures; we refer to these as decorations. + +#### Decorations + +There are three types of decorations: + +1. **bumpers** modify the front and rear of the robot platform. +2. **top_plates** modify the top of the robot platform. +3. **structures** are large custom parts that are added atop the top plate. + +#### Husky A200 {#decorations-a200} + +The **Husky A200** has a few models for each of it's decorations: + +- **bumpers**: + - **_default:_** standard bumpers. + - **_wibotic:_** wireless charging receiver. + +```yaml +front_bumper: + enabled: true + model: default # or wibotic + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 +rear_bumper: + enabled: true + model: default # or wibotic + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 +``` + +- **top plate**: + - **_default:_** standard Husky A200 top plate. + - **_large:_** extended top plate, used to allow for enough space to mount large payloads. + - **_pacs:_** comes with **80x80 mm** mounting screw holes for versatile sensor placement. + +```yaml +top_plate: + enabled: true + model: default # or 'pacs' or 'large' + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] +``` + +- **struture**: + - **_sensor_arch_300:_** 300mm tall extrusion sensor arch. + - **_sensor_arch_510:_** 510mm tall extrusion sensor arch. + +```yaml +structure: + enabled: false + model: sensor_arch_300 # or sensor_arch_510 + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] +``` + +#### Jackal J100 {#decorations-j100} + +The **Jackal J100** currently only has customization options with it's fenders. + +- **bumpers**, which correspond to the fenders, can be enabled and disabled. + +```yaml +front_bumper: + enabled: true # or false + model: default + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 +rear_bumper: + enabled: true # or false + model: default + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 +``` + +#### Extras + +Despite all current customization options, we still would like our users to be able to add in their existing custom URDF to the robot platform URDF. +Extras have the following entries: + +- **urdf:** absolute path to URDF to add to robot platform URDF. +- **config:** absolute path to ROS parameters to load for all robot platform nodes, e.g. overwrite control, teleop, and localization parameters. + +```yaml +extras: + urdf: null # /absolute/path/to/urdf + control: null # /absolute/path/to/ros_parameters +``` + +#### Sample {#platform-sample} + +
Sample A200 Platform Section +

+ +

+
+ +
Husky A200 with Default Top Plate
+
+
+ +In this sample, we swapped the top plate from the **_default_** model to the **_pacs_** model. Notice all the links added by the **_pacs_** plate below, compared to the **_default_** plate above. + +```yaml +top_plate: + enabled: true + model: pacs # switched from 'default' to 'pacs' + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] +``` + +
+
+ +
Husky A200 with PACS Top Plate
+
+
+ +Then, we added a sensor arch to add our sample sensors to. We can do this by simply enabling the **structure** and setting the model to **_sensor_arch_300_**. + +```yaml +structure: + enabled: true + model: sensor_arch_300 + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] +``` + +
+
+ +
Husky A200 with 300mm Sensor Arch
+
+
+ +In terms of the **front_bumper** and **rear_bumper**, we left these as defaults. And, since we are not including any customization URDF or launch parameters; the resulting **platform** section look like this: + +```yaml +platform: + controller: ps4 + decorations: + front_bumper: + enabled: true + model: default + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 + rear_bumper: + enabled: true + model: default + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extension: 0.0 + structure: + enabled: true + model: sensor_arch_300 + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + top_plate: + enabled: true + model: pacs + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + extras: + urdf: null + control: null +``` + +

+
+ +## Accessories + +Accessories are any URDF primitive: + +1. **link** in the URDF without any geometry, i.e. just a frame. + +```yaml +link: + - name: link_name + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] +``` + +2. **box** of given length, width, and height. + +```yaml +box: + - name: box_name + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + size: [0.01, 0.01, 0.01] +``` + +3. **cylinder** of given radius and height. + +```yaml +cylinder: + - name: cylinder_name + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + radius: 0.01 + length: 0.01 +``` + +4. **sphere** of given radius. + +```yaml +sphere: + - name: sphere_name + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + radius: 0.01 +``` + +5. **mesh** from a given absolute path to STL or OBJ file. + +```yaml +mesh: + - name: mesh_name + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + visual: /absolute/path/to/mesh.stl +``` + +If a user needs to add a mesh or primitive to represent a payload on their robot, they can either create a URDF and use the platform extras, or they can add an accessory directly through the `robot.yaml`. + +Just as is the case in URDF, accessories are added at the center of the primitive. In other words, you will need to slide up all accessories by half their height to have it "sit" on its parent link. + +### Sample {#accessories-sample} + +
Sample A200 Accessories Section +

+ +

+
+ +
Husky A200 with Open User Bay
+
+
+ +In this sample, we will use accessories to add thin **box** to cover up the user bay. + +We add an entry under the **box** list: + +```yaml +box: + - name: user_bay_cover + parent: top_plate_link # add it to the top_plate_link + xyz: [0.0, 0.0, 0.00735] # move it up 6.35mm (thickness of top plate) and move it up 1mm (half height of the box) + rpy: [0.0, 0.0, 0.0] + size: [0.4, 0.4, 0.002] # length 400mm, width 400mm and 2mm thick. +``` + +
+
+ +
Husky A200 with Covered User Bay
+
+
+ +We leave the rest of the lists all empty, for the resulting accessories section: + +```yaml +accessories: + box: + - name: user_bay_cover + parent: top_plate_link + xyz: [0.0, 0.0, 0.00735] + rpy: [0.0, 0.0, 0.0] + size: [0.4, 0.4, 0.002] + cylinder: [] + link: [] + mesh: [] + sphere: [] +``` + +

+
+ +## Mounts + +Most sensors can use similar mounting structures. Therefore, we want to keep mounts separate from sensors, such that users could attach their own sensors to existing mounts. + +The following **mounts** are available: + +- **riser:** a plate with the defined number of rows and columns of an **80mm x 80mm** grid. + +```yaml +riser: + - parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + rows: 4 # rows of 80mm x 80mm grid + columns: 4 # columns of 80mm x 80mm grid + thickness: 0.00635 +``` + +- **bracket:** a small **100mm x 100mm** plate with **80mm x 80mm** screw holes to attach it to the grid. It comes with hole patterns to attach all supported small sensors. + +```yaml +bracket: + - parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + model: horizontal # or large or vertical +``` + +- **fath_pivot:** generally a camera mount on a single axis that can be adjusted to change the pitch of the camera. + +```yaml +fath_pivot: + - parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + angle: 0.0 # in radian +``` + +### Sample {#mounts-sample} + +
Sample A200 Mounts Section +

+ +

+
+ +
Husky A200 with Covered User Bay
+
+
+ +In this sample, we will add a **bracket** to mount a LiDAR to the front of the **Husky A200**. + +We select the **_top_plate_mount_d1_**, i.e. the middle (**d**), front (**1**), 80mm x 80mm mounting location on the **pacs** top plate. + +```yaml +bracket: + - parent: top_plate_mount_d1 + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + model: horizontal +``` + +
+
+ +
Husky A200 with D1 Bracket
+
+
+ +Then, we want to add a camera to the sensor arch. However, we will complicate things by adding it upside down to the extrusion. + +We choose a **fath_pivot** mount, and then we set its **parent** to the **_sensor_arch_mount_**. + +Using the **xyz** entry, we lower the mount by 21mm to get it under the sensor arch; then, we roll it by PI to get it upside down. + +```yaml +fath_pivot: + - parent: sensor_arch_mount # mount atop the sensor arch + xyz: [0.0, 0.0, -0.021] # lower pivot mount to below the sensor arch + rpy: [3.1415, 0.0, 0.0] # roll pivot mount to flip it upside down + angle: 0.0 +``` + +
+
+ +
Husky A200 with upside down Fath Pivot Mount
+
+
+ +Since we did not need a riser, we leave that section empty; the resulting **mounts** section: + +```yaml +mounts: + bracket: + - parent: top_plate_mount_d1 + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + model: horizontal + fath_pivot: + - parent: sensor_arch_mount + xyz: [0.0, 0.0, -0.021] + rpy: [3.1415, 0.0, 0.0] + angle: 0.0 + riser: [] +``` + +

+
+ +## Sensors + +At Clearpath, we have been migrating our large inventory of tested sensor drivers from ROS 1 to ROS 2. + +Sensors are split up into sections: + +- **Cameras:** publish **_sensor_msgs/Image_** messages +- **GPS:** publish **_sensor_msgs/NavSatFix_** messages +- **IMU:** publish **_sensor_msgs/Imu_** messages +- **LiDAR 2D:** publish **_sensor_msgs/LaserScan_** messages +- **LiDAR 3D:** publish **_sensor_msgs/PointCloud2_** messages + +In ROS 2, sensors use a `ros_parameters` YAML that contains all launch parameters for the driver node. To facilitate complete customization of these node parameters, the `ros_parameters` section, under every sensor entry, serves as a way to pass those key-value pairs to the corresponding node. + +By default, we pass tested parameters that are used on Clearpath robots. + +### Cameras + +- **_intel_realsense:_** + +```yaml +camera: + - model: intel_realsense + urdf_enabled: true + launch_enabled: true + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + camera_name: camera_0 + device_type: d435 + serial_no: "0" + enable_color: true + rgb_camera.profile: 640,480,30 + enable_depth: true + depth_module.profile: 640,480,30 + pointcloud.enable: true +``` + +### GPS + +- **_swift_nav:_** + +```yaml +gps: + - model: swiftnav_duro + urdf_enabled: true + launch_enabled: true + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + gps_receiver_frame_id: gps_0_link + ip_address: 192.168.131.30 + ip_port: 55555 + imu_frame_id: gps_0_link +``` + +### IMU + +- **_microstrain:_** + +```yaml +imu: + - model: microstrain_imu + urdf_enabled: true + launch_enabled: true + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + imu_frame_id: imu_0_link + port: /dev/microstrain_main + use_enu_frame: true +``` + +### LiDAR 2D + +- **_hokuyo_ust10:_** + +```yaml +lidar2d: + - model: hokuyo_ust10 + urdf_enabled: true + launch_enabled: true + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + laser_frame_id: lidar2d_0_laser + ip_address: 192.168.131.20 + ip_port: 10940 + angle_min: -3.141592653589793 + angle_max: 3.141592653589793 +``` + +- **_sick_lms1xx:_** + +```yaml +lidar2d: + - model: sick_lms1xx + urdf_enabled: true + launch_enabled: true + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + frame_id: lidar2d_0_laser + hostname: 192.168.131.20 + port: 2112 + min_ang: -2.391 + max_ang: 2.391 +``` + +### LiDAR 3D + +- **_velodyne_lidar:_** + +```yaml +lidar3d: + - model: velodyne_lidar + urdf_enabled: true + launch_enabled: true + parent: base_link + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + frame_id: lidar3d_0_laser + device_ip: 192.168.131.25 + port: 2368 + model: VLP16 + fixed_frame: lidar3d_0_laser + target_frame: lidar3d_0_laser +``` + +### Sample {#sensors-sample} + +
Sample A200 Sensors Section +

+ +

+
+ +
Husky A200 with upside down Fath Pivot Mount
+
+
+ +In this sample, we first add the `velodyne_lidar` to the `sensor_arch_mount` by simply changing the parent link. + +```yaml +lidar3d: + - model: velodyne_lidar + urdf_enabled: true + launch_enabled: true + parent: sensor_arch_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + frame_id: lidar3d_0_laser + device_ip: 192.168.131.25 + port: 2368 + model: VLP16 + fixed_frame: lidar3d_0_laser + target_frame: lidar3d_0_laser +``` + +
+
+ +
Husky A200 with LiDAR 3D on Sensor Arch
+
+
+ +Next, we will add a `hokuyo_ust10` to the **bracket** we added earlier. Since that is the first **bracket**, then it's mounting location will be: `bracket_0_mount`; setting the parent link of the sensor, we get: + +```yaml +lidar2d: + - model: hokuyo_ust10 + urdf_enabled: true + launch_enabled: true + parent: bracket_0_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + laser_frame_id: lidar2d_0_laser + ip_address: 192.168.131.20 + ip_port: 10940 + angle_min: -3.141592653589793 + angle_max: 3.141592653589793 +``` + +
+
+ +
Husky A200 with LiDAR 2D on D1 Bracket
+
+
+ +For the final step, we will add an `intel_realsense` to the **fath_pivot** mount that we added. Because it is the first **fath_pivot**, it's mounting location will be: `fath_pivot_0_mount`; setting the parent link of the sensor: + +```yaml +camera: + - model: intel_realsense + urdf_enabled: true + launch_enabled: true + parent: fath_pivot_0_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + camera_name: camera_0 + device_type: d435 + serial_no: "0" + enable_color: true + rgb_camera.profile: 640,480,30 + enable_depth: true + depth_module.profile: 640,480,30 + pointcloud.enable: true +``` + +
+
+ +
Husky A200 with Intel Realsense
+
+
+ +Leaving the other sections empty, leaves us with the full sensors section: + +```yaml +sensors: + camera: + - model: intel_realsense + urdf_enabled: true + launch_enabled: true + parent: fath_pivot_0_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + camera_name: camera_0 + device_type: d435 + serial_no: "0" + enable_color: true + rgb_camera.profile: 640,480,30 + enable_depth: true + depth_module.profile: 640,480,30 + pointcloud.enable: true + gps: [] + imu: [] + lidar2d: + - model: hokuyo_ust10 + urdf_enabled: true + launch_enabled: true + parent: bracket_0_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + laser_frame_id: lidar2d_0_laser + ip_address: 192.168.131.20 + ip_port: 10940 + angle_min: -3.141592653589793 + angle_max: 3.141592653589793 + lidar3d: + - model: velodyne_lidar + urdf_enabled: true + launch_enabled: true + parent: sensor_arch_mount + xyz: [0.0, 0.0, 0.0] + rpy: [0.0, 0.0, 0.0] + ros_parameters: + frame_id: lidar3d_0_laser + device_ip: 192.168.131.25 + port: 2368 + model: VLP16 + fixed_frame: lidar3d_0_laser + target_frame: lidar3d_0_laser +``` + +

+
diff --git a/docs/ros/installation/_category_.json b/docs/ros/installation/_category_.json new file mode 100644 index 000000000..e1a358ade --- /dev/null +++ b/docs/ros/installation/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Installation", + "position": 4 +} diff --git a/docs/ros/installation/controller.mdx b/docs/ros/installation/controller.mdx new file mode 100644 index 000000000..58d0d0800 --- /dev/null +++ b/docs/ros/installation/controller.mdx @@ -0,0 +1,71 @@ +--- +title: Joystick Controller Pairing +sidebar_label: Joystick Controller +sidebar_position: 4 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +Joystick controllers are used for teleoperation; they allow you to remotely drive the robot, whether it is a physical robot, +or a simulated robot. The following instructions below detail how to pair different controllers to the robot's computer; however, +these instructions can also be used to pair these controllers to your own computer. + +### PS4 Controller + +:::note +If your robot comes with a PS4 controller, it will be paired already. Simply turn on the robot and turn on the controller. +::: + +To re-pair the PS4 controller or pair a new PS4 controller: + +1. Install the python-ds4drv package if it is not installed already. In terminal, run: + +``` +sudo apt-get install python-ds4drv +``` + +2. Put the controller in pairing mode. Press and hold the PS and Share buttons on your controller until the LED begins rapidly flashing white. +3. Run the `ds4drv-pair` script to pair the controller to the computer. In terminal, run: + +``` +sudo ds4drv-pair +``` + +This script will scan for nearby Bluetooth devices, and pair automatically to the controller. + +Alternatively, if ds4drv-pair fails to detect the controller, you can pair the controller using `bluetoothctl`: + +1. Install the `bluez` package if it is not installed already. In terminal, run: + +``` +sudo apt-get install bluez +``` + +2. Run the `bluetoothctl` command. In terminal, run: + +``` +sudo bluetoothctl +``` + +3. Use `bluetoothctl` to scan for nearby devices. In the bluetooth control application, run: + +``` +agent on +scan on +``` + +4. Put the controller in pairing mode. Press and hold the PS and Share buttons on your controller until the LED begins rapidly flashing white. +5. The bluetooth scan will display the MAC addresses of nearby devices. Determine which MAC address corresponds to the controller and copy it. In the bluetooth control application, run: + +``` +scan off +pair +trust +connect +``` + +The controller should now be paired. + +:::note +Make sure to set the correct controller type in your [robot.yaml](../config/yaml) file +::: diff --git a/docs/ros/installation/img/wifi_interface.jpg b/docs/ros/installation/img/wifi_interface.jpg new file mode 100644 index 000000000..c65f83974 Binary files /dev/null and b/docs/ros/installation/img/wifi_interface.jpg differ diff --git a/docs/ros/installation/remote_pc.mdx b/docs/ros/installation/remote_pc.mdx new file mode 100644 index 000000000..2ce79e035 --- /dev/null +++ b/docs/ros/installation/remote_pc.mdx @@ -0,0 +1,68 @@ +--- +title: Remote Computer setup +sidebar_label: Remote Computer +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +A remote computer can be used to visualise and interact with the robot. The robot can also be [simulated](../tutorials/simulator/overview) on +a remote computer to safely test software before deploying to a physical robot. + +### Operating System (OS) {#operating-system} + +ROS 2 Humble uses [Ubuntu 22.04](https://releases.ubuntu.com/jammy/) as its Tier 1 operating system. Though other operating systems are supported, +it is highly recommended to use Ubuntu 22.04. For the remote computer, Ubuntu 22.04 Desktop should be installed. + +### Networking + +The remote computer should be connected to the same Wi-Fi network as the robot computer, or should be connected via ethernet. If connected over ethernet, set the static IP of the remote computer to use the `192.168.131.1/24` network with an IP address that won't interfere with other devices on the network, such as `192.168.131.99`. + +### ROS 2 Humble + +Follow the [official instructions](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html) for installing ROS 2 Humble from debian packages. + +### Clearpath Desktop metapackage + +Once the ROS 2 Humble has been installed, the [Clearpath Desktop](https://github.com/clearpathrobotics/clearpath_desktop) metapackage can be installed. + +``` +sudo apt install ros-humble-clearpath-desktop +``` + +This package will install launch and configuration files for visualising and interacting with the robot. + +### Setup Folder + +The remote computer will need a copy of the [robot.yaml](../config/yaml) file to generate the same `setup.bash` file as the robot. + +1. **Create the folder** + +For the remote computer we can create the `clearpath` folder in the home directory: + +``` +mkdir ~/clearpath/ +``` + +2. **Copy the `robot.yaml` file into the setup folder** + +``` +cp /path/to/robot.yaml ~/clearpath/ +``` + +:::note +If you have workspaces defined in the `robot.yaml` that do not exist on the remote computer, remove them. +::: + +3. **Generate the `setup.bash` file** + +``` +source /opt/ros/humble/setup.bash +ros2 run clearpath_generator_common generate_bash -s ~/clearpath +``` + +Add the following line to your `~/.bashrc` file to automatically source the generated `setup.bash` file in new terminals: + +``` +source /etc/clearpath/setup.bash +``` diff --git a/docs/ros/installation/robot.mdx b/docs/ros/installation/robot.mdx new file mode 100644 index 000000000..b81968e57 --- /dev/null +++ b/docs/ros/installation/robot.mdx @@ -0,0 +1,224 @@ +--- +title: Robot Installation +sidebar_label: Robot +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +### Operating System (OS) {#operating-system} + +ROS 2 Humble uses [Ubuntu 22.04](https://releases.ubuntu.com/jammy/) as its Tier 1 operating system. Though other operating systems are supported, +it is highly recommended to use Ubuntu 22.04. For the robot computer, Ubuntu 22.04 Server should be installed. The server version of the OS will not install a +graphical user interface (GUI). + +### First login + +Connect the robot's computer to a monitor using an HDMI or DisplayPort cable. Then, connect a USB keyboard. Power the robot on and wait for the Ubuntu login prompt to show up. On a fresh install, the default username and password are both `ubuntu`. You will be prompted to change your password. + +Once logged in, create the `administrator` user: + +``` +sudo adduser --ingroup administrator administrator +``` + +Follow the prompts, then add `administrator` to the `sudo` group: + +``` +sudo usermod -aG sudo administrator +``` + +### Internet Connection + +#### Wi-Fi + +To configure Wi-Fi, first log in to the robot's computer. This can be done by connecting the computer to a monitor using an HDMI or DisplayPort cable, and connecting a USB keyboard. Power the robot on and wait for the Ubuntu login prompt to show up. On a fresh install, the default username and password are both `ubuntu`. You will be prompted to change your password. + +Once logged in, find the name of your Wi-Fi interface by calling `ip a`. Wi-Fi interface names begin with `wl`. + +
+
+ +
+
+ +Next, create the file `/etc/netplan/60-wireless.yaml`, and paste the following contents: + +``` +network: + wifis: + # Replace WIRELESS_INTERFACE with the name of the wireless network device, e.g. wlan0 or wlp3s0 + # Fill in the SSID and PASSWORD fields as appropriate. The password may be included as plain-text + # or as a password hash. To generate the hashed password, run + # echo -n 'WIFI_PASSWORD' | iconv -t UTF-16LE | openssl md4 -binary | xxd -p + # If you have multiple wireless cards you may include a block for each device. + # For more options, see https://netplan.io/reference/ + WIRELESS_INTERFACE: + optional: true + access-points: + SSID_GOES_HERE: + password: PASSWORD_GOES_HERE + dhcp4: true + dhcp4-overrides: + send-hostname: true +``` + +Replace `WIRELESS_INTERFACE` with the name of your Wi-Fi interface, `SSID_GOES_HERE` with your Wi-Fi SSID, and `PASSWORD_GOES_HERE` with your Wi-Fi password. + +Save the file and call `sudo netplan apply` to apply the changes. Check `ip a` again to make sure that an IP address has been assigned to your Wi-Fi interface. + +#### Ethernet + +The robot's computer can also be connected to a dhcp network over ethernet. Connect an ethernet cable to the built-in ethernet port on the robot's computer and check that an IP has been assigned with `ip a`. + +:::note + +You should now be able to SSH into the robot by calling `ssh administrator@` from a remote computer. + +::: + +### ROS 2 Humble + +Follow the [official instructions](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html) for installing ROS 2 Humble from debian packages. + +### Clearpath Package Server + +The Clearpath package server needs to be added to the robot computer to access robot packages. + +Configure Ubuntu's APT package manager to add the package server: + +**1. Install the authentication key for the packages.clearpathrobotics.com repository** + +``` +wget https://packages.clearpathrobotics.com/public.key -O - | sudo apt-key add - +``` + +**2. Add the debian sources for the repository** + +``` +sudo sh -c 'echo "deb https://packages.clearpathrobotics.com/stable/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/clearpath-latest.list' +``` + +**3. Update your computer’s package cache** + +``` +sudo apt-get update +``` + +### Network Configuration + +Once the Clearpath package server is set up, follow the [Clearpath Computer Setup](../networking/computer_setup) instructions to configure the network interfaces. + +### Clearpath Robot metapackage + +Once the Clearpath package server has been added, the [Clearpath Robot](https://github.com/clearpathrobotics/clearpath_robot) metapackage can be installed. + +``` +sudo apt install ros-humble-clearpath-robot +``` + +Installing this package will also install all dependencies required to run any Clearpath robot and supported sensors, other than Clearpath firmware packages. + +#### Source install + +**1. Create a workspace on the robot's computer** + +``` +mkdir ~/clearpath_ws/src -p +``` + +**2. Import dependencies** + +``` +source /opt/ros/humble/setup.bash +sudo apt install python3-vcstool +cd ~/clearpath_ws +wget https://raw.githubusercontent.com/clearpathrobotics/clearpath_robot/main/dependencies.repos +vcs import src < dependencies.repos +rosdep install -r --from-paths src -i -y +``` + +**3. Build packages** + +``` +colcon build --symlink-install +``` + +:::note +Make sure to add the workspace to your `robot.yaml` file. TODO: Add link to robot yaml documentation +::: + +### Firmware Update + +All platforms with the exception of the A200 will require a firmware update to run ROS 2 Humble. + +#### J100 + +Jackal firmware can be flashed from the Jackal's computer. + +**1. Download the Jackal Firmware package from the Clearpath package server** + +``` +sudo apt-get update +sudo apt-get install ros-humble-jackal-firmware +``` + +**2. Place the Jackal MCU into bootloader mode** + +Switch the _PWR_MODE_ switch from _NORM_ to _ALT_. If the robot is on, press the _M_RST_ button. Otherwise, turn the +robot on with the power button. + +**3. Flash the firmware** + +``` +jackal_firmware_flash.sh +``` + +Flashing progress will be indicated by the flash script. Wait for the firmware to finish flashing. + +:::caution +Do not turn the robot off or unplug the micro-USB cable while flashing firmware. If an error occurs while +flashing, you can attempt to run `jackal_firmware_flash.sh` again. +::: + +**4. Place the Jackal MCU into normal mode** + +Once the firmware has been flashed, place the Jackal MCU back into normal mode by switching the PWR_MODE switch from ALT to NORM. +The robot will power off. Turn the robot back on by pressing the power button. + +### Setup folder + +Create the setup folder where the [robot.yaml](../config/yaml) file will be stored, and where files will be generated: + +``` +sudo mkdir /etc/clearpath/ -p && sudo chmod 666 /etc/clearpath/ +``` + +Copy your `robot.yaml` file into `/etc/clearpath/`. + +### Robot services + +Clearpath robot services can now be installed with the following command: + +``` +source /opt/ros/humble/setup.bash +ros2 run clearpath_robot install +``` + +This script uses [robot_upstart](https://github.com/clearpathrobotics/robot_upstart/tree/foxy-devel) to install the `systemd` services +that will launch platform and sensor launch files as background processes. + +To start the services, call + +``` +sudo systemctl daemon-reload && sudo systemctl start clearpath-robot.service +``` + +Add the following line to your `~/.bashrc` file to automatically source the generated `setup.bash` file in new terminals: + +``` +source /etc/clearpath/setup.bash +``` diff --git a/docs/ros/installation/upgrading.mdx b/docs/ros/installation/upgrading.mdx new file mode 100644 index 000000000..ba57b771c --- /dev/null +++ b/docs/ros/installation/upgrading.mdx @@ -0,0 +1,111 @@ +--- +title: Upgrading to Humble +sidebar_label: Upgrading to Humble +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::note + +Users who are installing ROS 2 Humble onto a new robot computer can skip to [Robot Installation](./robot). + +::: + +:::note + +Check the [list of supported platforms](../#supported-platforms) to make sure that your robot is currently supported on ROS 2 Humble. + +::: + +ROS 2 Humble is the first ROS distribution that runs on Ubuntu 22.04. As a result, any robots running ROS 1 or +ROS 2 Foxy will have upgrade their operating system. It is highly recommended to back up any important files on the robot +before proceeding, especially for highly customized robots. + +:::caution + +It is the user’s responsibility to ensure that any essential files are properly backed-up before upgrading their robot. + +::: + +### Saving a hard drive image + +As a fail-safe, please make an image of your robot's hard drive. You should always be able to restore this image if you need to revert back to your previous configuration. The easiest approach may be to either connect a removable (USB or similar) hard drive to the robot's computer, or to unplug the robot's hard drive and insert it into a computer or workstation. You can then use a tool such as [CloneZilla](https://clonezilla.org/) or `dd` to write a backup image of your robot's hard drive onto another hard drive. Alternatively, you can simply replace the robot computer's hard drive, reserving the drive and installing a new one to use with Humble. + +### Saving important files + +There are several places in the filesystem you should specifically look for customizations for your robot: + +| **Location** | **Description** | +| :-------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/etc/network/interfaces` or `/etc/netplan/*` | Your robot may have a custom network configuration in this file. | +| `/etc/ros/*/*-core.d/*.launch` | Will contain `base.launch` and `description.launch`, may contain custom launch files for your robot configuration. Replaced by `ros.d` in newer versions. | +| `/etc/ros/*/ros.d/*.launch ` | Will contain `base.launch` and `description.launch`, may contain custom launch files for your robot configuration. Replaces `*-core.d` in newer versions. | +| `/etc/ros/setup.bash` | May contain environment variables for your configuration. | +| `~/catkin_ws/` or `~/colcon_ws/` | ROS workspace that may contain custom ROS packages. | + +Please save the files listed above and use them as a reference during Humble configuration. + +### Backup Software (ROS 1 only) + +Clearpath Robotics provides a package containing several shell scripts to help you back up, upgrade, and/or restore your ROS 1 robot’s important data. You can use these scripts by downloading the `robot-backup` repository by running the following command on your computer: + +``` +git clone https://github.com/clearpathrobotics/robot-backup +``` + +You will need to install dependencies to be able to use these scripts. The instructions for installing dependencies can be found in the `README.md` file of the repository, or run the following command on your computer: + +``` +sudo apt-get install sshpass sudo apt-get install rsync +``` + +#### Running the backup script + +Ensure that the robot is turned on and that you can SSH into it from your computer. Then run the following from your computer: + +``` +cd robot-backup +bash backup.sh +``` + +For example, if your robot’s IP address is 192.168.1.103, you would run something like: + +``` +bash backup.sh melodic-final-backup 192.168.1.103 +``` + +This will produce a backup file called `melodic-final-backup.tar.gz`. Keep this file for when you need to access your backed-up data. + +By default all Clearpath robots use the username `administrator` and the password `clearpath`. The backup.sh script will use these credentials by default, but you can override them easily. + +For example, if your robot’s username and password have been set to `my_robot_username` and `my_robot_password` you should run: + +``` +bash backup.sh melodic-final-backup my_robot_username@192.168.1.103 my_robot_password +``` + +#### Backed up contents + +The backup script will copy the following data: + +- Home Folder: `~/` +- `udev` Rules: `/etc/udev/rules.d` +- Network Setup: - `/etc/network/interfaces` - `/etc/netplan` - `/etc/hostname` - `/etc/hosts` +- IP Tables: `/etc/iptables` +- Bringup Files: - `/etc/ros/setup.bash` - `/etc/ros/$ROSDISTRO/ros.d` - `/usr/sbin/*start` - `/usr/sbin/*stop` +- `rosdep` sources: `/etc/ros/rosdep` +- `rc.local` File: `/etc/rc.local` +- `pip` packages +- `systemd` configuration: `/etc/systemd/system` +- `apt` sources: `/etc/apt/sources.list.d` +- `apt` packages +- User Permission Groups + +#### Backing up non-standard data + +The `backup.sh` script assumes that your robot is in a roughly-standard configuration; it uses a single user account and no files within `/opt/ros/melodic`have been modified. + +If this is not the case, it is the responsibility of the user to ensure that any modified files and files in other users’ home folders is backed up correctly. + +A common example of this might be if you have created customized URDF files to be loaded via environment variables (e.g. `JACKAL_URDF_EXTRAS`) and have stored them outside any of the folders specified above, you must back these up yourself; `backup.sh` will not do this for you. diff --git a/docs/ros/networking/_category_.json b/docs/ros/networking/_category_.json new file mode 100644 index 000000000..fe62884e9 --- /dev/null +++ b/docs/ros/networking/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Networking", + "position": 5 +} diff --git a/docs/ros/networking/computer_setup.mdx b/docs/ros/networking/computer_setup.mdx new file mode 100644 index 000000000..e6c0c630d --- /dev/null +++ b/docs/ros/networking/computer_setup.mdx @@ -0,0 +1,39 @@ +--- +title: Clearpath Computer Setup +sidebar_position: 2 +--- + +The `clearpath_computer_setup` package offers a terminal menu tool for configuring a robot computer. The main feature of this tool is the ability to generate +`netplan` configurations. The `clearpath_computer_setup` package is available on the [Clearpath package server](../installation/robot.mdx#clearpath-package-server). + +It should be installed on the robot's computer: + +``` +sudo apt install python3-clearpath-computer-setup +``` + +To run the tool, call: + +``` +sudo clearpath-computer-setup +``` + +### Standard Clearpath Bridge + +The default networking configuration for a robot's computer is to bridge all ethernet interfaces and assign the computer the IP address `192.168.131.1`. See [Network IP Addresses](./network_ip_addresses.mdx) for a detailed list of IP ranges. + +To configure the default bridge, run `clearpath-computer-setup` and navigate to **Netplan Setup** -> **Pre-set Configurations**. Select **Standard Clearpath Bridge** and generate the configuration by following the instructions. Then, return to the **Netplan Setup** menu and select **Apply Configuration Changes**. +This will create a `/etc/netplan/50-clearpath-standard.yaml` file and apply the changes to `netplan`. + +Once the network settings have been applied, call `ip a` to check that the network bridge has been created, and that the computer has been assigned the `192.168.131.1` IP address. + +### Custom Networking + +The `clearpath-computer-setup` tool can also be used to set up custom network interfaces. Navigate to the **Netplan Setup** menu and use the bridge, ethernet, or Wi-Fi setup menus to add configurations. Once you are done configuring, return to the **Netplan Setup** menu and select **Write Configuration YAML**. You will be prompted for a file name. The file should be placed under `/etc/netplan/` to take effect, and the naming convention is a two digit number followed by a unique name. For example, `/etc/netplan/50-home-wifi.yaml`. + +:::note + +Netplan will read files under `/etc/netplan/` in alphanumeric order. Files beginning in `01` will be read first, and `99` will be read last. +If two files define the same configuration, the configuration read last will be used. Otherwise, netplan will amalgamate all files under `/etc/netplan/` to create the netplan configuration. + +::: diff --git a/docs/tools/network_ip_addresses.mdx b/docs/ros/networking/network_ip_addresses.mdx similarity index 100% rename from docs/tools/network_ip_addresses.mdx rename to docs/ros/networking/network_ip_addresses.mdx diff --git a/docs/ros/networking/ntp.mdx b/docs/ros/networking/ntp.mdx new file mode 100644 index 000000000..16ecb3033 --- /dev/null +++ b/docs/ros/networking/ntp.mdx @@ -0,0 +1,121 @@ +--- +title: Configuring NTP +sidebar_position: 6 +--- + +Network Time Protocol, or NTP, is a network protocol that allows computers on a network to synchronize their clocks +with each other. This is essential for ROS, as many types of data are time-sensitive. + +### Chrony + +Clearpath uses a Linux package called `chrony` to provide clock synchronization across multiple devices inside a robot. +The robot's primary PC acts as the main NTP source for other computers inside the robot. + +To (re-)configure `chrony`, edit the file `/etc/chrony/chrony.conf`. The following shows the default configuration +for the primary PC: + +``` +# Welcome to the chrony configuration file. See chrony.conf(5) for more +# information about usuable directives. + +# This will use (up to): +# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled +# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well +# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm) +# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only +# sources will be used. +# At the same time it retains some protection against one of the entries being +# down (compare to just using one of the lines). See (LP: #1754358) for the +# discussion. +# +# About using servers from the NTP Pool Project in general see (LP: #104525). +# Approved by Ubuntu Technical Board on 2011-02-08. +# See http://www.pool.ntp.org/join.html for more information. +pool ntp.ubuntu.com iburst maxsources 4 +pool 0.ubuntu.pool.ntp.org iburst maxsources 1 +pool 1.ubuntu.pool.ntp.org iburst maxsources 1 +pool 2.ubuntu.pool.ntp.org iburst maxsources 2 + +# This directive specify the location of the file containing ID/key pairs for +# NTP authentication. +keyfile /etc/chrony/chrony.keys + +# This directive specify the file into which chronyd will store the rate +# information. +driftfile /var/lib/chrony/chrony.drift + +# Uncomment the following line to turn logging on. +#log tracking measurements statistics + +# Log files location. +logdir /var/log/chrony + +# Stop bad estimates upsetting machine clock. +maxupdateskew 100.0 + +# This directive enables kernel synchronisation (every 11 minutes) of the +# real-time clock. Note that it can’t be used along with the 'rtcfile' directive. +rtcsync + +# Step the system clock instead of slewing it if the adjustment is larger than +# one second, but only in the first three clock updates. +makestep 1 3 + +# Configure this host to act as the NTP source for the rest of the devices in this robot +local stratum 10 +allow 192.168.131/24 +``` + +For secondary PCs inside the robot, the `chrony` configuration file is very similar, but adds a new `server` directive +after the `pool`, and omits the final `local` and `allow` sections: + +``` +# Welcome to the chrony configuration file. See chrony.conf(5) for more +# information about usuable directives. + +# This will use (up to): +# - 4 sources from ntp.ubuntu.com which some are ipv6 enabled +# - 2 sources from 2.ubuntu.pool.ntp.org which is ipv6 enabled as well +# - 1 source from [01].ubuntu.pool.ntp.org each (ipv4 only atm) +# This means by default, up to 6 dual-stack and up to 2 additional IPv4-only +# sources will be used. +# At the same time it retains some protection against one of the entries being +# down (compare to just using one of the lines). See (LP: #1754358) for the +# discussion. +# +# About using servers from the NTP Pool Project in general see (LP: #104525). +# Approved by Ubuntu Technical Board on 2011-02-08. +# See http://www.pool.ntp.org/join.html for more information. +pool ntp.ubuntu.com iburst maxsources 4 +pool 0.ubuntu.pool.ntp.org iburst maxsources 1 +pool 1.ubuntu.pool.ntp.org iburst maxsources 1 +pool 2.ubuntu.pool.ntp.org iburst maxsources 2 + +# Add the robot's primary PC as an NTP source +server 192.168.131.1 offline minpoll 8 + +# This directive specify the location of the file containing ID/key pairs for +# NTP authentication. +keyfile /etc/chrony/chrony.keys + +# This directive specify the file into which chronyd will store the rate +# information. +driftfile /var/lib/chrony/chrony.drift + +# Uncomment the following line to turn logging on. +#log tracking measurements statistics + +# Log files location. +logdir /var/log/chrony + +# Stop bad estimates upsetting machine clock. +maxupdateskew 100.0 + +# This directive enables kernel synchronisation (every 11 minutes) of the +# real-time clock. Note that it can’t be used along with the 'rtcfile' directive. +rtcsync + +# Step the system clock instead of slewing it if the adjustment is larger than +# one second, but only in the first three clock updates. +makestep 1 3 +``` diff --git a/docs/ros/networking/overview.mdx b/docs/ros/networking/overview.mdx new file mode 100644 index 000000000..1efe52e10 --- /dev/null +++ b/docs/ros/networking/overview.mdx @@ -0,0 +1,40 @@ +--- +title: Overview +sidebar_position: 1 +--- + +:::note + +Contact our Support team at support@clearpathrobotics.com if you have any questions. + +::: + +### SSH and SFTP + +Clearpath robots ship with an SSH server operating on port 22 for remote login. This server also supports sftp for +file-transfer to/from the robot if needed. By default you can log in using the default username and password for the +robot. + +### Internal Networking + +All Clearpath robots use the `192.168.131.0/24` subnet for any permanently-installed network hardware. This includes, +but may not be limited to + +- the robot's primary PC, +- the robot's MCU, +- a secondary PC (if present), +- any cameras, lidar, or other sensors that communicate over ethernet, and +- any long-range wireless radios. + +The `192.168.131.0/24` subnet is statically configured; all devices are configured to use a static IP address, and +there is normally not a DHCP server operating on this subnet. + +For a list of standard payload IP addresses, please see [network IP addresses](./network_ip_addresses). + +### Clock Synchronization + +If your robot contains multiple computers, their clocks must remain synchronized to allow proper communication between +ROS nodes running on each one. Clearpath configures the computers to use `chrony` to synchronize the clocks, with the +primary PC being the authoritative source for the others. + +For details on configuring `chrony`, please see [configuring NTP](./ntp). diff --git a/docs/ros/ros.mdx b/docs/ros/ros.mdx new file mode 100644 index 000000000..64f60ef94 --- /dev/null +++ b/docs/ros/ros.mdx @@ -0,0 +1,188 @@ +--- +title: Robot Operating System 2 (ROS 2) Overview +sidebar_label: ROS 2 Overview +sidebar_position: 1 +--- + +For [ROS 2 Humble](https://docs.ros.org/en/humble/index.html) and beyond, the software structure of Clearpath robots has changed significantly. Rather than having individual sets of packages for each +robot, we have opted to create common `clearpath` packages which are used by all supported platforms. Additionally, we are moving away from using environment variables +to customize the robot, and instead using a YAML configuration file to describe the robot. We have also defined a [ROS 2 API](api/overview) common to all of our supported platforms. As a result, +our platforms are now more customizable, more modular, and more unified. + +## Terminology {#terminology} + +**_Clearpath Platform_**: The _platform_ refers to the vehicle that makes up the base of the robot. The platform may be referred to by +the platform code to indicate the revision. + +**_Clearpath Robot_**: The _robot_ refers to the entire robotic system, including the platform, sensors, and additional accessories. + +**_Clearpath Config_**: The _config_ refers to the `robot.yaml` configuration file that defines the Clearpath robot. + +**_Clearpath API_**: The _API_ refers to the [ROS 2 application programming interface](api/overview). This is a set of ROS 2 topics and services defined +by Clearpath which are used by all supported Clearpath platforms. + +## Supported Platforms {#supported-platforms} + + + + + + + + +{" "} + + + + + + + +{" "} + + + + + + + +{" "} + + + + + + + +{" "} + + + + + + + + + + + + + + + + + + + + + +{" "} + + + + + + + + + + + + +
PlatformPlatform codeSupports ROS 2 Humble
HuskyA200Yes
JackalJ100Yes
WarthogW100Coming soon
Dingo
DD100No
DO100No
DD150No
DO150No
BoxerB250No
RidgebackR100No
+ +## Supported Sensors {#supported-sensors} + +:::note + +While some sensor drivers may support other sensor models, the table below represents the +sensors that have been validated by Clearpath. + +::: + + + + + + + + + +{" "} + + + + + + + + +{" "} + + + + + + + + +{" "} + + + + + + + + +{" "} + + + + + + + + +{" "} + + + + + + + + + + + + + + +
SensorTypeInstallationDriver
+ Hokuyo UST10-LX + 2D LidarSource or Debian + urg_node +
+ Intel Realsense D435 + Depth CameraSource or Debian + realsense-ros +
+ MicroStrain 3DM-GX5 + IMUSource or Debian + microstrain_intertial +
+ SICK LMS-111 + 2D LidarSource or Debian + LMS1xx +
+ Swift Navigation Duro + GPSSource + duro_gps_driver +
Velodyne Puck3D LidarSource or Debianvelodyne
+ +:::note + +Debian drivers are automatically installed on robots as part of the [Clearpath Robot Metapackage](../ros/installation/robot.mdx#clearpath-robot-metapackage). + +::: diff --git a/docs/robots/outdoor_robots/husky/tutorials_husky/_category_.json b/docs/ros/tutorials/_category_.json similarity index 63% rename from docs/robots/outdoor_robots/husky/tutorials_husky/_category_.json rename to docs/ros/tutorials/_category_.json index b9dada94c..38acf2559 100644 --- a/docs/robots/outdoor_robots/husky/tutorials_husky/_category_.json +++ b/docs/ros/tutorials/_category_.json @@ -1,4 +1,4 @@ { "label": "Tutorials", - "position": 4 + "position": 6 } diff --git a/docs/ros/tutorials/driving.mdx b/docs/ros/tutorials/driving.mdx new file mode 100644 index 000000000..8c73d2ea7 --- /dev/null +++ b/docs/ros/tutorials/driving.mdx @@ -0,0 +1,69 @@ +--- +title: Driving a Robot +sidebar_label: Driving a Robot +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::caution +Make sure you have successfully [set up](../installation/robot) the robot before attempting to drive it. +::: + +There are several ways to drive a Clearpath robot using ROS 2. + +### Joystick Teleoperation + +Make sure your controller is paired to the robot PC. Visit the [controller pairing](../installation/controller) guide for details. + +With the [robot services](../installation/robot#robot-services) running, turn on your controller. Press and hold either **L1** or **R1**, and use +the left joystick to publish a linear velocity and yaw command. The **L1** button will drive the robot at slow speeds, while **R1** will drive the robot at fast speeds. + +
+
+ +
PS4 Contoller
+
+
+ +### Keyboard Teleoperation + +Install the `teleop_twist_keyboard` ROS 2 package on the robot PC or on a remote PC: + +``` +sudo apt-get update +sudo apt-get install ros-humble-teleop-twist-keyboard +``` + +Once installed, run the node: + +``` +ros2 run teleop_twist_keyboard teleop_twist_keyboard +``` + +If your robot uses a namespace, the namespace should be applied to `teleop_twist_keyboard`: + +``` +ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r __ns:=/j100_0001 +``` + +### Command Velocity + +You can manually publish to the `cmd_vel` topic through the command line by calling: + +``` +ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \ +"linear: + x: 0.0 + y: 0.0 + z: 0.0 +angular: + x: 0.0 + y: 0.0 + z: 0.0" +``` + +Set the `linear.x` value to drive the robot forwards or backwards, and the `angular.z` value to rotate left or right. diff --git a/docs/ros/tutorials/navigation_demos/_category_.json b/docs/ros/tutorials/navigation_demos/_category_.json new file mode 100644 index 000000000..1f9c6a20f --- /dev/null +++ b/docs/ros/tutorials/navigation_demos/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Navigation Demos", + "position": 3 +} diff --git a/docs/ros/tutorials/navigation_demos/img/localization.gif b/docs/ros/tutorials/navigation_demos/img/localization.gif new file mode 100644 index 000000000..a0e1b334f Binary files /dev/null and b/docs/ros/tutorials/navigation_demos/img/localization.gif differ diff --git a/docs/ros/tutorials/navigation_demos/img/nav2.gif b/docs/ros/tutorials/navigation_demos/img/nav2.gif new file mode 100644 index 000000000..74f78fb81 Binary files /dev/null and b/docs/ros/tutorials/navigation_demos/img/nav2.gif differ diff --git a/docs/ros/tutorials/navigation_demos/img/slam.gif b/docs/ros/tutorials/navigation_demos/img/slam.gif new file mode 100644 index 000000000..db138bfc4 Binary files /dev/null and b/docs/ros/tutorials/navigation_demos/img/slam.gif differ diff --git a/docs/ros/tutorials/navigation_demos/localization.mdx b/docs/ros/tutorials/navigation_demos/localization.mdx new file mode 100644 index 000000000..9da696e6b --- /dev/null +++ b/docs/ros/tutorials/navigation_demos/localization.mdx @@ -0,0 +1,61 @@ +--- +title: Localization +sidebar_label: Localization +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +Localization is a method of tracking the robot's location within an existing map. It is generally done using +laser scan data from a 2D LIDAR, and the robot's odometry. For this demo we are using the [Nav2](https://github.com/ros-planning/navigation2) package launch localization. +This tutorial will use the [Clearpath simulator](../simulator/overview), but will work on a physical robot too. We will be using a J100 with a Hokuyo UST10 attached to the front of the robot. The `robot.yaml` is available here. <---TODO + +:::tip +Make sure you have installed the simulator before starting this tutorial. Take a look at the [installation](../simulator/install) guide for details. +::: + +## Launching the simulation and localization + +**1. Move the `robot.yaml` file to your setup folder (`$HOME/clearpath` by default).** + +**2. Launch the simulation** + +``` +ros2 launch clearpath_gz simulation.launch.py +``` + +Click on the orange play button in the bottom left corner to start the simulation. + +**3. In another terminal, launch RViz** + +``` +ros2 launch clearpath_viz view_navigation.launch.py namespace:=j100_0001 +``` + +**4. In another terminal, launch localization** + +``` +ros2 launch clearpath_nav2_demos localization.launch.py setup_path:=$HOME/clearpath/ use_sim_time:=true +``` + +The default map used by `localization.launch.py` is a [map](https://github.com/clearpathrobotics/clearpath_nav2_demos/blob/main/maps/warehouse.yaml) of the simulated warehouse world. +If you are using a custom map, pass it in with the `map` launch argument: + +``` +ros2 launch clearpath_nav2_demos localization.launch.py setup_path:=$HOME/clearpath/ use_sim_time:=true map:=/path/to/my/map.yaml +``` + +**5. Set the initial pose of the robot** + +Use the **2D Pose Estimate** tool in RViz to set the initial pose of the robot. You can now drive the robot +and it will calculate its position on the map. + +
+
+ +
Localization in simulation
+
+
diff --git a/docs/ros/tutorials/navigation_demos/nav2.mdx b/docs/ros/tutorials/navigation_demos/nav2.mdx new file mode 100644 index 000000000..b3360475e --- /dev/null +++ b/docs/ros/tutorials/navigation_demos/nav2.mdx @@ -0,0 +1,70 @@ +--- +title: Nav2 +sidebar_label: Nav2 +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 5 +--- + +The [Nav2](https://github.com/ros-planning/navigation2) package provides open source navigation controllers, planners, and utilities. The [clearpath_nav2_demos](https://github.com/clearpathrobotics/clearpath_nav2_demos/tree/main) package +provides default configurations for supported robots, but these can be customized for your use case. This tutorial will use the [Clearpath simulator](../simulator/overview), but will work on a physical robot too. +We will be using a J100 with a Hokuyo UST10 attached to the front of the robot. The `robot.yaml` is available here. <---TODO + +:::tip +Make sure you have installed the simulator before starting this tutorial. Take a look at the [installation](../simulator/install) guide for details. +::: + +## Launching the simulation and Nav2 + +**1. Move the `robot.yaml` file to your setup folder (`$HOME/clearpath` by default).** + +**2. Launch the simulation** + +``` +ros2 launch clearpath_gz simulation.launch.py +``` + +Click on the orange play button in the bottom left corner to start the simulation. + +**3. In another terminal, launch RViz** + +``` +ros2 launch clearpath_viz view_navigation.launch.py namespace:=j100_0001 +``` + +**4. In another terminal, launch localization** + +``` +ros2 launch clearpath_nav2_demos localization.launch.py setup_path:=$HOME/clearpath/ use_sim_time:=true +``` + +The default map used by `localization.launch.py` is a [map](https://github.com/clearpathrobotics/clearpath_nav2_demos/blob/main/maps/warehouse.yaml) of the simulated warehouse world. +If you are using a custom map, pass it in with the `map` launch argument: + +``` +ros2 launch clearpath_nav2_demos localization.launch.py setup_path:=$HOME/clearpath/ use_sim_time:=true map:=/path/to/my/map.yaml +``` + +**5. In another terminal, launch Nav2** + +``` +ros2 launch clearpath_nav2_demos nav2.launch.py setup_path:=$HOME/clearpath/ use_sim_time:=true +``` + +**6. Set the initial pose of the robot** + +Use the **2D Pose Estimate** tool in RViz to set the initial pose of the robot. + +7. Give the robot a navigation goal + +Use the **Nav2 Goal** tool in RViz to set a navigation goal pose. + +
+
+ +
Navigation in simulation
+
+
diff --git a/docs/ros/tutorials/navigation_demos/overview.mdx b/docs/ros/tutorials/navigation_demos/overview.mdx new file mode 100644 index 000000000..530f8cd62 --- /dev/null +++ b/docs/ros/tutorials/navigation_demos/overview.mdx @@ -0,0 +1,22 @@ +--- +title: Overview +sidebar_label: Overview +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 5 +--- + +The [clearpath_nav2_demos](https://github.com/clearpathrobotics/clearpath_nav2_demos) package contains launch files and configurations +for [Nav2](https://github.com/ros-planning/navigation2) and [slam_toolbox](https://github.com/SteveMacenski/slam_toolbox) demos. These are open source +navigation packages that allow Clearpath robots to create maps and autonomously navigate. + +To install the package, run: + +``` +sudo apt-get update +sudo apt-get install ros-humble-clearpath-nav2-demos +``` + +:::tip +The navigation demos can be run on either the robot computer, or a remote computer. +::: diff --git a/docs/ros/tutorials/navigation_demos/slam.mdx b/docs/ros/tutorials/navigation_demos/slam.mdx new file mode 100644 index 000000000..8cb3aed29 --- /dev/null +++ b/docs/ros/tutorials/navigation_demos/slam.mdx @@ -0,0 +1,57 @@ +--- +title: SLAM +sidebar_label: SLAM +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 5 +--- + +Simultaneous localization and mapping (SLAM) is a method of generating a map and tracking the robot's location within the map. It is generally done using +laser scan data from a 2D LIDAR, and the robot's odometry. For this demo we are using the [slam_toolbox](https://github.com/SteveMacenski/slam_toolbox) package to map our environment. This tutorial will use the [Clearpath simulator](../simulator/overview), but will work on a physical robot too. We will be using a J100 with a Hokuyo UST10 attached to the front of the robot. The `robot.yaml` is available here. <---TODO + +:::tip +Make sure you have installed the simulator before starting this tutorial. Take a look at the [installation](../simulator/install) guide for details. +::: + +## Launching the simulation and SLAM + +**1. Move the `robot.yaml` file to your setup folder (`$HOME/clearpath` by default).** + +**2. Launch the simulation** + +``` +ros2 launch clearpath_gz simulation.launch.py +``` + +Click on the orange play button in the bottom left corner to start the simulation. + +**3. In another terminal, launch RViz** + +``` +ros2 launch clearpath_viz view_navigation.launch.py namespace:=j100_0001 +``` + +**4. In another terminal, launch SLAM** + +``` +ros2 launch clearpath_nav2_demos slam.launch.py setup_path:=$HOME/clearpath/ use_sim_time:=true +``` + +**5. Drive the robot around the world until the entire map has been generated** + +
+
+ +
SLAM in simulation
+
+
+ +**6. Save the map** + +``` +ros2 run nav2_map_server map_saver_cli -f "map_name" \ +--ros-args -p map_subscribe_transient_local:=true -r __ns:=/j100_0001 +``` diff --git a/docs/ros/tutorials/simulator/_category_.json b/docs/ros/tutorials/simulator/_category_.json new file mode 100644 index 000000000..a52456b92 --- /dev/null +++ b/docs/ros/tutorials/simulator/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Simulator", + "position": 2 +} diff --git a/docs/ros/tutorials/simulator/img/driving.gif b/docs/ros/tutorials/simulator/img/driving.gif new file mode 100644 index 000000000..7a59aff30 Binary files /dev/null and b/docs/ros/tutorials/simulator/img/driving.gif differ diff --git a/docs/ros/tutorials/simulator/img/simulation.png b/docs/ros/tutorials/simulator/img/simulation.png new file mode 100644 index 000000000..37ce60bfc Binary files /dev/null and b/docs/ros/tutorials/simulator/img/simulation.png differ diff --git a/docs/ros/tutorials/simulator/install.mdx b/docs/ros/tutorials/simulator/install.mdx new file mode 100644 index 000000000..03d9cafa1 --- /dev/null +++ b/docs/ros/tutorials/simulator/install.mdx @@ -0,0 +1,64 @@ +--- +title: Installing Clearpath Simulator +sidebar_label: Installation +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +:::tip +It is highly recommended to install the simulator on a computer with a dedicated GPU for optimal performance. +::: + +### Computer Setup + +Follow the [Remote Computer](../../installation/remote_pc) setup guide. + +### Installing Gazebo Fortress + +Run the following commands in your terminal: + +``` +sudo apt-get update && sudo apt-get install wget +sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' +wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - +sudo apt-get update && sudo apt-get install ignition-fortress +``` + +### Installing Clearpath Simulator + +Run the following commands in your terminal: + +``` +sudo apt-get update +sudo apt-get install ros-humble-clearpath-simulator +``` + +#### Source install + +**1. Create a workspace on the robot's computer** + +``` +mkdir ~/clearpath_ws/src -p +``` + +**2. Import dependencies** + +``` +source /opt/ros/humble/setup.bash +sudo apt install python3-vcstool +cd ~/clearpath_ws +wget https://raw.githubusercontent.com/clearpathrobotics/clearpath_simulator/main/dependencies.repos +vcs import src < dependencies.repos +rosdep install -r --from-paths src -i -y +``` + +**3. Build packages** + +``` +colcon build --symlink-install +``` + +:::note +Make sure to add the workspace to your `robot.yaml` file. TODO: Add link to robot yaml documentation +::: diff --git a/docs/ros/tutorials/simulator/overview.mdx b/docs/ros/tutorials/simulator/overview.mdx new file mode 100644 index 000000000..c7e1d23a8 --- /dev/null +++ b/docs/ros/tutorials/simulator/overview.mdx @@ -0,0 +1,25 @@ +--- +title: Overview +sidebar_label: Overview +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +The Clearpath simulator uses [Gazebo Fortress](https://gazebosim.org/home) to simulate robots in a physics-based environment. The simulation +supports the [Clearpath Config](../../../ros#terminology), as well as simulating multiple robots simultaneously. Gazebo data is bridged to ROS 2, and follows the [Clearpath API](../../overview). +The Clearpath simulator can be used to iterate on robot configurations, test controls, develop navigation software, and much more. + +
+
+ +
Clearpath Simulator
+
+
+ +### Bridging Gazebo to ROS 2 + +Gazebo uses its own transport layer consisting of nodes and messages similar to ROS 2. A [ROS 2 bridge node](https://github.com/gazebosim/ros_gz/tree/humble/ros_gz_bridge) is required to bridge Gazebo data to ROS 2, and vice versa. By leveraging the [generators](../../config/generators), we can generate the required bridges when the simulator is launched. As a result, the simulator can support all of the same configurations that a physical robot supports. diff --git a/docs/ros/tutorials/simulator/simulate.mdx b/docs/ros/tutorials/simulator/simulate.mdx new file mode 100644 index 000000000..8422ba5ee --- /dev/null +++ b/docs/ros/tutorials/simulator/simulate.mdx @@ -0,0 +1,65 @@ +--- +title: Simulate +sidebar_label: Simulate +sidebar_position: 3 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +Once the simulator has been [installed](./install), you can launch the simulation. + +## Launching the simulator + +Launch files for the simulation can be found in the `clearpath_gz` package, which is installed as part of the `clearpath_simulator` metapackage. The default launch file for launching the simulation environment and spawning your robot is [simulation.launch.py](https://github.com/clearpathrobotics/clearpath_simulator/blob/main/clearpath_gz/launch/simulation.launch.py). + +It can be called like this: + +``` +ros2 launch clearpath_gz simulation.launch.py +``` + +The launch file will run all of the necessary [generators](../../config/generators) to generate launch and parameter files for the simulation before launching Gazebo and spawning the robot. These will be placed under the setup path (defaults to `$HOME/clearpath/`). + +### Launch arguments + +If you are using a different setup path, use the `setup_path` launch argument to change it: + +``` +ros2 launch clearpath_gz simulation.launch.py setup_path:=$HOME/setup/path/ +``` + +The Gazebo world (defaults to `warehouse`) can be changed using the `world` launch argument: + +``` +ros2 launch clearpath_gz simulation.launch.py world:=my_world +``` + +:::note +The launch file will look for the world `.sdf` file inside the [worlds](https://github.com/clearpathrobotics/clearpath_simulator/tree/main/clearpath_gz/worlds) folder of the `clearpath_gz` package. +::: + +The position and orientation of where the robot is spawned can be changed: + +``` +ros2 launch clearpath_gz simulation.launch.py x:=1.5 y:=2.7 yaw:=1.5707 +``` + +To launch Rviz along with the simulation, use the `rviz` launch argument: + +``` +ros2 launch clearpath_gz simulation.launch.py rviz:=true +``` + +## Driving the robot + +The simulated robot can be driven in the same ways as the physical robot. Take a look at the [Teleop](../driving) guide for details. In addition, the Gazebo Teleop GUI plugin can be used. The plugin will be visible by default when Gazebo is launched. If your robot has a namespace, change the topic to `/cmd_vel`. Set the maximum forward and yaw velocities, then select the method of driving. + +
+
+ +
Driving Jackal in simulation
+
+
diff --git a/docs/software/_category_.json b/docs/software/_category_.json deleted file mode 100644 index 0dabefa30..000000000 --- a/docs/software/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Software", - "position": 7 -} diff --git a/docs/software/navigation_packages/_category_.json b/docs/software/navigation_packages/_category_.json deleted file mode 100644 index 0b46b8b30..000000000 --- a/docs/software/navigation_packages/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Navigation Packages", - "position": 4 -} diff --git a/docs/software/navigation_packages/hardware_kits/_category_.json b/docs/software/navigation_packages/hardware_kits/_category_.json deleted file mode 100644 index 716a60823..000000000 --- a/docs/software/navigation_packages/hardware_kits/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Hardware Kits", - "position": 1 -} diff --git a/docs/software/navigation_packages/navigation_packages.mdx b/docs/software/navigation_packages/navigation_packages.mdx deleted file mode 100644 index 998adc9c0..000000000 --- a/docs/software/navigation_packages/navigation_packages.mdx +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Navigation Packages -sidebar_position: 1 ---- - -Open source navigation packages are described in detail in the robot-specific -tutorials (eg. [Navigating Husky](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros1#navigating-husky)). -If your use case requires a more advanced level of autonomy, Clearpath also offers advanced navigation software -for both outdoor and indoor autonomous navigation scenarios. Contact our Sales team at -sales@clearpathrobotics.com for more information on these software packages. - -## OutdoorNav - -### OutdoorNav Autonomy Software {#outdoornav-autonomy-software} - -- [Product Overview](https://clearpathrobotics.com/outdoor-autonomy-software/) -- User Manual - - [Latest (0.8.0)](/docs_outdoornav_user_manual) - - [0.7.0](/docs_outdoornav_user_manual/0.7.0) - - [0.6.2](https://clearpathrobotics.com/assets/manuals/outdoornav/index.html) - - [0.6.0](https://clearpathrobotics.com/assets/manuals/outdoornav/archived/0.6.0/index.html) - - [0.5.0](https://clearpathrobotics.com/assets/manuals/outdoornav/archived/0.5.0/index.html) - - [0.4.0](https://clearpathrobotics.com/assets/manuals/outdoornav/archived/0.4.0/index.html) - -### OutdoorNav Hardware Kits - -- [OutdoorNav Starter Kit](/docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit) - -## IndoorNav - -### IndoorNav Autonomy Software - -- [Product Overview](https://clearpathrobotics.com/autonomy-research-kit/) -- User Manual - - [Latest (0.0.2)](/docs_indoornav_user_manual) diff --git a/docs/tools/_category_.json b/docs/tools/_category_.json deleted file mode 100644 index 0ad22ba44..000000000 --- a/docs/tools/_category_.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "label": "Tools", - "position": 8 -} diff --git a/docs/tools/robot_troubleshooting.mdx b/docs/tools/robot_troubleshooting.mdx deleted file mode 100644 index 327dcbd74..000000000 --- a/docs/tools/robot_troubleshooting.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Robot Troubleshooting -sidebar_position: 3 ---- - -Refer to the [Physical Tools page](./physical_tools/#common_hand_tools) for a list of tools that you may need to access the electronics inside your robot. - -## Physical Tools - -- Multimeter -- RJ45 Network cable -- Any converters for your development computer, to connect an RJ45 Network cables -- Monitor with a HDMI port -- HDMI cable -- Keyboard with a tethered USB cable (a mouse is not required) diff --git a/docs/tools/tools.mdx b/docs/tools/tools.mdx deleted file mode 100644 index 8293133aa..000000000 --- a/docs/tools/tools.mdx +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Tools Overview -sidebar_label: Tools -sidebar_position: 1 ---- - -
- -
- ---- - -These pages outline the tools you need to build, configure, and troubleshoot your robot. diff --git a/docs_indoornav_user_manual/api.mdx b/docs_indoornav_user_manual/api.mdx index c6101be34..e0741f809 100644 --- a/docs_indoornav_user_manual/api.mdx +++ b/docs_indoornav_user_manual/api.mdx @@ -1,12 +1,12 @@ --- -title: "Appendix A: IndoorNav ROS2 API" -sidebar_label: "Appendix A: IndoorNav ROS2 API" +title: "Appendix A: IndoorNav ROS 2 API" +sidebar_label: "Appendix A: IndoorNav ROS 2 API" sidebar_position: 6 toc_min_heading_level: 2 toc_max_heading_level: 4 --- -In addition to the Web GUI, IndoorNav provides a ROS2 API for +In addition to the Web GUI, IndoorNav provides a ROS 2 API for programmatic interactions. Documentation for this API is included in the `clearpath-api` package, installable with `apt`: @@ -22,10 +22,10 @@ documentation can be downloaded directly from ## API Summary -The ROS2 API is separated into 3 main categories, each operating on a -separate ROS2 Domain, as outlined in the table below: +The ROS 2 API is separated into 3 main categories, each operating on a +separate ROS 2 Domain, as outlined in the table below: -_ROS2 API Domain IDs_ +_ROS 2 API Domain IDs_ | Domain ID | Description | |-------------|--------------| @@ -40,7 +40,7 @@ The Autonomy API enables control of a single robot's autonomy and navigation. The Platform API is not available for use with IndoorNav. Instead of -using the Platform API, developers should use the base robot's ROS1 +using the Platform API, developers should use the base robot's ROS 1 nodes to interact with the robot hardware. Additional details on the Fleet, Autonomy, and Platform APIs can be @@ -49,7 +49,7 @@ found on ## API Examples -OTTO Motors provides examples of working with their ROS2 API. These +OTTO Motors provides examples of working with their ROS 2 API. These examples can be found in `/opt/clearpath/ros2-api-1.3.3/share/clearpath_api/examples/` @@ -83,11 +83,11 @@ example; it always returns an empty array. This will be corrected ASAP. Refer to the source code for the examples for more information about their use. All examples should be run using the Fleet API domain ID. -## Accessing Noetic Topics in ROS2 +## Accessing Noetic Topics in ROS 2 The Clearpath Robotics base platform is configured to bridge sensor data, velocity control, wireless connection status, power information, -and other basic topics into ROS2 on domain ID 121. The bridged topics +and other basic topics into ROS 2 on domain ID 121. The bridged topics are prefaced with the robot's hostname (with any hyphens replaced with underscores). For example: @@ -111,19 +111,19 @@ ros2 topic pub /cpr_dora/cmd_vel geometry_msgs/msg/Twist '{linear: {x: 0.1}}' -r ``` All other topics are read-only and will publish sensor/power/wireless -information at the same rate as their ROS1 topics. +information at the same rate as their ROS 1 topics. -## Using the ROS2 API with ROS Noetic +## Using the ROS 2 API with ROS Noetic :::note -At present the ROS2 API is unstable when bridged into ROS1 Noetic. You -are welcome to experiment with developing ROS1 nodes that use the +At present the ROS 2 API is unstable when bridged into ROS 1 Noetic. You +are welcome to experiment with developing ROS 1 nodes that use the bridged topics, but Clearpath Robotics can only offer minimal support. ::: -To enable bridging the ROS2 Fleet and Platform APIs into the ROS1 Noetic +To enable bridging the ROS 2 Fleet and Platform APIs into the ROS 1 Noetic master, set the `INDOORNAV_ENABLE_ROS2_TO_ROS1_BRIDGE` envar to `1` in `/etc/ros/setup.bash`: diff --git a/docs_indoornav_user_manual/base_robot_config/config_apt_rosdep.mdx b/docs_indoornav_user_manual/base_robot_config/config_apt_rosdep.mdx index 61d393d0c..bdb4bfe4c 100644 --- a/docs_indoornav_user_manual/base_robot_config/config_apt_rosdep.mdx +++ b/docs_indoornav_user_manual/base_robot_config/config_apt_rosdep.mdx @@ -6,13 +6,13 @@ toc_min_heading_level: 2 toc_max_heading_level: 4 --- -To install the IndoorNav software on your robot you must add the ROS1, -ROS2, and Clearpath Robotics package servers to your apt configuration. +To install the IndoorNav software on your robot you must add the ROS 1, +ROS 2, and Clearpath Robotics package servers to your apt configuration. This is normally done automatically by Clearpath's OS installation media, but if you are missing any of these sources, use the following commands to add them -**ROS1 Noetic** +**ROS 1 Noetic** ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' @@ -20,7 +20,7 @@ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo ap sudo apt-get update ``` -**ROS2 Foxy** +**ROS 2 Foxy** ```bash echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null @@ -53,7 +53,7 @@ Complete ROS Noetic installation instructions can be found at :::note -Complete ROS2 Foxy installation instructions can be found at +Complete ROS 2 Foxy installation instructions can be found at ::: diff --git a/docs_indoornav_user_manual/network_config.mdx b/docs_indoornav_user_manual/network_config.mdx index 0fd031d90..47f091afa 100644 --- a/docs_indoornav_user_manual/network_config.mdx +++ b/docs_indoornav_user_manual/network_config.mdx @@ -236,7 +236,7 @@ sudo systemctl restart apache2 :::warning It has been observed that using `iptables` to enable port-forwarding may -cause errors with the ROS2 daemon. We recommend using the Apache Proxy +cause errors with the ROS 2 daemon. We recommend using the Apache Proxy Server method described above. ::: diff --git a/docs_outdoornav_user_manual/api/api_endpoints/api_endpoints.mdx b/docs_outdoornav_user_manual/api/api_endpoints/api_endpoints.mdx index 429fccd97..a84989725 100644 --- a/docs_outdoornav_user_manual/api/api_endpoints/api_endpoints.mdx +++ b/docs_outdoornav_user_manual/api/api_endpoints/api_endpoints.mdx @@ -6,7 +6,7 @@ toc_min_heading_level: 2 toc_max_heading_level: 4 --- -The ROS1 Noetic API can be used to monitor and manage OutdoorNav Software. Details +The ROS 1 Noetic API can be used to monitor and manage OutdoorNav Software. Details are available through the child pages. - [Platform API](./platform_api) diff --git a/docs_outdoornav_user_manual/api/api_overview.mdx b/docs_outdoornav_user_manual/api/api_overview.mdx index 55b273a82..c4f425d48 100644 --- a/docs_outdoornav_user_manual/api/api_overview.mdx +++ b/docs_outdoornav_user_manual/api/api_overview.mdx @@ -19,8 +19,8 @@ flexibility to do so. This is illustrated in the figure below. -The API is, at present, a [ROS1 Noetic](http://wiki.ros.org/noetic) API, -but will soon be extended to a ROS2 API. The API is divided into two +The API is, at present, a [ROS 1 Noetic](http://wiki.ros.org/noetic) API, +but will soon be extended to a ROS 2 API. The API is divided into two sections, whose details are provided below: - [Platform API](/docs_outdoornav_user_manual/api/api_endpoints/platform_api): The set of [ROS diff --git a/docs_outdoornav_user_manual/integration_requirements/hardware_integration_requirements/starter_kit_hardware_checklist.mdx b/docs_outdoornav_user_manual/integration_requirements/hardware_integration_requirements/starter_kit_hardware_checklist.mdx index 4e6aa058d..639f9169b 100644 --- a/docs_outdoornav_user_manual/integration_requirements/hardware_integration_requirements/starter_kit_hardware_checklist.mdx +++ b/docs_outdoornav_user_manual/integration_requirements/hardware_integration_requirements/starter_kit_hardware_checklist.mdx @@ -13,7 +13,7 @@ The OutdoorNav Starter Kit from Clearpath Robotics contains: - RealSense D435f (x2) Depth Camera To integrate this kit onto your robot, ensure that all of the requirements below are satisfied for proper operation of the OutdoorNav software. -Refer to the [OutdoorNav Starter Kit](/docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit) for additional +Refer to the [OutdoorNav Starter Kit](/docs/robots/accessories/add-ons/outdoornav_starter_kit) for additional integration details.
diff --git a/docs_outdoornav_user_manual/integration_requirements/interface_control_requirements.mdx b/docs_outdoornav_user_manual/integration_requirements/interface_control_requirements.mdx index f6729441c..39be44298 100644 --- a/docs_outdoornav_user_manual/integration_requirements/interface_control_requirements.mdx +++ b/docs_outdoornav_user_manual/integration_requirements/interface_control_requirements.mdx @@ -18,7 +18,7 @@ are satisfied for a smooth installation and tuning process. | | Requirement | |------|------------------------------------------------------------------| | | The platform computer is on the 192.168.131.xxx subnet (ideally in the range 1-4). | -| | The platform computer has an installation of [ROS1 Noetic](http://wiki.ros.org/noetic/Installation). | +| | The platform computer has an installation of [ROS 1 Noetic](http://wiki.ros.org/noetic/Installation). | | | A URDF is supplied to CPR by the customer, in which the `base_link` coordinate frame is defined according to the [REP-105 base-link](https://www.ros.org/reps/rep-0105.html#base-link) ROS standard. | | | The platform outputs [tf2_msgs/TFMessage](http://docs.ros.org/en/jade/api/tf2_msgs/html/msg/TFMessage.html) messages on the ROS standard `/tf` topic, at a minimum rate of **30 Hz**. | | | The platform outputs a latched [tf2_msgs/TFMessage](http://docs.ros.org/en/jade/api/tf2_msgs/html/msg/TFMessage.html) message on the ROS standard `/tf_static` topic. This should include any fixed frames of ROS enabled devices/sensors that are available on your platform. | @@ -56,11 +56,11 @@ on how to do this conversion. ::: -If the platform computer is running a version of ROS2: +If the platform computer is running a version of ROS 2: | | Requirement | |------|------------------------------------------------------------------| -| | The platform computer has a [ROS2 to ROS1 bridge](https://github.com/ros2/ros1_bridge) is installed to enable the exchange of messages between the two ROS versions. | +| | The platform computer has a [ROS 2 to ROS 1 bridge](https://github.com/ros2/ros1_bridge) is installed to enable the exchange of messages between the two ROS versions. | Signature: Date: diff --git a/docs_outdoornav_user_manual/overview/overview_hardware_requirements.mdx b/docs_outdoornav_user_manual/overview/overview_hardware_requirements.mdx index 026eab7f3..e12de552d 100644 --- a/docs_outdoornav_user_manual/overview/overview_hardware_requirements.mdx +++ b/docs_outdoornav_user_manual/overview/overview_hardware_requirements.mdx @@ -28,7 +28,7 @@ format. More detailed requirements are outlined in the following table. | 2 | The UGV must have velocity control of the wheels and provide kinematic control of the platform | | | 3 | The UGV shall provide odometry feedback of the wheel direction and velocities and/or steering position | Recommended encoder resolution of 500 ticks per revolution or greater | | 4 | The UGV should have an emergency stop system with status feedback | | -| 5 | The UGV must accept ROS1 Twist Commands on the `/cmd_vel` topic | See: [API Endpoints](/docs_outdoornav_user_manual/api/api_endpoints); ROS 2 interface available in future release | +| 5 | The UGV must accept ROS 1 Twist Commands on the `/cmd_vel` topic | See: [API Endpoints](/docs_outdoornav_user_manual/api/api_endpoints); ROS 2 interface available in future release | | 6 | The UGV must provide odometry and status feedback through ROS topics | See: [API Endpoints](/docs_outdoornav_user_manual/api/api_endpoints) | ## Typical Hardware diff --git a/components/adding_a_source_workspace.mdx b/docs_versioned_docs/version-ros1noetic/components/_adding_a_source_workspace.mdx similarity index 100% rename from components/adding_a_source_workspace.mdx rename to docs_versioned_docs/version-ros1noetic/components/_adding_a_source_workspace.mdx diff --git a/components/changing_default_password.mdx b/docs_versioned_docs/version-ros1noetic/components/_changing_default_password.mdx similarity index 100% rename from components/changing_default_password.mdx rename to docs_versioned_docs/version-ros1noetic/components/_changing_default_password.mdx diff --git a/components/configuring_network_bridge.mdx b/docs_versioned_docs/version-ros1noetic/components/_configuring_network_bridge.mdx similarity index 94% rename from components/configuring_network_bridge.mdx rename to docs_versioned_docs/version-ros1noetic/components/_configuring_network_bridge.mdx index 8e4c64336..f02c91e03 100644 --- a/components/configuring_network_bridge.mdx +++ b/docs_versioned_docs/version-ros1noetic/components/_configuring_network_bridge.mdx @@ -48,7 +48,7 @@ working properly. :::note -See also [Network IP Addresses](/docs/tools/network_ip_addresses) for common IP addresses +See also [Network IP Addresses](../../../ros/networking/network_ip_addresses) for common IP addresses on Clearpath robots. ::: diff --git a/components/driving_with_remote_controller.mdx b/docs_versioned_docs/version-ros1noetic/components/_driving_with_remote_controller.mdx similarity index 100% rename from components/driving_with_remote_controller.mdx rename to docs_versioned_docs/version-ros1noetic/components/_driving_with_remote_controller.mdx diff --git a/components/installing_remote_computer_software.mdx b/docs_versioned_docs/version-ros1noetic/components/_installing_remote_computer_software.mdx similarity index 93% rename from components/installing_remote_computer_software.mdx rename to docs_versioned_docs/version-ros1noetic/components/_installing_remote_computer_software.mdx index 8d4b551b5..840661424 100644 --- a/components/installing_remote_computer_software.mdx +++ b/docs_versioned_docs/version-ros1noetic/components/_installing_remote_computer_software.mdx @@ -1,6 +1,6 @@ import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; -import ComponentRemoteRosConnectivity from "/components/remote_ros_connectivity.mdx"; +import ComponentRemoteRosConnectivity from "/docs_versioned_docs/version-ros1noetic/components/_remote_ros_connectivity.mdx"; It is often convenient to use a Remote Computer (eg. laptop) to command and observe your robot. To do this, your Remote Computer must be configured correctly. @@ -9,7 +9,7 @@ Remote Computer must be configured correctly. 2. Install the desktop packages: - + + + + + + + @@ -85,10 +82,7 @@ This allows you to add or remove the sensor from your robot's software descripti > @@ -98,7 +92,7 @@ This allows you to add or remove the sensor from your robot's software descripti > @@ -108,7 +102,7 @@ This allows you to add or remove the sensor from your robot's software descripti > @@ -118,7 +112,7 @@ This allows you to add or remove the sensor from your robot's software descripti > diff --git a/docs_versioned_docs/version-ros1noetic/components/_support_introduction.mdx b/docs_versioned_docs/version-ros1noetic/components/_support_introduction.mdx new file mode 100644 index 000000000..8b3a19730 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/components/_support_introduction.mdx @@ -0,0 +1,21 @@ +Robots are complex. +Common issues are listed below. +Contact our support team at if the issue persists. + +:::info + +Our Support team may ask you to create a _rosbag_. +This is a tool that saves ROS data to a file, so we can review it after the robot has been turned off. + +For example, we may ask you to record the _/status_ topic so we can review motor temperatures, and other diagnostic data. +To create this rosbag, you would: + +1. Log into the robot's computer. +2. Run the command `rosbag record /status` +3. Use your robot as you typically would, trying to recreate the issue you have been experiencing. +4. Once done, in the terminal, press `ctrl+c` to stop the command. +5. Enter `ls`, and find the new file that was created. It will have a file extension of _.bag_ +6. Copy this file to your development computer, using a command like [`scp`](https://help.ubuntu.com/community/SSH/TransferFiles). + Send this _.bag_ file to Clearpath Robotics in your Support email request. + +::: diff --git a/components/wifi_robot_connection.mdx b/docs_versioned_docs/version-ros1noetic/components/_wifi_robot_connection.mdx similarity index 87% rename from components/wifi_robot_connection.mdx rename to docs_versioned_docs/version-ros1noetic/components/_wifi_robot_connection.mdx index ab00f42fa..42a085818 100644 --- a/components/wifi_robot_connection.mdx +++ b/docs_versioned_docs/version-ros1noetic/components/_wifi_robot_connection.mdx @@ -1,4 +1,4 @@ -import ComponentNetplanSetup from "/components/netplan_setup.mdx"; +import ComponentNetplanSetup from "/docs_versioned_docs/version-ros1noetic/components/_netplan_setup.mdx"; Now that you are connected via SSH over a wired connection using the steps above, you can set up your robot's computer (running Ubuntu 20.04) to connect to a local Wi-Fi network. (For legacy systems running Ubuntu 18.04, use diff --git a/components/wired_robot_connection.mdx b/docs_versioned_docs/version-ros1noetic/components/_wired_robot_connection.mdx similarity index 100% rename from components/wired_robot_connection.mdx rename to docs_versioned_docs/version-ros1noetic/components/_wired_robot_connection.mdx diff --git a/docs/accessories/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/_category_.json similarity index 100% rename from docs/accessories/_category_.json rename to docs_versioned_docs/version-ros1noetic/robots/accessories/_category_.json diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/accessories.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/accessories.mdx new file mode 100644 index 000000000..04d414b0b --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/accessories.mdx @@ -0,0 +1,17 @@ +--- +title: Accessories Overview +sidebar_label: Accessories Overview +sidebar_position: 5 +--- + +Many different types of accessories can be added onto Clearpath robot platforms to suit your specific needs. + +:::info links to accessory pages + +- [Computers](./computers) +- [Sensors](./sensors) +- [Manipulators](./manipulators) +- [PACS™](./pacs) +- [Add-ons](./add-ons) + +::: \ No newline at end of file diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/_category_.json new file mode 100644 index 000000000..e4c5c20a4 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Add-ons", + "position": 6 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/add-ons.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/add-ons.mdx new file mode 100644 index 000000000..b5d53a61c --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/add-ons.mdx @@ -0,0 +1,35 @@ +--- +title: Add-ons Overview +sidebar_label: Add-ons +sidebar_position: 1 +--- + +
+
+ + +
norlab's Warthog with Velodyne Puck lidar
+
+
+
+ +
+ +The following pages list add-on subsystems to support our base robot platforms and sensors. +Thses pages will list subsystems like: + +- Wi-Fi and networking +- Lights +- Controllers +- Power Supplies +- Cabling and Electrical considerations +- Brackets and Mechanical considerations + +We suggest you: + +1. Review our documentation of these accessories. +2. If you want Clearpath Robotics to integrate accessories on your robot, contact our Sales team at , whether you want to use a new Clearpath Robotics platform, or reuse your existing vehicle. +3. Contact our Support team at if you have any questions. diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/base_station.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/base_station.mdx new file mode 100644 index 000000000..01ff51b3c --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/base_station.mdx @@ -0,0 +1,42 @@ +--- +title: Base Station +sidebar_position: 2 +--- + +
+
+ +
Base Station with GPS
+
+
+ +Our Base Station is a Network Access Point inside a weatherproof enclosure. + +It includes: + +- A weatherproof enclosure mounted to a tripod +- A network access point and antenna to create a Wi-Fi network +- An AC-DC power supply +- A battery and charger, so you can use the Base Station remotely + +Our robots are configured to automatically connect to the Base Station's Wi-Fi network. +You can then connect your development computer to the Base Station through Wi-Fi or a network cable, and then share data with the robot over Wi-Fi. +Our standard Base Station can send data at 100 Mbit/s at up to 100 metres range. + +We also have a GPS variant of the Base Station where we add a [Swift Navigation Duro](../sensors/gps/swift_navigation_duro) to the system, connecting it to the Access Point with a network cable. +This GPS sensor allows the robot to apply an RTK (Real-Time Kinematic) correction for more accurate localization. + +:::note + +Clearpath uses this RTK correction in its OutdoorNav autonomy software, but we do not use this data in the standard _/odometry_ rostopic. + +::: + +:::note + +Refer to the [Network IP Addresses page](../../../ros/networking/network_ip_addresses) for the commonly used device IP addresses. + +::: diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/controllers.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/controllers.mdx new file mode 100644 index 000000000..7734846de --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/controllers.mdx @@ -0,0 +1,104 @@ +--- +title: Controllers +sidebar_position: 3 +--- + +| Description | CPR Item | +| :------------------------------------------------------------------ | :------- | +| [Logitech F710](#controllers_logitech_f710) | 002071 | +| [Sony Dualshock](#controllers_sony_dualshock) | 011756 | +| [Futaba 4GRS](#controllers_futaba_4grs) | 011389 | +| [FORT Robotics Safe Remote Control](#controllers_fort_robotics_src) | 025725 | + +Controllers appear in Ubuntu in the _/dev/input/_ directory. +Navigate to that directory,and then run `ls` to list the controllers. +You can view the data stream of the controller by running `jstest /dev/input/js0`, changing the final value to the relevent controller. + +:::note + +You may need to install _jstest_ with `sudo apt-get install jstest-gtk` + +::: + +Clearpath uses the _/bluetooth_teleop_ ROS node to publish velocity commands from the joystick to _/twist_mux_. +_/twist_mux_ Takes in multiple sources of velocity commands, and prioritizes what actually gets sent to _/cmd_vel_ to drive the robot. + +Depending on the robot platform and related controller, you will need to configure your robot's environment variables in _/etc/ros/setup.bash_. + +--- + +## Logitech F710 {#controllers_logitech_f710} + +
+ +
+ +
+ +Drivers are included in the current Linux Kernels that Clearpath Robotics uses. + +The included USB dongle requires a line-of-sight connection with the handheld controller. + +--- + +## Sony Dualshock {#controllers_sony_dualshock} + +
+ +
+ +
+ +This conroller requires a Bluetooth connection to the robot's computer. + +Linux Driver: https://github.com/clearpathrobotics/ds4drv + +--- + +## Futaba 4GRS {#controllers_futaba_4grs} + +
+ +
+ +
+ +This controller includes a PCBA that sends data to the ROS computer with a serial connection. + +The controller communicates with the PCBA receiver over a 2.4 GHz radio. + +Clearpath Robotics has built this controller into the Warthog and Moose platforms. + +It can be integrated on other robots, but requires custom integration as there is not an Open Source ROS driver at this time. + +--- + +## FORT Robotics controller {#controllers_fort_robotics_src} + +
+ +
+ +
+ +Similar to the Logitech controller listed above, the FORT Robotics controller data appears in _/dev/input/_ and uses a Linux Driver included in the current Ubuntu LTS release. + +The controller and receiver communicate over a 900 MHz radio, with the specific band configured based on your country. + +:::note + +The status of the motion-stop button does appear in the data, as well as the other buttons and joysticks. + +::: diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/din_rail.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/din_rail.mdx new file mode 100644 index 000000000..748b70ff0 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/din_rail.mdx @@ -0,0 +1,101 @@ +--- +title: DIN rail +sidebar_position: 4 +--- + +
+ +
+ +
+ +
+ +## Kits + +| Description | CPR Item | +| :-------------------------------- | :------: | +| Kit, Attachment—80 X 80, DIN Rail | 027881 | + +## DIN Rail Lengths + +
Click to expand

+ +| Length | (Length) | CPR Item | Manufacturer | Manufacturer Item | +| :------- | :------- | :------: | :----------- | :---------------- | +| 76.2 mm | (3") | 027637 | Digi-Key | ADR3575-S0300-ND | +| 101.6 mm | (4") | | Digi-Key | ADR3575-S0400-ND | +| 127 mm | (5") | | Digi-Key | ADR3575-S0500-ND | +| 152.4 mm | (6") | | Digi-Key | ADR3575-S0600-ND | +| 177.8 mm | (7") | | Digi-Key | ADR3575-S0700-ND | +| 203.2 mm | (8") | 013718 | Digi-Key | ADR3575-S0800-ND | +| 228.6 mm | (9") | | Digi-Key | ADR3575-S0900-ND | +| 254 mm | (10") | | Digi-Key | ADR3575-S1000-ND | +| 279.4 mm | (11") | 028332 | Digi-Key | ADR3575-S1100-ND | +| 304.8 mm | (12") | 010174 | Digi-Key | ADR3575-S1200-ND | +| 330.2 mm | (13") | 029268 | Digi-Key | ADR3575-S1300-ND | +| 355.6 mm | (14") | | Digi-Key | ADR3575-S1400-ND | +| 381 mm | (15") | 011938 | Digi-Key | ADR3575-S1500-ND | +| 406.4 mm | (16") | | Digi-Key | ADR3575-S1600-ND | +| 431.8 mm | (17") | | Digi-Key | ADR3575-S1700-ND | +| 457.2 mm | (18") | | Digi-Key | ADR3575-S1800-ND | +| 482.6 mm | (19") | | Digi-Key | ADR3575-S1900-ND | +| 508 mm | (20") | | Digi-Key | ADR3575-S2000-ND | +| 533.4 mm | (21") | | Digi-Key | ADR3575-S2100-ND | +| 558.8 mm | (22") | | Digi-Key | ADR3575-S2200-ND | +| 584.2 mm | (23") | | Digi-Key | ADR3575-S2300-ND | +| 609.6 mm | (24") | | Digi-Key | ADR3575-S2400-ND | +| 431.8 mm | (25") | | Digi-Key | ADR3575-S2500-ND | +| 457.2 mm | (26") | | Digi-Key | ADR3575-S2600-ND | +| 482.6 mm | (27") | | Digi-Key | ADR3575-S2700-ND | +| 508 mm | (28") | 019438 | Digi-Key | ADR3575-S2800-ND | +| 533.4 mm | (29") | | Digi-Key | ADR3575-S2900-ND | +| 558.8 mm | (30") | | Digi-Key | ADR3575-S3000-ND | +| 584.2 mm | (31") | | Digi-Key | ADR3575-S3100-ND | +| 609.6 mm | (32") | | Digi-Key | ADR3575-S3200-ND | +| 533.4 mm | (33") | | Digi-Key | ADR3575-S3300-ND | +| 558.8 mm | (34") | | Digi-Key | ADR3575-S3400-ND | +| 584.2 mm | (35") | | Digi-Key | ADR3575-S3500-ND | +| 609.6 mm | (36") | | Digi-Key | ADR3575-S3600-ND | + +

+ +## Common Parts + +| Description | CPR item | Manufacturer | Manufacturer item | +| :-------------------------- | :------------------------------------------------------: | :-------------- | :---------------- | +| DIN Rail, Clamp | [023649](/assets/pdf/clearpath_robotics_023649-TDS1.pdf) | Omron | PFP-M | +| DIN Rail, Spacer | [023648](/assets/pdf/clearpath_robotics_023648-TDS1.pdf) | Omron | PFP-S | +| DIN Rail, M5 threaded mount | [025874](/assets/pdf/clearpath_robotics_025874-TDS1.pdf) | Phoenix Contact | 1202713 | + +--- + +## Hardware Build + +### Parts List + +The PACS™ kit for a stack light includes: + +| ID | Description | CPR item | Quantity | +| :-: | :----------------------------------------------------------------- | :-------------------------------------------------: | :------: | +| 1 | Plate—80 X 80, Attachment Interface | [026914](/assets/pdf/clearpath_robotics_026914.pdf) | 1 | +| 2 | DIN Rail, IEC 60715, Obround Slot—7.5 X 35 X 76, Steel, Zinc Plate | 027637 | 1 | +| 3 | Screw, Cap, Round Head—M5×0.8 X 10, Stainless Steel | 023317 | 2 | +| 4 | Nut, Hex, Lock, Polymer Insert—M5×0.8 X 5, Stainless Steel | 010170 | 2 | +| 5 | Spacer, Round—Ø5.3 X Ø8 X 7, Aluminum Alloy | 026612 | 4 | +| 6 | Screw, Cap, Round Head—M5×0.8 X 16, Stainless Steel | 023257 | 4 | + +:::note + +This only inlcudes the parts to mount a DIN rail on a PACS™ ready robot. +Refer to the pictures at the top of this page to see the kit. + +::: + +### Instructions + +1. Mount the DIN Rail (ID 2) to the attachment-plate (ID 1) using the M5 X 10 screws (ID 3) and nuts (ID 4). +2. Mount this assembly onto your robot, using the included spacers (ID 5) and screws (ID 6). diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/network_access_point.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/network_access_point.mdx new file mode 100644 index 000000000..7d8a186ca --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/network_access_point.mdx @@ -0,0 +1,52 @@ +--- +title: Network Access Point +sidebar_position: 5 +--- + +## Item Numbers + +| Description | CPR Item | Sales Kit | +| :---------------------------------------------------------------- | :------: | :-------: | +| [Microhard, px2-ENC](#ap_microhard_px2_enc) | 015329 | 029104 | +| [Microhard, BulletPlusAC-CAT12](#ap_microhard_bulletplusac_cat12) | 027795 | 029105 | + +## Microhard, px2-ENC {#ap_microhard_px2_enc} + +
+
+ +
029104 | Kit—Network Access Point, Microhard px2-ENC
+
+
+ +
+ +- Wi-Fi + - 802.11bgn + - 150 Mbit/s +- -40°C to +85°C allowable operating environment + +## Microhard, BulletPlusAC-CAT12 {#ap_microhard_bulletplusac_cat12} + +
+
+ +
029105 | Kit—Network Access Point, Microhard BulletPlusAC-CAT12
+
+
+ +
+ +- LTE cellular internet + - 600 Mbit/s download + - 150 Mbit/s upload +- Wi-Fi + - 802.11bgna/ac + - 1.3 Gbit/s +- -40°C to +85°C allowable operating environment diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/network_switch.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/network_switch.mdx new file mode 100644 index 000000000..434fbe064 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/network_switch.mdx @@ -0,0 +1,52 @@ +--- +title: Network Switch +sidebar_position: 6 +--- + +import ComponentPacsExplanation from "/components/pacs_explanation_and_link.mdx"; + +## Item Numbers + +| Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | +| :----------------------------- | :------------------------------------------------------: | :-------: | :------------------------------: | +| Netgear, 5 port, 5 VDC | 025101 | - | - | +| Netgear, 5 port, 12 VDC | 006713 | - | - | +| Netgear, 8 port, 12 VDC | 006701 | - | - | +| TRENDnet, 5 port, 12 - 56 VDC | [021044](/assets/pdf/clearpath_robotics_021044-TDS1.pdf) | 027639 | 027638 | +| TRENDnet, 8 port, 12 - 56 VDC | [025333](/assets/pdf/clearpath_robotics_025333-TDS1.pdf) | 027641 | 027640 | +| TRENDnet, 16 port, 12 - 60 VDC | [029098](/assets/pdf/clearpath_robotics_029098-TDS1.pdf) | - | - | + +--- + +## PACS™ Kits {#network_switch_pacs_kits} + + + +:::note + +These installation kits use a PACS™ attachment which includes a DIN rail. +Refer to the [DIN Rail](./din_rail) page for build instructions. + +::: + +
+
+ +
027638 | Installation, Kit—80 X 80, Network Switch, 5 port
+
+
+ +
+ +
+
+ +
027640 | Installation, Kit—80 X 80, Network Switch, 8 port
+
+
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/outdoornav_starter_kit.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/outdoornav_starter_kit.mdx new file mode 100644 index 000000000..8d985fa3c --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/outdoornav_starter_kit.mdx @@ -0,0 +1,93 @@ +--- +title: OutdoorNav Starter Kit +sidebar_label: OutdoorNav Starter Kit +sidebar_position: 1 +--- + +
+
+ +
Starter Kit
+
+
+ +The OutdoorNav Starter Kit is a low-cost hardware bundle that allows you to begin autonomous outdoor navigation using +Clearpath's [OutdoorNav Autonomy Software](/docs_outdoornav_user_manual/). It integrates +easily onto Husky and Jackal, but is compatible with third-party robots as outlined below. + +## Item Numbers {#item-numbers} + +| Description | Sales Kit | +| :------------------------------------------ | :-------: | +| OutdoorNav Starter Kit | 028356 | +| OutdoorNav Starter Kit Husky Adapter Cable | 029915 | +| OutdoorNav Starter Kit Jackal Adapter Cable | 029914 | +| GNSS Antenna Relocation Kit | 028590 | +| RealSense D435f Relocation Kit | 028817 | + +## Mechanical Mounting + +The OutdoorNav Starter Kit can be mounted directly using either its 80 X 80 mm or 120 X 120 mm hole pattern as shown in the following image. + +
+
+ +
Starter Kit mounting hole pattern
+
+
+ +On Jackal, mount the kit using the standard 120 X 120 hole pattern at the front of Jackal. + +On Husky, mount the kit on the leading edge of the top plate. Where a PACS-compatible top plate exists, the kit can be mounted directly. +When using an older Husky without a PACS-compatible top plate, it will be necessary to drill your own holes. + +Refer also to the [OutdoorNav Starter Kit Hardware Checklist](/docs_outdoornav_user_manual/integration_requirements/hardware_integration_requirements/starter_kit_hardware_checklist). + +--- + +## Electrical Integration + +### Power Integration + +The OutdoorNav Starter Kit includes a 1 m IP67 power cable to provide power from the base platform to the Starter Kit. +Adapter cables can be used for robot-specific integrations. + +- For power integration on Husky, purchase the OutdoorNav Starter Kit Husky Adapter Cable, as listed in [Item Numbers](#item-numbers). +- For power integration on Jackal, purchase the OutdoorNav Starter Kit Jackal Adapter Cable, as listed in [Item Numbers](#item-numbers). +- For power integration on a third-party robot, an adapter cable will need to be created. + + - The provided 1 m power cable is terminated with a Molex Mini-Fit Jr connector (Molex 0039012025). + - The adapter cable should use the appropriate mating connector (Molex 0039013029). + - The pinout is illustrated in the figure below: + + - Pin 1: VIN (18 to 75 VDC, 7 A max) + - Pin 2: GND + +
+
+ +
Starter Kit power cable connector
+
+
+ +### Data Integration + +The OutdoorNav Starter Kit includes a 1 m IP67 Ethernet cable for data connectivity between the base platform to the Starter Kit. +Refer to [OutdoorNav Platform Computer Checklist](/docs_outdoornav_user_manual/integration_requirements/platform_computer_checklist) +for addititional details on data connectivity. + +--- + +## Software Integration + +The required software for the OutdoorNav Starter Kit is pre-installed. However, the base platform computer must be configured as outlined +in the [OutdoorNav Platform Computer Checklist](/docs_outdoornav_user_manual/integration_requirements/platform_computer_checklist). diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/power_supplies.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/power_supplies.mdx new file mode 100644 index 000000000..b585fce48 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/power_supplies.mdx @@ -0,0 +1,98 @@ +--- +title: Power Supplies +sidebar_position: 7 +--- + +import ComponentPacsExplanation from "/components/pacs_explanation_and_link.mdx"; + +Clearpath's robots include User Power connectors with regulated 5 V, 12 V, and 24 V depending on the robot platorm. +Refer to your robot platform's user manual for more details about these User Power connections: + +- [Boxer](../../indoor_robots/boxer/user_manual_boxer) +- [Dingo](../../indoor_robots/dingo/user_manual_dingo) +- [Husky](../../outdoor_robots/husky/user_manual_husky) +- [Jackal](../../outdoor_robots/jackal/user_manual_jackal) +- [Ridgeback](../../indoor_robots/ridgeback/user_manual_ridgeback) +- [Warthog](../../outdoor_robots/warthog/user_manual_warthog) + +If you need more power, or at a different output voltage, you can add an enclosed DC-DC power supply. +This is our process for choosing a new enclosed power supply. + +## Process For Choosing A Power Supply {#choosing_a_power_supply} + +1. Go to [Digi-Key](https://www.digikey.ca/en/products/filter/dc-dc-converters/132) or [Mouser](https://www.mouser.ca/c/power/dc-dc-converters/?orgKeyword=dc-dc%20converter), and search for _DC-DC Converter_ +2. Filter the results for _Active_ items. +3. Filter for your preferred Manufacturer, such as: + - CUI Inc. + - Delta Electronics + - MEAN WELL + - Murata + - Traco Power +4. Filter for your intended output voltage. +5. Filter for your required minimum output current or power. +6. Review the results, and find options that have an input voltage range matching your robot's battery. + For example, a Power Supply with an input voltage range of 18 - 36 VDC is acceptable for a Husky with a lead-acid battery, since the Husky's battery volage will be between 24 - 29 VDC. +7. Review the allowable operating temperature range, and confirm that it is acceptable for your applicaiton. +8. Review the Power Supply's datasheet, looking for mechanical mounting as well as shock & vibration requirements. + + :::tip + + 1. Consider using one of the following [PACS™ Kits](#power_supplies_pacs_kits). + - **15 Watt**: 028901 | Installation, Kit, Sensor—80 X 80, Power Supply, SB-15 + - **25 Watt**: 028903 | Installation, Kit, Sensor—80 X 80, Power Supply, SB-25 + - **150 Watt**: 028941 | Installation, Kit, Sensor—80 X 80, Power Supply, TEP 150 + 2. There are Power Supplies that include mounting brackets for [DIN Rails](../add-ons/din_rail), which could simplify your integration. + + ::: + +9. Review the electrical termination method to see if it is ideal for your application. It is common to see screw terminals for [Ring Terminals](../../common/components/connectors/ring_terminal), though there are other options. + +
+
+ +
Example filtering for a 12 VDC power supply on Digi-Key
+
+
+ +--- + +## PACS™ Kits {#power_supplies_pacs_kits} + + + +
+
+ +
028901 | Installation, Kit, Sensor—80 X 80, Power Supply, SB-15
+
+
+ +
+ +
+
+ +
028903 | Installation, Kit, Sensor—80 X 80, Power Supply, SB-25
+
+
+ +
+ +
+
+ +
028941 | Installation, Kit, Sensor—80 X 80, Power Supply, TEP 150
+
+
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/relay_board.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/relay_board.mdx new file mode 100644 index 000000000..99515b0ba --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/relay_board.mdx @@ -0,0 +1,84 @@ +--- +title: Relay Board +sidebar_position: 8 +--- + +
+
+ +
Numato Lab® RL40001
+
+
+ +
+ +We use these Relay Boards from [Numato Lab®](https://numato.com/) for controlling lights, larger relay-contactors, and similar powered devices. +The relay board is wired to a ROS computer with a USB cable, and appears in the computer's _/dev_ directory as a serial device. +We have developed a ROS driver using Numato's API, so we can control the relays through _rosservices_, and monitor the GPIO inputs through _rostopics_. + +| Description | CPR Item | Sales Kit | +| :------------------------------ | :------: | :-------: | +| Relay, USB controlled—2 Channel | 019464 | 029099 | +| Relay, USB controlled—4 Channel | 019465 | 029100 | +| Relay, USB controlled—8 Channel | 019466 | 029101 | + +
+ +
+
+ +
Used in a robot, for controlling a stack light, and GPIO for button inputs
+
+
+ +--- + +## DIN Rail Kits {#relay_board_kits} + +:::note + +Refer to the [DIN Rail](../add-ons/din_rail) page for related PACS™ Kits, and item numbers of common DIN Rail lengths. + +::: + +
+
+ +
029099 | Kit—Relay, USB controlled, 2 Channel
+
+
+ +
+ +
+
+ +
029100 | Kit—Relay, USB controlled, 4 Channel
+
+
+ +
+ +
+
+ +
029101 | Kit—Relay, USB controlled, 8 Channel
+
+
+ +
diff --git a/docs/accessories/stack_light.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/stack_light.mdx similarity index 93% rename from docs/accessories/stack_light.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/stack_light.mdx index 69d701f77..8ec360e80 100644 --- a/docs/accessories/stack_light.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/stack_light.mdx @@ -14,7 +14,7 @@ sidebar_position: 9 | Description | CPR Item | | :------------------------------------------------------- | :------: | -| PACS kit, including mounting, controls base, and top cap | 027220 | +| PACS™ kit, including mounting, controls base, and top cap | 027220 | | Kit, controls base and top cap | 020711 | | Mounting adapter | 020710 | | Light Module, Green | 020714 | @@ -44,7 +44,7 @@ sidebar_position: 9 ### Parts List -The PACS kit for a stack light includes: +The PACS™ kit for a stack light includes: | ID | Description | CPR item | Quantity | | :-------: | :--------------------------------------------------------- | :-------------------------------------------------: | :------: | @@ -58,7 +58,7 @@ The PACS kit for a stack light includes: :::note -Light Modules are not included in the PACS parts list since the configuration of modules depends on your specific integration. +Light Modules are not included in the PACS™ parts list since the configuration of modules depends on your specific integration. Refer to the listed Light Modules at the top of this page for common modules. Refer to [this catalog](/assets/pdf/clearpath_robotics_027220-TDS1.pdf) for all available modules and parts, including strobing lights, and buzzers. diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/tower.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/tower.mdx new file mode 100644 index 000000000..f45fe04db --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/tower.mdx @@ -0,0 +1,32 @@ +--- +title: Tower +sidebar_position: 10 +--- + +
+ +
+ +
+ +
+ +
+ +
+ +| Description | CPR Item | Manufacturer | Manufacturer Item | +| :-------------------- | :------: | :---------------------- | :---------------- | +| Spacer, Ø5.3 X Ø8 X 5 | 027005 | RAF Electronic Hardware | M0594-5-AL | +| Standoff, 15 mm | 026991 | Wurth Elektronik | 971150581 | +| Standoff, 35 mm | 026995 | Wurth Elektronik | 971350581 | +| Standoff, 55 mm | 026999 | Wurth Elektronik | 971550581 | +| Standoff, 75 mm | 027002 | Wurth Elektronik | 971750581 | + +We use the listed standoffs to lift sensors for better viewing angles. diff --git a/docs/accessories/usb_hub.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/usb_hub.mdx similarity index 85% rename from docs/accessories/usb_hub.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/usb_hub.mdx index a289e2d65..b676a4949 100644 --- a/docs/accessories/usb_hub.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/usb_hub.mdx @@ -8,7 +8,7 @@ sidebar_position: 11 | Description | CPR Item | | :---------------------------------------- | :------------------------------------------------------: | | USB 3.0 Hub, 7 port, 9 - 24 VDC | [025440](/assets/pdf/clearpath_robotics_025440-TDS1.pdf) | -| USB 3.0 Hub, 7 port, 9 - 24 VDC, PACS kit | 027642 | +| USB 3.0 Hub, 7 port, 9 - 24 VDC, PACS™ kit | 027642 | --- @@ -20,23 +20,23 @@ sidebar_position: 11 src="/img/accessories_images/usb_hub_1.png" width="400" /> -
017642 | USB 3.0 Hub, 7 port, PACS kit
+
017642 | USB 3.0 Hub, 7 port, PACS™ kit
### Parts List -The PACS kit for this sensor includes: +The PACS™ kit for this sensor includes: | ID | Description | CPR item | Quantity | | :-: | :-------------------------------------- | :------------------------------------------------------: | :------: | -| 1 | Kit, Attachment—80 X 80, DIN Rail | [027881](/docs/accessories/din_rail) | 1 | +| 1 | Kit, Attachment—80 X 80, DIN Rail | [027881](../add-ons/din_rail) | 1 | | 2 | USB Hub—7 Port, USB 3.0 | [025440](/assets/pdf/clearpath_robotics_025440-TDS1.pdf) | 1 | | 3 | Spacer, DIN rail, Locking—35 X 7.5 X 10 | 023649 | 2 | ### Instructions, 5 Port -1. Build the DIN rail assembly. The instructions are listed on the [DIN Rail page](/docs/accessories/din_rail) +1. Build the DIN rail assembly. The instructions are listed on the [DIN Rail page](../add-ons/din_rail) 2. Mount this assembly onto your robot, using the DIN Rail kit's included spacers and screws. 3. Remove the USB Hub from its packaging. Connect its included DIN Rail bracket to the USB Hub. diff --git a/docs/accessories/wireless_stop_system.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/wireless_stop_system.mdx similarity index 95% rename from docs/accessories/wireless_stop_system.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/wireless_stop_system.mdx index 25e9954aa..2fd10b92a 100644 --- a/docs/accessories/wireless_stop_system.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/add-ons/wireless_stop_system.mdx @@ -18,9 +18,9 @@ sidebar_position: 12 | Description | CPR item | Manufacturer item | | :-------------------------------- | :------: | :---------------- | | Kar-Tech | 014663 | 3A4159A | -| Kar-Tech, PACS kit | 027297 | | +| Kar-Tech, PACS™ kit | 027297 | | | FORT Robotics, Mobility | 025727 | | -| FORT Robotics, Mobility, PACS kit | 027216 | | +| FORT Robotics, Mobility, PACS™ kit | 027216 | | --- @@ -86,4 +86,4 @@ sidebar_position: 12 Refer to [015584-TDS2](/assets/pdf/clearpath_robotics_015584-TDS2.pdf) for full details of the FORT component, including pinout. 5. Connect the cable you just made to the robot's User Power connector, and to your motion-stop loop control wiring. 6. Connect a USB-mini 2.0 cable between your ROS computer and the FORT Robotics component. - This cable is not included in the PACS kit. + This cable is not included in the PACS™ kit. diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/_category_.json new file mode 100644 index 000000000..9d253c7b2 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Computers", + "position": 2 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/computers.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/computers.mdx new file mode 100644 index 000000000..829aacaca --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/computers.mdx @@ -0,0 +1,67 @@ +--- +title: Computers Overview +sidebar_label: Computers +sidebar_position: 1 +--- + +
+
+ +
Jackal with a water cooled Intel i9 processor and Nvidia 1050
+
+
+ +
+ +Clearpath's robots use ROS or ROS 2, which require the robot to have a computer running an Operating System like Ubuntu. +We mostly use Mini-ITX computers with Intel Core i3 and i7 processors, but we can run ROS on the major architectures including: + +- Intel Core i series +- arm64 (Nvidia Jetson, and Raspberry Pi) + +Clearpath Robotics has preconfigured _Standard_ and _Performance_ computer kits for our robots, but we can make a custom computer to meet your project's requirements. + +## Computer Selection Considerations + +1. Operating conditions, air temperature +2. Operating conditions, shock & vibration +3. Amount of compute required, CPU +4. Amount of compute required, GPU +5. Amount of RAM required +6. Amount of memory storage required +7. Speed of memory required (for applications with many cameras) +8. Number of connected sensors, and their data rates +9. Any software specific considerations that impact hardware: + - What operating system do you intend to use? + - Are there kernel drivers for this component? + - Does this software require a GPU? + - Does this software require a specific processor architecture? +10. Can the selected robot power all these devices, and what will the runtime be? + +## Computer Selection Process + +1. Choose between a consumer-computer and an industrial-computer. + 1. Operating environment's temperature range. + Consumer computers are intended for an environment between 0°C - 30°C. + Most outdoor robots operate in summer envronments with hotter ambient air, and have extra heat added to the computer through solar radiation. + The type of computer and cooling strategy can allow you to use the full compute capability of the computer in these environments. + 2. Mechanical shock & vibration in your application. +2. Choose between an Intel or arm64 architecture. + 1. Amount of compute required for sensor data. + 2. Amount of compute required for software, such as Autonomy. + 3. Are you planning to run any software specific to arm64, such as tools in [Nvidia JetPack SDK](https://developer.nvidia.com/embedded/jetpack)? + 4. Amount of RAM required. + 5. Number of sensors, and types of connections, and required speeds + - USB 2 + - USB 3.0 - 3.2 + - Ethernet (100 Mbit/s, 1 Gbit/s, 10 Gbit/s) + - CAN, and other industrial protocols + - Serial (RS-232, RS-422, RS-485) + Some devices may be connected to the computer through Network Switches, Hubs, or USB-converters. + Some devices like cameras can have a large amount of data, and require a dedicated bus on the computer, so it is best to consider the whole application when choosing the computer. +3. Amount of hard storage required, and how fast you need to write to this storage. + Consider what data you are collecting from sensors, and want to store for later use. + There can be a considerable amount of data from sensors like cameras, so write speeds may be a limiting factor depending on your computer configuration. diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/_category_.json new file mode 100644 index 000000000..6f92e35d9 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Jetson", + "position": 3 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/_category_.json new file mode 100644 index 000000000..ce77a05be --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Jetson Hardware", + "position": 1 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_hardware.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_hardware.mdx new file mode 100644 index 000000000..70c0ae972 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_hardware.mdx @@ -0,0 +1,13 @@ +--- +title: Jetson Hardware +sidebar_label: Jetson Hardware +sidebar_position: 1 +--- + +## Installation + +Jetson Xavier AGX, Nano, and TX2 can be installed on a variety of platforms. +Refer to the child pages for the details of the hardware installation. + +See also the instructions for +[installing the Jetson software](../jetson_software). diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/_category_.json new file mode 100644 index 000000000..c865d2584 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Jetson Nano Hardware", + "position": 3 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx new file mode 100644 index 000000000..7059a0297 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo.mdx @@ -0,0 +1,59 @@ +--- +title: Jetson Nano Hardware in Dingo +sidebar_label: Dingo +sidebar_position: 3 +--- + +## Installation + +:::note + +This page outlines the steps for installing the Nano hardware in Dingo. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Open up Dingo + +Start by removing Dingo's side panels, yellow cover plates, and removing the center channel covers. + +
+
+ +
Dingo's center channel
+
+
+ +### Step 2: Install the Nano + +Dingo includes pre-threaded mounting holes for the Jetson Nano. We recommend using 20mm standoffs to raise the board. + +
+
+ +
Dingo's computer bay
+
+
+ +Connect the Jetson's power cable to the 5V output from Dingo's MCU. + +
+
+ +
A Jetson Nano installed inside Dingo
+
+
+ +The Ethernet port on the Nano will eventually need to be connected to the Ethernet port of Dingo's MCU. If you have +a network switch installed you can connect the MCU and the Nano to the switch. Otherwise leave the MCU disconnected +for now so that the Nano's Ethernet port can be used for downloading the software from the internet. diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx new file mode 100644 index 000000000..71e0d1c0e --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky.mdx @@ -0,0 +1,85 @@ +--- +title: Jetson Nano Hardware in Husky +sidebar_label: Husky +sidebar_position: 1 +--- + +import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx"; + +## Installation + +:::note + +This page outlines the steps for installing the Nano hardware in Husky. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Remove Mini-ITX Computer + +:::note + +Skip this step if you don't have an existing computer. + +::: + + + +### Step 2: Install the Nano + +:::note + +Custom mounting brackets are available on +[GitHub](https://github.com/clearpathrobotics/jetson_setup/raw/melodic/models/JetsonNanoXavierHuskyMount.stl). + +::: + +1. Print off the mount from above using a 3D printer. A 0.2 mm layer thickness should be sufficient. + +2. Add 4X M3 stand-offs to the board mount points. A 6 mm height is recommended. + +
+
+ +
Installing the standoffs
+
+
+ +3. Use M3 screws to fasten the Nano to the mount. + +
+
+ +
Fastening the Nano to the mount
+
+
+ +4. Attach the Nano and mount to the two M3 holes opposite the platform serial connector. + +
+
+ +
Attaching the mount to Husky
+
+
+ +5. Re-attach the power and serial cables from the platform to the Jetson. +
+
+ +
Attaching the cables
+
+
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx new file mode 100644 index 000000000..c5c9219a9 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal.mdx @@ -0,0 +1,96 @@ +--- +title: Jetson Nano Hardware in Jackal +sidebar_label: Jackal +sidebar_position: 2 +--- + +import ComponentJackalComputerRemoval from "/components/jackal_remove_miniitx.mdx"; + +## Installation + +:::note + +This page outlines the steps for installing the Nano hardware in Jackal. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Remove Mini-ITX Computer + +:::note + +Skip this step if you don't have an existing computer. + +::: + + + +### Step 2: Install the Nano + +:::note + +Custom mounting brackets are available on +[GitHub](https://github.com/clearpathrobotics/jetson_setup/raw/melodic/models/JetsonNanoXavierJackalMount.stl). + +::: + +1. Print off the mount from above using a 3D printer. A 0.2 mm layer thickness should be sufficient. + +2. Add 4X M3 stand-offs to the board mount points. A 6 mm height is recommended. + +
+
+ +
Installing the standoffs
+
+
+ +3. Use M3 screws to fasten the Nano to the mount. + +
+
+ +
Fastening the Nano to the mount
+
+
+ +4. Position the Nano with the mount over the rear two PEMs on the tray and + fasten with M3 screws and washers. + +
+
+ +
Attaching the mount to Jackal
+
+
+ +5. Make a power cable that connects to the 12 V user + power (Molex connector) to a barrel connector with center positive. Refer + to the [Jackal User Manual](../../../../../outdoor_robots/jackal/user_manual_jackal) for the + pinout of the user power. + + :::warning + + Do NOT plug this into the ITX power plug on the power distribution board. + + ::: + +
+
+ +
Adding the power connector
+
+
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/_category_.json new file mode 100644 index 000000000..185ec242f --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Jetson TX2 Hardware", + "position": 3 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx new file mode 100644 index 000000000..8401141a0 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky.mdx @@ -0,0 +1,67 @@ +--- +title: Jetson TX2 Hardware in Husky +sidebar_label: Husky +sidebar_position: 1 +--- + +import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx"; + +## Installation + +:::note + +This page outlines the steps for installing the TX2 hardware in Husky. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Remove Mini-ITX Computer + +:::note + +Skip this step if you don't have an existing computer. + +::: + + + +### Step 2: Install the TX2 + +:::note + +Custom mounting brackets are available +[on Github](https://github.com/clearpathrobotics/jetson_setup/raw/noetic/models/JetsonTX2HuskyMount.stl). + +::: + +1. Download and 3D print the mounts. A 0.2 mm layer thickness should be sufficient. + +2. Using 4X M3 bolts, attach the plates inside the Husky platform. On the plates, add 4 M3 stand-offs + to the board mount points. A 6 mm height is recommended. + +
+
+ +
Installing the mounting plates
+
+
+ +3. Once the mounts are installed, attach the TX2 onto the mounts using M3 bolts. + +4. Take the power cable that powered the ITX computer and plug it into the TX2. Then, attach the serial + communication cable to the USB port on the TX2. If you have multiple USB peripherals on the robot, + you may need to use a USB hub. + +
+
+ +
Installing the cables
+
+
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx new file mode 100644 index 000000000..669310772 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal.mdx @@ -0,0 +1,78 @@ +--- +title: Jetson TX2 Hardware in Jackal +sidebar_label: Jackal +sidebar_position: 2 +--- + +import ComponentJackalComputerRemoval from "/components/jackal_remove_miniitx.mdx"; + +## Installation + +:::note + +This page outlines the steps for installing the TX2 hardware in Jackal. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Remove Mini-ITX Computer + +:::note + +Skip this step if you don't have an existing computer. + +::: + + + +### Step 2: Install the TX2 + +1. Install the Jetson TX2 using M3 screws or the screws removed from the computer. The holes + will only line up in one orientation. +2. Plug a USB mini cable from the Jetson to the Jackal MCU board. This is beside where the USB + header was removed if you had a computer. We recommend using a USB hub to increase the number + of connected devices. + +3. Plug the power switch cable into the power switch header (J6). + +4. If you wish to use the antenna cables attached to the Jackal, remove the U.FL connectors from + the Jetson module and connect the antenna cables. + + :::caution + + Take your time with this step as the UF.L connectors are fragile. If you wish not to disconnect the UF.L + cables you can replace the antenna mounts on the Jackal with SMA extensions. + + ::: + +
+
+ +
UF.L connectors
+
+
+ +5. Make a power cable that connects to the 12 V user + power (Molex connector) to a barrel connector with center positive. Refer + to the [Jackal User Manual](../../../../../outdoor_robots/jackal/user_manual_jackal) for the + pinout of the user power. + + :::warning + + Do NOT plug this into the ITX power plug on the power distribution board. + + ::: + +
+
+ +
12 V user power
+
+
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/_category_.json new file mode 100644 index 000000000..3a01a438d --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Jetson Xavier AGX Hardware", + "position": 4 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx new file mode 100644 index 000000000..a381e3650 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo.mdx @@ -0,0 +1,58 @@ +--- +title: Jetson Xavier AGX Hardware in Dingo +sidebar_label: Dingo +sidebar_position: 3 +--- + +## Installation + +:::note + +This page outlines the steps for installing the Xavier AGX hardware in Dingo. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Open up Dingo + +Start by removing Dingo's side panels, yellow cover plates, and removing the center channel covers. + +
+
+ +
Dingo's center channel
+
+
+ +### Step 2: Install the Xavier + +Dingo includes pre-threaded mounting holes for the Jetson Xavier. We recommend using 20 mm standoffs to raise the board. + +
+
+ +
Dingo's computer bay
+
+
+ +Connect the Jetson's power cable to the 12 V output from Dingo's MCU. + +
+
+ +
+
+ +The ethernet port on the Jetson will eventually need to be connected to the ethernet port of Dingo's MCU. If you have +a network switch installed you can connect the MCU and the Jetson to the switch. Otherwise leave the MCU disconnected +for now so that the Jetson's ethernet port can be used for downloading the software from the internet. diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx new file mode 100644 index 000000000..1de0cb3f5 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky.mdx @@ -0,0 +1,87 @@ +--- +title: Jetson Xavier AGX Hardware in Husky +sidebar_label: Husky +sidebar_position: 1 +--- + +import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx"; + +## Installation + +:::note + +This page outlines the steps for installing the Xavier AGX hardware in Husky. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Remove Mini-ITX Computer + +:::note + +Skip this step if you don't have an existing computer. + +::: + + + +### Step 2: Install the Xavier AGX + +Custom mounting brackets are available on +[Github](https://github.com/clearpathrobotics/jetson_setup/raw/melodic/models/JetsonNanoXavierHuskyMount.stl). + +1. Print this mount off using a 3D printer. A 0.2 mm layer thickness should be sufficient. + +
+
+ +
Removing the support feet
+
+
+ +2. Use an allen wrench to remove the support feet from the bottom of the Xavier board by removing the + M3 bolts. Place the feet on the 3D printed mount. + +
+
+ +
Removing the support feet
+
+
+ +3. Attach the Xavier to the mount using four M3 x 40 screws through the bottom of the mount in the holes for Xavier. + +
+
+ + +
Attaching Xavier to the mount
+
+
+ +4. Attach the Xavier and mount to the two M3 holes opposite the platform serial connector. + +5. Re-attach the power and serial cables from the platform to the Xavier. + +
+
+ +
Attaching the cables
+
+
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx new file mode 100644 index 000000000..517e1e41a --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal.mdx @@ -0,0 +1,86 @@ +--- +title: Jetson Xavier AGX Hardware in Jackal +sidebar_label: Jackal +sidebar_position: 2 +--- + +import ComponentHuskyComputerRemoval from "/components/husky_remove_miniitx.mdx"; + +## Installation + +:::note + +This page outlines the steps for installing the Xavier AGX hardware in Husky. See also +the instructions for +[installing the Jetson software](../../jetson_software). + +::: + +### Step 1: Remove Mini-ITX Computer + +:::note + +Skip this step if you don't have an existing computer. + +::: + + + +### Step 2: Install the Xavier AGX + +Custom mounting brackets are available on +[Github](https://github.com/clearpathrobotics/jetson_setup/raw/melodic/models/JetsonNanoXavierJackalMount.stl). + +1. Print this mount off using a 3D printer. A 0.2 mm layer thickness should be sufficient. + +2. Use an allen wrench to remove the support feet from the bottom of the Xavier board by removing the M3 bolts. + Place the feet on the 3D printed mount. + +3. Attach the Xavier to the mount using four M3x40 screws through the bottom of the mount in the holes for Xavier. + +
+
+ + +
Attaching Xavier AGX to the mount
+
+
+ +4. Position the mount with the Xavier over the rear two PEMs on the tray and fasten with M3x6 screws and washers. + +
+
+ +
Fasten the mount in Jackal
+
+
+ +5. Make a power cable that connects to the 12V user + power (Molex connector) to a barrel connector with center positive. Refer + to the [Jackal User Manual](../../../../../outdoor_robots/jackal/user_manual_jackal) for the + pinout of the user power. + + :::warning + + Do NOT plug this into the ITX power plug on the power distribution board. + + ::: + +
+
+ +
12V user power
+
+
diff --git a/docs/computers/jetson/jetson_software.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_software.mdx similarity index 92% rename from docs/computers/jetson/jetson_software.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_software.mdx index 1ece25084..7b70cdf8b 100644 --- a/docs/computers/jetson/jetson_software.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/jetson/jetson_software.mdx @@ -4,7 +4,7 @@ sidebar_label: Jetson Software sidebar_position: 3 --- -import ComponentPs4ControllerPairing from "/components/ps4_controller_pairing.mdx"; +import ComponentPs4ControllerPairing from "/docs_versioned_docs/version-ros1noetic/components/_ps4_controller_pairing.mdx"; ## Software Installation @@ -14,16 +14,16 @@ This page outlines the steps for installing the Jetson software for a Husky, Jac the instructions for installing the Jetson hardware. - Xavier AGX - - [Husky](/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky) - - [Jackal](/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal) - - [Dingo](/docs/computers/jetson/jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo) + - [Husky](./jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_husky) + - [Jackal](./jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_jackal) + - [Dingo](./jetson_hardware/jetson_xavier_agx_hardware/jetson_xavier_agx_hardware_dingo) - Nano - - [Husky](/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky) - - [Jackal](/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal) - - [Dingo](/docs/computers/jetson/jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo) + - [Husky](./jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_husky) + - [Jackal](./jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_jackal) + - [Dingo](./jetson_hardware/jetson_nano_hardware/jetson_nano_hardware_dingo) - TX2 - - [Husky](/docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky) - - [Jackal](/docs/computers/jetson/jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal) + - [Husky](./jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_husky) + - [Jackal](./jetson_hardware/jetson_tx2_hardware/jetson_tx2_hardware_jackal) ::: diff --git a/docs/computers/mini_itx.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/mini_itx.mdx similarity index 91% rename from docs/computers/mini_itx.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/computers/mini_itx.mdx index a28454af3..f6c03b1f5 100644 --- a/docs/computers/mini_itx.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/computers/mini_itx.mdx @@ -10,8 +10,7 @@ Mini ITX computers are the default computer option for many Clearpath robots. To install and configure software on your Mini ITX computer, refer to the tutorials on the individual robot pages, such as the -[Husky ROS1 tutorial](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros1#installing-and-configuring-robot-software) or the -[Husky ROS2 tutorial](/docs/robots/outdoor_robots/husky/tutorials_husky/tutorials_husky_ros2#installing-and-configuring-robot-software). +[Husky ROS 1 tutorial](../../outdoor_robots/husky/tutorials_husky#installing-and-configuring-robot-software). ::: diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/_category_.json new file mode 100644 index 000000000..28c62929d --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Manipulators", + "position": 4 +} diff --git a/docs/manipulators/flir_ptu_e46.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/flir_ptu_e46.mdx similarity index 93% rename from docs/manipulators/flir_ptu_e46.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/flir_ptu_e46.mdx index 7824b06e0..7bc4400d2 100644 --- a/docs/manipulators/flir_ptu_e46.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/flir_ptu_e46.mdx @@ -3,7 +3,7 @@ title: FLIR PTU E46 sidebar_position: 2 --- -import SoftwareBringup from "/components/software_sensor_iso_not_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_not_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/manipulators/kinova_gen3_lite.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/kinova_gen3_lite.mdx similarity index 96% rename from docs/manipulators/kinova_gen3_lite.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/kinova_gen3_lite.mdx index ed922ff6a..89c82b29a 100644 --- a/docs/manipulators/kinova_gen3_lite.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/manipulators/kinova_gen3_lite.mdx @@ -19,7 +19,7 @@ import TabItem from "@theme/TabItem"; | Description | CPR Item | | :------------------------- | :------------------------------------------------------: | | Kinova Gen3 lite Bundle | [022586](/assets/pdf/clearpath_robotics_015822-TDS1.pdf) | -| Kinova Gen3 lite, PACS kit | 027219 | +| Kinova Gen3 lite, PACS™ kit | 027219 | --- @@ -57,7 +57,7 @@ import TabItem from "@theme/TabItem"; ### Parts List -The PACS kit for this sensor includes: +The PACS™ kit for this sensor includes: | ID | Description | CPR Item | Quantity | | :-: | :-------------------------------------------------- | :------------------------------------------------------: | :------: | @@ -71,7 +71,7 @@ The PACS kit for this sensor includes: 1. Remove the Kinova arm from it's packaging. 2. There is a _Quick Connect Mounting Knob_ on the bottom of the arm. - You will need to remove this to mount the arm to the PACS bracket. + You will need to remove this to mount the arm to the PACS™ bracket. Hold the _Mounting Knob's_ square body using an adjustable wrench. Then use a hex key to turn the _Mounting Knob's_ screw counerclockwise. Then remove the _Mounting Knob_ from the arm. @@ -87,7 +87,7 @@ The PACS kit for this sensor includes: ### Installing packages - + + + + +
+ + +
airlab's Boxer with Franka manipulator
+
+
+
+ +--- + +These pages outline the hardware and software steps required to get manipulators installed on your Clearpath robot. +This documentation should be considered a quick reference, rather than a complete technical data package from the manipulator's Original Equipment Manufacturer. + +Also note that we have only listed the documentation of our most commonly used manipulators. + +We suggest you: + +1. Review our documentation of the manipulators related to your robot integration. +2. Review the related Further Reading section. +3. If you are planning to purchase a manipulator, consider visiting our [Component Store](https://store.clearpathrobotics.com/). +4. If you want Clearpath Robotics to integrate sensors on your robot, contact our Sales team at sales@clearpathrobotics.com, whether you want to use a new Clearpath Robotics platform, or reuse your existing vehicle. +5. Contact our Support team at support@clearpathrobotics.com if you have any questions. diff --git a/docs/tools/pacs.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/pacs.mdx similarity index 67% rename from docs/tools/pacs.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/pacs.mdx index 5187ffa74..1db08b1c5 100644 --- a/docs/tools/pacs.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/pacs.mdx @@ -1,6 +1,6 @@ --- -title: PACS -sidebar_label: PACS +title: PACS™ +sidebar_label: PACS™ sidebar_position: 5 --- @@ -20,11 +20,11 @@ import Admonition from "@theme/Admonition"; ## Overview -PACS is a Clearpath Robotics standard for adding components to a robot. +The Platform Attachment Configuration System (PACS™) is a Clearpath Robotics standard for adding components to a robot. Our robots have mounting plates with a 80 mm X 80 mm grid of M5×0.8 threaded holes. This allows us to add sensors and attachments using adapter plates. -The _Parts Lists_ in our [Sensors pages](/docs/sensors) include these 80 mm X 80 mm brackets. -Some example brackets are also detailed in the [Common PACS Items section](#pacs_common_pacs_items_for_all_robots) below. +The _Parts Lists_ in our [Sensors pages](./sensors) include these 80 mm X 80 mm brackets. +Some example brackets are also detailed in the [Common PACS™ Items section](#pacs_common_pacs_items_for_all_robots) below.
@@ -32,7 +32,7 @@ Some example brackets are also detailed in the [Common PACS Items section](#pacs src="/img/robot_images/husky_images/robot_husky_31.png" width="600" /> -
A Husky configured with many sensors and accessories using PACS brackets.
+
A Husky configured with many sensors and accessories using PACS™ brackets.
@@ -43,7 +43,7 @@ Some example brackets are also detailed in the [Common PACS Items section](#pacs width="600" />
- A Husky top plate, with PACS hardpoint A01 in the front-left of the robot, and G08 in the back-right + A Husky top plate, with PACS™ hardpoint A01 in the front-left of the robot, and G08 in the back-right
@@ -51,12 +51,12 @@ Some example brackets are also detailed in the [Common PACS Items section](#pacs The number of rows and columns is dependent on the robot platform. Refer to the integration pages for our robots for more details: -- [Dingo](/docs/robots/indoor_robots/dingo/integration_dingo) -- [Husky](/docs/robots/outdoor_robots/husky/integration_husky) -- [Jackal](/docs/robots/outdoor_robots/jackal/integration_jackal) -- [Warthog](/docs/robots/outdoor_robots/warthog/integration_warthog) +- [Dingo](../indoor_robots/dingo/integration_dingo) +- [Husky](../outdoor_robots/husky/integration_husky) +- [Jackal](../outdoor_robots/jackal/integration_jackal) +- [Warthog](../outdoor_robots/warthog/integration_warthog) -## Common PACS Items, For All Robots {#pacs_common_pacs_items_for_all_robots} +## Common PACS™ Items, For All Robots {#pacs_common_pacs_items_for_all_robots} | Description | CPR Item | | :------------------------------------------------------------- | :-----------------------------------------------------: | @@ -69,64 +69,64 @@ Refer to the integration pages for our robots for more details: | Plate—80 X 80, Attachment Interface, Large | [027110](/assets/pdf/clearpath_robotics_027110.pdf) | | Plate—80 X 80, Attachment Interface, Manipulator (UR3 and UR5) | [027269](/assets/pdf/clearpath_robotics_027269.pdf) | | Plate—80 X 80, Attachment Interface | [028866](/assets/pdf/clearpath_robotics_028866.pdf) | -| Screw, Round Head, M5×0.8 | [Many](/docs/components/fasteners/screw_round_head) | +| Screw, Round Head, M5×0.8 | [Many](../common/components/fasteners/screw_round_head) | ## Sensor and Attachment Kits | Category | Description | CPR Item | Sales Kit | Installation Kit, With Fasteners | Environment Variables in Clearpath OS? | | :---------------- | :------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------: | :----------------------------: | :------------------------------: | :------------------------------------: | -| **Accessories** | [DIN Rail](/docs/accessories/din_rail) | - | 027882 | 027881 | No | -| **Camera** | [Axis F1035-E](/docs/sensors/cameras/axis_f1035_e) | 020068 | 027105 | 027212 | No | -| | [Axis F34](/docs/sensors/cameras/axis_f1035_e) | 020442 | 027634 | 027633 | No | -| | [Axis M5525-E](/docs/sensors/cameras/axis_m5525_e) | 006758 | 027106 | 027225 | No | -| | [FLIR Blackfly S](/docs/sensors/cameras/flir_blackfly_s) | many | 027118 | 027218 | Yes | -| | [FLIR Ladybug5+](/docs/sensors/cameras/flir_ladybug5p) | 017245 | 028894 | 028893 | No | -| | [Intel RealSense D435](/docs/sensors/cameras/realsense_d435) | 024150 | 026869 | 027208 | Yes | -| | [Occam Omni 60 Colour](/docs/sensors/cameras/occam_omni_60) | 019645 | 027102 | 027211 | No | -| | [Stereolabs ZED 2](/docs/sensors/cameras/stereolabs_zed_2) | 023611 | 028960 | 028959 | No | -| | [Stereolabs ZED 2i](/docs/sensors/cameras/stereolabs_zed_2) | 025844 | 026872 | 027210 | No | +| **Accessories** | [DIN Rail](./add-ons/din_rail) | - | 027882 | 027881 | No | +| **Camera** | [Axis F1035-E](./sensors/cameras/axis_f1035_e) | 020068 | 027105 | 027212 | No | +| | [Axis F34](./sensors/cameras/axis_f1035_e) | 020442 | 027634 | 027633 | No | +| | [Axis M5525-E](./sensors/cameras/axis_m5525_e) | 006758 | 027106 | 027225 | No | +| | [FLIR Blackfly S](./sensors/cameras/flir_blackfly_s) | many | 027118 | 027218 | Yes | +| | [FLIR Ladybug5+](./sensors/cameras/flir_ladybug5p) | 017245 | 028894 | 028893 | No | +| | [Intel RealSense D435](./sensors/cameras/realsense_d435) | 024150 | 026869 | 027208 | Yes | +| | [Occam Omni 60 Colour](./sensors/cameras/occam_omni_60) | 019645 | 027102 | 027211 | No | +| | [Stereolabs ZED 2](./sensors/cameras/stereolabs_zed_2) | 023611 | 028960 | 028959 | No | +| | [Stereolabs ZED 2i](./sensors/cameras/stereolabs_zed_2) | 025844 | 026872 | 027210 | No | | **Computer** | Mini-ITX Indoor | - | 027668 | 027667 | - | -| **GPS** | [Garmin GPS 18x](/docs/sensors/gps/garmin_gps_18x) | 001893 | 028876 | 028875 | No | -| | [Swift Navigation Duro](/docs/sensors/gps/swift_navigation_duro) | 015822 | 027107 | 027213 | No | -| | [Swift Navigation Duro Inertial](/docs/sensors/gps/swift_navigation_duro) | 018151 | 027108 | 027214 | No | -| **IMU** | [Microstrain 3DM-GX5-10](/docs/sensors/imu/microstrain_3dm_gx5) | 017839 | 028963 | 028962 | Yes | -| | [Microstrain 3DM-GX5-15](/docs/sensors/imu/microstrain_3dm_gx5) | 017772 | 027114 | 027215 | Yes | -| | [Microstrain 3DM-GX5-25](/docs/sensors/imu/microstrain_3dm_gx5) | 014603 | 027117 | 027217 | Yes | -| | [Microstrain 3DM-GX5-35](/docs/sensors/imu/microstrain_3dm_gx5) | 028528 | 028964 | 028957 | Yes | -| | [Microstrain 3DM-GX5-45](/docs/sensors/imu/microstrain_3dm_gx5) | 017391 | 028966 | 028965 | Yes | -| | [Redshift Labs UM7](/docs/sensors/imu/redshift_labs_um7) | 011914 | 028881 | 028880 | No | -| **Lidar 2D** | [Hokuyo UST10-LX](/docs/sensors/lidar_2d/hokuyo_ust10_lx) | 011759 | 027207 | 026611 | Yes | -| | [Hokuyo UST10-LX Vertical](/docs/sensors/lidar_2d/hokuyo_ust10_lx) | 011759 | 026966 | 027224 | Yes | -| | [Hokuyo UST20-LX](/docs/sensors/lidar_2d/hokuyo_ust20_lx) | 016359 | 029013 | 029012 | Yes | -| | [Hokuyo UST30-LX](/docs/sensors/lidar_2d/hokuyo_ust30_lx) | 027584 | 029015 | 029014 | Yes | -| | [SICK LMS111](/docs/sensors/lidar_2d/sick_lms111) | 006387 | 027657 | 027656 | Yes | -| **Lidar 3D** | [Velodyne Puck Lite](/docs/sensors/lidar_3d/velodyne_puck_lite) | 016312
023729 | 029027 | 029026 | Yes | -| | [Velodyne Puck](/docs/sensors/lidar_3d/velodyne_puck) | 011703
020972 | 026859 | 027206 | Yes | -| | [Velodyne Puck Vertical](/docs/sensors/lidar_3d/velodyne_puck) | 011703
020972 | 026965 | 027222 | Yes | -| | [Velodyne Ultra Puck](/docs/sensors/lidar_3d/velodyne_ultra_puck) | 016901
029035 | 029037 | 029036 | Yes | -| | [Ouster, OS0](/docs/sensors/lidar_3d/ouster) | 028738
028740 | 028660
028661
028662 | 028850
028851
028852 | No | -| | [Ouster, OS1](/docs/sensors/lidar_3d/ouster) | 028848
028742
028745 | 028663
028664
028665 | 028853
028854
028855 | No | -| | [Ouster, OS2](/docs/sensors/lidar_3d/ouster) | 028849
028747
028749 | 028666
028667
028668 | 028856
028857
028858 | No | -| **Lights** | [Stack Light, Controls Base](/docs/accessories/stack_light) | 020710
020711
020715
020716
020717
020718
020719
020720 | 027111 | 027220 | No | -| **Manipulator** | [FLIR PTU E46](/docs/manipulators/flir_ptu_e46) | 018807
027246 | 028873 | 028872 | No | -| | [Kinova Gen 3 Lite](/docs/manipulators/kinova_gen3_lite) | 022586 | 026913 | 027219 | No | +| **GPS** | [Garmin GPS 18x](./sensors/gps/garmin_gps_18x) | 001893 | 028876 | 028875 | No | +| | [Swift Navigation Duro](./sensors/gps/swift_navigation_duro) | 015822 | 027107 | 027213 | No | +| | [Swift Navigation Duro Inertial](./sensors/gps/swift_navigation_duro) | 018151 | 027108 | 027214 | No | +| **IMU** | [Microstrain 3DM-GX5-10](./sensors/imu/microstrain_3dm_gx5) | 017839 | 028963 | 028962 | Yes | +| | [Microstrain 3DM-GX5-15](./sensors/imu/microstrain_3dm_gx5) | 017772 | 027114 | 027215 | Yes | +| | [Microstrain 3DM-GX5-25](./sensors/imu/microstrain_3dm_gx5) | 014603 | 027117 | 027217 | Yes | +| | [Microstrain 3DM-GX5-35](./sensors/imu/microstrain_3dm_gx5) | 028528 | 028964 | 028957 | Yes | +| | [Microstrain 3DM-GX5-45](./sensors/imu/microstrain_3dm_gx5) | 017391 | 028966 | 028965 | Yes | +| | [Redshift Labs UM7](./sensors/imu/redshift_labs_um7) | 011914 | 028881 | 028880 | No | +| **Lidar 2D** | [Hokuyo UST10-LX](./sensors/lidar_2d/hokuyo_ust10_lx) | 011759 | 027207 | 026611 | Yes | +| | [Hokuyo UST10-LX Vertical](./sensors/lidar_2d/hokuyo_ust10_lx) | 011759 | 026966 | 027224 | Yes | +| | [Hokuyo UST20-LX](./sensors/lidar_2d/hokuyo_ust20_lx) | 016359 | 029013 | 029012 | Yes | +| | [Hokuyo UST30-LX](./sensors/lidar_2d/hokuyo_ust30_lx) | 027584 | 029015 | 029014 | Yes | +| | [SICK LMS111](./sensors/lidar_2d/sick_lms111) | 006387 | 027657 | 027656 | Yes | +| **Lidar 3D** | [Velodyne Puck Lite](./sensors/lidar_3d/velodyne_puck_lite) | 016312
023729 | 029027 | 029026 | Yes | +| | [Velodyne Puck](./sensors/lidar_3d/velodyne_puck) | 011703
020972 | 026859 | 027206 | Yes | +| | [Velodyne Puck Vertical](./sensors/lidar_3d/velodyne_puck) | 011703
020972 | 026965 | 027222 | Yes | +| | [Velodyne Ultra Puck](./sensors/lidar_3d/velodyne_ultra_puck) | 016901
029035 | 029037 | 029036 | Yes | +| | [Ouster, OS0](./sensors/lidar_3d/ouster) | 028738
028740 | 028660
028661
028662 | 028850
028851
028852 | No | +| | [Ouster, OS1](./sensors/lidar_3d/ouster) | 028848
028742
028745 | 028663
028664
028665 | 028853
028854
028855 | No | +| | [Ouster, OS2](./sensors/lidar_3d/ouster) | 028849
028747
028749 | 028666
028667
028668 | 028856
028857
028858 | No | +| **Lights** | [Stack Light, Controls Base](./add-ons/stack_light) | 020710
020711
020715
020716
020717
020718
020719
020720 | 027111 | 027220 | No | +| **Manipulator** | [FLIR PTU E46](./manipulators/flir_ptu_e46) | 018807
027246 | 028873 | 028872 | No | +| | [Kinova Gen 3 Lite](./manipulators/kinova_gen3_lite) | 022586 | 026913 | 027219 | No | | | Universal Robots UR5e Arm | 027264 | 027272 | 027271 | No | | | Universal Robots UR5e Controls Cabinet | - | 027291
027293 | 027290
027292 | No | -| **Motion-Stop** | [Kar-Tech](/docs/accessories/wireless_stop_system) | 014663 | 027298 | 027297 | No | -| | [FORT Robotics Joystick](/docs/accessories/wireless_stop_system) | 025727 | 027112 | 027216 | No | -| **Network** | [Network Access Point, Microhard px2-ENC](/docs/accessories/network_access_point) | 015329 | 029104 | - | - | -| | [Network Access Point, Microhard BulletPlusAC](/docs/accessories/network_access_point) | 027795 | 029105 | - | - | -| | [Network Switch, 5 Port](/docs/accessories/network_switch) | 021044 | 027639 | 027638 | - | -| | [Network Switch, 8 Port](/docs/accessories/network_switch) | 025333 | 027641 | 027640 | - | -| | [Network Switch, 16 Port](/docs/accessories/network_switch) | 029098 | - | - | - | -| | [USB Hub, 7 Port](/docs/accessories/usb_hub) | 025440 | 027643 | 027642 | - | -| **OutdoorNav HW** | [OutdoorNav Starter Kit](/docs/software/navigation_packages/hardware_kits/outdoornav_starter_kit) | - | 028356 | - | - | -| **Power Supply** | [Power Supply, SB-15](/docs/accessories/power_supplies) | - | 028902 | 028901 | - | -| | [Power Supply, SB-25](/docs/accessories/power_supplies) | - | 028904 | 028903 | - | -| | [Power Supply, TEP 150](/docs/accessories/power_supplies) | - | 028942 | 028941 | - | -| **Relay** | [Relay, USB Controlled, 2 Channel](/docs/accessories/relay_board) | 019464 | 029099 | - | - | -| | [Relay, USB Controlled, 4 Channel](/docs/accessories/relay_board) | 019465 | 029100 | - | - | -| | [Relay, USB Controlled, 8 Channel](/docs/accessories/relay_board) | 019466 | 029101 | - | - | +| **Motion-Stop** | [Kar-Tech](./add-ons/wireless_stop_system) | 014663 | 027298 | 027297 | No | +| | [FORT Robotics Joystick](./add-ons/wireless_stop_system) | 025727 | 027112 | 027216 | No | +| **Network** | [Network Access Point, Microhard px2-ENC](./add-ons/network_access_point) | 015329 | 029104 | - | - | +| | [Network Access Point, Microhard BulletPlusAC](./add-ons/network_access_point) | 027795 | 029105 | - | - | +| | [Network Switch, 5 Port](./add-ons/network_switch) | 021044 | 027639 | 027638 | - | +| | [Network Switch, 8 Port](./add-ons/network_switch) | 025333 | 027641 | 027640 | - | +| | [Network Switch, 16 Port](./add-ons/network_switch) | 029098 | - | - | - | +| | [USB Hub, 7 Port](./add-ons/usb_hub) | 025440 | 027643 | 027642 | - | +| **OutdoorNav HW** | [OutdoorNav Starter Kit](../../robots/accessories/add-ons/outdoornav_starter_kit) | - | 028356 | - | - | +| **Power Supply** | [Power Supply, SB-15](./add-ons/power_supplies) | - | 028902 | 028901 | - | +| | [Power Supply, SB-25](./add-ons/power_supplies) | - | 028904 | 028903 | - | +| | [Power Supply, TEP 150](./add-ons/power_supplies) | - | 028942 | 028941 | - | +| **Relay** | [Relay, USB Controlled, 2 Channel](./add-ons/relay_board) | 019464 | 029099 | - | - | +| | [Relay, USB Controlled, 4 Channel](./add-ons/relay_board) | 019465 | 029100 | - | - | +| | [Relay, USB Controlled, 8 Channel](./add-ons/relay_board) | 019466 | 029101 | - | - |
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/_category_.json new file mode 100644 index 000000000..e6749e718 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Sensors", + "position": 3 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/_category_.json new file mode 100644 index 000000000..7d588f228 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Cameras", + "position": 2 +} diff --git a/docs/sensors/cameras/axis_f1035_e.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/axis_f1035_e.mdx similarity index 95% rename from docs/sensors/cameras/axis_f1035_e.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/axis_f1035_e.mdx index 20ff611ab..3152d0785 100644 --- a/docs/sensors/cameras/axis_f1035_e.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/axis_f1035_e.mdx @@ -3,7 +3,7 @@ title: Axis F1035-E sidebar_position: 1 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/cameras/axis_m5525_e.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/axis_m5525_e.mdx similarity index 94% rename from docs/sensors/cameras/axis_m5525_e.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/axis_m5525_e.mdx index f6f181221..94068eea2 100644 --- a/docs/sensors/cameras/axis_m5525_e.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/axis_m5525_e.mdx @@ -4,7 +4,7 @@ sidebar_position: 2 --- import Support from "/components/support.mdx"; -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx";
diff --git a/docs/sensors/cameras/flir_ladybug5p.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/flir_ladybug5p.mdx similarity index 94% rename from docs/sensors/cameras/flir_ladybug5p.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/flir_ladybug5p.mdx index 2448cffb3..bae18d2a0 100644 --- a/docs/sensors/cameras/flir_ladybug5p.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/flir_ladybug5p.mdx @@ -3,7 +3,7 @@ title: FLIR Ladybug5+ sidebar_position: 4 --- -import SoftwareBringup from "/components/software_sensor_iso_not_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_not_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/cameras/occam_omni_60.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/occam_omni_60.mdx similarity index 93% rename from docs/sensors/cameras/occam_omni_60.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/occam_omni_60.mdx index 26709c0a2..730513059 100644 --- a/docs/sensors/cameras/occam_omni_60.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/occam_omni_60.mdx @@ -3,7 +3,7 @@ title: Occam Omni 60 sidebar_position: 5 --- -import SoftwareBringup from "/components/software_sensor_iso_not_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_not_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/cameras/realsense_d435.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/realsense_d435.mdx similarity index 94% rename from docs/sensors/cameras/realsense_d435.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/realsense_d435.mdx index 36a5533f1..adf004201 100644 --- a/docs/sensors/cameras/realsense_d435.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/realsense_d435.mdx @@ -3,7 +3,7 @@ title: RealSense D435 sidebar_position: 6 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/cameras/stereolabs_zed_2.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx similarity index 95% rename from docs/sensors/cameras/stereolabs_zed_2.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx index 899959b4a..c20da1c02 100644 --- a/docs/sensors/cameras/stereolabs_zed_2.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/cameras/stereolabs_zed_2.mdx @@ -3,7 +3,7 @@ title: Stereolabs Zed 2 sidebar_position: 7 --- -import SoftwareBringup from "/components/software_sensor_iso_not_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_not_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/_category_.json new file mode 100644 index 000000000..947de28a6 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "GPS", + "position": 3 +} diff --git a/docs/sensors/gps/garmin_gps_18x.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/garmin_gps_18x.mdx similarity index 92% rename from docs/sensors/gps/garmin_gps_18x.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/garmin_gps_18x.mdx index fd5495803..67239c082 100644 --- a/docs/sensors/gps/garmin_gps_18x.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/garmin_gps_18x.mdx @@ -3,7 +3,7 @@ title: Garmin GPS 18x sidebar_position: 1 --- -import SoftwareBringup from "/components/software_sensor_iso_not_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_not_supported.mdx"; import Support from "/components/support.mdx";
@@ -33,7 +33,7 @@ import Support from "/components/support.mdx"; | Data | TIA-232-F ( RS-232 )
Default setting is 19200 baud | | View, Vertical | Unknown | | Position Accuracy | 15 m | -| Position Accuracy RTK (requires a [Base Station](docs/accessories/base_station.mdx) or a positioning-service) | Unknown | +| Position Accuracy RTK (requires a [Base Station](../../add-ons/base_station.mdx) or a positioning-service) | Unknown | | Ingress Protection, Solids | Unknown ( assume 6 ) | | Ingress Protection, Liquids | 7 | | Operating Temperature, Min | -30 °C | diff --git a/docs/sensors/gps/swift_navigation_duro.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/swift_navigation_duro.mdx similarity index 92% rename from docs/sensors/gps/swift_navigation_duro.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/swift_navigation_duro.mdx index 7f7d84b04..c54a6b8ed 100644 --- a/docs/sensors/gps/swift_navigation_duro.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/gps/swift_navigation_duro.mdx @@ -3,7 +3,7 @@ title: Swift Navigation Duro sidebar_position: 2 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
@@ -34,7 +34,7 @@ import Support from "/components/support.mdx"; | Data | Ethernet, 100 Mbit/s | | View, Vertical | ±60° from vertical | | Position Accuracy | 2.5 m | -| Position Accuracy RTK (requires a [Base Station](docs/accessories/base_station.mdx) or a positioning-service) | 0.01 m | +| Position Accuracy RTK (requires a [Base Station](../../add-ons/base_station.mdx) or a positioning-service) | 0.01 m | | Ingress Protection, Solids | 6 | | Ingress Protection, Liquids | 7 | | Operating Temperature, Min | -40 °C | diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/_category_.json new file mode 100644 index 000000000..087a345d3 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "IMU", + "position": 4 +} diff --git a/docs/sensors/imu/microstrain_3dm_gx5.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/microstrain_3dm_gx5.mdx similarity index 96% rename from docs/sensors/imu/microstrain_3dm_gx5.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/microstrain_3dm_gx5.mdx index c7af81072..82748ecde 100644 --- a/docs/sensors/imu/microstrain_3dm_gx5.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/microstrain_3dm_gx5.mdx @@ -3,7 +3,7 @@ title: MicroStrain 3DM-GX5 sidebar_position: 1 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/imu/redshift_labs_um7.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/redshift_labs_um7.mdx similarity index 94% rename from docs/sensors/imu/redshift_labs_um7.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/redshift_labs_um7.mdx index 28c5baa94..ffdc322eb 100644 --- a/docs/sensors/imu/redshift_labs_um7.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/imu/redshift_labs_um7.mdx @@ -3,7 +3,7 @@ title: Redshift Labs UM7 sidebar_position: 2 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/_category_.json new file mode 100644 index 000000000..83f246104 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "2D Lidar", + "position": 5 +} diff --git a/docs/sensors/lidar_2d/hokuyo_ust10_lx.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust10_lx.mdx similarity index 95% rename from docs/sensors/lidar_2d/hokuyo_ust10_lx.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust10_lx.mdx index 2c644d825..b3c08ea65 100644 --- a/docs/sensors/lidar_2d/hokuyo_ust10_lx.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust10_lx.mdx @@ -3,7 +3,7 @@ title: Hokuyo UST10-LX sidebar_position: 1 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/lidar_2d/hokuyo_ust20_lx.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust20_lx.mdx similarity index 94% rename from docs/sensors/lidar_2d/hokuyo_ust20_lx.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust20_lx.mdx index 79bffe9ae..de302d916 100644 --- a/docs/sensors/lidar_2d/hokuyo_ust20_lx.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust20_lx.mdx @@ -3,7 +3,7 @@ title: Hokuyo UST20-LX sidebar_position: 2 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/lidar_2d/hokuyo_ust30_lx.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust30_lx.mdx similarity index 94% rename from docs/sensors/lidar_2d/hokuyo_ust30_lx.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust30_lx.mdx index dea3edc95..78db395fa 100644 --- a/docs/sensors/lidar_2d/hokuyo_ust30_lx.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/hokuyo_ust30_lx.mdx @@ -3,7 +3,7 @@ title: Hokuyo UST30-LX sidebar_position: 3 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/lidar_2d/sick_lms111.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/sick_lms111.mdx similarity index 94% rename from docs/sensors/lidar_2d/sick_lms111.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/sick_lms111.mdx index b93150517..de1add7b7 100644 --- a/docs/sensors/lidar_2d/sick_lms111.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_2d/sick_lms111.mdx @@ -3,7 +3,7 @@ title: SICK LMS-111 sidebar_position: 4 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/_category_.json new file mode 100644 index 000000000..ffc1a94b7 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "3D Lidar", + "position": 6 +} diff --git a/docs/sensors/lidar_3d/ouster.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/ouster.mdx similarity index 99% rename from docs/sensors/lidar_3d/ouster.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/ouster.mdx index be5663d99..958f5dfdc 100644 --- a/docs/sensors/lidar_3d/ouster.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/ouster.mdx @@ -3,7 +3,7 @@ title: Ouster sidebar_position: 5 --- -import SoftwareBringup from "/components/software_sensor_iso_not_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_not_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/lidar_3d/velodyne_puck hi_res.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck hi_res.mdx similarity index 95% rename from docs/sensors/lidar_3d/velodyne_puck hi_res.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck hi_res.mdx index 36b67df54..143cbe946 100644 --- a/docs/sensors/lidar_3d/velodyne_puck hi_res.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck hi_res.mdx @@ -3,7 +3,7 @@ title: Velodyne Hi-Res sidebar_position: 3 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/lidar_3d/velodyne_puck.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck.mdx similarity index 95% rename from docs/sensors/lidar_3d/velodyne_puck.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck.mdx index 2eb3d5149..f2d96e3e6 100644 --- a/docs/sensors/lidar_3d/velodyne_puck.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck.mdx @@ -3,7 +3,7 @@ title: Velodyne Puck sidebar_position: 2 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/lidar_3d/velodyne_puck_lite.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck_lite.mdx similarity index 95% rename from docs/sensors/lidar_3d/velodyne_puck_lite.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck_lite.mdx index 55b15d4dc..27f23f23b 100644 --- a/docs/sensors/lidar_3d/velodyne_puck_lite.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_puck_lite.mdx @@ -3,7 +3,7 @@ title: Velodyne Puck Lite sidebar_position: 1 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs/sensors/lidar_3d/velodyne_ultra_puck.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_ultra_puck.mdx similarity index 95% rename from docs/sensors/lidar_3d/velodyne_ultra_puck.mdx rename to docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_ultra_puck.mdx index 67e44d2c5..3a9a54f13 100644 --- a/docs/sensors/lidar_3d/velodyne_ultra_puck.mdx +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/lidar_3d/velodyne_ultra_puck.mdx @@ -3,7 +3,7 @@ title: Velodyne Ultra Puck sidebar_position: 4 --- -import SoftwareBringup from "/components/software_sensor_iso_supported.mdx"; +import SoftwareBringup from "/docs_versioned_docs/version-ros1noetic/components/_software_sensor_iso_supported.mdx"; import Support from "/components/support.mdx";
diff --git a/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/sensors.mdx b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/sensors.mdx new file mode 100644 index 000000000..a17fd26d9 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/accessories/sensors/sensors.mdx @@ -0,0 +1,32 @@ +--- +title: Sensors Overview +sidebar_label: Sensors +sidebar_position: 1 +--- + +
+
+ + +
Coimbra University's Husky for Minesweeping
+
+
+
+ +
+ +This documentation should be considered a quick reference, rather than a complete technical data package from the sensor's Original Equipment Manufacturer. +Every sensor page in our documentation has a _Further Reading_ section at the bottom, listing hyperlinks to the related ROS drivers, and OEM documentation. + +Also note that we have only listed the documentation of our most commonly used sensors. + +We suggest you: + +1. Review our documentation of the sensors related to your robot integration. +2. Review the related _Further Reading_ section. +3. If you are planning to purchase a sensor for standalone use, or for integration with a non-Clearpath system, consider visiting our Component Store, [store.clearpathrobotics.com](https://store.clearpathrobotics.com/). +4. If you want Clearpath Robotics to integrate sensors on your robot, contact our Sales team at , whether you want to use a new Clearpath Robotics platform, or reuse your existing vehicle. +5. Contact our Support team at if you have any questions. diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/common/_category_.json new file mode 100644 index 000000000..4b52dda09 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Common", + "position": 5 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/colours.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/colours.mdx new file mode 100644 index 000000000..5cd241377 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/colours.mdx @@ -0,0 +1,36 @@ +--- +title: Colours +sidebar_position: 3 +--- + +
+
+ +
+
+ +These are the materials and colours visible on the outside of our robots: + +| Material | Colour | Material Note | +| :------------------------- | :----- | :-------------------------------------------------------------------------- | +| Electroless Nickel Plating | Silver | | +| Stainless Steel | Silver | | +| Anodized Aluminum | Black | Anodic Coating, Type II Class 2 in Accordance With MIL-A-8625, Colour Black | +| Powder Coating | Yellow | Tiger Drylac 49/22550 or 38/20006, Gloss, Smooth, Colour RAL 1006 | +| Powder Coating | Black | Tiger Drylac 39/80200, Matte, Fine Texture, Colour "Black" | +| Lettering | White | Polyurethane, RAL 7074 "Telegrey 4" | +| Lettering | Black | Polyurethane, RAL 9005 "Jet Black" | +| Rubber | Black | | +| Plastic | Black | | + +
+ +:::info Customization + +Let our Sales team know if you need custom colours or graphics on your robot. +We can work with our paint, silkscreen, and vinyl suppliers to make the customizations that you require. + +::: diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/common/components/_category_.json new file mode 100644 index 000000000..32d855aed --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Components", + "position": 1 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/components.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/components.mdx new file mode 100644 index 000000000..882fd51fc --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/components.mdx @@ -0,0 +1,157 @@ +--- +title: Components Overview +sidebar_label: Components +sidebar_position: 1 +--- + +
+
+ + +
Boxer for RFID inventory scanning
+
+
+
+ +
+ +The items listed on this page are common connectors, fasteners, and jellybeans that we frequently use in our robots. +Refer to our [Sensors](../../accessories/sensors) and [Add-ons](../../accessories/add-ons) sections for larger subassemblies. + +--- + +## Connectors + +
+
+ + + +
Anderson Powerpole® 15
+
+
+ +
+
+ +
+
+ + + +
Anderson SB® 50
+
+
+ +
+
+ +
+
+ + + +
Molex Mini-Fit-Jr
+
+
+ +
+
+ +
+
+ + + +
Ring Terminal
+
+
+ +--- + +## Fasteners + +
+
+ + + +
Socket Head Cap Screw
+
+
+ +
+
+ +
+
+ + + +
Round Head Screw
+
+
+ +
+
+ +
+
+ + + +
Flat Head Screw
+
+
+ +
+
+ +
+
+ + + +
Nut
+
+
+ +--- + +## Terminal Blocks + +
+ + + +
diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/_category_.json new file mode 100644 index 000000000..dd452d3fe --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Connectors", + "position": 2 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/anderson_powerpole_15.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/anderson_powerpole_15.mdx new file mode 100644 index 000000000..58c13ccb9 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/anderson_powerpole_15.mdx @@ -0,0 +1,29 @@ +--- +title: Anderson Powerpole® 15 +sidebar_position: 1 +--- + +
+ +
+
+
+ +| Component | Colour or Size | CPR item | Manufacturer Item | +| :-------- | :------------- | :------: | :---------------------------------------------------------------------------------------------------------------------------------------------- | +| Contact | #16 - #20 AWG | 021266 | [262G2-LPBK](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/262G2-LPBK/10650421?s=N4IgTCBcDa4GxgOJgLQBkAKAhA0iAugL5A) | +| Contact | #10 - #14 AWG | 021268 | [261G3-LPBK](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/261G3-LPBK/10654525?s=N4IgTCBcDa4GwEYDiBmAtAGQAoCEDSIAugL5A) | +| Housing | Blue | 000322 | [1327G8](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G8/10650150) | +| Housing | Green | 000842 | [1327G5](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G5/10650469) | +| Housing | Orange | 006768 | [1327G17](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G17/10650605) | +| Housing | Red | 000318 | [1327](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327/10647415) | +| Housing | Grey | 006767 | [1327G18](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G18/10650084) | +| Housing | Black | 000321 | [1327G6](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G6/10650567) | +| Housing | White | | [1327G7](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G7/10650328) | +| Housing | Yellow | 001925 | [1327G16](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G16/10650529) | +| Housing | Brown | | [1327G21](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G21/10650098) | +| Housing | Pink | | [1327G22](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G22/10650119) | +| Housing | Purple | | [1327G23](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1327G23/10650248) | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/anderson_sb_50.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/anderson_sb_50.mdx new file mode 100644 index 000000000..e3d81edf6 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/anderson_sb_50.mdx @@ -0,0 +1,28 @@ +--- +title: Anderson SB® 50 +sidebar_position: 2 +--- + +
+ +
+
+
+ +| Component | Colour or Size | CPR item | Manufacturer Item | +| :-------- | :------------------------ | :------: | :---------------------------------------------------------------------------------------------------------------------------------- | +| Contact | #10 - #12 AWG, Low Force | 022562 | [5953](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/5953/10650239) | +| Contact | #10 - #12 AWG, High Force | 022563 | [5915](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/5915/10650508) | +| Contact | #8 AWG, High Force | 017281 | [5952](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/5952/10650192) | +| Contact | #6 AWG, Low Force | 022560 | [1307](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1307/10650221?s=N4IgTCBcDa5gLAZgLQEZEAYDsyByAREAXQF8g) | +| Contact | #6 AWG, High Force | 022561 | [5900](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/5900/10650403) | +| Housing | Yellow | 022554 | [992G5](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/992G5/10650072) | +| Housing | Orange | 022555 | [992G7](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/992G7/14551187) | +| Housing | Red | 016332 | [992G1](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/992G1/10650575) | +| Housing | Grey | 022556 | [992](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/992/10650131) | +| Housing | Blue | 022557 | [992G4](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/992G4/10650409) | +| Housing | Green | 022558 | [992G6](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/992G6/10650518) | +| Housing | Black | 022559 | [992G2](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/992G2/10650330) | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/molex_mini_fit_jr.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/molex_mini_fit_jr.mdx new file mode 100644 index 000000000..220d38524 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/molex_mini_fit_jr.mdx @@ -0,0 +1,63 @@ +--- +title: Molex Mini-Fit-Jr +sidebar_position: 3 +--- + +
+
+ +
Female Housing, 4 Position, 2 Rows
+
+
+
+
+ +| Component | Gender | Size | # of Positions | # of Rows | CPR item | Manufacturer Item | +| :-------- | :----- | :------------ | :------------- | :-------- | :------: | :---------------- | +| Contact | Female | #22 - #28 AWG | - | - | 022251 | 39-00-0140 | +| Contact | Female | #18 - #24 AWG | - | - | 022252 | 40-13-0852 | +| Contact | Female | #16 AWG | - | - | 022253 | 39-00-0090 | +| Contact | Male | #22 - #28 AWG | - | - | 022254 | 39-00-0433 | +| Contact | Male | #18 - #24 AWG | - | - | 022255 | 39-00-0431 | +| Contact | Male | #16 AWG | - | - | 022256 | 39-00-0096 | +| | | | | | | | +| Housing | Female | - | 2 | 1 | 022200 | 39-01-4021 | +| Housing | Female | - | 3 | 1 | 022201 | 39-01-4031 | +| Housing | Female | - | 4 | 1 | 022202 | 39-01-4041 | +| Housing | Female | - | 5 | 1 | 022203 | 39-01-4051 | +| Housing | Female | - | 6 | 1 | 022204 | 39-01-4061 | +| | | | | | | | +| Housing | Female | - | 2 | 2 | 022205 | 39-01-2025 | +| Housing | Female | - | 4 | 2 | 022206 | 39-01-2045 | +| Housing | Female | - | 6 | 2 | 022207 | 39-01-2065 | +| Housing | Female | - | 8 | 2 | 022208 | 39-01-2085 | +| Housing | Female | - | 10 | 2 | 022209 | 39-01-2105 | +| Housing | Female | - | 12 | 2 | 022210 | 39-01-2125 | +| Housing | Female | - | 14 | 2 | 022211 | 39-01-2145 | +| Housing | Female | - | 16 | 2 | 022212 | 39-01-2165 | +| Housing | Female | - | 18 | 2 | 022213 | 39-01-2185 | +| Housing | Female | - | 20 | 2 | 022214 | 39-01-2205 | +| Housing | Female | - | 22 | 2 | 022215 | 39-01-2225 | +| Housing | Female | - | 24 | 2 | 022216 | 39-01-2245 | +| | | | | | | | +| Housing | Male | - | 2 | 1 | 022217 | 46999-0658 | +| Housing | Male | - | 3 | 1 | 022218 | 39-01-4037 | +| Housing | Male | - | 4 | 1 | 022219 | 39-01-4047 | +| Housing | Male | - | 5 | 1 | 022220 | 39-01-4057 | +| Housing | Male | - | 6 | 1 | 022221 | 39-01-4067 | +| | | | | | | | +| Housing | Male | - | 2 | 2 | 022222 | 39-01-3029 | +| Housing | Male | - | 4 | 2 | 022223 | 39-01-3049 | +| Housing | Male | - | 6 | 2 | 022224 | 39-01-3069 | +| Housing | Male | - | 8 | 2 | 022225 | 39-01-3089 | +| Housing | Male | - | 10 | 2 | 022226 | 39-01-3109 | +| Housing | Male | - | 12 | 2 | 022227 | 39-01-3129 | +| Housing | Male | - | 14 | 2 | 022228 | 39-01-3149 | +| Housing | Male | - | 16 | 2 | 022229 | 39-01-3169 | +| Housing | Male | - | 18 | 2 | 022230 | 39-01-3189 | +| Housing | Male | - | 20 | 2 | 022231 | 39-01-3203 | +| Housing | Male | - | 22 | 2 | 022232 | 39-01-3229 | +| Housing | Male | - | 24 | 2 | 022233 | 39-01-3249 | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/ring_terminal.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/ring_terminal.mdx new file mode 100644 index 000000000..744caf3d9 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/connectors/ring_terminal.mdx @@ -0,0 +1,41 @@ +--- +title: Ring Terminal +sidebar_position: 4 +--- + +
+ +
+
+
+ +| Wire Size | Colour | Stud Size | (Stud Size) | CPR item | Manufacturer Item (Panduit) | +| :------------ | :----- | :-------- | :---------- | :------: | :-------------------------- | +| #18 - #22 AWG | Red | M3 | #4 | 020629 | PV18-4R | +| #18 - #22 AWG | Red | M3.5 | #6 | 020630 | PV18-6R | +| #18 - #22 AWG | Red | M4 | #8 | 020631 | PV18-8R | +| #18 - #22 AWG | Red | M5 | #10 | 020632 | PV18-10R | +| #18 - #22 AWG | Red | M6 | #1/4" | 020633 | PV18-14R | +| #18 - #22 AWG | Red | M8 | #5/16" | 020634 | PV18-56R | +| #18 - #22 AWG | Red | M10 | #3/8" | 020635 | PV18-38R | +| #18 - #22 AWG | Red | M12 | #1/2" | 020636 | PV18-12R | +| | | | | | | +| #14 - #16 AWG | Blue | M3 | #4 | 020637 | PV14-4R | +| #14 - #16 AWG | Blue | M3.5 | #6 | 020638 | PV14-6R | +| #14 - #16 AWG | Blue | M4 | #8 | 020639 | PV14-8R | +| #14 - #16 AWG | Blue | M5 | #10 | 020640 | PV14-10R | +| #14 - #16 AWG | Blue | M6 | #1/4" | 020641 | PV14-14R | +| #14 - #16 AWG | Blue | M8 | #5/16" | 020642 | PV14-56R | +| #14 - #16 AWG | Blue | M10 | #3/8" | 020643 | PV14-38R | +| #14 - #16 AWG | Blue | M12 | #1/2" | 020644 | PV14-12R | +| | | | | | | +| #10 - #12 AWG | Yellow | M3.5 | #6 | 020645 | PV10-6R | +| #10 - #12 AWG | Yellow | M4 | #8 | 020646 | PV10-8R | +| #10 - #12 AWG | Yellow | M5 | #10 | 020647 | PV10-10R | +| #10 - #12 AWG | Yellow | M6 | #1/4" | 020648 | PV10-14R | +| #10 - #12 AWG | Yellow | M8 | #5/16" | 020649 | PV10-56R | +| #10 - #12 AWG | Yellow | M10 | #3/8" | 020650 | PV10-38R | +| #10 - #12 AWG | Yellow | M12 | #1/2" | 020651 | PV10-12R | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/_category_.json new file mode 100644 index 000000000..7a603f1fa --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Fasteners", + "position": 3 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/nut.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/nut.mdx new file mode 100644 index 000000000..dd0f558c1 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/nut.mdx @@ -0,0 +1,53 @@ +--- +title: Nut +sidebar_position: 4 +--- + +
+
+ + + +
Hex Nut
+
+
+ + + +
Locking Hex Nut
+
+
+ + + +
Cage Nut
+
+
+
+
+ +| Type | Thread | CPR item | Manufacturer Item (McMaster Carr) | +| :---------- | :------- | :------: | :----------------------------------------------- | +| Hex | M3×0.5 | 023704 | [91828A211](https://www.mcmaster.com/91828A211/) | +| Hex | M4×0.7 | 010898 | [91828A231](https://www.mcmaster.com/91828A231/) | +| Hex | M5×0.8 | 010165 | [91828A241](https://www.mcmaster.com/91828A241/) | +| Hex | M6×1 | 010237 | [93625A250](https://www.mcmaster.com/93625A250/) | +| | | | | +| Locking Hex | M3×0.5 | 023705 | [93625A100](https://www.mcmaster.com/93625A100/) | +| Locking Hex | M4×0.7 | 019899 | [93625A150](https://www.mcmaster.com/93625A150/) | +| Locking Hex | M5×0.8 | 010170 | [93625A200](https://www.mcmaster.com/93625A200/) | +| Locking Hex | M6×1 | 023705 | [93625A100](https://www.mcmaster.com/93625A100/) | +| | | | | +| Cage | M5×0.8 | 023802 | [90680A721](https://www.mcmaster.com/90680A721/) | +| Cage | M6×1 | 023803 | [90680A724](https://www.mcmaster.com/90680A724/) | +| Cage | #10-32 | 023804 | [90680A716](https://www.mcmaster.com/90680A716/) | +| Cage | #1/4"-20 | 023805 | [90680A728](https://www.mcmaster.com/90680A728/) | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_flat_head.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_flat_head.mdx new file mode 100644 index 000000000..b462a65e7 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_flat_head.mdx @@ -0,0 +1,108 @@ +--- +title: Screw, Flat Head +sidebar_position: 3 +--- + + +
+ +
+
+
+
+ +| Thread | Length (mm) | CPR item | Manufacturer Item (McMaster Carr) | +| :----- | :---------- | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| M3×0.5 | 4 | 023338 | [92125A127](https://www.mcmaster.com/92125A127/) | +| M3×0.5 | 5 | 023339 | [92125A125](https://www.mcmaster.com/92125A125/) | +| M3×0.5 | 6 | 023340 | [92125A126](https://www.mcmaster.com/92125A126/) | +| M3×0.5 | 7 | 023341 | [CSHCS-SUS-M3-7](https://us.misumi-ec.com/vona2/detail/221000551376/?HissuCode=CSHCS-SUS-M3-7&PNSearch=CSHCS-SUS-M3-7&searchFlow=results2type&KWSearch=CSHCS-SUS-M3-7) | +| M3×0.5 | 8 | 023342 | [92125A128](https://www.mcmaster.com/92125A128/) | +| M3×0.5 | 10 | 023343 | [92125A130](https://www.mcmaster.com/92125A130/) | +| M3×0.5 | 12 | 023344 | [92125A132](https://www.mcmaster.com/92125A132/) | +| M3×0.5 | 14 | 023345 | [92125A133](https://www.mcmaster.com/92125A133/) | +| M3×0.5 | 15 | 023346 | [92125A103](https://www.mcmaster.com/92125A103/) | +| M3×0.5 | 16 | 023347 | [92125A134](https://www.mcmaster.com/92125A134/) | +| M3×0.5 | 18 | 023348 | [92125A135](https://www.mcmaster.com/92125A135/) | +| M3×0.5 | 20 | 023349 | [92125A136](https://www.mcmaster.com/92125A136/) | +| M3×0.5 | 22 | 023350 | [92125A371](https://www.mcmaster.com/92125A371/) | +| M3×0.5 | 25 | 023351 | [92125A138](https://www.mcmaster.com/92125A138/) | +| M3×0.5 | 30 | 023352 | [92125A140](https://www.mcmaster.com/92125A140/) | +| M3×0.5 | 35 | 023353 | [92125A141](https://www.mcmaster.com/92125A141/) | +| M3×0.5 | 40 | 023354 | [92125A150](https://www.mcmaster.com/92125A150/) | +| M3×0.5 | 45 | 023355 | [92125A372](https://www.mcmaster.com/92125A372/) | +| M3×0.5 | 50 | 023356 | [92125A151](https://www.mcmaster.com/92125A151/) | +| | | | | +| M4×0.7 | 5 | 023357 | [92125A185](https://www.mcmaster.com/92125A185/) | +| M4×0.7 | 6 | 023358 | [92125A186](https://www.mcmaster.com/92125A186/) | +| M4×0.7 | 7 | 023359 | [CSHCS-SUS-M4-7](https://us.misumi-ec.com/vona2/detail/221000551376/?HissuCode=CSHCS-SUS-M4-7&PNSearch=CSHCS-SUS-M4-7&searchFlow=results2type&KWSearch=CSHCS-SUS-M4-7) | +| M4×0.7 | 8 | 023360 | [92125A188](https://www.mcmaster.com/92125A188/) | +| M4×0.7 | 10 | 023361 | [92125A190](https://www.mcmaster.com/92125A190/) | +| M4×0.7 | 12 | 023362 | [92125A192](https://www.mcmaster.com/92125A192/) | +| M4×0.7 | 14 | 023363 | [92125A193](https://www.mcmaster.com/92125A193/) | +| M4×0.7 | 15 | 023364 | [92125A104](https://www.mcmaster.com/92125A104/) | +| M4×0.7 | 16 | 023365 | [92125A194](https://www.mcmaster.com/92125A194/) | +| M4×0.7 | 18 | 023366 | [92125A196](https://www.mcmaster.com/92125A196/) | +| M4×0.7 | 20 | 023367 | [92125A198](https://www.mcmaster.com/92125A198/) | +| M4×0.7 | 22 | 023368 | [92125A201](https://www.mcmaster.com/92125A201/) | +| M4×0.7 | 25 | 023369 | [92125A202](https://www.mcmaster.com/92125A202/) | +| M4×0.7 | 30 | 023370 | [92125A203](https://www.mcmaster.com/92125A203/) | +| M4×0.7 | 35 | 023371 | [92125A204](https://www.mcmaster.com/92125A204/) | +| M4×0.7 | 40 | 023372 | [92125A205](https://www.mcmaster.com/92125A205/) | +| M4×0.7 | 45 | 023373 | [92125A207](https://www.mcmaster.com/92125A207/) | +| M4×0.7 | 50 | 023374 | [92125A209](https://www.mcmaster.com/92125A209/) | +| M4×0.7 | 55 | 023375 | [92125A373](https://www.mcmaster.com/92125A373/) | +| M4×0.7 | 60 | 023376 | [92125A221](https://www.mcmaster.com/92125A221/) | +| M4×0.7 | 65 | 023377 | [92125A105](https://www.mcmaster.com/92125A105/) | +| M4×0.7 | 70 | 023378 | [92125A106](https://www.mcmaster.com/92125A106/) | +| | | | | +| M5×0.8 | 6 | 023379 | [92125A217](https://www.mcmaster.com/92125A217/) | +| M5×0.8 | 8 | 023380 | [92125A206](https://www.mcmaster.com/92125A206/) | +| M5×0.8 | 10 | 023381 | [92125A208](https://www.mcmaster.com/92125A208/) | +| M5×0.8 | 12 | 023382 | [92125A210](https://www.mcmaster.com/92125A210/) | +| M5×0.8 | 14 | 023383 | [92125A211](https://www.mcmaster.com/92125A211/) | +| M5×0.8 | 15 | 023384 | [92125A107](https://www.mcmaster.com/92125A107/) | +| M5×0.8 | 16 | 023385 | [92125A212](https://www.mcmaster.com/92125A212/) | +| M5×0.8 | 18 | 023386 | [92125A213](https://www.mcmaster.com/92125A213/) | +| M5×0.8 | 20 | 023387 | [92125A214](https://www.mcmaster.com/92125A214/) | +| M5×0.8 | 22 | 023388 | [92125A215](https://www.mcmaster.com/92125A215/) | +| M5×0.8 | 25 | 023389 | [92125A216](https://www.mcmaster.com/92125A216/) | +| M5×0.8 | 30 | 023390 | [92125A220](https://www.mcmaster.com/92125A220/) | +| M5×0.8 | 35 | 023391 | [92125A222](https://www.mcmaster.com/92125A222/) | +| M5×0.8 | 40 | 023392 | [92125A224](https://www.mcmaster.com/92125A224/) | +| M5×0.8 | 45 | 023393 | [92125A226](https://www.mcmaster.com/92125A226/) | +| M5×0.8 | 50 | 023394 | [92125A228](https://www.mcmaster.com/92125A228/) | +| M5×0.8 | 55 | 023395 | [92125A218](https://www.mcmaster.com/92125A218/) | +| M5×0.8 | 60 | 023396 | [92125A230](https://www.mcmaster.com/92125A230/) | +| M5×0.8 | 65 | 023397 | [92125A108](https://www.mcmaster.com/92125A108/) | +| M5×0.8 | 70 | 023398 | [92125A219](https://www.mcmaster.com/92125A219/) | +| M5×0.8 | 75 | 023399 | [92125A109](https://www.mcmaster.com/92125A109/) | +| M5×0.8 | 80 | 023400 | [92125A223](https://www.mcmaster.com/92125A223/) | +| | | | | +| M6×1 | 6 | 023408 | [92125A552](https://www.mcmaster.com/92125A552/) | +| M6×1 | 8 | 023409 | [92125A232](https://www.mcmaster.com/92125A232/) | +| M6×1 | 10 | 023410 | [92125A234](https://www.mcmaster.com/92125A234/) | +| M6×1 | 12 | 023411 | [92125A236](https://www.mcmaster.com/92125A236/) | +| M6×1 | 14 | 023412 | [92125A237](https://www.mcmaster.com/92125A237/) | +| M6×1 | 15 | 023413 | [92125A111](https://www.mcmaster.com/92125A111/) | +| M6×1 | 16 | 023414 | [92125A238](https://www.mcmaster.com/92125A238/) | +| M6×1 | 18 | 023415 | [92125A239](https://www.mcmaster.com/92125A239/) | +| M6×1 | 20 | 023416 | [92125A240](https://www.mcmaster.com/92125A240/) | +| M6×1 | 22 | 023417 | [92125A241](https://www.mcmaster.com/92125A241/) | +| M6×1 | 25 | 023418 | [92125A242](https://www.mcmaster.com/92125A242/) | +| M6×1 | 30 | 023419 | [92125A244](https://www.mcmaster.com/92125A244/) | +| M6×1 | 35 | 023420 | [92125A246](https://www.mcmaster.com/92125A246/) | +| M6×1 | 40 | 023421 | [92125A248](https://www.mcmaster.com/92125A248/) | +| M6×1 | 45 | 023422 | [92125A250](https://www.mcmaster.com/92125A250/) | +| M6×1 | 50 | 023423 | [92125A252](https://www.mcmaster.com/92125A252/) | +| M6×1 | 55 | 023424 | [92125A253](https://www.mcmaster.com/92125A253/) | +| M6×1 | 60 | 023425 | [92125A254](https://www.mcmaster.com/92125A254/) | +| M6×1 | 65 | 023426 | [92125A255](https://www.mcmaster.com/92125A255/) | +| M6×1 | 70 | 023427 | [92125A258](https://www.mcmaster.com/92125A258/) | +| M6×1 | 75 | 023428 | [92125A374](https://www.mcmaster.com/92125A374/) | +| M6×1 | 80 | 023429 | [92125A260](https://www.mcmaster.com/92125A260/) | +| M6×1 | 90 | 023430 | [92125A256](https://www.mcmaster.com/92125A256/) | +| M6×1 | 100 | 023431 | [92125A257](https://www.mcmaster.com/92125A257/) | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_round_head.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_round_head.mdx new file mode 100644 index 000000000..28d461e3c --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_round_head.mdx @@ -0,0 +1,132 @@ +--- +title: Screw, Round Head +sidebar_position: 2 +--- + + +
+ +
+
+
+
+ +| Thread | Length (mm) | CPR item | Manufacturer Item (McMaster Carr) | +| :------ | :---------- | :------: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| M3×0.5 | 3 | 023205 | [92095A287](https://www.mcmaster.com/92095A287/) | +| M3×0.5 | 4 | 023206 | [92095A471](https://www.mcmaster.com/92095A471/) | +| M3×0.5 | 5 | 023207 | [92095A177](https://www.mcmaster.com/92095A177/) | +| M3×0.5 | 6 | 023208 | [92095A179](https://www.mcmaster.com/92095A179/) | +| M3×0.5 | 7 | 023209 | [CSHBT-SUS-M3-7](https://us.misumi-ec.com/vona2/detail/221000551174/?HissuCode=CSHBT-SUS-M3-7&PNSearch=CSHBT-SUS-M3-7&searchFlow=results2type&KWSearch=CSHBT-SUS-M3-7) | +| M3×0.5 | 8 | 023210 | [92095A181](https://www.mcmaster.com/92095A181/) | +| M3×0.5 | 10 | 023211 | [92095A182](https://www.mcmaster.com/92095A182/) | +| M3×0.5 | 12 | 023212 | [92095A183](https://www.mcmaster.com/92095A183/) | +| M3×0.5 | 14 | 023213 | [92095A168](https://www.mcmaster.com/92095A168/) | +| M3×0.5 | 15 | 023214 | [92095A119](https://www.mcmaster.com/92095A119/) | +| M3×0.5 | 16 | 023215 | [92095A184](https://www.mcmaster.com/92095A184/) | +| M3×0.5 | 18 | 023216 | [92095A472](https://www.mcmaster.com/92095A472/) | +| M3×0.5 | 20 | 023217 | [92095A185](https://www.mcmaster.com/92095A185/) | +| M3×0.5 | 22 | 023218 | [92095A473](https://www.mcmaster.com/92095A473/) | +| M3×0.5 | 25 | 023219 | [92095A186](https://www.mcmaster.com/92095A186/) | +| M3×0.5 | 30 | 023220 | [92095A187](https://www.mcmaster.com/92095A187/) | +| M3×0.5 | 35 | 023221 | [92095A201](https://www.mcmaster.com/92095A201/) | +| M3×0.5 | 40 | 023222 | [92095A203](https://www.mcmaster.com/92095A203/) | +| M3×0.5 | 45 | 023223 | [92095A474](https://www.mcmaster.com/92095A474/) | +| M3×0.5 | 50 | 023224 | [92095A475](https://www.mcmaster.com/92095A475/) | +| M3×0.5 | 55 | 023225 | [92095A120](https://www.mcmaster.com/92095A120/) | +| | | | | +| M4×0.7 | 4 | 023226 | [92095A476](https://www.mcmaster.com/92095A476/) | +| M4×0.7 | 5 | 023227 | [92095A477](https://www.mcmaster.com/92095A477/) | +| M4×0.7 | 6 | 023228 | [92095A188](https://www.mcmaster.com/92095A188/) | +| M4×0.7 | 7 | 023229 | [CSHBT-SUS-M4-7](https://us.misumi-ec.com/vona2/detail/221000551174/?HissuCode=CSHBT-SUS-M4-7&PNSearch=CSHBT-SUS-M4-7&searchFlow=results2type&KWSearch=CSHBT-SUS-M4-7) | +| M4×0.7 | 8 | 023230 | [92095A189](https://www.mcmaster.com/92095A189/) | +| M4×0.7 | 10 | 023231 | [92095A190](https://www.mcmaster.com/92095A190/) | +| M4×0.7 | 12 | 023232 | [92095A192](https://www.mcmaster.com/92095A192/) | +| M4×0.7 | 14 | 023233 | [92095A193](https://www.mcmaster.com/92095A193/) | +| M4×0.7 | 15 | 023234 | [92095A125](https://www.mcmaster.com/92095A125/) | +| M4×0.7 | 16 | 023235 | [92095A194](https://www.mcmaster.com/92095A194/) | +| M4×0.7 | 18 | 023236 | [92095A478](https://www.mcmaster.com/92095A478/) | +| M4×0.7 | 20 | 023237 | [92095A196](https://www.mcmaster.com/92095A196/) | +| M4×0.7 | 22 | 023238 | [92095A479](https://www.mcmaster.com/92095A479/) | +| M4×0.7 | 25 | 023239 | [92095A197](https://www.mcmaster.com/92095A197/) | +| M4×0.7 | 30 | 023240 | [92095A198](https://www.mcmaster.com/92095A198/) | +| M4×0.7 | 35 | 023241 | [92095A199](https://www.mcmaster.com/92095A199/) | +| M4×0.7 | 40 | 023242 | [92095A200](https://www.mcmaster.com/92095A200/) | +| M4×0.7 | 45 | 023243 | [92095A205](https://www.mcmaster.com/92095A205/) | +| M4×0.7 | 50 | 023244 | [92095A209](https://www.mcmaster.com/92095A209/) | +| M4×0.7 | 55 | 023245 | [92095A330](https://www.mcmaster.com/92095A330/) | +| M4×0.7 | 60 | 023246 | [92095A480](https://www.mcmaster.com/92095A480/) | +| M4×0.7 | 65 | 023247 | [92095A126](https://www.mcmaster.com/92095A126/) | +| M4×0.7 | 70 | 023248 | [92095A172](https://www.mcmaster.com/92095A172/) | +| M4×0.7 | 80 | 023249 | [92095A173](https://www.mcmaster.com/92095A173/) | +| | | | | +| M5×0.8 | 5 | 023250 | [92095A308](https://www.mcmaster.com/92095A308/) | +| M5×0.8 | 6 | 023251 | [92095A206](https://www.mcmaster.com/92095A206/) | +| M5×0.8 | 8 | 023252 | [92095A207](https://www.mcmaster.com/92095A207/) | +| M5×0.8 | 10 | 023253 | [92095A208](https://www.mcmaster.com/92095A208/) | +| M5×0.8 | 12 | 023254 | [92095A210](https://www.mcmaster.com/92095A210/) | +| M5×0.8 | 14 | 023255 | [92095A211](https://www.mcmaster.com/92095A211/) | +| M5×0.8 | 15 | 023256 | [92095A127](https://www.mcmaster.com/92095A127/) | +| M5×0.8 | 16 | 023257 | [92095A212](https://www.mcmaster.com/92095A212/) | +| M5×0.8 | 18 | 023258 | [92095A481](https://www.mcmaster.com/92095A481/) | +| M5×0.8 | 20 | 023259 | [92095A214](https://www.mcmaster.com/92095A214/) | +| M5×0.8 | 22 | 023260 | [92095A482](https://www.mcmaster.com/92095A482/) | +| M5×0.8 | 25 | 023261 | [92095A216](https://www.mcmaster.com/92095A216/) | +| M5×0.8 | 30 | 023262 | [92095A218](https://www.mcmaster.com/92095A218/) | +| M5×0.8 | 35 | 023263 | [92095A220](https://www.mcmaster.com/92095A220/) | +| M5×0.8 | 40 | 023264 | [92095A222](https://www.mcmaster.com/92095A222/) | +| M5×0.8 | 45 | 023265 | [92095A223](https://www.mcmaster.com/92095A223/) | +| M5×0.8 | 50 | 023266 | [92095A228](https://www.mcmaster.com/92095A228/) | +| M5×0.8 | 55 | 023267 | [92095A483](https://www.mcmaster.com/92095A483/) | +| M5×0.8 | 60 | 023268 | [92095A225](https://www.mcmaster.com/92095A225/) | +| M5×0.8 | 65 | 023269 | [92095A331](https://www.mcmaster.com/92095A331/) | +| M5×0.8 | 70 | 023270 | [92095A484](https://www.mcmaster.com/92095A484/) | +| M5×0.8 | 80 | 023271 | [92095A485](https://www.mcmaster.com/92095A485/) | +| | | | | +| M6×1 | 6 | 023273 | [92095A234](https://www.mcmaster.com/92095A234/) | +| M6×1 | 8 | 023274 | [92095A239](https://www.mcmaster.com/92095A239/) | +| M6×1 | 10 | 023275 | [92095A224](https://www.mcmaster.com/92095A224/) | +| M6×1 | 12 | 023276 | [92095A226](https://www.mcmaster.com/92095A226/) | +| M6×1 | 14 | 023277 | [92095A227](https://www.mcmaster.com/92095A227/) | +| M6×1 | 15 | 023278 | [92095A128](https://www.mcmaster.com/92095A128/) | +| M6×1 | 16 | 023279 | [92095A238](https://www.mcmaster.com/92095A238/) | +| M6×1 | 18 | 023280 | [92095A487](https://www.mcmaster.com/92095A487/) | +| M6×1 | 20 | 023281 | [92095A240](https://www.mcmaster.com/92095A240/) | +| M6×1 | 22 | 023282 | [92095A488](https://www.mcmaster.com/92095A488/) | +| M6×1 | 25 | 023283 | [92095A242](https://www.mcmaster.com/92095A242/) | +| M6×1 | 30 | 023284 | [92095A244](https://www.mcmaster.com/92095A244/) | +| M6×1 | 35 | 023285 | [92095A246](https://www.mcmaster.com/92095A246/) | +| M6×1 | 40 | 023286 | [92095A248](https://www.mcmaster.com/92095A248/) | +| M6×1 | 45 | 023287 | [92095A250](https://www.mcmaster.com/92095A250/) | +| M6×1 | 50 | 023288 | [92095A252](https://www.mcmaster.com/92095A252/) | +| M6×1 | 55 | 023289 | [92095A253](https://www.mcmaster.com/92095A253/) | +| M6×1 | 60 | 023290 | [92095A254](https://www.mcmaster.com/92095A254/) | +| M6×1 | 65 | 023291 | [92095A489](https://www.mcmaster.com/92095A489/) | +| M6×1 | 70 | 023292 | [92095A490](https://www.mcmaster.com/92095A490/) | +| M6×1 | 75 | 023293 | [92095A332](https://www.mcmaster.com/92095A332/) | +| M6×1 | 80 | 023294 | [92095A491](https://www.mcmaster.com/92095A491/) | +| | | | | +| M8×1.25 | 8 | 025997 | [92095A493](https://www.mcmaster.com/92095A493/) | +| M8×1.25 | 10 | 025998 | [92095A256](https://www.mcmaster.com/92095A256/) | +| M8×1.25 | 12 | 025999 | [92095A258](https://www.mcmaster.com/92095A258/) | +| M8×1.25 | 14 | 026000 | [92095A494](https://www.mcmaster.com/92095A494/) | +| M8×1.25 | 15 | 026001 | [92095A129](https://www.mcmaster.com/92095A129/) | +| M8×1.25 | 16 | 026002 | [92095A260](https://www.mcmaster.com/92095A260/) | +| M8×1.25 | 18 | 026003 | [92095A495](https://www.mcmaster.com/92095A495/) | +| M8×1.25 | 20 | 026004 | [92095A284](https://www.mcmaster.com/92095A284/) | +| M8×1.25 | 22 | 026005 | [92095A496](https://www.mcmaster.com/92095A496/) | +| M8×1.25 | 25 | 026006 | [92095A286](https://www.mcmaster.com/92095A286/) | +| M8×1.25 | 30 | 026007 | [92095A290](https://www.mcmaster.com/92095A290/) | +| M8×1.25 | 35 | 026008 | [92095A292](https://www.mcmaster.com/92095A292/) | +| M8×1.25 | 40 | 026009 | [92095A294](https://www.mcmaster.com/92095A294/) | +| M8×1.25 | 45 | 026010 | [92095A296](https://www.mcmaster.com/92095A296/) | +| M8×1.25 | 50 | 026011 | [92095A298](https://www.mcmaster.com/92095A298/) | +| M8×1.25 | 55 | 026012 | [92095A299](https://www.mcmaster.com/92095A299/) | +| M8×1.25 | 60 | 026013 | [92095A300](https://www.mcmaster.com/92095A300/) | +| M8×1.25 | 65 | 026014 | [92095A334](https://www.mcmaster.com/92095A334/) | +| M8×1.25 | 70 | 026015 | [92095A497](https://www.mcmaster.com/92095A497/) | +| M8×1.25 | 75 | 026016 | [92095A335](https://www.mcmaster.com/92095A335/) | +| M8×1.25 | 80 | 026017 | [92095A498](https://www.mcmaster.com/92095A498/) | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_socket_head.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_socket_head.mdx new file mode 100644 index 000000000..86b6549f8 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/fasteners/screw_socket_head.mdx @@ -0,0 +1,163 @@ +--- +title: Screw, Socket Head +sidebar_position: 1 +--- + + +
+ +
+
+
+
+ +| Thread | Length (mm) | CPR item | Manufacturer Item (McMaster Carr) | +| :-------- | :---------- | :------: | :----------------------------------------------- | +| M2×0.4 | 2 | - | [91292A333](https://www.mcmaster.com/91292A333/) | +| M2×0.4 | 3 | - | [91292A003](https://www.mcmaster.com/91292A003/) | +| M2×0.4 | 4 | - | [91292A004](https://www.mcmaster.com/91292A004/) | +| M2×0.4 | 5 | - | [91292A005](https://www.mcmaster.com/91292A005/) | +| M2×0.4 | 6 | - | [91292A831](https://www.mcmaster.com/91292A831/) | +| M2×0.4 | 8 | - | [91292A832](https://www.mcmaster.com/91292A832/) | +| M2×0.4 | 10 | - | [91292A833](https://www.mcmaster.com/91292A833/) | +| M2×0.4 | 12 | - | [91292A834](https://www.mcmaster.com/91292A834/) | +| M2×0.4 | 14 | - | [91292A835](https://www.mcmaster.com/91292A835/) | +| M2×0.4 | 15 | - | [91292A335](https://www.mcmaster.com/91292A335/) | +| M2×0.4 | 16 | - | [91292A002](https://www.mcmaster.com/91292A002/) | +| M2×0.4 | 18 | - | [91292A031](https://www.mcmaster.com/91292A031/) | +| M2×0.4 | 20 | - | [91292A013](https://www.mcmaster.com/91292A013/) | +| M2×0.4 | 22 | - | [91292A336](https://www.mcmaster.com/91292A336/) | +| M2×0.4 | 25 | - | [91292A032](https://www.mcmaster.com/91292A032/) | +| M2×0.4 | 30 | - | [91292A034](https://www.mcmaster.com/91292A034/) | +| M2×0.4 | 35 | - | [91292A337](https://www.mcmaster.com/91292A337/) | +| | | | | +| M2.5×0.45 | 3 | - | [91292A035](https://www.mcmaster.com/91292A035/) | +| M2.5×0.45 | 4 | - | [91292A015](https://www.mcmaster.com/91292A015/) | +| M2.5×0.45 | 5 | - | [91292A009](https://www.mcmaster.com/91292A009/) | +| M2.5×0.45 | 6 | - | [91292A010](https://www.mcmaster.com/91292A010/) | +| M2.5×0.45 | 8 | - | [91292A012](https://www.mcmaster.com/91292A012/) | +| M2.5×0.45 | 10 | - | [91292A014](https://www.mcmaster.com/91292A014/) | +| M2.5×0.45 | 12 | - | [91292A016](https://www.mcmaster.com/91292A016/) | +| M2.5×0.45 | 14 | - | [91292A017](https://www.mcmaster.com/91292A017/) | +| M2.5×0.45 | 15 | - | [91292A836](https://www.mcmaster.com/91292A836/) | +| M2.5×0.45 | 16 | - | [91292A018](https://www.mcmaster.com/91292A018/) | +| M2.5×0.45 | 18 | - | [91292A028](https://www.mcmaster.com/91292A028/) | +| M2.5×0.45 | 20 | - | [91292A019](https://www.mcmaster.com/91292A019/) | +| M2.5×0.45 | 22 | - | [91292A312](https://www.mcmaster.com/91292A312/) | +| M2.5×0.45 | 25 | - | [91292A036](https://www.mcmaster.com/91292A036/) | +| M2.5×0.45 | 30 | - | [91292A037](https://www.mcmaster.com/91292A037/) | +| M2.5×0.45 | 35 | - | [91292A313](https://www.mcmaster.com/91292A313/) | +| M2.5×0.45 | 40 | - | [91292A837](https://www.mcmaster.com/91292A837/) | +| | | | | +| M3×0.5 | 3 | 022300 | [91292A021](https://www.mcmaster.com/91292A021/) | +| M3×0.5 | 4 | 022301 | [91292A109](https://www.mcmaster.com/91292A109/) | +| M3×0.5 | 5 | 022302 | [91292A110](https://www.mcmaster.com/91292A110/) | +| M3×0.5 | 6 | 022303 | [91292A111](https://www.mcmaster.com/91292A111/) | +| M3×0.5 | 8 | 022304 | [91292A112](https://www.mcmaster.com/91292A112/) | +| M3×0.5 | 10 | 022305 | [91292A113](https://www.mcmaster.com/91292A113/) | +| M3×0.5 | 12 | 022306 | [91292A114](https://www.mcmaster.com/91292A114/) | +| M3×0.5 | 14 | 022307 | [91292A027](https://www.mcmaster.com/91292A027/) | +| M3×0.5 | 15 | 022308 | [91292A346](https://www.mcmaster.com/91292A346/) | +| M3×0.5 | 16 | 022309 | [91292A115](https://www.mcmaster.com/91292A115/) | +| M3×0.5 | 18 | 022310 | [91292A029](https://www.mcmaster.com/91292A029/) | +| M3×0.5 | 20 | 022311 | [91292A123](https://www.mcmaster.com/91292A123/) | +| M3×0.5 | 22 | 022312 | [91292A801](https://www.mcmaster.com/91292A801/) | +| M3×0.5 | 25 | 022313 | [91292A020](https://www.mcmaster.com/91292A020/) | +| M3×0.5 | 30 | 022314 | [91292A022](https://www.mcmaster.com/91292A022/) | +| M3×0.5 | 35 | 022315 | [91292A033](https://www.mcmaster.com/91292A033/) | +| M3×0.5 | 40 | 022316 | [91292A024](https://www.mcmaster.com/91292A024/) | +| M3×0.5 | 45 | 022317 | [91292A025](https://www.mcmaster.com/91292A025/) | +| M3×0.5 | 50 | 022318 | [91292A026](https://www.mcmaster.com/91292A026/) | +| M3×0.5 | 55 | 022319 | [91292A314](https://www.mcmaster.com/91292A314/) | +| M3×0.5 | 60 | 022320 | [91292A267](https://www.mcmaster.com/91292A267/) | +| M3×0.5 | 65 | 022321 | [91292A315](https://www.mcmaster.com/91292A315/) | +| M3×0.5 | 70 | 022322 | [91292A316](https://www.mcmaster.com/91292A316/) | +| | | | | +| M4×0.7 | 4 | 022323 | [91292A023](https://www.mcmaster.com/91292A023/) | +| M4×0.7 | 5 | 022324 | [91292A105](https://www.mcmaster.com/91292A105/) | +| M4×0.7 | 6 | 022325 | [91292A107](https://www.mcmaster.com/91292A107/) | +| M4×0.7 | 8 | 022326 | [91292A108](https://www.mcmaster.com/91292A108/) | +| M4×0.7 | 10 | 022327 | [91292A116](https://www.mcmaster.com/91292A116/) | +| M4×0.7 | 12 | 022328 | [91292A117](https://www.mcmaster.com/91292A117/) | +| M4×0.7 | 14 | 022329 | [91292A038](https://www.mcmaster.com/91292A038/) | +| M4×0.7 | 15 | 022330 | [91292A354](https://www.mcmaster.com/91292A354/) | +| M4×0.7 | 16 | 022331 | [91292A118](https://www.mcmaster.com/91292A118/) | +| M4×0.7 | 18 | 022332 | [91292A043](https://www.mcmaster.com/91292A043/) | +| M4×0.7 | 20 | 022333 | [91292A121](https://www.mcmaster.com/91292A121/) | +| M4×0.7 | 22 | 022334 | [91292A806](https://www.mcmaster.com/91292A806/) | +| M4×0.7 | 25 | 022335 | [91292A122](https://www.mcmaster.com/91292A122/) | +| M4×0.7 | 30 | 022336 | [91292A130](https://www.mcmaster.com/91292A130/) | +| M4×0.7 | 35 | 022337 | [91292A131](https://www.mcmaster.com/91292A131/) | +| M4×0.7 | 40 | 022338 | [91292A132](https://www.mcmaster.com/91292A132/) | +| M4×0.7 | 45 | 022339 | [91292A133](https://www.mcmaster.com/91292A133/) | +| M4×0.7 | 50 | 022340 | [91292A140](https://www.mcmaster.com/91292A140/) | +| M4×0.7 | 55 | 022341 | [91292A268](https://www.mcmaster.com/91292A268/) | +| M4×0.7 | 60 | 022342 | [91292A048](https://www.mcmaster.com/91292A048/) | +| M4×0.7 | 65 | 022343 | [91292A317](https://www.mcmaster.com/91292A317/) | +| M4×0.7 | 70 | 022344 | [91292A269](https://www.mcmaster.com/91292A269/) | +| M4×0.7 | 75 | 022345 | [91292A318](https://www.mcmaster.com/91292A318/) | +| M4×0.7 | 80 | 022346 | [91292A271](https://www.mcmaster.com/91292A271/) | +| M4×0.7 | 85 | 022347 | [91292A838](https://www.mcmaster.com/91292A838/) | +| M4×0.7 | 90 | 022348 | [91292A319](https://www.mcmaster.com/91292A319/) | +| M4×0.7 | 100 | 022349 | [91292A039](https://www.mcmaster.com/91292A039/) | +| | | | | +| M5×0.8 | 6 | 022350 | [91292A189](https://www.mcmaster.com/91292A189/) | +| M5×0.8 | 8 | 022351 | [91292A191](https://www.mcmaster.com/91292A191/) | +| M5×0.8 | 10 | 022352 | [91292A124](https://www.mcmaster.com/91292A124/) | +| M5×0.8 | 12 | 022353 | [91292A125](https://www.mcmaster.com/91292A125/) | +| M5×0.8 | 14 | 022354 | [91292A058](https://www.mcmaster.com/91292A058/) | +| M5×0.8 | 16 | 022355 | [91292A126](https://www.mcmaster.com/91292A126/) | +| M5×0.8 | 18 | 022356 | [91292A127](https://www.mcmaster.com/91292A127/) | +| M5×0.8 | 20 | 022357 | [91292A128](https://www.mcmaster.com/91292A128/) | +| M5×0.8 | 22 | 022358 | [91292A060](https://www.mcmaster.com/91292A060/) | +| M5×0.8 | 25 | 022359 | [91292A129](https://www.mcmaster.com/91292A129/) | +| M5×0.8 | 30 | 022360 | [91292A192](https://www.mcmaster.com/91292A192/) | +| M5×0.8 | 35 | 022361 | [91292A193](https://www.mcmaster.com/91292A193/) | +| M5×0.8 | 40 | 022362 | [91292A194](https://www.mcmaster.com/91292A194/) | +| M5×0.8 | 45 | 022363 | [91292A195](https://www.mcmaster.com/91292A195/) | +| M5×0.8 | 50 | 022364 | [91292A196](https://www.mcmaster.com/91292A196/) | +| M5×0.8 | 55 | 022365 | [91292A690](https://www.mcmaster.com/91292A690/) | +| M5×0.8 | 60 | 022366 | [91292A197](https://www.mcmaster.com/91292A197/) | +| M5×0.8 | 65 | 022367 | [91292A811](https://www.mcmaster.com/91292A811/) | +| M5×0.8 | 70 | 022368 | [91292A198](https://www.mcmaster.com/91292A198/) | +| M5×0.8 | 75 | 022369 | [91292A272](https://www.mcmaster.com/91292A272/) | +| M5×0.8 | 80 | 022370 | [91292A199](https://www.mcmaster.com/91292A199/) | +| M5×0.8 | 85 | 022371 | [91292A320](https://www.mcmaster.com/91292A320/) | +| M5×0.8 | 90 | 022372 | [91292A200](https://www.mcmaster.com/91292A200/) | +| M5×0.8 | 95 | 022373 | [91292A321](https://www.mcmaster.com/91292A321/) | +| M5×0.8 | 100 | 022374 | [91292A273](https://www.mcmaster.com/91292A273/) | +| M5×0.8 | 110 | 022375 | [91292A322](https://www.mcmaster.com/91292A322/) | +| | | | | +| M6×1 | 6 | 022377 | [91292A044](https://www.mcmaster.com/91292A044/) | +| M6×1 | 8 | 022378 | [91292A201](https://www.mcmaster.com/91292A201/) | +| M6×1 | 10 | 022379 | [91292A441](https://www.mcmaster.com/91292A441/) | +| M6×1 | 12 | 022380 | [91292A134](https://www.mcmaster.com/91292A134/) | +| M6×1 | 14 | 022381 | [91292A070](https://www.mcmaster.com/91292A070/) | +| M6×1 | 16 | 022382 | [91292A135](https://www.mcmaster.com/91292A135/) | +| M6×1 | 18 | 022383 | [91292A136](https://www.mcmaster.com/91292A136/) | +| M6×1 | 20 | 022384 | [91292A137](https://www.mcmaster.com/91292A137/) | +| M6×1 | 22 | 022385 | [91292A073](https://www.mcmaster.com/91292A073/) | +| M6×1 | 25 | 022386 | [91292A138](https://www.mcmaster.com/91292A138/) | +| M6×1 | 30 | 022387 | [91292A139](https://www.mcmaster.com/91292A139/) | +| M6×1 | 35 | 022388 | [91292A141](https://www.mcmaster.com/91292A141/) | +| M6×1 | 40 | 022389 | [91292A142](https://www.mcmaster.com/91292A142/) | +| M6×1 | 45 | 022390 | [91292A143](https://www.mcmaster.com/91292A143/) | +| M6×1 | 50 | 022391 | [91292A144](https://www.mcmaster.com/91292A144/) | +| M6×1 | 55 | 022392 | [91292A410](https://www.mcmaster.com/91292A410/) | +| M6×1 | 60 | 022393 | [91292A413](https://www.mcmaster.com/91292A413/) | +| M6×1 | 65 | 022394 | [91292A416](https://www.mcmaster.com/91292A416/) | +| M6×1 | 70 | 022395 | [91292A202](https://www.mcmaster.com/91292A202/) | +| M6×1 | 75 | 022396 | [91292A816](https://www.mcmaster.com/91292A816/) | +| M6×1 | 80 | 022397 | [91292A203](https://www.mcmaster.com/91292A203/) | +| M6×1 | 85 | 022398 | [91292A323](https://www.mcmaster.com/91292A323/) | +| M6×1 | 90 | 022399 | [91292A204](https://www.mcmaster.com/91292A204/) | +| M6×1 | 95 | 022400 | [91292A324](https://www.mcmaster.com/91292A324/) | +| M6×1 | 100 | 022401 | [91292A205](https://www.mcmaster.com/91292A205/) | +| M6×1 | 110 | 022402 | [91292A420](https://www.mcmaster.com/91292A420/) | +| M6×1 | 120 | 022403 | [91292A423](https://www.mcmaster.com/91292A423/) | +| M6×1 | 130 | 022404 | [91292A424](https://www.mcmaster.com/91292A424/) | +| M6×1 | 140 | 022405 | [91292A425](https://www.mcmaster.com/91292A425/) | +| M6×1 | 150 | 022406 | [91292A426](https://www.mcmaster.com/91292A426/) | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/components/terminal_blocks.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/components/terminal_blocks.mdx new file mode 100644 index 000000000..86514d670 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/components/terminal_blocks.mdx @@ -0,0 +1,151 @@ +--- +title: Terminal Block +sidebar_position: 4 +--- + +Terminal blocks and studs are good ways to: + +- Distribute power +- Add fuses to circuits +- Create controls circuits and logic + +You can attach these to your robot using DIN Rails, such as the one detailed in our [PACS™ kit](../../accessories/add-ons/din_rail). + +--- + +## Terminal Block, Phoenix Contact + +
+ +
+ +
+ +| Description | CPR item | Manufacturer item | +| :--------------------------- | :------: | :---------------- | +| End Cap | 023569 | 3047028 | +| Terminal Block, Grey | 023063 | 3044076 | +| Terminal Block, Black | 029121 | 3045088 | +| Terminal Block, White | 029122 | 3045075 | +| Terminal Block, Red | 027802 | 3045062 | +| Terminal Block, Blue | 027803 | 3044089 | +| Terminal Block, Yellow | 029123 | 3045059 | +| Terminal Block, Green | 027804 | 3045091 | +| Terminal Block, Purple | 023069 | 3044078 | +| Terminal Block, Orange | 027805 | 3045046 | +| Terminal Block, Brown | 029124 | 3044077 | +| Terminal Block, Black-Yellow | | 3245121 | +| Jumper, 2 Position | 027932 | 3030161 | +| Jumper, 3 Position | 027933 | 3030174 | +| Jumper, 4 Position | 027934 | 3030187 | +| Jumper, 5 Position | 027935 | 3030190 | +| Jumper, 10 Position | 027936 | 3030213 | +| Jumper, 20 Position | 027937 | 3030226 | +| Jumper, 50 Position | 027938 | 3038930 | + +--- + +## Terminal Block, 2 Distribution, Phoenix Contact + +
+ +
+ +
+ +| Description | CPR item | Manufacturer item | +| :--------------- | :------: | :---------------- | +| Mounting Adapter | 029381 | 3274056 | +| Grey | 029363 | 1028067 | +| Blue | 029364 | 1028068 | +| Red | 029365 | 1028069 | +| Yellow | 029366 | 1028070 | +| Green | 029367 | 1028071 | +| Brown | 029368 | 1028072 | +| White | 029369 | 1028073 | +| Black | 029370 | 1028074 | +| Purple | 029371 | 1028075 | +| Pink | 029372 | 1028076 | +| Orange | 029373 | 1028077 | +| Turquoise | 029374 | 1082539 | +| Black-Yellow | 029375 | 1028078 | +| Green-Yellow | 029376 | 1091665 | + +--- + +## Terminal Block, 6 Distribution, Phoenix Contact + +
+ +
+ +
+ +| Description | CPR item | Manufacturer item | +| :----------- | :------: | :---------------- | +| Grey | 029221 | 3273132 | +| Blue | 025776 | 3273134 | +| Red | 023065 | 3273136 | +| Yellow | 023067 | 3273138 | +| Green | 025775 | 3273140 | +| Brown | 029222 | 3273142 | +| White | 023066 | 3273144 | +| Black | 023064 | 3273146 | +| Purple | 029223 | 3273148 | +| Pink | 029224 | 3273149 | +| Orange | 029225 | 3273150 | +| Black-Yellow | 029226 | 3273152 | + +--- + +## Terminal Block, 19 Distribution, Phoenix Contact + +
+ +
+ +
+ +| Description | CPR item | Manufacturer item | +| :----------- | :------: | :---------------- | +| Grey | 027941 | 3273110 | +| Blue | 027942 | 3273112 | +| Red | 027943 | 3273114 | +| Yellow | 027944 | 3273116 | +| Green | 027945 | 3273118 | +| Brown | 027946 | 3273120 | +| White | 027947 | 3273122 | +| Black | 027948 | 3273124 | +| Purple | 027949 | 3273126 | +| Orange | 027950 | 3273128 | +| Black-Yellow | 027951 | 3273130 | + +--- + +## Terminal Stud, Phoenix Contact + +
+ +
+ +
+ +| Description | CPR item | Manufacturer item | +| :----------------------------- | :------: | :---------------- | +| M4 stud, 76 A maximum current | 023570 | 3049107 | +| M5 stud, 125 A maximum current | 023068 | 3049204 | diff --git a/docs_versioned_docs/version-ros1noetic/robots/common/physical_tools.mdx b/docs_versioned_docs/version-ros1noetic/robots/common/physical_tools.mdx new file mode 100644 index 000000000..5e41857be --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/common/physical_tools.mdx @@ -0,0 +1,69 @@ +--- +title: Physical Tools +sidebar_position: 2 +--- + +These are the most common tools we use at Clearpath Robotics to build and maintain robots. +There is a much longer list of tools we use to design, test, and build more complicated aspects of our robots—such as Printed Circuit Board Assemblies. +The intention of this page is to show you what tools we use for maintenance, and for adding sensors to our robots. + +:::info Contact Us + +Contact our Sales team at sales@clearpathrobotics.com if you want us to add sensors or custom attachments to your robot. +We can suggest hardware and software that will meet your application goals. + +You can see some of our past Integration Services projects [here](https://clearpathrobotics.com/integration-services/). + +::: + +:::note + +Some tools are specific to the electrical connectors we use at Clearpath Robotics. +For example, we show a Panduit crimper for ring terminals. +This suggestion is because use Panduits ring terminals in our cable assemblies. +There are other manufacturers that make comparable products, such as Molex, Phoenix Contact, and Tyco Electronics. + +::: + +| Category | Description | Preferred Manufacturer | Manufacturer Item Number | +| :------------------------------- | :-------------------------------------------------------- | :---------------------- | :------------------------------------------------------------------------------------------------------------------------------- | +| **Consumables** | Lint Free Cloth | Kimtech | | +| | Isopropyl Alcohol | | | +| | Thread Locker, Light | Loctite | [222](https://www.mcmaster.com/1810A27/) | +| | Thread Locker, Medium | Loctite | [243](https://www.mcmaster.com/91458A115/) | +| | Thread, Anti-Seize | Loctite | [8065](https://www.mcmaster.com/1019A11/) | +| | Silicone Sealant | Dow Corning | [3138356](https://www.mcmaster.com/7587A2/) | +| | Electrical Compound | | | +| | Cable Ties | | | +| **Mechanical Fabrication** | Rivet Installation Tool | Milwaukee | [2550-20](https://www.milwaukeetool.com/Products/Power-Tools/Specialty-Tools/Rivet-Tools/2550-20) | +| | Drill | Milwaukee | [2606-20](https://www.milwaukeetool.com/Products/Power-Tools/Drilling/Drill-Drivers/2606-20) | +| | Rotary Tool | Dremel | | +| | Hole Deburring Tool | | | +| **Mechanical Assembly** | Hex Keys, Metric | Wiha | [66980](https://www.digikey.ca/en/products/detail/wiha/66980/11658234) | +| | Hex Keys, Imperial | Wiha | [66981](https://www.digikey.ca/en/products/detail/wiha/66981/11658233?s=N4IgTCBcDaICwGYCMBaAbGgnADlQOQBEQBdAXyA) | +| | Crescent Wrenches, Metric
(5 mm - 13 mm) | | | +| | Crescent Wrenches, Imperial | | | +| | Adjustable Wrench, Small | | | +| | Adjustable Wrench, Large | | | +| | Sockets and Socket Wrenches,
Metric (5 mm - 13 mm) | | | +| | Sockets and Socket Wrenches,
Imperial | | | +| | Sidecutters | Knipex | [78 03 125](https://www.digikey.ca/en/products/detail/knipex-tools-lp/78-03-125/10451639) | +| **Electrical Cable Fabrication** | Soldering Iron | Pace | [MBT360](https://paceworldwide.com/mbt360-multi-channel-soldering-and-rework-station-w-td-200-and-sx-100) | +| | Multimeter | Fluke | [115](https://www.digikey.ca/en/products/detail/fluke-electronics/FLUKE-115/1506332) | +| | Soldering Helping Hands | | | +| | Wire Strippers | Greenlee Communications | [PA1123](https://www.digikey.ca/en/products/detail/tempo-communications/PA1123/1990599) | +| | Utility Knife | Olfa | [L-2](https://olfa.com/collections/professional/products/18mm-l-2-rubber-inset-utility-knife#shop) | +| | Heat Gun | Milwaukee | [2688-20](https://www.milwaukeetool.com/Products/Power-Tools/Specialty-Tools/Heating-Tools/2688-20) | +| | Crimper, Anderson Powerpole PP15 | Anderson Power Products | [1309G8](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1309G8/10647425?s=N4IgTCBcDaIIwGYAMBOA4gDhAXQL5A) | +| | Crimper, Anderson SB50 and PP75 | Anderson Power Products | [1309G4](https://www.digikey.ca/en/products/detail/anderson-power-products-inc/1309G4/10650073) | +| | Crimper, Molex Mini-Fit-Jr | Molex | [0638190901](https://www.digikey.ca/en/products/detail/molex/0638190901/9655931?s=N4IgTCBcDaIAwDYDMAOAjATjltIC6AvkA) | +| | Extractor, Molex Mini-Fit-Jr | Molex | [11030044](https://www.digikey.ca/en/products/detail/molex/0011030044/210947?s=N4IgTCBcDaIIxwAwGZGICzpAXQL5A) | +| | Crimper, Molex Mega-Fit | Molex | [2002187200](https://www.digikey.ca/en/products/detail/molex/2002187200/14311428?s=N4IgTCBcDa4AxzARgBwHYwJAXQL5A) | +| | Extractor, Molex Mega-Fit | Molex | [0638240810](https://www.digikey.ca/en/products/detail/molex/0638240810/11657656?s=N4IgTCBcDaIGwGYAcYAsAGJBGdIC6AvkA) | +| | Crimper, Ferrule (Phoenix Contact) | Phoenit Contact | [1213144](https://www.digikey.ca/en/products/detail/phoenix-contact/1213144/5875365) | +| | Crimper, Ring Terminal (Panduit) | Panduit | [0638190901](https://www.digikey.ca/en/products/detail/panduit-corp/CT-1550/447992) | +| | Crimper, Quick Disconnect (Panduit) | Panduit | [CT-1525](https://www.digikey.ca/en/products/detail/panduit-corp/CT-1525/447991?s=N4IgTCBcDaIMIBUC0BGArGNIC6BfIA) | +| | Crimper, Ring Lug Terminals (Panduit) | Panduit | [CT-1700](https://www.digikey.ca/en/products/detail/panduit-corp/CT-1700/447996?s=N4IgTCBcDaIMYBcC0BGA7ABgyAugXyA) | +| | Sidecutters | Knipex | [78 03 125](https://www.digikey.ca/en/products/detail/knipex-tools-lp/78-03-125/10451639) | +| **Electrical Assembly** | Scouring Pads (ScotchBrite) | 3M | [61500290558](https://www.digikey.ca/en/products/detail/3m/61500290558/3589749) | +| | Multimeter | Fluke | [115](https://www.digikey.ca/en/products/detail/fluke-electronics/FLUKE-115/1506332) | diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/_category_.json new file mode 100644 index 000000000..3f1c6ad02 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Indoor", + "position": 3 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/_category_.json new file mode 100644 index 000000000..f542b3edf --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Boxer", + "position": 2 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/integration_boxer.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/integration_boxer.mdx new file mode 100644 index 000000000..0680d366c --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/integration_boxer.mdx @@ -0,0 +1,80 @@ +--- +title: Boxer Integration +sidebar_label: Integration +sidebar_position: 2 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import ComponentIntroductionBoxer from "/components/introduction_boxer.mdx"; +import ComponentCommonSoftwareIntegration from "/components/common_software_integration.mdx"; +import Support from "/components/support.mdx"; + + + +To attach custom hardware to Boxer, you will have to take care of mechanical mounting, electrical +supply, and software integration. This guide aims to equip you with respect to these challenges. + +--- + +### Mechanical Mounting + +When determining mechanical mounting, you can use the Standard mounting pattern on the top plate of the Boxer. +At this time, the "PACS™" mounting system is not available for Boxer. + +#### Mechanical, Standard + +External payloads can be attached to the mounting plate of the Boxer by using the Ø8 mm countersunk through holes on the underside, or adding new holes. +Whichever method you choose, the method for removing the top plate is the same and outlined below. + +1. Ensure the robot is shut off, and the circuit breaker is turned to the _off_ position. +2. Disconnect and remove all existing payloads on the top plate. +3. Using a 2 mm hex key, remove the twelve M3 round head screws holding the connection covers in place. + Remove the panels. + Take care to disconnect the network cable and attachment cable from the robot when removing the connection covers. +4. Using a 4 mm hex key, remove the eleven M5 socket head screws holding the plate down. +5. Remove the plate from the Boxer. + +The Boxer plate is made from 8 mm aluminum and can be easily machined according to your customization needs. + +The plate also has eight Ø8 mm holes in the corners which are countersunk from the underside of the plate, making them ideal for flathead screws installed to protrude from the plate. + +
+ +
+ +### Electrical Integration + +For connecting with any external payloads, such as a backpack computer, refer to the product's datasheet or manual. +If your robot was equipped with these payloads by Clearpath Robotics this documentation is provided along with your Boxer. +Contact [Support](#support) if you need more information. + +Ensure that the Boxer is shut off and the circuit breaker is turned to the _off_ position before performing any electrical work on the Boxer. + +The Boxer is equipped with an attachment interface that consists of a Power-over-Ethernet (PoE) RJ45 bulkhead connector, a USB Type-A bulkhead connector, and a 37-position panel receptacle and mated plug. +To connect with the Boxer attachment interface see Section 10 of the [OTTO 100 V2.5 Operation and Maintenance Manual](https://docs.ottomotors.com/PDFs/100-v2.5-OMM.pdf). + +To add wires to the 37-position connector for you application, follow the TE Connectivity documentation for [connector 206305-1](https://www.te.com/usa-en/product-206305-1.html) to use appropriate crimp pins. +Note that the 37-position connector will come pre-populated from Clearpath Robotics with 2 wires. +These 2 wires complete the base Boxer's Motion Stop loop, allowing the robot to move. +Other positions of the connector may be pre-populated, well as the PoE and USB, if your robot was equipped with payloads according to your Clearpath Robotics customizations. + +### Software Integration + + + +Refer to the following for more details: + +- [Computers](../../accessories/computers) +- [Sensors](../../accessories/sensors) +- [Manipulators](../../accessories/manipulators) +- [Accessories](../../accessories/add-ons) + +--- + +## Support + + diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/maintenance_boxer.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/maintenance_boxer.mdx new file mode 100644 index 000000000..e5b4c4219 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/maintenance_boxer.mdx @@ -0,0 +1,63 @@ +--- +title: Boxer Maintenance +sidebar_label: Maintenance +sidebar_position: 4 +--- + +import ComponentIntroductionBoxer from "/components/introduction_boxer.mdx"; +import GettingNewPackages from "/components/maintenance/getting_new_packages.mdx"; +import Support from "/components/support.mdx"; + + + +## Battery care + +To help extend the life of the batteries, follow the steps below. + +- Do not discharge the batteries lower than 10%. + Batteries lower than 5% are permanently damaged and cannot be recharged. +- Recharge batteries to 100% after every use. +- Recharge batteries and turn the circuit breaker to ”OFF” before putting the system into long-term storage. +- Batteries that are in long-term storage will need to be recharged every 6 months. +- Charge batteries when the ambient temperature is between 20 °C to 30 °C. + Consult Clearpath Robotics if you need to charge batteries outside these conditions. + +--- + +## Software Maintenance {#software_maintenance} + +Boxer is always being improved, both its own software and the many community ROS packages upon which it +depends! You can use the apt package management system to receive new versions all software running on the +platform. + +### Updating the Base Unit + +OTTO Motors periodically releases updates for the OTTO 100, which can be applied to Boxer's Base Unit. + +Please refer to [OTTO Motors' documentation](https://docs.ottomotors.com/en/30495-30532-installing-robot-software.html) +for details on applying software updates. + +At the time of writing, the latest version of the OTTO 100 software supported by the Boxer's Noetic backpack is 2.22.3. + +### Updating the Backpack Computer + +The Backpack Computer can be updated by connecting it to the internet, either using a wired or wireless connection, and +running the following commands: + +``` +sudo apt-get update +sudo apt-get upgrade +``` + +If you see any errors, contact [Support](#support). + +### Starting From Scratch + +If Boxer's computer has become inoperable, or for any reason you want to restore it to the factory state, you can +reinstall the operating system by following the steps outlined [Boxer Backpack Computer Software Setup](./tutorials_boxer#boxer-software-setup). + +--- + +## Support {#support} + + diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/troubleshooting_boxer.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/troubleshooting_boxer.mdx new file mode 100644 index 000000000..5d92fafd6 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/troubleshooting_boxer.mdx @@ -0,0 +1,54 @@ +--- +title: Boxer Troubleshooting +sidebar_label: Troubleshooting +sidebar_position: 5 +--- + +import ComponentIntroductionBoxer from "/components/introduction_boxer.mdx"; +import ComponentSupportIntroduction from "/components/support_introduction.mdx"; +import Support from "/components/support.mdx"; + + + + + +--- + +## Networking + +### Not getting Wi-Fi internet connection + +Refer to the [Networking page](../../../ros/networking). + +### Cannot connect to the robot's computer over a network cable + +Reter to the [Networking page](../../../ros/networking). + +--- + +## Computer + +### The computer does not automatically start + +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). + +### The computer keeps reverting to old BIOS settings + +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). + +--- + +## ROS + +### ROS package is not starting + +Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are any error during upstart. + +### Sensors are not turning on + +1. Check that the sensor's User Power connector has the correct voltage. +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). + +## If the Issue Persists + + diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/tutorials_boxer.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/tutorials_boxer.mdx new file mode 100644 index 000000000..ada699204 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/tutorials_boxer.mdx @@ -0,0 +1,1029 @@ +--- +title: Boxer Tutorials +sidebar_label: Tutorials +sidebar_position: 3 +--- + +import ComponentIntroductionBoxer from "/components/introduction_boxer.mdx"; +import ComponentPs4ControllerPairing from "/docs_versioned_docs/version-ros1noetic/components/_ps4_controller_pairing.mdx"; +import ComponentChangingDefaultPassword from "/docs_versioned_docs/version-ros1noetic/components/_changing_default_password.mdx"; +import ComponentWiredRobotConnection from "/docs_versioned_docs/version-ros1noetic/components/_wired_robot_connection.mdx"; +import ComponentWifiRobotConnection from "/docs_versioned_docs/version-ros1noetic/components/_wifi_robot_connection.mdx"; +import ComponentConfiguringNetworkBridge from "/docs_versioned_docs/version-ros1noetic/components/_configuring_network_bridge.mdx"; +import ComponentPerformingABackup from "/docs_versioned_docs/version-ros1noetic/components/_performing_a_backup.mdx"; +import ComponentInstallingRobotSoftware from "/docs_versioned_docs/version-ros1noetic/components/_installing_robot_software.mdx"; +import ComponentInstallingRemoteComputerSoftware from "/docs_versioned_docs/version-ros1noetic/components/_installing_remote_computer_software.mdx"; +import ComponentAddingASourceWorkspace from "/docs_versioned_docs/version-ros1noetic/components/_adding_a_source_workspace.mdx"; +import ComponentDrivingWithRemoteController from "/docs_versioned_docs/version-ros1noetic/components/_driving_with_remote_controller.mdx"; +import Support from "/components/support.mdx"; + + + +## Boxer Overview + +:::caution + +This guide is for the Boxer V2.4 (released in November 2021) and V2.5 (released in May 2023). Boxer V2.4 and V2.5 are not compatible with the older Boxer (V2.2). +Owners of previous-generation (V2.2) Boxers should refer to the documentation [here](http://www.clearpathrobotics.com/assets/guides/kinetic/boxer/). + +::: + +:::note + +OTTO Motors and Clearpath Robotics operate under the same parent company. +Boxer V2.4 and V2.5 are a collaboration between the teams at OTTO Motors and Clearpath Robotics. + +::: + +### Introduction + +Boxer is a large indoor mobile robot for prototyping and development of industrial applications. +It is a lightly modified [OTTO 100](https://ottomotors.com/amrs) robot, equipped with a Backpack Computer mounted +to the top of the Base Unit. This Backpack Computer communicates with the OTTO 100 via its attachment port, located +on the top of the Base Unit. + +For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/boxer). + +:::note + +These tutorials assume that you are comfortable working with ROS. +We recommend starting with our [ROS tutorial](https://www.clearpathrobotics.com/assets/guides/noetic/ros/index.html) if you are not familiar with ROS already. + +::: + +:::note + +These tutorials specifically target Boxer robots with a Backpack Computer running Ubuntu 20.04 with ROS Noetic, as it is the standard OS environment for Boxer. + +::: + +[Boxer ROS Packages](#boxer-ros-packages) provides the references for the software packages and key ROS topics. + +[Boxer Software Setup](#boxer-software-setup) outlines the steps for setting up the software on your Boxer robot and optionally on a remote computer. + +[Using Boxer](#using-boxer) describes how to simulate and drive your Boxer. [Simulation](#simulating-boxer) is a great way for most users to learn more about their Boxer; +understanding how to effectively operate Boxer in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a physical Boxer or you do not have one and are simply exploring the platform's capabilities. +[Driving Boxer](#driving-boxer) covers how to teleoperate Boxer using the remote control, as well as safety procedures for operating the physical robot. +Anyone working with a physical robot should be familiar with this section. + +[Mapping and Navigating with Boxer](#navigating-boxer) is a follow-on to what is learned in the [Simulation](#simulating-boxer) tutorial, as navigation and map-making may be run in the simulated environment. +However, this content is applicable to both the simulator and the real platform, if your Boxer is equipped with a laser scanner. + +[Boxer Tests](#testing-boxer) outlines how to validate that your physical Boxer is working correctly. + +### Terminology + +The following terms are used throughout this guide: + +- Backpack Computer: the externally-mounted computer that has the ROS Master running on it. +- Base Unit: the OTTO 100 platform, including its internal computer. Sometimes referred to as "The OTTO 100". +- Boxer: the combined Base Unit and Backpack Computer. + +### Differences from OTTO 100 + +The most obvious difference between OTTO 100 and Boxer V2.4/V2.5 is that Boxer has been painted black with a yellow +stripe on the sides. This change is purely cosmetic, and is to keep the Boxer visually distinct. + +Mechanically, the top deck of the Boxer has a slightly thicker, heavier top-plate with a different arrangement of +mounting holes than the OTTO 100. This is to allow the attachment of additional payloads, such as robotic arms, +larger sensor arrays, and structural elements. + +
+
+ +
URDF model of Boxer with two Kinova Gen3 arms
+
+
+ +Finally, the OTTO 100's attachment interface and ROS 2 API have been enabled. This is necessary to allow the +Backpack Computer to communicate with and control the robot. + +### Operating Boxer + +Boxer is intended to be controlled via the Backpack Computer; all necessary ROS nodes, and the ROS Master, are running on +the Backpack Computer. Any topics published by or subscribed to from the OTTO 100's internal computer are relayed from the +Backpack Computer. + +When the robot powers on it will be in neutral. Use the OTTO App to disengage the safeties and enable operation of +the robot. Note that this requires that the Base Unit be connected to your wireless network. Refer to +[Network Setup](#boxer-networking) for more details. + +One ethernet port of the Backpack Computer is reserved for communicating with the Base Unit. By default this is the +port identified as `eno1`, labelled "LAN1" on most computers. All other ethernet ports on the Backpack Computer are +bridged together and may be used for diagnostics, connecting external computers, or adding IP-based accessories such as +lidar sensors, cameras, or robotic arms. + +### ROS 2 API + +OTTO Motors has developed a ROS 2 API that is available to monitor and control the Base Unit. When using ROS Noetic, +Boxer uses `ros1_bridge` nodes to translate this ROS 2 API into ROS 1 compatible messages. + +The ROS 2 API operates on 3 domains: + +| Domain ID | Description | +| :-------- | :----------- | +| 100 | Fleet API | +| 110 | Autonomy API | +| 95 | Platform API | + +Refer to the [OTTO 100 documentation](https://ottomotors.com) for more details on the ROS 2 API. + +### Standard Sensors + +The Base Unit includes a number of sensors whose data can be consumed by ROS nodes running on the Backpack Computer: + +- front-facing safety lidar, available as `/front/scan` +- rear-facing safety lidar, available as `/rear/scan` +- internal IMU, available as `/imu/module0/data_raw` +- front-facing Intel RealSense camera + - depth data available as `/realsense/depth/image_rect_raw` + - depth camera info available as `/realsense/depth/camera_info` + +At the time of writing OTTO Motors' ROS 2 API does not expose pointcloud or RGB data from the RealSense camera + +--- + +## Boxer ROS Packages {#boxer-ros-packages} + +Boxer fully supports ROS. Boxer's Noetic packages are split into 5 repositories on Github: + +- [Boxer](https://github.com/boxer-cpr/boxer): the core description and control packages, needed for physical and simulated robots +- [Boxer Robot](https://github.com/boxer-cpr/boxer_robot): core launch files and services needed for operating a physical Boxer +- [Boxer Simulation](https://github.com/boxer-cpr/boxer_simulation): Gazebo simulation packages for Boxer +- [Boxer Desktop](https://github.com/boxer-cpr/boxer_desktop): desktop visualization packages for Boxer +- [Boxer Manipulation](https://github.com/boxer-cpr/boxer_manipulation): optional support for robotic arms and grippers, including Kinova, Kuka, Robotiq, and UR + +### Description Package {#description-package} + +The [boxer_description](https://github.com/boxer-cpr/boxer/tree/noetic-devel/boxer_description) repository provides a [URDF](http://wiki.ros.org/urdf) model of Boxer. + +Boxer's URDF model can be visualized in RViz. +Once you have installed the desktop software in an upcoming tutorial, you will be able to run: + +``` +roslaunch boxer_viz view_model.launch +``` + +
+
+ +
Boxer model
+
+
+ +### Environment Variables + +Boxer can be customized and extended through the use of several environment variables. +The details are in the [boxer_description](https://github.com/boxer-cpr/boxer/tree/noetic-devel/boxer_description) repository. +Some of the most important ones are listed below. + +| Variable | Default | Description | +| :--------------------- | :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `ROS_ROBOT_SERIAL_NO` | _undefined_ | The Boxer's serial number. This should be of the form `A31_0123456789` and must match the serial number stamped on the robot | +| `BOXER_API_VERSION` | `v1_1` | The version of the OTTO SDK running on the Base Unit. | +| `BOXER_URDF_EXTRAS` | `empty.urdf.xacro` | Optional path to an additional URDF file to be added to the robot's description. Commonly used to add additional joints and links to add additional payloads, e.g. arms, additional sensors | +| `BOXER_CONTROL_EXTRAS` | `empty.yaml` | Optional path to a configuration file to override any of the Boxer's control parameters. Commonly used to change controller button mappings, EKF parameters, etc. | +| `BOXER_PC` | `1` | If `1` the URDF will include a model of the Backpack Computer. If `0` the Backpack Computer is omitted from the URDF. The shape of the mode is determined by the `BOXER_PC_MODEL` variable | +| `BOXER_PC_MODEL` | `evs-2000` | Customizes the shape of the Backpack Computer added to the URDF. Other options are `ecx-2000` (for Vecow ECX-2000 series computer) and `mini-itx` (for common mini-ITX mini desktop enclosure) | +| `BOXER_PC_XYZ` | `0 0 0` | Defines the position of the Backpack Computer in the URDF relative to the Boxer's `top_plate_link` | +| `BOXER_PC_RPY` | `0 0 0` | Defines the orientation of the Backpack Computer in the URDF relative to the Boxer's `top_plate_link` | +| `BOXER_GPIO` | `0` | If `1` the GPIO pins on the PC can be controlled via a ROS node. **Not yet supported.** | + +### Key ROS Topics + +You can view all topics that are active using `rostopic list`. + +Your Boxer can be controlled through ROS, either through a ROS 2 API on the Base Unit or through a ROS 1 API on the optional Backpack Computer. +Some key topics that comprise the Boxer's ROS 1 API are listed below. +For details on the ROS 2 API, please contact Support. + +| Topic | Message Type | Purpose | +| :-------------------------------- | :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/cmd_vel` | `geometry_msgs/Twist` | Input to Boxer's kinematic controller. Publish here to make Boxer go. | +| `/odom` | `nav_msgs/Odometry` | Publishes the internal odometry from Boxer's Base Unit, a filtered localization estimate based on wheel odometry (encoders), an integrated IMU, a camera, and a laser. | +| `/imu/module0/data` | `sensor_msgs/IMU` | Publishes the internal IMU data from Boxer's Base Unit. | +| `/front/scan` | `sensor_msgs/LaserScan` | Publishes the laser scan data from the Base Unit's front localization laser. | +| `/rear/scan` | `/rear/scan` | Publishes the laser scan data from the Base Unit's rear safety laser. | +| `/realsense/depth/image_rect_raw` | `sensor_msgs/Image` | Publishes depth data from the Base Unit's camera. | + +## Boxer Backpack Computer Software Setup {#boxer-software-setup} + +:::caution + +All of the software instructions in this section apply only to the Backpack Computer, not the +software running on the Base Unit. If your Boxer is not equipped with a Backpack Computer, +you can skip this section. + +::: + +### Backing Up Robot Configuration + +Upgrading your Clearpath Boxer to ROS Noetic from older ROS distributions is a straightforward process; +however it's important to understand that each Boxer is different, having undergone customization to your specifications. +For more complete upgrade instructions see [this guide](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). + +Please take the time to understand what these modifications are, and how to recreate them on your fresh install of Ubuntu Focal/ROS Noetic. + +#### Performing a Backup {#performing-a-backup} + + + +### Installing and Configuring Robot Software + +#### Installing Boxer Software + +:::note + +The physical Boxer robot comes pre-configured with ROS and the necessary Boxer packages already installed on the Backpack Computer; +therefore, you will only need to follow the instructions below if you are re-installing software on the Backpack Computer. + +::: + +:::note + +To install these packages on your computer, ensure that you have added the ROS 1 Noetic and ROS 2 Foxy sources to your +`apt` configuration, as well as Clearpath's package server: + +- [ROS 1 Noetic](http://wiki.ros.org/noetic/Installation/Ubuntu) +- [ROS 2 Foxy](https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html) +- [Clearpath Packages](http://packages.clearpathrobotics.com) + +Note that Foxy is only needed if you plan on installing the `boxer_robot` packages; because of the OTTO 100's ROS 2 +API the Foxy version of `ros_bridge` is required to operate the physical robot. + +::: + +:::note + +The `boxer_manipulation` packages are not available as .deb packages, because they have additional +dependencies that can only be installed from source. See below for details on building packages from source, and +refer to [boxer_manipulation on Github](https://github.com/boxer-cpr/boxer_manipulation) for more details on using +these packages. + +::: + +:::note + +During the installation process, you will be asked to enter the robot's serial number. This is stamped on the +back of the robot, and will be of the form `A31_` followed by a series of numbers. It is important that this serial +number be entered correctly. Otherwise you may have errors communicating with the ROS 2 API published by the Base Unit. + +::: + +:::note + +The OS installation will require an internet connection via ethernet. When connecting an Ethernet cable to Boxer, +make sure to use the `eno1` Ethernet port on the Backpack Computer, not the Ethernet port on the Base Unit. +This `eno1` port is the same port normally used for communicating with the Base Unit. If eno1 (sometimes labelled "LAN1") +is connected to the Base Unit, disconnect the Base Unit for now. Once the OS has installed you can reconnect the base +platform to `eno1`. You will also need to connect a monitor and keyboard to the Backpack Computer. We recommend connecting the Boxer +to its charger during the installation process to ensure it doesn't lose power. + +::: + + + +#### Configuring the Backpack Computer + +If you are installing the packages on Boxer's Backpack Computer, you will need to set up `/etc/ros/setup.bash` +too: + +``` +# Mark location of self so that robot_upstart knows where to find the setup file. +export ROBOT_SETUP=/etc/ros/setup.bash + +# Setup robot upstart jobs to use the IP from the network bridge. +# export ROBOT_NETWORK=br0 + +# Insert extra platform-level environment variables here. The six hashes below are a marker +# for scripts to insert to this file. +###### + +# Pass through to the main ROS workspace of the system. +source /opt/ros/noetic/setup.bash + +# Source your catkin workspace +# Make sure to use the complete path, and avoid using envars like $HOME +# Omit this if you do not have a workspace +source /home/administrator/catkin_ws/devel/setup.bash + +# Set the ROS_ROBOT_SERIAL_NO and BOXER_API_VERSION envars +# this is required for the Boxer to operate correctly +# The serial number must match the one stamped on the back of the robot +export ROS_ROBOT_SERIAL_NO=A31_0123456789 +export BOXER_API_VERSION=v1_3 + +# Any additional environment variables that depend on your workspace should be exported here +# e.g. +#export BOXER_URDF_EXTRAS=/path/to/boxer_customizations.urdf.xacro +``` + +The `BOXER_API_VERSION` environment variable must be set on the robot's Backpack Computer. This version is determined by +the version of the ROS 2 API running on the Base Unit. + +At the time of writing the latest version of the OTTO software uses `v1_3` + +The `ROS_ROBOT_SERIAL_NO` environment variable must match the serial number stamped on the back of the robot. +The serial number is case-sensitive, and will begin with `A31_`, followed by a series of numbers. + +Finally, after you have configured `/etc/ros/setup.bash` you can run the following to create the ROS systemd jobs +that will start ROS automatically when the Backpack Computer start up: + +``` +source /etc/ros/setup.bash +rosrun boxer_bringup install +sudo systemctl daemon-reload +sudo systemctl start ros +sudo systemctl start ros-bridge +``` + +#### Testing Base Configuration + +You can check that the service has started correctly by checking the logs: + +``` +sudo journalctl -u ros +``` + +Your Boxer should now be accepting commands from your joystick (see next section). +The service will automatically start each time you boot your Boxer's computer. + +#### Pairing the Controller {#pairing-the-controller} + +##### PS4 Controller + + + +### Setting up Boxer's Network Configuration {#boxer-networking} + +Boxer is normally equipped with a combination Wi-Fi + Bluetooth module. +If this is your first unboxing, ensure that Boxer's wireless antennae are firmly screwed on to the chassis. +Boxer is equipped with a Backpack Computer mounted to the top of the Base Unit. The Base Unit is +also equipped with an internal computer. This section explains how to configure the networking for the Backpack Computer only. For +instructions on connecting the Base Unit's computer to a network, refer to the [OTTO 100 Documentation](https://docs.ottomotors.com). + +#### Enabling the OTTO App + +Many of Boxer's features are accessible via the OTTO App. This requires configuring the Base Unit to connect +to your Wi-Fi network. To do this, connect your laptop to the diagnostic ethernet port on the rear of the Base Unit. +Configure your laptop to have a static IP address on the 10.255.255.0/16 subnet, e.g. 10.255.255.100. + +Open a web browser and navigate to http://10.255.255.1:8090. You will be promted to enter your network credentials. + +Refer to [OTTO Motors' documentation](https://docs.ottomotors.com/en/30495-30526-connecting-a-robot-to-a-network.html) +for more details on configuring the Base Unit's networking. + +#### First Connection + +By default, Boxer Backpack Computer's Wi-Fi is in client mode, looking for the wireless network at the Clearpath factory. + + + +#### Changing the Default Password + + + +#### Wi-Fi Setup + + + +### Installing Remote Computer Software {#remote-computer-software} + +:::note + +This step is optional. + +::: + + + +#### Adding a Source Workspace + + + +#### Reconfiguring the Network Bridge + +In the event you must modify Boxer's ethernet bridge, you can do so by editing the Netplan configuration file +found at `/etc/netplan/50-clearpath-bridge.yaml`: + +``` +network: + version: 2 + renderer: networkd + ethernets: + # Configure eno1 to communicate with the OTTO 100 internal computer via the attachment port + eno1: + dhcp4: no + dhcp6: no + addresses: + - 10.252.252.100/16 + + # Bridge all the remaining ethernet ports together + bridge_eth: + dhcp4: no + dhcp6: no + match: + name: eth* + bridge_enp: + dhcp4: no + dhcp6: no + match: + name: enp* + bridge_enx: + dhcp4: no + dhcp6: no + match: + name: enx* + bridges: + br0: + # yes, allow DHCP4 connections on the bridge; this allows the Backpack Computer to accept + # wired internet connections, e.g. for installing updates + dhcp4: yes + dhcp6: no + interfaces: [bridge_eth, bridge_enp, bridge_enx] + addresses: + # Give the bridge the static 192.168.131.1 address for its internal ROS network + # Any IP-based ROS sensors connected to the backpack should use the 192.168.131.0/24 subnet + - 192.168.131.1/24 +``` + +This file will create a bridged interface called `br0` that will have a static address of 192.168.131.1, but will +also be able to accept a DHCP lease when connected to a wired router. By default all network ports named `en*` and +`eth*` are added to the bridge. This includes all common wired port names, such as: + +- `eth0` +- `eno1` +- `enx0123456789ab` +- `enp3s0` +- etc + +To include/exclude additional ports from the bridge, edit the `match` fields, or add additional `bridge_*` sections +with their own `match` fields, and add those interfaces to the `interfaces: [bridge_en, bridge_eth]` line near the +bottom of the file. + +We do not recommend changing the static address of the bridge to be anything other than `192.168.131.1`; changing +this may cause sensors that communicate over ethernet (e.g. lidars, cameras, GPS arrays) from working properly. + +--- + +## Using Boxer {#using-boxer} + +### Simulating Boxer {#simulating-boxer} + +Whether you actually have a Boxer robot or not, the Boxer simulator is a great way to get started with ROS robot development. +In this tutorial, we will go through the basics of starting Gazebo and RViz and how to drive your Boxer around. + +#### Installation + +To get started with the Boxer simulation, make sure you have a [working ROS installation](#remote-computer-software) set up on your Ubuntu desktop, and install the Boxer-specific metapackages for desktop and simulation: + +``` +sudo apt-get install ros-noetic-boxer-simulator ros-noetic-boxer-desktop +``` + +#### Launching Gazebo + +[Gazebo](https://gazebosim.org/home) is the most common simulation tool used in ROS. Boxer's model in Gazebo include reasonable approximations of its dynamics, including wheel slippage, skidding, and inertia. +To launch simulated Boxer in a simple example world, run the following command: + +``` +roslaunch boxer_gazebo boxer_world.launch +``` + +You should see the following window appear, or something like it. +You can adjust the camera angle by clicking and dragging while holding CTRL, ALT, or the Shift key. + +
+
+ +
Simulated Boxer
+
+
+ +The window which you are looking at is the Gazebo Client. +This window shows you the "true" state of the simulated world which the robot exists in. +It communicates on the backend with the Gazebo Server, which is doing the heavy lifting of actually maintaining the simulated world. +At the moment, you are running both the client and server locally on your own machine, but some advanced users may choose to run heavy duty simulations on separate hardware and connect to them over the network. + +:::note + +When simulating, you must leave Gazebo running. +Closing Gazebo will prevent other tools, such as RViz (see below) from working correctly. + +::: + +#### Launching RViz + +The next tool we will encounter is [RViz](http://wiki.ros.org/rviz). +Although superficially similar in appearance to Gazebo, RViz has a very different purpose. Unlike Gazebo, which shows the reality of the simulated world, RViz shows the robot's _perception_ of its world, whether real or simulated. +So while Gazebo won't be used with your real Boxer, RViz is used with both. + +You can use the following launch invocation to start RViz with a predefined configuration suitable for visualizing any standard Boxer config. + +``` +roslaunch boxer_viz view_robot.launch +``` + +You should see RViz appear. + +
+
+ +
Boxer RViz
+
+
+ +The visualization shows the depth data from the Base Unit's RealSense camera (the rainbow-colored points) as well as the data from the front and rear lidars. + +#### Driving with Interactive Controller + +RViz will also show Boxer's interactive markers around your Boxer's model. +These will appear as a blue ring and red arrows. +Depending on your robot, there will also be green arrows. +If you don't see them in your RViz display, select the Interact tool from the top toolbar and they should appear. + +Drag the red arrows in RViz to move in the linear X direction, and the blue circle to move in the angular Z direction. +If your robot supports lateral/sideways movement, you can drag the green arrows to move in the linear Y direction. +RViz shows you Boxer moving relative to its odometric frame, but it is also moving relative to the simulated world supplied by Gazebo. +If you click over to the Gazebo window, you will see Boxer moving within its simulated world. +Or, if you drive real Boxer using this method, it will have moved in the real world. + +All of Clearpath's robots use the same coordinate system, shown below: + +
+
+ +
Boxer Coordinate System
+
+
+ +| Axis | Positive Meaning | Negative Meaning | +| :--------- | :--------------------- | :---------------------- | +| X | Linear motion forwards | Linear motion backwards | +| Y | Linear motion left | Linear motion right | +| Z | Linear motion up | Linear motion down | +| X^ (roll) | Roll to the right | Roll to the left | +| Y^ (pitch) | Pitch down | Pitch up | +| Z^ (yaw) | Rotate left | Rotate right | + +Boxer, in its default configuration, will treat the linear Y and Z axes, as well a the angular X and Y axes, as zero +at all times; the robot is incapable of moving in these directions. + +Once you start your own development, have your nodes send `geometry_msgs/Twist` commands to the `cmd_vel` +topic to drive Boxer, either real or simulated. This is the standard ROS interface to differential-drive and +holonomic ground vehicles. + +The `geometry_msgs/Twist` message includes fields for linear X/Y/Z in m/s, as well as fields for angular X/Y/Z +in rad/s. + +``` +$ rosmsg info geometry_msgs/Twist +geometry_msgs/Vector3 linear + float64 x + float64 y + float64 z +geometry_msgs/Vector3 angular + float64 x + float64 y + float64 z +``` + +#### Control + +There are three ways to send your Boxer control commands: + +1. Using the provided PS4 controller. + Refer to the [User Manual](./user_manual_boxer/#controller) details on how to use the controller. + +2. Using the RViz instance above. + If you select the Interact option in the top toolbar, an interactive marker will appear around the Boxer and can be used to control speed. + +3. The [rqt_robot_steering plugin](http://wiki.ros.org/rqt_robot_steering). + Run the `rqt` command, and select **Plugins→Robot Tools→Robot Steering** from the top menu. + +Boxer uses [twist_mux](http://wiki.ros.org/twist_mux) to mix separate [geometry_msgs\Twist](http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html) control channels into the `/cmd_vel` topic. + +Additional velocity channels can be defined in [twist_mux.yaml](https://github.com/boxer-cpr/boxer/blob/noetic-devel/boxer_control/config/twist_mux.yaml), or can be piped into the lowest-priority `/cmd_vel` topic. + +#### Additional Simulation environments + +Boxer is supported by Clearpath's [additional simulation environments](https://github.com/clearpathrobotics/cpr_gazebo). +To use these environments, clone the repository into your workspace and build it: + +``` +cd $HOME/catkin_ws/src +git clone https://github.com/clearpathrobotics/cpr_gazebo.git -b noetic-devel +cd .. +rosdep install --from-paths src --ignore-src --rosdistro=noetic -r +catkin_make +source devel/setup.bash +``` + +Note that you may get warnings about missing dependencies for e.g. `warthog_gazebo` or `jackal_gazebo`. These +dependencies are only needed if you intend to simulate Clearpath's other robotic platforms in these environments. +If you only intend to simulate Boxer, you can safely ignore these missing dependencies. + +Because Boxer is an indoor platform, it is only usable in the `cpr_office_gazebo` and `cpr_obstacle_gazebo` environments + +To launch Boxer in the office environment, use: + +``` +roslaunch cpr_office_gazebo office_world.launch platform:=boxer +``` + +
+
+ +
Boxer in the Office World
+
+
+ +To launch Boxer in the obstacle environment, use + +``` +roslaunch cpr_obstacle_gazebo cpr_obstacle_world.launch platform:=boxer +``` + +
+
+ +
Boxer in the Obstacle World
+
+
+ +### Driving Boxer {#driving-boxer} + +There are four ways to drive Boxer and each way will work on a physical Boxer robot as well as on a simulated Boxer. + +1. Using the interactive remote controller in RViz. See [Simulating Boxer](#simulating-boxer). +2. Using autonomous navigation. See [Navigating Boxer](#navigating-boxer). +3. Using the controller for teleoperation. See below. +4. Publishing ROS messages. See below. + +:::warning + +Boxer is capable of reaching high speeds. +Careless driving can cause harm to the operator, bystanders, the robot, or other property. +Always remain vigilant, ensure you have a clear line of sight to the robot, and operate the robot at safe speeds. +We strongly recommend driving in normal (slow) mode first, and only enabling turbo in large, open areas that are free of people and obstacles. + +::: + +#### Driving with Remote Controller + +:::note + +For instructions on controller pairing, see [Pairing the Controller](#pairing-the-controller). + +::: + + + +#### Driving with ROS Messages + +You can manually publish `geometry_msgs/Twist` ROS messages to the `/cmd_vel` ROS topic to drive Boxer. + +For example, in terminal, run: + +``` +rostopic pub /cmd_vel geometry_msgs/Twist '{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}' +``` + +The command above makes Boxer drive forward momentarily at 0.5 m/s without any rotation. + +### Extending Boxer Startup + +Now that you've had Boxer for a while, you may be interested in how to extend it, perhaps add some more payloads, or augment the URDF. + +#### Startup Launch Context + +When ROS packages are grouped together in a directory and then built as one, the result is referred to as a workspace. +Each workspace generates a `setup.bash` file which the user may source in order to correctly set up important environment variables such as `PATH`, `PYTHONPATH`, and `CMAKE_PREFIX_PATH`. + +The standard system-wide setup file is in `/opt`: + +``` +source /opt/ros/noetic/setup.bash +``` + +When you run this command, you'll have access to `rosrun`, `roslaunch`, and all the other tools and packages installed on your system from Debian packages. + +However, sometimes you want to add additional system-specific environment variables, or perhaps packages built from source. +For this reason, Clearpath platforms use a wrapper setup file, located in `/etc/ros`: + +``` +source /etc/ros/setup.bash +``` + +This is the setup file which gets sourced by Boxer's background launch job, and in the default configuration, it is also sourced on your login session. +For this reason it can be considered the "global" setup file for Boxer's ROS installation. + +This file sets some environment variables and then sources a chosen ROS workspace, so it is one of your primary modification points for altering how Boxer launches. + +#### Launch Files + +The second major modification point is the `/etc/ros/noetic/ros.d` directory. +This location contains the launch files associated with the `ros` background job. +If you add launch files here, they will be launched with Boxer's startup. + +However, it's important to note that in the default configuration, any launch files you add may only reference ROS software installed in `/opt/ros/noetic`. +If you want to launch something from workspace in the home directory, you must change `/etc/ros/setup.bash` to source that workspace's setup file rather than the one from `/opt`. + +#### Adding URDF + +There are two possible approaches to augmenting Boxer's URDF. +The first is that you may simply set the `BOXER_URDF_EXTRAS` environment variable in `/etc/ros/setup.bash`. +By default, it points to an empty dummy file, but you can point it to a file of additional links and joints which you would like mixed into Boxer's URDF (via xacro) at runtime. + +The second, more sophisticated way to modify the URDF is to create a _new_ package for your own robot, and build your own URDF which wraps the one provided by [boxer_description](https://github.com/boxer-cpr/boxer/tree/noetic-devel/boxer_description). + +### Keeping Boxer Updated + +For details on updating Boxer software or firmware, refer to [Software Maintenance](./maintenance_boxer#software_maintenance). + +--- + +## Mapping and Navigating with Boxer {#navigating-boxer} + +:::note + +Boxer includes the latest autonomy software from OTTO, including [Fleet Manager](https://ottomotors.com/fleet-manager). + +Please refer to [OTTO Motors' documentation](https://docs.ottomotors.com) and the OTTO 100 user manual +for details on how to use OTTO's advanced autonomy software + +::: + +This section explains how to use basic navigation demos with Boxer. These examples can be used with a simulated Boxer +or with the physical robot. Note that if you are using the physical Boxer you also have access to the much more +advanced OTTO autonomy software. + +To get all Navigation related files for Boxer, run: + +``` +sudo apt-get install ros-noetic-boxer-navigation +``` + +Below are the example launch files for three different configurations for navigating Boxer: + +- Navigation in an odometric frame without a map, using only [move_base](http://wiki.ros.org/move_base). +- Generating a map using [Gmapping](http://wiki.ros.org/gmapping). +- Localization with a known map using [amcl](http://wiki.ros.org/amcl). + +If you are working in a simulation, bring up Boxer using the following command: + +``` +roslaunch boxer_gazebo boxer_race.launch +``` + +This will spawn Boxer in a relatively enclosed environment + +
+
+ +
Boxer in its simulated environment
+
+
+ +If you're working with a real Boxer, it's suggested to connect wirelessly via SSH and launch the ROS launch files from onboard the robot. +You'll need to have bidirectional communication with the robot's roscore in order to launch RViz on your workstation (see [here](#remote-computer-software)). + +### Navigation without a Map + +In the odometry navigation demo Boxer attempts to reach a given goal in the world within a user-specified tolerance. +The 2D navigation, generated by `move_base`, takes in information from odometry, laser scanner, and a goal pose and outputs safe velocity commands. +In this demo the configuration of move_base is set for navigation without a map in an odometric frame (that is, without reference to a map). + +To launch the navigation demo, run: + +``` +roslaunch boxer_navigation odom_navigation_demo.launch +``` + +To visualize with the suggested RViz configuration launch: + +``` +roslaunch boxer_viz view_robot.launch config:=navigation +``` + +
+
+ +
Boxer driving to its 2D Nav Goal in RViz
+
+
+ +To send goals to the robot, select the _2D Nav Goal_ tool from the top toolbar, and then click anywhere in the RViz view to set the position. +Alternatively, click and drag slightly to set the goal position and orientation. + +If you wish to customize the parameters of move_base, local costmap, global costmap and base_local_planner, clone [boxer_navigation](https://github.com/boxer-cpr/boxer/tree/noetic-devel/boxer_navigation) into your own workspace and modify the corresponding files in the `params` subfolder. + +### Making a Map {#gmapping-demo} + +Gmapping is an open-source tool for Simultaneous Localization And Mapping, or SLAM. SLAM allows a robot to build a +map of its environment while exploring, making it helpful when the robot is in unfaimilar environments. + +This section explains how to produce a map using Gmapping. We will use this map to set 2D nav goals in the +following section. + +To begin, run the following command: + +``` +roslaunch boxer_navigation gmapping.launch +``` + +And on your workstation, launch RViz with the suggested configuration: + +``` +roslaunch boxer_viz view_robot.launch config:=gmapping +``` + +:::note + +If you are driving a simulated Boxer you may find it easyer to launch RViz without the gmapping configuration: + +``` +roslaunch boxer_viz view_robot.launch +``` + +::: + +
+
+ +
RViz with Boxer's Gmapping configuration
+
+
+ +Now slowly drive the robot around to produce a map. If you are driving the robot using the interactive controls in +RViz you may find it helpful to change the visulaization's fixed frame from `map` or `odom` to `base_link`. Doing +so will keep the robot in a fixed position in the window, while the world rotates around the robot. + +When you're satisfied, you can save the produced map using [map_saver](http://wiki.ros.org/map_server#map_saver): + +``` +rosrun map_server map_saver -f mymap +``` + +This will create a `mymap.yaml` and `mymap.pgm` file in your current directory. + +The resulting map should look something like this: + +
+
+ +
Boxer's exported map
+
+
+ +### Navigation with a Map + +Using [amcl](http://wiki.ros.org/amcl), Boxer is able to globally localize itself in a known map. +AMCL takes in information from odometry, laser scanner and an existing map and estimates the robot's pose. + +To start the AMCL demo: + +``` +roslaunch boxer_navigation amcl_demo.launch map_file:=/path/to/my/map.yaml +``` + +If you don't specify `map_file`, it defaults to an included pre-made map of the default "Boxer World" environment which Boxer's simulator spawns in. +If you're using a real Boxer in your own environment, you'll definitely want to override this with the map created using the Gmapping demo. + +Before navigating, you need to initialize the localization system by setting the pose of the robot in the map. +This can be done using 2D Pose Estimate in RViz or by setting the amcl `initial_pose` parameters. To visualize with the suggested RViz configuration launch: + +``` +roslaunch boxer_viz view_robot.launch config:=localization +``` + +When RViz appears, select the _Set 2D Pose tool_ from the toolbar, and click on the map to indicate to the robot approximately where it is. + +### Advanced Mapping + +If you have an application which requires faster or more accurate SLAM capabilities, our commercial offerings +may be a good fit for your team. Please [get in touch for more details](http://www.clearpathrobotics.com/contact/). + +--- + +## Boxer Tests {#testing-boxer} + +Boxer robots come preinstalled with a set of test scripts as part of the `boxer_tests` ROS package, which can be run to verify robot functionality at the component and system levels. + +If your Boxer does not have the `boxer_tests` ROS package installed already, you can manually install it by opening terminal and running: + +``` +sudo apt-get install ros-noetic-boxer-tests +``` + +### ROS Tests + +The `ros_tests` script exposes a set of interactive tests to verify the functionality of core features. +These tests run at the ROS-level via ROS topics, and serve as a useful robot-level diagnostic tool for identifying the root cause of problems, or at the very least, narrowing down on where the root cause(s) may be. + +#### Running ROS Tests + +To run `ros_tests` on a Boxer robot, open terminal and run: + +``` +rosrun boxer_tests ros_tests +``` + +Upon running `ros_tests`, a list of available tests will be shown in a menu. +From the menu, you can choose individual tests to run, or simply choose the option to automatically run all the tests. + +The details of each test are shown below. + +- **Serial Number Test** + + The **Serial Number Test** checks that the robot's serial number is set correctly. + + This test checks the `ROS_ROBOT_SERIAL_NO` environment variable is set to a valid serial number. + +- **API Version Test** + + The **API Version Test** checks that the robot's API version is set correctly. + + This test checks the `BOXER_API_VERSION` environment variable is set to a valid API version, and that the robot is publishing data on ROS topics under this API version. + +- **ROS Bridge Test** + + The **ROS Bridge Test** checks that the ROS bridge is working properly, and that the robot's description model is loaded. + + This test checks that the list of expected ROS topics from the ROS bridge exist, and that these ROS topics are publishing data at the expected frequencies. The expected ROS topics are published by the robot's Base Unit, and the ROS bridge "bridges" these ROS topics to the robot's Backpack Computer, including the Base Unit's IMU, camera, laser, and battery data. + + This test also the robot's model is loaded into the `robot_description` ROS parameter. + +- **Emergency Stop Test** + + The **Emergency Stop Test** checks that the robot's emergency stop is working properly. + + This test subscribes to the `/platform/emergency_stop` ROS topic and checks that when the emergency stop is manually engaged and disengaged by the user, the emergency stop states are correctly reported on the `/platform/emergency_stop` ROS topic. + +- **Rotate Test** + + The **Rotate Test** rotates the robot counter clockwise 2 full revolutions and checks that the motors, IMU, and EKF odometry are working properly. + + This test: + + - Subscribes to the `/imu/module1/data` ROS topic to receive angular velocity measurements from the IMU's Gyroscope. These measurements are converted into angular displacement estimations, and the robot will rotate until 2 full revolutions are estimated. + - Subscribes to the `/odom` ROS topic to receive angular velocity estimations from the EKF odometry. These measurements are converted into angular displacement estimations, and are output as comparison to the angular displacement estimations from the IMU's Gyroscope. + - Publishes to the `/cmd_vel` ROS topic to send drive commands to rotate the robot. + - The user will be asked to verify that the robot rotates 2 full revolutions. + + :::note + + The **Rotate Test** rotates the robot using the IMU's Gyroscope data, which inherently will not be 100% accurate. + Therefore, some undershoot/overshoot is to be expected. + + ::: + +- **Drive Test** + + The **Drive Test** drives the robot forward 1 metre and checks that the motors, and EKF odometry are working properly. + + This test: + + - Subscribes to the `/odom` ROS topic to receive linear displacement estimations from the EKF odometry. The robot will drive forward until 1 metre is estimated, then it will drive backward until 1 metre is estimated. + - Publishes to the `/cmd_vel` ROS topic to send drive commands to drive the robot. + - The user will be asked to verify that the robot drives forward 1 metre. + + :::note + + The **Drive Test** drives the robot using the Odometry data, which inherently will not be 100% accurate. + Therefore, some undershoot/overshoot is to be expected. + + ::: diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/user_manual_boxer.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/user_manual_boxer.mdx new file mode 100644 index 000000000..bbcca89a0 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/boxer/user_manual_boxer.mdx @@ -0,0 +1,593 @@ +--- +title: Boxer User Manual +sidebar_label: User Manual +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import ComponentIntroductionBoxer from "/components/introduction_boxer.mdx"; +import Support from "/components/support.mdx"; +import ComponentUsingRos from "/components/using_ros.mdx"; +import ComponentCommonSafeWorkProcedures from "/components/common_safe_work_procedures.mdx"; +import ComponentSafetyWarning from "/components/safety_warning.mdx"; + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + + + +## Introduction + +Boxer is a large indoor mobile robot for prototyping and development of industrial applications. +Adapted from the OTTO Motors _OTTO 100 autonomous mobile robot (AMR)_, Boxer is programmable +and easily extensible with additional hardware. + +:::note + +Current Boxer shipments are based on OTTO 100 V2.5. Some shipments from 2021-2023 are based on +OTTO 100 V2.4. All information in this manual applies equally to both versions except where +otherwise noted. + +::: + + + +### Shipment Contents + +Your Boxer shipment contains the following: + +- Clearpath Robotics Boxer +- OTTO 100 Manual Charger +- Handheld Joystick Controller +- Optional: OTTO 100 Fast Charger + +If you elected to purchase standard payload modules or custom integration services with Boxer, then additional equipment will be included per your specific configuration, plus further documentation as required. + +### Hardware Overview + +#### System Architecture + +Boxer is built on the OTTO 100 AMR, which provides the core locomotion, safety, and sensing capabilities, along with a ROS 2 API +for control of the system. Boxer is typically augmented with a Backpack Computer, which allows for user software to be installed +and executed on the system, controlling the Base Unit through the ROS 2 API over a local Ethernet connection. The backpack +computer also allows for control and monitoring of any additional payloads added to Boxer. + +#### Exterior Features + +Below is an overview of the Boxer robot hardware that outlines the key components that you should be aware of in order to get started +with using your robot. Note that the front emergency stop button is only present on Boxer V2.5. + + + +
+ +
+
+ +
+
+ +
+ +
+
+ +
+
+
+ +#### Human-Machine Interface (HMI) Panel + +The back of Boxer has the Human-Machine-Interface panel _(HMI)_. +The HMI has 5 elements: + +1. Ethernet port +2. Power button +3. Emergency stop reset button +4. Chargeport +5. Rear emergency stop button + +
+ +
+ +#### Front Emergency Stop Button + +In addition to the rear emergency stop button described in the HMI Panel above, Boxer 2.5 (but not Boxer 2.4) +has a front emergency stop button, which is mounted to the right of the front safety LiDAR. Refer to +[Emergency Stop Buttons](#boxer-stop-buttons) for additional details. + +
+ +
+ + + +#### Body Lights + +Boxer includes RGB LED strips around its body. These lights express system status according to the table below. + +| LED Pattern | System State | +| :------------ | :-------------------------------------------------------------------------- | +| Solid Red | Robot is starting up | +| Flashing Red | Robot is emergency stopped or safety stopped | +| Circling Blue | Base Unit is in Manual mode, allowing it to be controlled via the ROS 2 API | + +At present these lights are not controllable through any ROS topics. + +#### Orientation References + +The reference frame used by all Clearpath Robotics ground robots is based on ISO 8855 +When commanded with a positive translational velocity (forward), wheels travel in the positive X-direction. +The direction of the axes differs from those used for roll, pitch, and yaw in aircraft, and care should be taken to ensure that data is interpreted correctly. + +
+
+ +
Boxer Coordinate System
+
+
+ +### System Specifications + +| Specification | Measurement | +| :--------------------------------- | :---------- | +| Dimensions, Length | 740 mm | +| Dimensions, Width | 550 mm | +| Dimensions, Height | 320 mm | +| Mass | 114 kg | +| Velocity, Max | 2.0 m/s | +| Obstacle, Max Step Height | 6 mm | +| Obstacle, Floor Gap | 13 mm | +| Operating Relative Humidity, Min | 0 % | +| Operating Relative Humidity, Max | 85 % | +| Operating Temperature, Min | 20 °C | +| Operating Temperature, Max | 30 °C | +| Storage Temperature, Min | -20 °C | +| Storage Temperature, Max | 35 °C | +| Operating Time, Standby | 8 hours | +| Operating Time, Continuous Driving | 3 hours | + +--- + +## Getting Started + +### Unboxing + +Boxer ships fully assembled and no assembly is required. +To unbox, remove the screws holding the top wood panel and the front wood panel. +Remove the screws holding the cross bracing. +An electric driver should be used to aid in the removal of the screws. +Lay the top wood panel down with one end on the edge of the crate and the other end on the ground to create a ramp as shown below. +Pull the robot out of the crate by hand, and then roll the robot down the wood ramp. + +
+ +
+ +### Powering Up + +1. Turn the 2 circuit breakers to the on position. + You will need to lift the metal bar to do this. +
+ +
+2. Press the Power Button. +
+ +
+3. Wait for the system to boot. + The Boxer's lights will go through a sequence of colors during this process: + + - All white for approximately 30 seconds + - All red for approximately 30 seconds + - Flashing white for less than 5 seconds + - Then flashing red + + Note that the Boxer will be sounding an alarm which will be adjusted during the base unit configuration below. + +### Base Unit Configuration + +Connect the Boxer to the Wi-Fi network using the steps below. +Refer to [Connecting to a robot using an Ethernet cable](https://docs.ottomotors.com/en/30495-30527-connecting-to-a-robot-using-ethernet.html) and +[Connecting a robot to a network](https://docs.ottomotors.com/en/30495-30526-connecting-a-robot-to-a-network.html) for more details. + +1. Configure a network port on your laptop with the IP address <10.255.255.200>. +2. Connect a network cable from the port on your laptop to the network port on the rear of the Base Unit. +
+ +
+3. On your laptop, open a web-browser like Google Chrome, and go to the address +4. Enter the required information to connect to your network. + See your IT administrator for proper settings for your network. +
+ +
+
+ +
+5. Take note of the hostname. + It will be used in future steps for accessing the robot. + You can also find this hostname engraved on the HMI panel, at the rear of the Boxer. +6. Click _Save and Restart Network_. +7. Power cycle the Boxer. +8. Using the hostname or static IP set in the Wi-Fi setup above, load the _OTTO App_ user interface by opening a web-browser, and going to the address _http://hostname:5000_. + (e.g. [http://A31-002124076:5000](http://A31-002124076:5000) ) + The _OTTO App_ should load, and look similar to the image below. +
+ +
+9. Adjust the volume to an appropriate level for your facility by selecting the _Vehicle_ option from the top-left menu and adjusting the volume as appropriate. +
+ +
+10. You have finished onfiguring the Boxer Base Unit, and it's ready for use. + +### Backpack Computer Configuration + +This section outlines how to configure the Backpack Computer attached to the Base Unit. +You can omit this section if your Boxer is not equipped with a Backpack Computer. + +The Backpack Computer is an add-on computer that is networked with the Base Unit's computer, located inside then Boxer. +This Backpack Computer can be used to integrate peripherals, like sensors and manipulators. +A ROS bridge automatically runs upon booting the Backpack Computer, and transmits the Base Unit computer's ROS data to the Backpack Computer. +This ROS bridge allows you to leverage the Base Unit for your own application. +The Backpack Computer uses Netplan as its network configuration tool, and has a static IP address of <192.168.131.1>. + +#### Connecting to the Backpack Computer + +You can connect to the Backpack Computer on Boxer over a wired or Wi-Fi connection. + +To connect to the Backpack Computer over a wired connection: + +1. Configure a network port on your laptop with the IP address <192.168.131.100>. +2. Connect a network cable from your laptop to an open network port on the Backpack Computer. +3. Test the connection between the user computer and Backpack Computer by opening a terminal and entering: `ping 192.168.131.1 ` +4. From your laptop's terminal, you can access the Backpack Computer by entering: `ssh administrator@192.168.131.1` + +To connect to the Backpack Computer over a Wi-Fi connection: + +1. Connect your laptop to the same Wi-Fi network as the Backpack Computer. +2. Note the IP address of the Backpack Computer's wireless interface by running this command the Backpack Computer's terminal: `ip a` +3. To test the connection between your laptop and Backpack Computer, enter this command in a terminal from your laptop: `ping ` (eg. `ping 192.168.0.11`) +4. From your laptop's terminal, you can access the Backpack Computer by entering: `ssh administrator@` (eg. `ssh administrator@192.168.0.11`) + +#### Connecting the Backpack Computer to a Wi-Fi Network + +To connect the Backpack Computer to a wireless network follow these steps: + +1. Access the Backpack Computer over an SSH connection. + Since the Backpack Computer is presumably not connected to a Wi-Fi network yet, you will need to access the Backpack Computer over a wired connection. + The previous section details how to connect to the Backpack Computer over a wired connection. +2. Once you have accessed the Backpack Computer, create a netplan configuration by running the following command. + + sudo touch /etc/netplan/60-wifi.yaml + + This will create a file called _60-wifi.yaml_ inside of the _/etc/netplan/_ directory. + +3. Open _/etc/netplan/60-wifi.yaml_ with your favourite text editor and populate it. + Use this example configuration file as reference: + + ``` + network: + wifis: + # change wlp2s0 to exactly match your wireless interface + # common values are wlp2s0, wlp3s0, wlan0, etc... + # if you aren't sure, use the `iwconfig` or `ip a` command + wlp2s0: + optional: true + access-points: + # replace "my-ssid" with the SSID of your wireless network + my-ssid: + # put your wireless password here + password: wifi_password_goes_here + # DHCP4 should be enabled for most wireless routers + # alternatively you can use a static IP address. + # e.g, uncomment the following + #addresses: [192.168.1.100/24] + #gateway: 192.168.1.1 + #dhcp4: false + dhcp4: true + dhcp4-overrides: + send-hostname: true + ``` + +4. Connect the Backpack Computer to the wireless network by running the command below. + Note that this may take a moment to complete: + + ``` + sudo netplan apply + ``` + +5. To verify that the Backpack Computer is connected to the wireless network, check that the Backpack Computer has an IP address assigned to its wireless interface by running: + + ``` + ip a + ``` + +### Battery Charging + +The system can be charged using an [OTTO 100 Manual Charger](https://ebikes.ca/product-info/grin-products/cycle-satiator.html) or an [OTTO 100 Fast Charger](https://docs.ottomotors.com/en/84902-86097-100-fast-charger.html). +Details for use and installation are provided in the linked User Manuals. + +Only use the OTTO 100 Manual Charger or OTTO 100 Fast Charger provided with your Boxer. +Use of other chargers may cause damage or injury. + +--- + +## Operation + +This section outlines how to use the basic functions of the Boxer platform in order to get started quickly. +There are several methods of operating the robot. + +### Getting Started with the OTTO User Interface + +This section details how to get the Robot driving around using the OTTO user interface. + +1. Power on the system. +2. Ensure that all emergency stop buttons are released by pulling out the red buttons at the front (V2.5 only) and rear of the unit, and then pressing the blue emergency stop Reset button. +
+ +
+
+ +
+3. Using the base Boxer's hostname or static IP, open the OTTO App by entering the following in your laptop's web-browser: + + http://:5000 + +4. You are now ready to start driving your system. + +### Driving Manually + +To drive the robot manually, follow the steps below. + +1. Power up the robot and connect to the OTTO App at `http://:5000` +2. The first time after power-up, it is necessary to take the system out of neutral by clicking on the joystick icon at the bottom right of the interface. +
+ +
+3. Ensure that the system is in manual mode and use the _thumbstick_ at the bottom right of the interface to drive the robot in the desired direction. + Note that the maximum speed can be adjusted using the slider _Tortoise-Hare_ at the bottom of the interface. + We recommended you begin at slow speeds until you become comfortable with how to control the robot. +
+ +
+ +### Mapping + +Prior to navigating autonomously, a map of the facility must be created. +The details of creating a map are beyond the scope of this document. +Detailed instructions for mapping can be found here: + +- [OTTO App training](https://otto.talentlms.com/) + +### Connecting and Using the Controller {#controller} + +To use your controller, it must be paired with your Boxer and powered on. +If your purchased the Backpack Computer from Clearpath Robotics, your controller is already paired with your Boxer. +If your controller has become unpaired or if you wish to pair a new controller, following the instructions in the +[Boxer Tutorials](./tutorials_boxer#pairing-the-controller). + +To use the controller: + +1. Power up the robot and connect to the OTTO App at `http://:5000` +2. The system will boot up into a neutral state. + Take the robot out of _Neutral_ by clicking the _Joystick_ icon at the bottom right of the interface. +3. Release all emergency stop buttons and press the emergency stop reset button. +4. Press the PS button on the controller to sync with the robot. + Once the blue LED on the top of the controller is solid, the Robot is paired and ready to move. + Hold the L1 trigger button to engage the enable switch. + Push the left thumbstick in the direction you wish to move the Boxer. +5. For full speed mode, hold the R1 trigger. + Note that it is recommended that you use full speed mode only when comfortable with the operation of the Boxer. +
+ +
+ +### Using ROS + + + +To quickly get started running ROS with your Boxer follow the instructions below. + +Upon booting the Boxer, ROS will begin running on both the Base Unit computer and the Backpack Computer. +The Boxer can be operated using ROS over its ROS topics, and there are two ways of interfacing with Boxer's ROS topics: + +1. SSH into Boxer's Backpack Computer, or +2. Setting the Boxer's Backpack Computer as the ROS Master on a local computer. + +You can SSH into the Boxer's Backpack Computer by connecting a network cable directly between your PC and an open network port +on the Backpack Computer. Configure your computer to have a static IP address on the `192.168.131.0/24` subnet, for +example `192.168.131.100`>`. Once this is done you can log into the robot by running: + +``` +ssh administrator@192.168.131.1 +``` + +If your laptop is connected to the same Wi-Fi network as the Boxer, you can SSH into the Backpack Computer using the robot's IP address on the Wi-Fi network (e.g. `192.168.1.11`) +You may need to SSH over a wired connection and use the `ip a` command to determine what Wi-Fi address has been assigned to the Backpack Computer. + +``` +ssh administrator@ +``` + +The ROS topics on Boxer can be seen by running: + +``` +rostopic list +``` + +Data from sensors such as the camera, internal IMU, front laser, and rear laser can be seen with: + +``` +rostopic echo /realsense/depth/image_rect_raw +rostopic echo /imu/module0/data +rostopic echo /front/scan +rostopic echo /rear/scan +``` + +Boxer can be driven using its kinematic controller by publishing drive commands to the `/cmd_vel` ROS topic. +For example, to drive Boxer forward slowly: + +``` +rostopic pub /cmd_vel geometry_msgs/Twist "linear +x: 0.1 +y: 0.0 +z: 0.0 +angular: +x: 0.0 +y: 0.0 +z: 0.0" +-r 10 +``` + +Boxer can be visualized and controlled through RViz. +On you laptop, set the Boxer's Backpack Computer as the ROS Master, and run the following command to view Boxer in RViz. + +``` +roslaunch boxer_viz view_robot.launch +``` + +RViz allows you to interactively drive Boxer around. +Note that the Boxer-specific packages must be installed and sourced on your laptop before to running the command, otherwise, Boxer will not load correctly in RViz. + +To restart ROS without having to reboot the Boxer: + +``` +sudo systemctl restart ros +sudo systemctl restart ros-bridge +``` + +--- + +## Safety Considerations {#safety} + +Clearpath Robotics is committed to high standards of safety. +The Boxer robot contains several features to protect the safety of users and the integrity of the vehicle. + +### General Warnings + +Use of an autonomous robot is inherently dangerous. + +For the safety of yourself and others, always conduct initial experiments and software development with +the robot raised off the ground. Place a wooden crate, a set of sawhorses, a sturdy storage tub, or any +other solid flat structure under Boxer to keep the wheels clear of the +ground ("up on blocks"). + +When starting out, favour slower wheel speeds. +Operating at such speeds will allow for more reaction time in the case of unexpected behaviour. + +When the robot is operating, keep clear of the wheels. + +Refer to the [OTTO 100 V2.5 Operation and Maintenance Manual](https://docs.ottomotors.com/PDFs/100-v2.5-OMM.pdf) for further safety precautions when using self-driving vehicles. + +### Emergency Stop Buttons {#boxer-stop-buttons} + +:::warning + +Ensure the emergency stop buttons are accessible at all times. +Avoid mounting payloads that extend over the front or rear of Boxer and would occlude the emergency stop buttons. + +::: + +Please take time to locate the red emergency stop buttons on the front (V2.5 only) and rear and of the system. +The emergency stop function allows a person in the physical vicinity of the robot to halt its motion and prevent re-initiation of motion. +This emergency stop system is intended for use in emergency situations. +The emergency stop system should not be used as the means of controlling robot motion during regular operation. + +When any emergency stop button is pressed, it provides a secure way to stop the robot movement, but does not control power attached by the attachment panel. +The emergency stop function can be reset by pulling out all the red emergency stop buttons until they return to an extended position and then pressing the emergency stop reset button. +The robot may begin moving again immediately after the emergency stop reset button has been pressed. + +When in emergency stop mode, the light strip will be flashing red and Boxer will not drive. +The commands received during emergency stop mode are not buffered; Boxer will always act on the latest commands received. +This means that if the commands are stopped before the stop is released, the Boxer will not move. +If the commands are continued, Boxer will move at the speed commanded once the stop is released. + +### Safety Lidars + +Boxer is also equipped with safety lidars in the front and back that will cause the robot to lose power if a collision is predicted, +or if the robot is operating too fast in an enclosed environment. The safety stop is automatic, and is not controlled through any ROS +topics. Once the danger has passed the safety stop will automatically disengage. + +If Boxer seems to be stuck in a safety stop, check that there is no dirt or debris on either the front or rear lidars. Wipe the +lidars down using an appropriate lidar wipe or soft cloth to remove any dirt. + +### Recommended Safe Work Procedures + + + +--- + +## Support + + diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/_category_.json new file mode 100644 index 000000000..7af794442 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Dingo", + "position": 1 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/_category_.json new file mode 100644 index 000000000..e5f1838f9 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Integration", + "position": 3 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/integration_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/integration_dingo.mdx new file mode 100644 index 000000000..e7b86eeea --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/integration_dingo.mdx @@ -0,0 +1,258 @@ +--- +title: Dingo Integration +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; +import ComponentPacsMechanical from "/components/pacs_mechanical.mdx"; +import ComponentCommonSoftwareIntegration from "/components/common_software_integration.mdx"; +import Support from "/components/support.mdx"; + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + + + +To attach custom hardware to Dingo, you will have to take care of mechanical mounting, electrical +supply, and software integration. This guide aims to equip you with respect to these challenges. + +--- + +### Mechanical Mounting + +When determining mechanical mounting, you have two options, both of which are described below. + +- the "Standard" mounting pattern on Dingo's trough cover +- the "PACS™" mounting system and associated kits + +#### Mechanical, Standard + +A standard Dingo is delivered with an 80 mm square mounting pattern of M5 threaded holes on Dingo's trough cover as shown +in [Exterior Features](../user_manual_dingo#dingo-exterior-features), which can be used for attaching external payloads. +The mounting holes come with M5 screws pre-installed. +You may mount your hardware directly onto the trough cover or you may design and mount a new plate to the trough cover and secure it to the trough cover using M5 screws. + +#### Mechanical, PACS™ + + + +Refer to the following pages for Dingo brackets that can simplify your integration. + +- [Top Plate](./kits/top_plate_dingo) +- [Riser Full](./kits/riser_full_dingo) + +### Electrical Integration {#dingo-payload-electrical-integration} + +Except for bus-powered USB cameras, most payloads have separate leads for power and data. + +#### Data Connections + +Data connections may be brought through the openings in the trough cover and connected directly to the internal computer. + +Dingo's internal computer options support USB3 and Ethernet connectivity. +In addition, the PCIe Gen3 x16 slot may be used to supply a GPU or other attachements, as necessary. +Additionally, the internal mounting area may be used for an Ethernet switch, when attaching multiple Ethernet payloads, or for a PoE power injector as required. + +#### Connector Summary + +The Dingo MCU board provides a number of connections for power, relays, auxiliary inputs and auxiliary outputs. +These are summarized in the following table and described in more detail in the following sections. + +| MCU board label | MCU board connector | Mating connector | Crimp terminals | Crimping tool | +| :--------------- | :---------------------------------------------------------- | :---------------------------------------------------------- | :----------------------------------------------------------- | :--------------- | +| PWR1, PWR2 | Dingo 1.0: Molex 0039301040
Dingo 1.5: Molex 0039302040 | Dingo 1.0: Molex 0039012040
Dingo 1.5: Molex 0039014041 | Molex 0507528200 (AWG 20-22) or Molex 0503518100 (AWG 22-28) | Molex 2002184900 | +| VBAT | Molex 768250002 | Molex 1700010102 | Molex 0507528200 (AWG 20-22) or Molex 0503518100 (AWG 22-28) | Molex 2002184900 | +| INPUTS | TE 3-794682-8 | TE 794617-8 | TE 1-794610-1 (AWG 20-24) or TE 1-794611-1 (AWG 26-30) | TE 91391-1 | +| SW_IN | TE 2-1445094-2 | TE 1445022-2 | TE 1-794610-1 (AWG 20-24) or TE 1-794611-1 (AWG 26-30) | TE 91391-1 | +| AUX1, AUX2, AUX3 | TE 3-794682-4 | TE 794617-4 | TE 1-794610-1 (AWG 20-24) or TE 1-794611-1 (AWG 26-30) | TE 91391-1 | +| RELAY | TE 4-794682-0 | TE 1-794616-0 | TE 1-794610-1 (AWG 20-24) or TE 1-794611-1 (AWG 26-30) | TE 91391-1 | +| FAN | Molex 0533750210 | Molex 0511630200 | Molex 0507528200 (AWG 20-22) or Molex 0503518100 (AWG 22-28) | Molex 2002184900 | +| ESTOP | Molex 053370610 | Molex 0511630600 | Molex 0507528200 (AWG 20-22) or Molex 0503518100 (AWG 22-28) | Molex 2002184900 | + +#### User Power Connections + +The following are available as user power: unregulated battery power (see VBAT), regulated 12 V power (see PWR1 and PWR2), and regulated 5 V power (see PWR1 and PWR2). + +Similar to the data connections, the power leads may be brought through the trough cover and connected to the user power. +Remove the front trough cover by removing four flathead screws and locate the appropriate power connector on the MCU board. +Refer to the figure below for the location of the user power connectors. +Route the power from the MCU board to the appropriate location, either to the internal payload modules or through the openings in the trough cover to the topside payload. + + + +
+
+ +
Dingo 1.0 MCU and User Power
+
+
+
+ +
+
+ +
Dingo 1.5 MCU and User Power
+
+
+
+
+ +#### AUX Inputs {#dingo-aux-inputs} + +The Dingo MCU includes an 8-pin `INPUTS` connector and a 2-pin `SW_IN` connector that allow the user to provide inputs to the system. +The user can then subscribe to these inputs on the `/mcu/aux_inputs` ROS topic. +The AUX inputs are mapped to the ROS message bits as follows: + +- IN1: bit 0 +- IN2: bit 1 +- IN3: bit 2 + +Electrically, the `INPUTS` connector is used for IN1 and IN2, with pin mapping as outlined below. +Note that each of the two inputs can be 12 V or 24 V inputs, with a shared return path. +The inputs have opto-electrical isolation. + +- 1: 12 V power (for external input circuit, if needed) +- 2: IN1 return +- 3: GND (for external input circuit, if needed) +- 4: IN2 return +- 5: IN1 12 V input +- 6: IN1 24 V input +- 7: IN2 12 V input +- 8: IN2 24 V input + +Electrically, the `SW_IN` connector is used for IN3, with pin mapping as outlined below. +This is intended to be a 'switch' input and it generates a 100 ms pulse to the microcontroller when asserted. + +- 1: 3.3 V input (IN3) +- 2: GND + +#### AUX Outputs and Relay {#dingo-aux-outputs} + +The Dingo MCU includes three user-controlled outputs (AUX1, AUX2, AUX3), that can be controlled by publishing to the `/mcu/aux_outputs` ROS topic. +To enable the AUX outputs, simply publish a single message with the appropriate bits set to 1 to turn the output on and 0 to turn it off. +The state does not persist meaning new commands will need to keep the bit enabled as well. +The AUX outputs are mapped to the ROS message bits as follows: + +- AUX1: bit 0 +- AUX2: bit 1 +- AUX3: bit 2 + +For example, to disable all AUX outputs: + +``` +rostopic pub /mcu/aux_output std_msgs/UInt8 "data: 0" +``` + +For example, to enable all AUX outputs: + +``` +rostopic pub /mcu/aux_output std_msgs/UInt8 "data: 7" +``` + +For example, to enable just the AUX3 output: + +``` +rostopic pub /mcu/aux_output std_msgs/UInt8 "data: 4" +``` + +Each of the AUX outputs is a 4-pin connector with pin mapping as outlined below. + +**AUX1 Pin Mapping** + +- 1: VSYS (shore power or battery power) with 5 A fuse +- 2: VSYS (shore power or battery power) with 5 A fuse +- 3: GND +- 4: GND + +**AUX2 Pin Mapping** + +- 1: 12 V with 5 A fuse +- 2: 12 V with 5 A fuse +- 3: GND +- 4: GND + +**AUX3 Pin Mapping** + +- 1: 5 V with 5 A fuse +- 2: 5 V with 5 A fuse +- 3: GND +- 4: GND + +**Relays** + +In addition to the AUX output connectors, publishing to `/mcu/aux_outputs` also +controls the AUX relays. These relays are available through the 10-pin +connector on the MCU labelled `RELAY` with pin mapping: + +- 1 and 6: 12 V with 2 A fuse +- 5 and 10: GND +- 2 and 7: AUX1 relay closed with aux_outputs bit 0 is '1' +- 3 and 8: AUX2 relay closed with aux_outputs bit 1 is '1' +- 4 and 9: AUX3 relay closed with aux_outputs bit 2 is '1' + +#### Optional Fan {#dingo-fan} + +While a fan is not included by default with Dingo, a fan may be integrated into the system. +Electrically, connect a 12 V 2-pin fan to the MCU connector labelled `FAN` using a mating connector. +The pins should be connected as follows: + +- 1: 12 V @ 500mA max +- 2: GND + +Then, the use can publish a ROS message to the `/mcu/fans` topic to control the fan. + +#### Optional External Motion Stop {#dingo-external-motion-stop} + +In addition to the built-in Motion Stop button, an external motion-stop button can be added that has similar functionality. +Electrically, the external motion-stop button can be connected to the 6-pin MCU connector labelled `ESTOP` using a mating connector. + +The six pins should be connected as follows: + +- 1-2: to an external "normally closed" motion-stop breakout button: + - press to engage the motion stop + - twist and release the external motion stop button to clear the motion-stop + - to re-enable the motors, the Motion Stop Button on the HMI panel must be pressed +- 3-4: short these pins to indicate that external motion-stop is selected +- 5-6: short these pins to indicate that external motion-stop is present + +#### MCU Debug LEDs + +The Dingo MCU PCBA comes equipped with four LEDs controlled by Dingo firmware for debugging. +If the system is working properly, these LEDs functions as follows: + +- **DBG1**: toggles every 500 ms when main loop on MCU is running +- **DBG2**: on if MCU connected to ROS on computer; else false (same as COMMS LED on HMI) +- **DBG3**: toggles when MCU is relaying messages from CAN bus to computer +- **DBG4**: toggles when MCU is relaying messages from computer to CAN bus + +### Software Integration + + + +Refer to the following for more details: + +- [Computers](../../../accessories/computers) +- [Sensors](../../../accessories/sensors) +- [Manipulators](../../../accessories/manipulators) +- [Accessories](../../../accessories/add-ons) + +--- + +## Support {#support} + + diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/_category_.json b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/_category_.json new file mode 100644 index 000000000..29029fd60 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Kits", + "position": 2 +} diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/riser_full_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/riser_full_dingo.mdx new file mode 100644 index 000000000..43bf58d45 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/riser_full_dingo.mdx @@ -0,0 +1,101 @@ +--- +title: Full Riser +sidebar_position: 3 +--- + +
+ +
+ +## Sales Kits + +| Description | Sales Kit | +| :------------------------- | :-------: | +| Kit, Riser Full—Dingo, 100 | 027032 | +| Kit, Riser Full—Dingo, 200 | 027033 | +| Kit, Riser Full—Dingo, 300 | 027034 | +| Kit, Riser Full—Dingo, 400 | 027035 | +| Kit, Riser Full—Dingo, 500 | 027036 | + +## Parts List + +| ID | Description | CPR item | Quantity | +| :-: | :-------------------------------------------------- | :------------------------------------------------------: | :------: | +| 1 | Plate—Integration, 510 X 430 | [026909](/assets/pdf/clearpath_robotics_026909.pdf) | 1 | +| 2A | Shaft, Round—Ø12, M5 male, M5 female, 93.5 | [027041](/assets/pdf/clearpath_robotics_027041-TDS1.pdf) | 4 | +| 2B | Shaft, Round—Ø12, M5 male, M5 female, 193.5 | [027042](/assets/pdf/clearpath_robotics_027042-TDS1.pdf) | 4 | +| 2C | Shaft, Round—Ø12, M5 male, M5 female, 293.5 | [027043](/assets/pdf/clearpath_robotics_027043-TDS1.pdf) | 4 | +| 2D | Shaft, Round—Ø12, M5 male, M5 female, 393.5 | [027044](/assets/pdf/clearpath_robotics_027044-TDS1.pdf) | 4 | +| 2E | Shaft, Round—Ø12, M5 male, M5 female, 493.5 | [027045](/assets/pdf/clearpath_robotics_027045-TDS1.pdf) | 4 | +| 3 | Screw, Cap, Round Head—M5×0.8 X 14, Stainless Steel | 023319 | 4 | + +## Tools + +- Hex Key, 3 mm +- Open End Wrench, 10 mm +- Torque wrench _(optional, for safety applications)_ +- Loctite 243 thread locker _(optional, for high vibration applications)_ + +## Installation + +### Step 1 + +Remove four M5×0.8 screws from the Dingo's top plates where you will mount the riser. + +
+ +
+ +:::note + +We suggest you to remove the 3rd and 5th rows of screws from the front of the Dingo-D or Dingo-O. +You can choose different locations to suit your application, but this will require custom URDF software work. + +::: + +### Step 2 + +Insert the male threaded side of the shafts _(ID2)_ into the holes where you removed the screws in _Step 1_. + +:::note + +Torque these shafts to 5 N·m if you are concerned about them loosening from high vibration applications. + +::: + +:::note + +You may add a small amount of thread locker to these screws if you are concerned about them loosening from high vibration applications. + +::: + +### Step 3 + +Repeat this for the 3 remaining shafts. + +### Step 4 + +Place the riser's plate on top of the shafts. +The plate is symmetrical, so there is not a front / back side. + +### Step 5 + +Fasten the plate using 4 screws _(ID3)_ + +:::note + +Torque these screws to 5 N·m if you are concerned about them loosening from high vibration applications. + +::: + +:::note + +You may add a small amount of thread locker to these screws if you are concerned about them loosening from high vibration applications. + +::: diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo.mdx new file mode 100644 index 000000000..d4e6f8aff --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/integration_dingo/kits/top_plate_dingo.mdx @@ -0,0 +1,14 @@ +--- +title: Top Plate +sidebar_position: 2 +--- + +
+ +
+ +The standard top plates for the Dingo include M5×0.8 threaded holes that match the Clearpath PACS™ standard. +These top plates are included with all Dingo-D and Dingo-O robots. diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/maintenance_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/maintenance_dingo.mdx new file mode 100644 index 000000000..dd30742e3 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/maintenance_dingo.mdx @@ -0,0 +1,91 @@ +--- +title: Dingo Maintenance +sidebar_label: Maintenance +sidebar_position: 5 +--- + +import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; +import ComponentLeadAcidBatteryCare from "/components/maintenance/lead_acid_battery_care.mdx"; +import ComponentLeadAcidBatteryCareTips from "/components/maintenance/lead_acid_battery_care_tips.mdx"; +import ComponentLifepo4BatteryCareTips from "/components/maintenance/lifepo4_battery_care_tips.mdx"; +import GettingNewPackages from "/components/maintenance/getting_new_packages.mdx"; +import Support from "/components/support.mdx"; + + + +## Battery Care + +### Lead-Acid Battery Care + +Dingo's default power supply is a sealed 12 V lead-acid battery pack (VRLA), providing 20 Ah of charge. +These tips are intended to help keep your Dingo Lead-Acid Battery in tip-top shape. +With proper maintenance, the battery should maintain the majority of its capacity for hundreds of cycles. + + + +Your robot's battery charger works in 3 stages: + +1. Constant current charging or bulk charge (9 to 14.6 V @ 6 A): indicator LED is red +2. Constant voltage charging or topping charge (14.6 V @ 6 A down to 2 A): indicator LED is red +3. Trickle or Float charge (14.6 V @ 2 A down to 0 A): indicator LED is green + +The bulk of the capacity (70%) is regained during the first stage. + +It is important to let the charger complete all 3 stages whenever possible, to help maintain the life of the battery. +The initial stage will take 3 - 5 hours, and a complete charge may take up to 10 hours, depending on the +depth of discharge. + + + +Your robot's battery charger works in 3 stages: + +1. Constant current charging or bulk charge (9 to 14.6 V @ 6 A): indicator LED is red +2. Constant voltage charging or topping charge (14.6 V @ 6 A down to 2 A): indicator LED is red +3. Trickle or Float charge (14.6 V @ 2 A down to 0 A): indicator LED is green + +The initial stage will take 5 - 7 hours, and a complete charge may take up to 14 hours. + +### LiFEPO4 Battery Care + +:::note + +LiFEPO4 are not available for Dingo 1.0. They are only available for Dingo 1.5 and newer. + +::: + +Dingo's optional power supply is a Lithium Iron Phosphate battery pack (LiFEPO4), +providing minimum 20 Ah of charge. These tips are intended to help keep your Dingo LiFEPO4 Battery +in tip-top shape. With proper maintenance, the battery should maintain the majority of its capacity for +thousands of cycles, typically a 10x increase over SLA batteries. + +The LiFEPO4 battery charger works in 3 stages: + +1. Constant current charging or bulk charge (9 to 14.6 V @ 7 A): indicator LED is red +2. Constant voltage charging or topping charge (14.6 V @ 7 A down to 0.7 A): indicator LED is red +3. Balancing or Float charge (14.6 V @ 0.7 A down to 0 A): indicator LED is green + +The bulk of the capacity (70%) is regained during the first stage. + +It is important to let the charger complete all 3 stages whenever possible, to help maintain the life of the battery. +The initial stage will take 2 - 4 hours, and a complete charge may take up to 8 hours, depending on the depth of discharge. + + + +--- + +## Software Maintenance {#software_maintenance} + + + +### MCU Firmware Update + +Customer updates of Dingo firmware are not supported at this time. +Contact [Support](#support) if Dingo firmware updates are needed. + +--- + +## Support {#support} + + + +--- diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/troubleshooting_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/troubleshooting_dingo.mdx new file mode 100644 index 000000000..06a5da82c --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/troubleshooting_dingo.mdx @@ -0,0 +1,54 @@ +--- +title: Dingo Troubleshooting +sidebar_label: Troubleshooting +sidebar_position: 6 +--- + +import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; +import ComponentSupportIntroduction from "/components/support_introduction.mdx"; +import Support from "/components/support.mdx"; + + + + + +--- + +## Networking + +### Not getting Wi-Fi internet connection + +Refer to the [Networking page](../../../ros/networking). + +### Cannot connect to the robot's computer over a network cable + +Reter to the [Networking page](../../../ros/networking). + +--- + +## Computer + +### The computer does not automatically start + +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). + +### The computer keeps reverting to old BIOS settings + +Refer to the [Mini ITX troubleshooting page](../../accessories/computers/mini_itx). + +--- + +## ROS + +### ROS package is not starting + +Verify the upstart logs, `/var/log/upstart/husky_core.log`, to see if there are any error during upstart. + +### Sensors are not turning on + +1. Check that the sensor's User Power connector has the correct voltage. +2. If the voltage is correct, then review the [Troubleshooting section for the related sensor](../../accessories/sensors). + +## If the Issue Persists + + diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/tutorials_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/tutorials_dingo.mdx new file mode 100644 index 000000000..97a5fbef3 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/tutorials_dingo.mdx @@ -0,0 +1,984 @@ +--- +title: Dingo Tutorials +sidebar_label: Tutorials +sidebar_position: 4 +--- + +import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; +import ComponentPs4ControllerPairing from "/docs_versioned_docs/version-ros1noetic/components/_ps4_controller_pairing.mdx"; +import ComponentChangingDefaultPassword from "/docs_versioned_docs/version-ros1noetic/components/_changing_default_password.mdx"; +import ComponentWiredRobotConnection from "/docs_versioned_docs/version-ros1noetic/components/_wired_robot_connection.mdx"; +import ComponentWifiRobotConnection from "/docs_versioned_docs/version-ros1noetic/components/_wifi_robot_connection.mdx"; +import ComponentConfiguringNetworkBridge from "/docs_versioned_docs/version-ros1noetic/components/_configuring_network_bridge.mdx"; +import ComponentPerformingABackup from "/docs_versioned_docs/version-ros1noetic/components/_performing_a_backup.mdx"; +import ComponentInstallingRobotSoftware from "/docs_versioned_docs/version-ros1noetic/components/_installing_robot_software.mdx"; +import ComponentInstallingRemoteComputerSoftware from "/docs_versioned_docs/version-ros1noetic/components/_installing_remote_computer_software.mdx"; +import ComponentAddingASourceWorkspace from "/docs_versioned_docs/version-ros1noetic/components/_adding_a_source_workspace.mdx"; +import ComponentDrivingWithRemoteController from "/docs_versioned_docs/version-ros1noetic/components/_driving_with_remote_controller.mdx"; +import Support from "/components/support.mdx"; + + + +## Dingo Overview + +### Introduction + +Dingo a lightweight and easy-to-use unmanned indoor ground vehicle for ROS, suitable for research and rapid prototyping applications. +These tutorials will assist you with setting up and operating your Dingo. +The tutorial topics are listed in the right column and presented in the suggested reading order. + +For more information or to receive a quote, please [visit us online](http://clearpathrobotics.com/dingo). + +:::note + +These tutorials assume that you are comfortable working with ROS. +We recommend starting with our [ROS tutorial](https://www.clearpathrobotics.com/assets/guides/noetic/ros/index.html) if you are not familiar with ROS already. + +::: + +:::note + +These tutorials specifically target Dingo robots running Ubuntu 20.04 with ROS Noetic, as it is the standard OS environment for Dingo. +If instead you have an older Dingo robot running Ubuntu 18.04 with ROS Melodic, please follow [this tutorial](https://www.clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html) to upgrade the robot OS environment to Ubuntu 20.04 with ROS Noetic. + +::: + +[Dingo ROS Packages](#dingo-ros-packages) provides the references for the software packages and key ROS topics. + +[Dingo Software Setup](#dingo-software-setup) outlines the steps for setting up the software on your Dingo robot and optionally on a remote computer. + +[Using Dingo](#using-dingo) describes how to simulate and drive your Dingo. [Simulation](#simulating-dingo) is a great way for most users to learn more about their Dingo; +understanding how to effectively operate Dingo in simulation is valuable whether you are in the testing phase with software you intend to ultimately deploy on a physical Dingo or you do not have one and are simply exploring the platform's capabilities. +[Driving Dingo](#driving-dingo) covers how to teleoperate Dingo using the remote control, as well as safety procedures for operating the physical robot. +Anyone working with a physical robot should be familiar with this section. + +[Navigating Dingo](#navigating-dingo) is a follow-on to what is learned in the [Simulation](#simulating-dingo) tutorial, as navigation and map-making may be run in the simulated environment. +However, this content is applicable to both the simulator and the real platform, if your Dingo is equipped with a laser scanner. + +[Dingo Tests](#testing-dingo) outlines how to validate that your physical Dingo is working correctly. + +[Advanced Topics](#advanced-topics) covers items that are only required in atypical situations. + +--- + +## Dingo ROS Packages {#dingo-ros-packages} + +Dingo fully supports ROS; all of the packages are available in [Dingo Github](https://github.com/dingo-cpr). + +### Description Package {#description-package} + +The [dingo_description](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_description) repository provides a [URDF](http://wiki.ros.org/urdf) model of Dingo. + +Dingo's URDF model can be visualized in RViz. +Once you have installed the desktop software in an upcoming tutorial, you will be able to run: + +``` +roslaunch dingo_viz view_model.launch +``` + +
+
+ +
Dingo model
+
+
+ +### Environment Variables + +Dingo can be customized and extended through the use of several environment variables. +These are summarized in the [README](https://github.com/dingo-cpr/dingo/blob/melodic-devel/dingo_description/README.md) file. +Some of the most important ones are listed below. + +| Variable | Default | Description | +| :---------------------- | :------ | :-------------------------------------------------------------------------- | +| `DINGO_OMNI` | `0` | Set to 1 to switch from Dingo-D to Dingo-O (with omnidirectional wheels) | +| `DINGO_LASER` | `0` | Set to 1 to equip Dingo with a primary lidar unit, normally front-facing | +| `DINGO_LASER_SECONDARY` | `0` | Set to 1 to equip Dingo with a secondary lidar unit, normally rear-facing | +| `DINGO_LASER_3D` | `0` | Set to 1 to equip Dingo with a primary 3D lidar unit, normally front-facing | +| `DINGO_REALSENSE` | `0` | Set to 1 to equip Dingo with a RealSense depth camera | +| `DINGO_IMU_MICROSTRAIN` | `0` | Set to 1 to equip Dingo with a Microstrain IMU | + +### Mounting points + +Dingo-D has 6 evenly-spaced mounting points along its center channel for mounting sensors and other accessories. +Dingo-O has 7 similar mounting points. +The centers of these mounting points are represented as links in the URDF to facilitate adding sensors to simulated robots and modelling collisions when planning arm motions for mobile manipulation. + +| Link (front to back) | Dingo-D | Dingo-O | +| :------------------- | :------ | :------ | +| `front_mount` | Yes | Yes | +| `front_b_mount` | Yes | Yes | +| `front_c_mount` | Yes | Yes | +| `mid_mount` | No | Yes | +| `rear_c_mount` | Yes | Yes | +| `rear_b_mount` | Yes | Yes | +| `rear_mount` | Yes | Yes | + +
+
+ +
Dingo-D mount points
+
+
+ +
+
+ +
Dingo-O mount points
+
+
+ +Both versions of Dingo also provide a `front_bumper_mount`, located directly on the front of the robot. +While the physical robot does not have any mounting holes here, lightweight sensors (e.g. small cameras) can be placed here using double-sided adhesive if required. + +
+
+ +
Dingo-D front bumper mount
+
+
+ +### Configurations + +As an alternative to individually specifying each accessory, some fixed configurations are provided in the package. +These can be specified using the `config` arg to `description.launch`, and are intended especially as a convenience for simulation launch. + +| Config | Description | +| :------------ | :-------------------------------------------------- | +| `base` | Base Dingo | +| `front_laser` | Adds a SICK LMS1xx lidar to the Dingo's front mount | + +:::note + +Additional configurations coming soon + +::: + +### Key ROS Topics + +You can view all topics that are active using `rostopic list`. +The most important topics are summarized in the table below. + +| Topic | Message Type | Purpose | +| :------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `/cmd_vel` | `geometry_msgs/Twist` | Input to Dingo's kinematic controller. Publish here to make Dingo go. | +| `/odometry/filtered` | `nav_msgs/Odometry` | Published by `robot_localization`, a filtered localization estimate based on wheel odometry (encoders) and integrated IMU. | +| `/imu/data` | `sensor_msgs/IMU` | Published by `imu_filter_madgwick`, an orientation estimated based on the Dingo's internal IMU. | +| `/mcu/status` | `dingo_msgs/Status` | Low-frequency status data for Dingo's systems. This information is republished in human readable form on the `diagnostics` topic and is best consumed with the Robot Monitor. | +| `/mcu/aux_input` | `dingo_msgs/UInt8` | User can subscribe to this topic to monitor the MCU user inputs. See [AUX Inputs](./integration_dingo#dingo-aux-inputs). | +| `/mcu/aux_output` | `std_msgs/UInt8` | User can publish to this topic to enable and disable the AUX outputs as well as control relays on the MCU. See [AUX Outputs and Relays](./integration_dingo#dingo-aux-outputs). | +| `/mcu/fans` | `dingo_msgs/Fans` | User can publish to this topic to control an optionally installed fan. See details [Optional Fan](./integration_dingo#dingo-fan). | +| `/mcu/lights` | `dingo_msgs/Lights` | User can publish to this topic to override the default behavior of the Dingo corner LEDs. | + +--- + +## Dingo Software Setup {#dingo-software-setup} + +### Backing Up Robot Configuration + +Upgrading your Clearpath Dingo to ROS Noetic from older ROS distributions is a straightforward process; +however it's important to understand that each Dingo is different, having undergone customization to your specifications. +For more complete upgrade instructions see [this guide](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). + +Please take the time to understand what these modifications are, and how to recreate them on your fresh install of Ubuntu Focal/ROS Noetic. + +#### Performing a Backup {#performing-a-backup} + + + +### Installing and Configuring Robot Software + +:::note + +If you are upgrading your Dingo from an older version of ROS, please refer to our upgrade instructions [here](https://clearpathrobotics.com/assets/guides/kinetic/kinetic-to-melodic/index.html) +and [here](https://clearpathrobotics.com/assets/guides/melodic/melodic-to-noetic/index.html). + +::: + +#### Installing Dingo Software + +:::note + +The physical Dingo robot comes pre-configured with ROS and the necessary Dingo packages already installed; +therefore, you will only need to follow the instructions below if you are re-installing software on the Dingo. + +::: + + + +#### Testing Base Configuration + +1. To test your configuration, start the background service with the following command: + + ``` + sudo systemctl start ros + ``` + +2. The Comms indicator + should turn green. You can check that the service has started correctly by checking the logs: + + ``` + sudo journalctl -u ros + ``` + +3. Your Dingo should now be accepting commands from your joystick (see next section). + The service will automatically start each time you boot your Dingo's computer. + +#### Pairing the Controller {#pairing-the-controller} + +##### PS4 Controller + + + +### Setting up Dingo's Network Configuration {#dingo-networking} + +Dingo is normally equipped with a combination Wi-Fi + Bluetooth module. +If this is your first unboxing, ensure that Dingo's wireless antennae are firmly screwed on to the chassis. + +#### First Connection + +By default, Dingo's Wi-Fi is in client mode, looking for the wireless network at the Clearpath factory. + + + +#### Changing the Default Password + + + +#### Wi-Fi Setup + + + +### Installing Remote Computer Software {#remote-computer-software} + +:::note + +This step is optional. + +::: + + + +#### Adding a Source Workspace + + + +--- + +## Using Dingo {#using-dingo} + +### Simulating Dingo {#simulating-dingo} + +Whether you actually have a Dingo robot or not, the Dingo simulator is a great way to get started with ROS robot development. +In this tutorial, we will go through the basics of starting Gazebo and RViz and how to drive your Dingo around. + +#### Installation + +To get started with the Dingo simulation, make sure you have a [working ROS installation](#remote-computer-software) set up on your Ubuntu desktop, and install the Dingo-specific metapackages for desktop and simulation: + +``` +sudo apt-get install ros-noetic-dingo-simulator ros-noetic-dingo-desktop +``` + +#### Launching Gazebo + +[Gazebo](https://gazebosim.org/home) is the most common simulation tool used in ROS. Dingo's model in Gazebo include reasonable approximations of its dynamics, including wheel slippage, skidding, and inertia. +To launch simulated Dingo in a simple example world, run the following command: + +``` +roslaunch dingo_gazebo dingo_world.launch +``` + +You should see the following window appear, or something like it. +You will see a base Dingo spawned with no additional sensors. +You can adjust the camera angle by clicking and dragging while holding CTRL, ALT, or the Shift key. + +
+
+ +
Simulated Dingo in the Race World
+
+
+ +The window which you are looking at is the Gazebo Client. +This window shows you the "true" state of the simulated world which the robot exists in. +It communicates on the backend with the Gazebo Server, which is doing the heavy lifting of actually maintaining the simulated world. +At the moment, you are running both the client and server locally on your own machine, but some advanced users may choose to run heavy duty simulations on separate hardware and connect to them over the network. + +:::note + +When simulating, you must leave Gazebo running. +Closing Gazebo will prevent other tools, such as RViz (see below) from working correctly. + +::: + +:::note + +See also [Additional Simulation Worlds](#additional-sim). + +::: + +##### Simulation Configs + +Note that like Dingo itself, Dingo's simulator comes in multiple flavours called configs. +A common one which you will need often is the `front_laser` config. +If you close the Gazebo window, and then CTRL-C out of the terminal process, you can re-launch the simulator with a specific config. + +``` +roslaunch dingo_gazebo dingo_world.launch config:=front_laser +``` + +You should now see the simulator running with the simulated SICK LMS-111 laser present. + +
+
+ +
Simulated Dingo in the Race World with SICK LMS-111
+
+
+ +Gazebo not only simulates the physical presence of the laser scanner, it also provides simulated data which reflects the robot's surroundings in its simulated world. +We will visualize the simulated laser scanner data shortly. + +### Interfacing with Dingo + +Both simulated and real Dingo robots expose the same ROS interface and can be interacted with in the same way. + +:::note + +Please make sure that the desktop packages for Dingo are installed: + +``` +sudo apt-get install ros-noetic-dingo-desktop +``` + +::: + +#### Launching RViz + +The next tool we will encounter is [RViz](http://wiki.ros.org/rviz). +Although superficially similar in appearance to Gazebo, RViz has a very different purpose. Unlike Gazebo, which shows the reality of the simulated world, RViz shows the robot's _perception_ of its world, whether real or simulated. +So while Gazebo won't be used with your real Dingo, RViz is used with both. + +You can use the following launch invocation to start RViz with a predefined configuration suitable for visualizing any standard Dingo config. + +``` +roslaunch dingo_viz view_robot.launch +``` + +You should see RViz appear. + +
+
+ +
Dingo RViz
+
+
+ +The RViz display only shows what the robot knows about its world, which presently, is nothing. +Because the robot doesn't yet know about the barriers which exist in its Gazebo world, they are not shown here. + +#### Driving with Interactive Controller + +RViz will also show Dingo's interactive markers around your Dingo's model. +These will appear as a blue ring and red arrows. +Depending on your robot, there will also be green arrows. +If you don't see them in your RViz display, select the Interact tool from the top toolbar and they should appear. + +Drag the red arrows in RViz to move in the linear X direction, and the blue circle to move in the angular Z direction. +If your robot supports lateral/sideways movement, you can drag the green arrows to move in the linear Y direction. +RViz shows you Dingo moving relative to its odometric frame, but it is also moving relative to the simulated world supplied by Gazebo. +If you click over to the Gazebo window, you will see Dingo moving within its simulated world. +Or, if you drive real Dingo using this method, it will have moved in the real world. + +#### Visualizing Sensors + +The RViz tool is capable of visualizing many common robotic sensors, as well as other data feeds which can give us clues as to what the robot is doing and why. +A great place to start with this is adding the [LaserScan](http://wiki.ros.org/rviz/DisplayTypes/LaserScan) plugin to visualize the laser scans being produced by the simulated LMS-111. In the left panel, click the "Add" button, then select the "Topics" tab, and then select the `front/scan` topic: + +
+
+ +
Adding a laser scan visualization to Dingo
+
+
+ +Click "OK" and you should see laser scan points now visible in the RViz window, relative to the robot. + +
+
+ +
Visualizing Dingo with simulated laser scans
+
+
+ +If you use the interactive markers to drive around, you'll notice that the laser scan points move a little bit but generally stay where they are. +This is the first step toward map making using [Gmapping](#gmapping-demo). + +#### Control + +There are three ways to send your Dingo control commands: + +1. Using the provided PS4 controller. + Refer to the [User Manual](./user_manual_dingo/#controller) details on how to use the controller. + +2. Using the RViz instance above. + If you select the Interact option in the top toolbar, an interactive marker will appear around the Dingo and can be used to control speed. + +3. The [rqt_robot_steering plugin](http://wiki.ros.org/rqt_robot_steering). + Run the `rqt` command, and select **Plugins→Robot Tools→Robot Steering** from the top menu. + +Dingo uses [twist_mux](http://wiki.ros.org/twist_mux) to mix separate [geometry_msgs\Twist](http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html) control channels into the `dingo_velocity_controller/cmd_vel` topic. + +Additional velocity channels can be defined in [twist_mux.yaml](https://github.com/dingo-cpr/dingo/blob/melodic-devel/dingo_control/config/twist_mux.yaml), or can be piped into the lowest-priority `cmd_vel` topic. + +#### Odometry + +Dingo publishes odometry information on the `odometry/filtered` topic, as [nav_msgs/Odometry messages](http://docs.ros.org/api/nav_msgs/html/msg/Odometry.html). +These are generated by [ekf_localization_node](http://wiki.ros.org/robot_localization), which processes data from several sensor sources using an Extended Kalman filter (EKF). +This includes data from the wheel encoders and IMU (if available). + +Additional odometry information sources can be added to the EKF in [robot_localization.yaml](https://github.com/dingo-cpr/dingo/blob/melodic-devel/dingo_control/config/robot_localization.yaml). + +#### Diagnostics + +:::note + +Diagnostics are only applicable to real Dingo robots, not simulation. + +::: + +Dingo provides hardware and software system [diagnostics](http://wiki.ros.org/diagnostics) on the ROS standard `/diagnostics` topic. +The best way to view these messages is using the [rqt_runtime_monitor](http://wiki.ros.org/rqt_runtime_monitor) plugin. +Run the `rqt` command, and select **Plugins→Robot Tools→Runtime Monitor** from the top menu. + +The same information is also published as a [dingo_msgs\Status](https://docs.ros.org/en/api/dingo_msgs/html/msg/Status.html) message on the `Status` topic. + +### Driving Dingo {#driving-dingo} + +There are four ways to drive Dingo and each way will work on a physical Dingo robot as well as on a simulated Dingo. + +1. Using the interactive remote controller in RViz. See [Simulating Dingo](#simulating-dingo). +2. Using autonomous navigation. See [Navigating Dingo](#navigating-dingo). +3. Using the controller for teleoperation. See below. +4. Publishing ROS messages. See below. + +:::warning + +Dingo is capable of reaching high speeds. +Careless driving can cause harm to the operator, bystanders, the robot, or other property. +Always remain vigilant, ensure you have a clear line of sight to the robot, and operate the robot at safe speeds. +We strongly recommend driving in normal (slow) mode first, and only enabling turbo in large, open areas that are free of people and obstacles. + +::: + +#### Driving with Remote Controller + +:::note + +For instructions on controller pairing, [Pairing the Controller](#pairing-the-controller). + +::: + + + +#### Driving with ROS Messages + +You can manually publish `geometry_msgs/Twist` ROS messages to either the `/dingo_velocity_controller/cmd_vel` or the `/cmd_vel` ROS topics to drive Dingo. + +For example, in terminal, run: + +``` +rostopic pub /dingo_velocity_controller/cmd_vel geometry_msgs/Twist '{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}' +``` + +The command above makes Dingo drive forward momentarily at 0.5 m/s without any rotation. + +### Extending Dingo Startup + +Now that you've had Dingo for a while, you may be interested in how to extend it, perhaps add some more payloads, or augment the URDF. + +#### Startup Launch Context + +When ROS packages are grouped together in a directory and then built as one, the result is referred to as a workspace. +Each workspace generates a `setup.bash` file which the user may source in order to correctly set up important environment variables such as `PATH`, `PYTHONPATH`, and `CMAKE_PREFIX_PATH`. + +The standard system-wide setup file is in `opt`: + +``` +source /opt/ros/noetic/setup.bash +``` + +When you run this command, you'll have access to `rosrun`, `roslaunch`, and all the other tools and packages installed on your system from Debian packages. + +However, sometimes you want to add additional system-specific environment variables, or perhaps packages built from source. +For this reason, Clearpath platforms use a wrapper setup file, located in `/etc/ros`: + +``` +source /etc/ros/setup.bash +``` + +This is the setup file which gets sourced by Dingo's background launch job, and in the default configuration, it is also sourced on your login session. +For this reason it can be considered the "global" setup file for Dingo's ROS installation. + +This file sets some environment variables and then sources a chosen ROS workspace, so it is one of your primary modification points for altering how Dingo launches. + +#### Launch Files + +The second major modification point is the `/etc/ros/noetic/ros.d` directory. +This location contains the launch files associated with the `ros` background job. +If you add launch files here, they will be launched with Dingo's startup. + +However, it's important to note that in the default configuration, any launch files you add may only reference ROS software installed in `/opt/ros/noetic`. +If you want to launch something from workspace in the home directory, you must change `/etc/ros/setup.bash` to source that workspace's setup file rather than the one from `opt`. + +#### Adding URDF + +There are two possible approaches to augmenting Dingo's URDF. +The first is that you may simply set the `Dingo_URDF_EXTRAS` environment variable in `/etc/ros/setup.bash`. +By default, it points to an empty dummy file, but you can point it to a file of additional links and joints which you would like mixed into Dingo's URDF (via xacro) at runtime. + +The second, more sophisticated way to modify the URDF is to create a _new_ package for your own robot, and build your own URDF which wraps the one provided by [dingo_description](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_description). + +### Keeping Dingo Updated + +For details on updating Dingo software or firmware, refer to [Software Maintenance](./maintenance_dingo#software_maintenance). + +--- + +## Navigating Dingo {#navigating-dingo} + +To get all Navigation related files for Dingo, run: + +``` +sudo apt-get install ros-noetic-dingo-navigation +``` + +Below are the example launch files for three different configurations for navigating Dingo: + +- Navigation in an odometric frame without a map, using only [move_base](http://wiki.ros.org/move_base). +- Generating a map using [gmapping](http://wiki.ros.org/gmapping). +- Localization with a known map using [amcl](http://wiki.ros.org/amcl). + +Referring to the [Simulating Dingo](#simulating-dingo) instructions, bring up Dingo with the front laser enabled for the following demos: + +``` +roslaunch dingo_gazebo dingo_world.launch config:=front_laser +``` + +If you're working with a real Dingo, it's suggested to connect via SSH and launch the [dingo_navigation](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_navigation) launch files from on board the robot. +You'll need to have bidirectional communication with the robot's roscore in order to launch RViz on your workstation (see [here](#remote-computer-software)). + +### Navigation without a Map + +In the odometry navigation demo Dingo attempts to reach a given goal in the world within a user-specified tolerance. +The 2D navigation, generated by `move_base`, takes in information from odometry, laser scanner, and a goal pose and outputs safe velocity commands. +In this demo the configuration of move_base is set for navigation without a map in an odometric frame (that is, without reference to a map). + +To launch the navigation demo, run: + +``` +roslaunch dingo_navigation odom_navigation_demo.launch +``` + +To visualize with the suggested RViz configuration launch: + +``` +roslaunch dingo_viz view_robot.launch config:=navigation +``` + +
+
+ +
RViz with Dingo's odom navigation configuration
+
+
+ +To send goals to the robot, select the _2D Nav Goal_ tool from the top toolbar, and then click anywhere in the RViz view to set the position. +Alternatively, click and drag slightly to set the goal position and orientation. + +If you wish to customize the parameters of move_base, local costmap, global costmap and base_local_planner, clone [dingo_navigation](https://github.com/dingo-cpr/dingo/tree/melodic-devel/dingo_navigation) into your own workspace and modify the corresponding files in the `params` subfolder. + +### Making a Map {#gmapping-demo} + +In this demonstration, Dingo generates a map using Gmapping. Begin by launch the Gmapping launch file on the robot: + +``` +roslaunch dingo_navigation gmapping_demo.launch +``` + +And on your workstation, launch RViz with the suggested configuration: + +``` +roslaunch dingo_viz view_robot.launch config:=gmapping +``` + +
+
+ +
RViz with Dingo's Gmapping configuration
+
+
+ +You must slowly drive Dingo around to build the map. +As obstacles come into view of the laser scanner, they will be added to the map, which is shown in RViz. +You can either drive manually using the interactive markers, or semi-autonomously by sending navigation goals (as above). + +When you're satisfied, you can save the produced map using [map_saver](http://wiki.ros.org/map_server#map_saver): + +``` +rosrun map_server map_saver -f mymap +``` + +This will create a `mymap.yaml` and `mymap.pgm` file in your current directory. + +### Navigation with a Map + +Using [amcl](http://wiki.ros.org/amcl), Dingo is able to globally localize itself in a known map. +AMCL takes in information from odometry, laser scanner and an existing map and estimates the robot's pose. + +To start the AMCL demo: + +``` +roslaunch dingo_navigation amcl_demo.launch map_file:=/path/to/my/map.yaml +``` + +If you don't specify `map_file`, it defaults to an included pre-made map of the default "Dingo Race" environment which Dingo's simulator spawns in. +If you're using a real Dingo in your own environment, you'll definitely want to override this with the map created using the Gmapping demo. + +Before navigating, you need to initialize the localization system by setting the pose of the robot in the map. +This can be done using 2D Pose Estimate in RViz or by setting the amcl `initial_pose` parameters. To visualize with the suggested RViz configuration launch: + +``` +roslaunch dingo_viz view_robot.launch config:=localization +``` + +When RViz appears, select the _Set 2D Pose tool_ from the toolbar, and click on the map to indicate to the robot approximately where it is. + +--- + +## Dingo Tests {#testing-dingo} + +Dingo robots come preinstalled with a set of test scripts as part of the `dingo_tests` ROS package, which can be run to verify robot functionality at the component and system levels. + +If your Dingo does not have the `dingo_tests` ROS package installed already, you can manually install it by opening terminal and running: + +``` +sudo apt-get install ros-noetic-dingo-tests +``` + +### ROS Tests + +The `ros_tests` script exposes a set of interactive tests to verify the functionality of core features. +These tests run at the ROS-level via ROS topics, and serve as a useful robot-level diagnostic tool for identifying the root cause of problems, or at the very least, narrowing down on where the root cause(s) may be. + +#### Running ROS Tests + +To run `ros_tests` on a Dingo robot, open terminal and run: + +``` +rosrun dingo_tests ros_tests +``` + +Upon running `ros_tests`, a list of available tests will be shown in a menu. +From the menu, you can choose individual tests to run, or simply choose the option to automatically run all the tests. + +The details of each test are shown below. + +- **Lighting Test** + + The **Lighting Test** checks that the robot's lights are working properly. + + This test turns the lights off, red, green, and blue (in order) by publishing lighting commands to the `/cmd_lights` ROS topic. + The user will be asked to verify that the lights change to the expected colours. + +- **Motion Stop Test** + + The **Motion Stop Test** checks that the robot's motion-stop is working properly. + + This test subscribes to the `/mcu/status` ROS topic and checks that when the motion-stop is manually engaged by the user, the motion-stop state is correctly reported on the `/mcu/status` ROS topic. + The user will be asked to verify that the lights flash red while the motion-stop is engaged. + +- **ADC Test** + + The **ADC Test** checks that the robot's voltage and current values across its internal hardware components are within expected tolerances. + + This test subscribes to the `/mcu/status` ROS topic and checks that the voltage and current values across the internal hardware are within expected tolerances. + +- **Rotate Test** + + The **Rotate Test** rotates the robot counter clockwise 2 full revolutions and checks that the motors, IMU, and EKF odometry are working properly. + + This test: + + - Subscribes to the `/imu/data` ROS topic to receive angular velocity measurements from the IMU's Gyroscope. + These measurements are converted into angular displacement estimations, and the robot will rotate until 2 full revolutions are estimated. + - Subscribes to the `/odometry/filtered` ROS topic to receive angular velocity estimations from the EKF odometry. + These measurements are converted into angular displacement estimations, and are output as comparison to the angular displacement estimations from the IMU's Gyroscope. + - Publishes to the `/cmd_vel` ROS topic to send drive commands to rotate the robot. + - The user will be asked to verify that the robot rotates 2 full revolutions. + + :::note + + The **Rotate Test** rotates the robot using the IMU's Gyroscope data, which inherently will not be 100% accurate. + Therefore, some undershoot/overshoot is to be expected. + + ::: + +- **Drive Test** + + The **Drive Test** drives the robot forward 1 metre and checks that the motors, encoders, and encoder-fused odometry are working properly. + + This test: + + - Subscribes to the `/dingo_velocity_controller/odom` ROS topic to receive linear displacement estimations from the encoder-fused odometry. + The robot will drive forward until 1 metre is estimated. + - Subscribes to the `/feedback` ROS topic to receive linear displacement measurements from the individual encoders. + These measurements are output as comparison to the linear displacement estimations from the encoder-fused odometry. + - Subscribes to the `/joint_state` ROS topic to receive linear displacement measurements from individual the encoders. + These measurements are output as comparison to the linear displacement estimations from the encoder-fused odometry. + - Publishes to the `/cmd_vel` ROS topic to send drive commands to drive the robot. + - The user will be asked to verify that the robot drives forward 1 metre. + + :::note + + The **Drive Test** drives the robot using the Odometry data, which inherently will not be 100% accurate. + Therefore, some undershoot/overshoot is to be expected. + + ::: + +- **Cooling Test** + + The **Cooling Test** is an optional test that only applies to Dingo's with an external fan connected to the MCU, and checks that the external fan is working properly. + + This test makes the fan spin at different speeds by publishing fan speed commands to the `/mcu/cmd_fans` ROS topic. + The user will be asked to verify that the fan change to the expected speeds. + +### CAN Bus Test + +The `check_can_bus_interface` script checks that communication between the motors, encoders, robot's MCU, and robot's computer are working properly over the CAN bus interface. + +This script verifies that the `can0` interface is detected and activated, then proceeds to check the output of `candump` to verify that good CAN packets are being transmitted. +Based on the Dingo configuration, either Dingo-D or Dingo-O, this script will know to check for good CAN packets from 2 or 4 encoders, respectively. + +#### Running CAN Bus Test + +To run the `check_can_bus_interface` script on a Dingo robot, open terminal and run: + +``` +rosrun dingo_tests check_can_bus_interface +``` + +--- + +## Advanced Topics + +### Configuring the Network Bridge + + + +### Jetson Installation + +Refer to the [Jetson](../../accessories/computers/jetson/jetson_hardware) page for details on installing a Jetson in Dingo. + +### Additional Simulation Worlds {#additional-sim} + +In addtion to the default `dingo_world.launch` file, `dingo_gazebo` contains two additional launch files: + +- `empty_world.launch`, which spawns Dingo in a featureless, infinite plane; +- `spawn_dingo.launch`, which is intended to be included in any custom world to add a Dingo simulation to it. + +
+
+ +
Dingo in the Empty World environment
+
+
+ +To add a Dingo to any of your own worlds, simply include the `spawn_dingo.launch` file in your own world's launch: + +```markup + + + + + + + +``` + +Finally, Clearpath provides an additional suite of simulation environments that can be downloaded separately and used with Dingo, as described below. + +#### Clearpath Gazebo Worlds + +The Clearpath Gazebo Worlds collection contains 4 different simulation worlds, representative of different environments our robots are designed to operate in: + +- Inspection World: a hilly outdoor world with water and a cave +- Agriculture World: a flat outdoor world with a barn, fences, and solar farm +- Office World: a flat indoor world with enclosed rooms and furniture +- Construction World: office world, under construction with small piles of debris and partial walls + +Dingo is supported in the Office and Construction worlds. + +#### Installation + +To download the Clearpath Gazebo Worlds, clone the repository from github into the same workspace as your Dingo: + +``` +cd ~/catkin_ws/src +git clone https://github.com/clearpathrobotics/cpr_gazebo.git +``` + +Before you can build the package, make sure to install dependencies. +Because Clearpath Gazebo Worlds depends on all of our robot's simulation packages, and some of these are currently only available as source code, installing dependencies with `rosdep install --from-paths [...]` will likely fail. + +To simulate Dingo in the Office and Construction worlds the only additional dependency is the `gazebo_ros` package. + +Once the dependencies are installed, you can build the package: + +``` +cd ~/catkin_ws +catkin_make +source devel/setup.bash +``` + +#### Running the Office Simulation + +Office World is a small indoor environment representing a commercial office space. It features several large, open +areas with furniture, as well as a narrow hallway with smaller offices and meeting rooms. It is intended to simulate +missions in commercial spaces, such as facilitating deliveries, security monitoring, and inspecting equipment. + +
+
+ +
Dingo in the Office World
+
+
+ +To launch Office World with a Dingo, run the following command: + +``` +roslaunch cpr_office_gazebo office_world.launch platform:=dingo +``` + +You should see Dingo spawn in the office world, as pictured. You can see the complete layout of the office below: + +
+
+ +
The layout of Office World
+
+
+ +To add sensors to Dingo, use the environment variables described in [Description Package](#description-package). +For example, to simulate Dingo with a Sick LMS-1xx lidar, run: + +``` +export DINGO_LASER=1 +roslaunch cpr_office_gazebo office_world.launch platform:=dingo +``` + +You will see Dingo spawn with a lidar sensor mounted to it, which can be used for navigation as described in +[Simulating Dingo](#simulating-dingo). + +
+
+ +
Dingo in Office World with a lidar sensor
+
+
+ +#### Running the Construction Simulation + +Construction World is the same basic layout as Office World, representing the same office space under construction/renovation. +It is an indoor environment with small hills of debris/rubble, partial walls, and piles of construction supplies. It +is designed to simulate missions in any sort of construction site. + +
+
+ +
Dingo in the Construction World
+
+
+ +To launch Construction World with a Dingo, run the following command: + +``` +roslaunch cpr_office_gazebo office_construction_world.launch platform:=dingo +``` + +You should see Dingo spawn in the construction world, as pictured. You can see the complete layout of the office below: + +
+
+ +
The layout of Construction World
+
+
+ +To add sensors to Dingo, use the environment variables described in [Description Package](#description-package). +For example, to simulate Dingo with a Sick LMS-1xx lidar, run: + +``` +export DINGO_LASER=1 +roslaunch cpr_office_gazebo office_construction_world.launch platform:=dingo +``` + +You will see Dingo spawn with a lidar sensor mounted to it, which can be used for navigation as described in [Simulating Dingo](#simulating-dingo). + +--- + +## Support {#support} + + diff --git a/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/user_manual_dingo.mdx b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/user_manual_dingo.mdx new file mode 100644 index 000000000..536c7f663 --- /dev/null +++ b/docs_versioned_docs/version-ros1noetic/robots/indoor_robots/dingo/user_manual_dingo.mdx @@ -0,0 +1,637 @@ +--- +title: Dingo User Manual +sidebar_label: User Manual +sidebar_position: 1 +toc_min_heading_level: 2 +toc_max_heading_level: 4 +--- + +import ComponentIntroductionDingo from "/components/introduction_dingo.mdx"; +import ComponentSupport from "/components/support.mdx"; +import ComponentUsingRos from "/components/using_ros.mdx"; +import ComponentWiredRobotConnection from "/docs_versioned_docs/version-ros1noetic/components/_wired_robot_connection.mdx"; +import ComponentWifiRobotConnection from "/docs_versioned_docs/version-ros1noetic/components/_wifi_robot_connection.mdx"; +import ComponentRemoteRosConnectivity from "/docs_versioned_docs/version-ros1noetic/components/_remote_ros_connectivity.mdx"; +import ComponentCommonSafeWorkProcedures from "/components/common_safe_work_procedures.mdx"; +import ComponentSafetyWarning from "/components/safety_warning.mdx"; + +import Tabs from "@theme/Tabs"; +import TabItem from "@theme/TabItem"; + + + +## Introduction + +Dingo is a lightweight and easy-to-use unmanned indoor ground vehicle for ROS. + +There are two Dingo variants: + +- **Dingo-D** uses differential drive and has two module bays, one of which must be a battery module; the second module is typically a computer module. +- **Dingo-O** uses omnidirectional drive and has four module bays, at least two of which are typically battery modules; the other modules may be computer modules or networking equipment. + +
+