From d89a13c275938eacd11d5b389d7b70cf02f8b4ca Mon Sep 17 00:00:00 2001 From: Pyo Date: Thu, 15 Mar 2018 08:59:43 +0900 Subject: [PATCH 01/36] modified the LICENSE and package information for release --- LICENSE | 221 ++++++++++++++++++++++++++++++++++++++++++++++++------ README.md | 11 ++- 2 files changed, 206 insertions(+), 26 deletions(-) diff --git a/LICENSE b/LICENSE index 8954985..c0ee812 100755 --- a/LICENSE +++ b/LICENSE @@ -1,26 +1,201 @@ -Software License Agreement (BSD License) + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ -Copyright (c) 2014-2017, ROBOTIS CO., LTD. -All rights reserved. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of ROBOTIS nor the names of its contributors may be - used to endorse or promote products derived from this software - without specific prior written permission. + 1. Definitions. -THIS SOFTWARE IS PROVIDED BY ROBOTIS "AS IS" AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL ROBOTIS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; -OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF -ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index 02d6b48..8c6b748 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,9 @@ -# ROBOTIS-Framework -ROBOTIS Framework GIT REP MAIN +# robotis_framework -Documents : [ROBOTIS Framework WIKI](https://github.com/ROBOTIS-GIT/ROBOTIS-Documents/wiki/ROBOTIS-ROS-Framework-Documents) +[![GitHub version](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework.svg)](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework) [![Build Status](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework.svg?branch=master)](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework) + +ROS packages for the robotis_framework (meta package) + +# Documents +- ROS Wiki: http://wiki.ros.org/robotis_framework +- ROBOTIS e-Manual: http://emanual.robotis.com/docs/en/software/robotis_framework_packages/ From cd7d270988798283074431e1389b61f79f4d7519 Mon Sep 17 00:00:00 2001 From: Pyo Date: Tue, 20 Mar 2018 16:53:01 +0900 Subject: [PATCH 02/36] tested for system dependencies --- README.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8c6b748..c40af91 100755 --- a/README.md +++ b/README.md @@ -1,9 +1,18 @@ -# robotis_framework - +# ROBOTIS Framework Metapackage [![GitHub version](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework.svg)](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework) [![Build Status](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework.svg?branch=master)](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework) -ROS packages for the robotis_framework (meta package) +# Documents for robotis_framework packages +- [ROBOTIS e-Manual](http://emanual.robotis.com/docs/en/software/robotis_framework_packages/#robotis-framework) +- http://wiki.ros.org/robotis_framework +- http://wiki.ros.org/robotis_controller +- http://wiki.ros.org/robotis_device +- http://wiki.ros.org/robotis_framework_common -# Documents -- ROS Wiki: http://wiki.ros.org/robotis_framework -- ROBOTIS e-Manual: http://emanual.robotis.com/docs/en/software/robotis_framework_packages/ +# ROS packages related to ROBOTIS Framework +- [dynamixel_sdk](https://github.com/ROBOTIS-GIT/DynamixelSDK) +- [robotis_framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) +- [robotis_controller_msgs](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework-msgs) + +# Documents and Videos for ROBOTIS Framework +- [ROBOTIS e-Manual for Dynamixel SDK](http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/overview/) +- [ROBOTIS e-Manual for ROBOTIS Framework](http://emanual.robotis.com/docs/en/software/robotis_framework_packages/) \ No newline at end of file From ebffcc44c35a4d9b869a4496b07c3f18aa8e1888 Mon Sep 17 00:00:00 2001 From: Pyo Date: Thu, 22 Mar 2018 15:06:09 +0900 Subject: [PATCH 03/36] updated the CHANGELOG and version to release binary packages --- README.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index c40af91..fc06982 100755 --- a/README.md +++ b/README.md @@ -1,18 +1,22 @@ -# ROBOTIS Framework Metapackage -[![GitHub version](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework.svg)](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework) [![Build Status](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework.svg?branch=master)](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework) +## ROS Packages for ROBOTIS Framework +|Version|Kinetic + Ubuntu Xenial|Melodic + Ubuntu Bionic| +|:---:|:---:|:---:| +|[![GitHub version](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework.svg)](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework)|[![Build Status](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework.svg?branch=master)](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework)|-| -# Documents for robotis_framework packages -- [ROBOTIS e-Manual](http://emanual.robotis.com/docs/en/software/robotis_framework_packages/#robotis-framework) -- http://wiki.ros.org/robotis_framework +## ROBOTIS e-Manual for ROBOTIS Framework +- [ROBOTIS e-Manual for ROBOTIS Framework](http://emanual.robotis.com/docs/en/software/robotis_framework_packages) + +## Wiki for robotis_framework Packages +- http://wiki.ros.org/robotis_framework (metapackage) - http://wiki.ros.org/robotis_controller - http://wiki.ros.org/robotis_device - http://wiki.ros.org/robotis_framework_common -# ROS packages related to ROBOTIS Framework -- [dynamixel_sdk](https://github.com/ROBOTIS-GIT/DynamixelSDK) +## Open Source related to ROBOTIS Framework - [robotis_framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) - [robotis_controller_msgs](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework-msgs) +- [dynamixel_sdk](https://github.com/ROBOTIS-GIT/DynamixelSDK) -# Documents and Videos for ROBOTIS Framework -- [ROBOTIS e-Manual for Dynamixel SDK](http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/overview/) -- [ROBOTIS e-Manual for ROBOTIS Framework](http://emanual.robotis.com/docs/en/software/robotis_framework_packages/) \ No newline at end of file +## Documents and Videos related to ROBOTIS Framework +- [ROBOTIS e-Manual for ROBOTIS Framework](http://emanual.robotis.com/docs/en/software/robotis_framework_packages/) +- [ROBOTIS e-Manual for Dynamixel SDK](http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/overview/) \ No newline at end of file From e7e54f7c518e36b6b038806551d48b822dbe4ca3 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Sun, 15 May 2022 16:41:00 -0400 Subject: [PATCH 04/36] Create cmake.yml --- .github/workflows/cmake.yml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 .github/workflows/cmake.yml diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml new file mode 100644 index 0000000..97f7fe7 --- /dev/null +++ b/.github/workflows/cmake.yml @@ -0,0 +1,37 @@ +name: CMake + +on: + push: + branches: [ noetic ] + pull_request: + branches: [ noetic ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Configure CMake + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: ctest -C ${{env.BUILD_TYPE}} + From ec3ccb719103e0862bb1079d456de8e354e0bf64 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Sun, 15 May 2022 16:41:34 -0400 Subject: [PATCH 05/36] Create docker-publish.yml --- .github/workflows/docker-publish.yml | 93 ++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 .github/workflows/docker-publish.yml diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml new file mode 100644 index 0000000..b33bae0 --- /dev/null +++ b/.github/workflows/docker-publish.yml @@ -0,0 +1,93 @@ +name: Docker + +# This workflow uses actions that are not certified by GitHub. +# They are provided by a third-party and are governed by +# separate terms of service, privacy policy, and support +# documentation. + +on: + schedule: + - cron: '15 20 * * *' + push: + branches: [ noetic ] + # Publish semver tags as releases. + tags: [ 'v*.*.*' ] + pull_request: + branches: [ noetic ] + +env: + # Use docker.io for Docker Hub if empty + REGISTRY: ghcr.io + # github.repository as / + IMAGE_NAME: ${{ github.repository }} + + +jobs: + build: + + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + # This is used to complete the identity challenge + # with sigstore/fulcio when running outside of PRs. + id-token: write + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Install the cosign tool except on PR + # https://github.com/sigstore/cosign-installer + - name: Install cosign + if: github.event_name != 'pull_request' + uses: sigstore/cosign-installer@d6a3abf1bdea83574e28d40543793018b6035605 + with: + cosign-release: 'v1.7.1' + + + # Workaround: https://github.com/docker/build-push-action/issues/461 + - name: Setup Docker buildx + uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf + + # Login against a Docker registry except on PR + # https://github.com/docker/login-action + - name: Log into registry ${{ env.REGISTRY }} + if: github.event_name != 'pull_request' + uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + # Extract metadata (tags, labels) for Docker + # https://github.com/docker/metadata-action + - name: Extract Docker metadata + id: meta + uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + # Build and push Docker image with Buildx (don't push on PR) + # https://github.com/docker/build-push-action + - name: Build and push Docker image + id: build-and-push + uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a + with: + context: . + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + # Sign the resulting Docker image digest except on PRs. + # This will only write to the public Rekor transparency log when the Docker + # repository is public to avoid leaking data. If you would like to publish + # transparency data even for private images, pass --force to cosign below. + # https://github.com/sigstore/cosign + - name: Sign the published Docker image + if: ${{ github.event_name != 'pull_request' }} + env: + COSIGN_EXPERIMENTAL: "true" + # This step uses the identity token to provision an ephemeral certificate + # against the sigstore community Fulcio instance. + run: cosign sign ${{ steps.meta.outputs.tags }}@${{ steps.build-and-push.outputs.digest }} From 03abb3c90f55f69d9aaf60c12c65c833cf92b2d9 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Tue, 14 Jun 2022 03:34:16 -0400 Subject: [PATCH 06/36] Create docker-image.yml --- .github/workflows/docker-image.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 0000000..acdd5fa --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,18 @@ +name: Docker Image CI + +on: + push: + branches: [ "noetic" ] + pull_request: + branches: [ "noetic" ] + +jobs: + + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + - name: Build the Docker image + run: docker build . --file Dockerfile --tag my-image-name:$(date +%s) From 53d3a33277e62a12bd198d362e1b94c1f3495082 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Thu, 4 Aug 2022 05:38:18 -0400 Subject: [PATCH 07/36] Update cmake.yml --- .github/workflows/cmake.yml | 71 ++++++++++++++++++++++++++----------- 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 97f7fe7..31edac6 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -2,36 +2,65 @@ name: CMake on: push: - branches: [ noetic ] + branches: [ master ] pull_request: - branches: [ noetic ] + branches: [ master ] env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: build: - # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. - # You can convert this to a matrix build if you need cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ubuntu-latest - steps: - uses: actions/checkout@v3 - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} - - - name: Test - working-directory: ${{github.workspace}}/build - # Execute tests defined by the CMake configuration. - # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail - run: ctest -C ${{env.BUILD_TYPE}} + - name: Configure CMake 1 + run: cmake -E make_directory ${{runner.workspace}}/robotis_controller/build + - name: Configure CMake 2 + run: cmake -E make_directory ${{runner.workspace}}/robotis_device/build + + - name: Configure CMake 3 + run: cmake -E make_directory ${{runner.workspace}}/robotis_framework/build + + - name: Configure CMake 4 + run: cmake -E make_directory ${{runner.workspace}}/robotis_framework_common/build + + + + - name: Install dependencies + shell: bash + run: sudo apt-get update ; sudo apt-get install Date: Wed, 27 Sep 2023 09:45:50 -0400 Subject: [PATCH 08/36] latest pushes --- .github/workflows/cmake.yml | 67 +++++---------- docker/Dockerfile | 73 ++++++++++++++++ docker/gpu.Dockerfile | 90 ++++++++++++++++++++ requirements/requirements.txt | 39 +++++++++ requirements/ros_repository_requirements.txt | 9 ++ requirements/ros_requirements.txt | 15 ++++ requirements/system_requirements.txt | 29 +++++++ 7 files changed, 274 insertions(+), 48 deletions(-) create mode 100644 docker/Dockerfile create mode 100644 docker/gpu.Dockerfile create mode 100644 requirements/requirements.txt create mode 100644 requirements/ros_repository_requirements.txt create mode 100644 requirements/ros_requirements.txt create mode 100644 requirements/system_requirements.txt diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 31edac6..97f7fe7 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -2,65 +2,36 @@ name: CMake on: push: - branches: [ master ] + branches: [ noetic ] pull_request: - branches: [ master ] + branches: [ noetic ] env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) BUILD_TYPE: Release jobs: build: + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix runs-on: ubuntu-latest + steps: - uses: actions/checkout@v3 - - name: Configure CMake 1 - run: cmake -E make_directory ${{runner.workspace}}/robotis_controller/build - - - name: Configure CMake 2 - run: cmake -E make_directory ${{runner.workspace}}/robotis_device/build - - - name: Configure CMake 3 - run: cmake -E make_directory ${{runner.workspace}}/robotis_framework/build - - - name: Configure CMake 4 - run: cmake -E make_directory ${{runner.workspace}}/robotis_framework_common/build - - - - - name: Install dependencies - shell: bash - run: sudo apt-get update ; sudo apt-get install > ~/.bashrc +RUN source ~/.bashrc + +RUN cd $CATKIN_WS \ + && rosdep init \ + && rosdep update \ + && rosdep update --rosdistro noetic \ + && rosdep fix-permissions \ + && rosdep install -y --from-paths . --ignore-src --rosdistro noetic + +# Always source catkin_setup.sh when launching bash +RUN echo "source /usr/local/bin/catkin_setup.sh" >> /root/.bashrc +COPY catkin_setup.sh /usr/local/bin/catkin_setup.sh +RUN chmod +x /usr/local/bin/catkin_setup.sh + +ENTRYPOINT ["/usr/local/bin/catkin_setup.sh"] +CMD ["bash"] diff --git a/docker/gpu.Dockerfile b/docker/gpu.Dockerfile new file mode 100644 index 0000000..df15614 --- /dev/null +++ b/docker/gpu.Dockerfile @@ -0,0 +1,90 @@ +ARG ROS_ARCHITECTURE_VERSION=latest + +FROM ubuntu:20.04 as base_build +FROM nvidia/cuda:11.2.1-base-ubuntu20.04 + +ENV DEBIAN_FRONTEND noninteractive +ENV PYTHON_VERSION="3.8" +ENV CUDNN_VERSION=8.1.0.77 +ENV TF_TENSORRT_VERSION=7.2.2 +ENV CUDA=11.2 +ENV LD_LIBRARY_PATH /usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH + +ARG ROS_ARCHITECTURE_VERSION_GIT_BRANCH=master +ARG ROS_ARCHITECTURE_VERSION_GIT_COMMIT=HEAD + +LABEL maintainer=ronaldsonbellande@gmail.com +LABEL ROS_architecture_github_branchtag=${ROS_ARCHITECTURE_VERSION_GIT_BRANCH} +LABEL ROS_architecture_github_commit=${ROS_ARCHITECTURE_VERSION_GIT_COMMIT} + +# Ubuntu setup +RUN apt-get update -y +RUN apt-get upgrade -y + +# RUN workspace and sourcing +WORKDIR ./ +COPY requirements.txt . +COPY system_requirements.txt . +COPY ros_requirements.txt . +COPY ros_repository_requirements.txt . + +# Install dependencies for system +RUN apt-get update && apt-get install -y --no-install-recommends > ~/.bashrc +RUN source ~/.bashrc + +RUN cd $CATKIN_WS \ + && rosdep init \ + && rosdep update \ + && rosdep update --rosdistro noetic \ + && rosdep fix-permissions \ + && rosdep install -y --from-paths . --ignore-src --rosdistro noetic + +# Always source catkin_setup.sh when launching bash +RUN echo "source /usr/local/bin/catkin_setup.sh" >> /root/.bashrc +COPY catkin_setup.sh /usr/local/bin/catkin_setup.sh +RUN chmod +x /usr/local/bin/catkin_setup.sh + +ENTRYPOINT ["/usr/local/bin/catkin_setup.sh"] +CMD ["bash"] + +RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub && \ + apt-get update && apt-get install -y --no-install-recommends \ + cuda-nvrtc-${CUDA/./-} \ + libcudnn8=${CUDNN_VERSION}-1+cuda${CUDA} \ + -r cuda_requirements.txt + +# We don't install libnvinfer-dev since we don't need to build against TensorRT +RUN apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64/7fa2af80.pub && \ + echo "deb https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu2004/x86_64 /" > /etc/apt/sources.list.d/tensorRT.list && \ + apt-get update && \ + apt-get install -y --no-install-recommends libnvinfer7=${TF_TENSORRT_VERSION}-1+cuda11.0 \ + libnvinfer-plugin7=${TF_TENSORRT_VERSION}-1+cuda11.0 \ + && apt-get clean && \ + rm -rf /var/lib/apt/lists/*; + diff --git a/requirements/requirements.txt b/requirements/requirements.txt new file mode 100644 index 0000000..d08c640 --- /dev/null +++ b/requirements/requirements.txt @@ -0,0 +1,39 @@ +# Recomandation for library to install in python + +setuptools +pandas +scipy +sklearn +future +grpcio +h5py +requests +opencv-python +python-math +random2 +pytest-warnings +os.path2 +pydicom +glob2 +pytest-shutil +DateTime +zipfile36 +urllib3 +python-time +trimesh +librosa +gym +matplotlib +image-slicer +nvidia-ml-py3 +imgaug +tqdm +rosdep + +protobuf==3.15.2 +numpy==1.19.2 +numba==0.55.2 +imageio==2.9.0 +pillow==7.2.0 +tensorflow==2.7.0 +keras==2.7.0 diff --git a/requirements/ros_repository_requirements.txt b/requirements/ros_repository_requirements.txt new file mode 100644 index 0000000..09c4578 --- /dev/null +++ b/requirements/ros_repository_requirements.txt @@ -0,0 +1,9 @@ +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-msgs +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3 +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-Tools +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Framework-msgs +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Framework +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-Common +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Utility +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-Demo +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Math diff --git a/requirements/ros_requirements.txt b/requirements/ros_requirements.txt new file mode 100644 index 0000000..7b80df2 --- /dev/null +++ b/requirements/ros_requirements.txt @@ -0,0 +1,15 @@ +# Recomandation for dependencies for ros system + +ros-noetic-desktop-full +build-essential +ros-noetic-catkin +python-rosdep +python-rosinstall +python-rosinstall-generator +python-wstool +python-catkin-tools +ros-noetic-pcl-ros +ros-noetic-flexbe-behavior-engine +ros-noetic-moveit +ros-noetic-gazebo-ros-pkgs +ros-noetic-gazebo-ros-control diff --git a/requirements/system_requirements.txt b/requirements/system_requirements.txt new file mode 100644 index 0000000..46eea93 --- /dev/null +++ b/requirements/system_requirements.txt @@ -0,0 +1,29 @@ +# Recomandation for dependencies for linux system + +software-properties-common +python3.8 +neovim +apt-utils +automake +build-essential +ca-certificates +pycurl +git +python3-pip +libcurl3-dev +libfreetype6-dev +libpng-dev +libtool +libzmq3-dev +mlocate +openjdk-8-jdk +openjdk-8-jre-headless +pkg-config +python-dev +software-properties-common +swig +unzip +wget +zip +zlib1g-dev +python3-distutils From 9f46abe7450ab8010feffec98842ce7aa50c987f Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Wed, 27 Sep 2023 16:21:00 -0400 Subject: [PATCH 09/36] latest pushes --- README.md | 33 +++++++++----------- requirements/ros_repository_requirements.txt | 10 +++--- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index fc06982..60424a7 100755 --- a/README.md +++ b/README.md @@ -1,22 +1,19 @@ -## ROS Packages for ROBOTIS Framework -|Version|Kinetic + Ubuntu Xenial|Melodic + Ubuntu Bionic| -|:---:|:---:|:---:| -|[![GitHub version](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework.svg)](https://badge.fury.io/gh/ROBOTIS-GIT%2FROBOTIS-Framework)|[![Build Status](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework.svg?branch=master)](https://travis-ci.org/ROBOTIS-GIT/ROBOTIS-Framework)|-| +# ROS/ROS2 Humanoid Robot Framework -## ROBOTIS e-Manual for ROBOTIS Framework -- [ROBOTIS e-Manual for ROBOTIS Framework](http://emanual.robotis.com/docs/en/software/robotis_framework_packages) +-------------------------------------------------------------------------------------------------------- +Updated Version [humanoid_robot_module](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. -## Wiki for robotis_framework Packages -- http://wiki.ros.org/robotis_framework (metapackage) -- http://wiki.ros.org/robotis_controller -- http://wiki.ros.org/robotis_device -- http://wiki.ros.org/robotis_framework_common +-------------------------------------------------------------------------------------------------------- +## Important +The repository has diverged, as the old commits and codes are under the previous License and +the new commits and codes are under New License -## Open Source related to ROBOTIS Framework -- [robotis_framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) -- [robotis_controller_msgs](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework-msgs) -- [dynamixel_sdk](https://github.com/ROBOTIS-GIT/DynamixelSDK) +-------------------------------------------------------------------------------------------------------- +Latest versions and Maintainer is on organization https://github.com/Robotics-Sensors -## Documents and Videos related to ROBOTIS Framework -- [ROBOTIS e-Manual for ROBOTIS Framework](http://emanual.robotis.com/docs/en/software/robotis_framework_packages/) -- [ROBOTIS e-Manual for Dynamixel SDK](http://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/overview/) \ No newline at end of file + +### Maintainer +* Ronaldson Bellande + +## License +This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_framework/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_framework/blob/main/LICENSE) for more information. diff --git a/requirements/ros_repository_requirements.txt b/requirements/ros_repository_requirements.txt index 09c4578..e3c338f 100644 --- a/requirements/ros_repository_requirements.txt +++ b/requirements/ros_repository_requirements.txt @@ -1,9 +1,9 @@ -git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-msgs -git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3 -git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-Tools +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-HUMANOID_ROBOT-msgs +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-HUMANOID_ROBOT +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-HUMANOID_ROBOT-Tools git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Framework-msgs git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Framework -git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-Common +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-HUMANOID_ROBOT-Common git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Utility -git clone -b https://github.com/Robotics-Sensors/ROBOTIS-OP3-Demo +git clone -b https://github.com/Robotics-Sensors/ROBOTIS-HUMANOID_ROBOT-Demo git clone -b https://github.com/Robotics-Sensors/ROBOTIS-Math From 9b9efbbcac60a43c538aefa4776d1a2415ede268 Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Thu, 28 Sep 2023 00:16:47 -0400 Subject: [PATCH 10/36] latest pushes --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 60424a7..c91aa6b 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # ROS/ROS2 Humanoid Robot Framework -------------------------------------------------------------------------------------------------------- -Updated Version [humanoid_robot_module](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. +Updated Version [humanoid_robot_framework](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. -------------------------------------------------------------------------------------------------------- ## Important From 74ca4759d32ef4a5d904e4d140521f7e94551525 Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Thu, 28 Sep 2023 10:57:28 -0400 Subject: [PATCH 11/36] latest pushes --- .gitignore | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.gitignore b/.gitignore index 36a5c0a..a78ffcf 100755 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,13 @@ qtcreator-build *.backup *.user *.autosave + +# Scripts +init_setup.sh +repository_recal.sh +push.sh +publish.sh +ros_publish.sh +prerelease_test.sh +fix_errors.sh +replace_add_index.sh From 730febd9460ddf1ddd88d873bd3123924c295d9a Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Thu, 28 Sep 2023 12:01:13 -0400 Subject: [PATCH 12/36] latest pushes --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c91aa6b..fd1e2af 100755 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ -------------------------------------------------------------------------------------------------------- Updated Version [humanoid_robot_framework](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. +Old Version/Previous Used for Different Context [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) readme. + -------------------------------------------------------------------------------------------------------- ## Important The repository has diverged, as the old commits and codes are under the previous License and From c45be99a38daeaeb1993611acbb99a4cb7c7179f Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Sat, 30 Sep 2023 16:51:48 -0400 Subject: [PATCH 13/36] latest pushes --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index fd1e2af..28df683 100755 --- a/README.md +++ b/README.md @@ -14,6 +14,11 @@ the new commits and codes are under New License Latest versions and Maintainer is on organization https://github.com/Robotics-Sensors +# USE CASE +-------------------------------------------------------------------------------------------------------- +* Every repository within our organization is a valuable resource that can be utilized for educational purposes by individuals who actively contribute to the repository or choose to become sponsors of the organization. For those who wish to use our services conversationally, the acquisition of a license and subscription from our company website is mandatory. This ensures that the services are appropriately compensated for their use. Additionally, for the 90% of services designated as private, acquiring a license and subscription can be facilitated through our company website. We encourage interested parties to visit our website to explore and procure the necessary licenses and subscriptions for the diverse range of services and products we offer. Your support and commitment enable us to maintain and enhance the quality of our offerings, contributing to a thriving collaborative environment. +-------------------------------------------------------------------------------------------------------- + ### Maintainer * Ronaldson Bellande From d91f04542c442b664b6698b06db2403a04c9e68b Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Tue, 3 Oct 2023 09:04:27 -0400 Subject: [PATCH 14/36] Update LICENSE --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index c0ee812..ffeeac4 100755 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright 2023 Ronaldson Bellande Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. From 141770d551197b37194f95a76b099ac01c5fa05b Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Wed, 11 Oct 2023 11:43:46 -0400 Subject: [PATCH 15/36] Create jekyll-gh-pages.yml --- .github/workflows/jekyll-gh-pages.yml | 51 +++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 .github/workflows/jekyll-gh-pages.yml diff --git a/.github/workflows/jekyll-gh-pages.yml b/.github/workflows/jekyll-gh-pages.yml new file mode 100644 index 0000000..559bddf --- /dev/null +++ b/.github/workflows/jekyll-gh-pages.yml @@ -0,0 +1,51 @@ +# Sample workflow for building and deploying a Jekyll site to GitHub Pages +name: Deploy Jekyll with GitHub Pages dependencies preinstalled + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Pages + uses: actions/configure-pages@v3 + - name: Build with Jekyll + uses: actions/jekyll-build-pages@v1 + with: + source: ./ + destination: ./_site + - name: Upload artifact + uses: actions/upload-pages-artifact@v2 + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v2 From af0156c7bca4eb789a7c4dc68bc717144afa0ec4 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Thu, 12 Oct 2023 17:47:20 -0400 Subject: [PATCH 16/36] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 28df683..a33ed5e 100755 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # ROS/ROS2 Humanoid Robot Framework +-------------------------------------------------------------------------------------------------------- +# Website +https://robotics-sensors.github.io/humanoid_robot_framework + -------------------------------------------------------------------------------------------------------- Updated Version [humanoid_robot_framework](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. From 56e2b07025b086d2b7e5924bceac84a10b4aae17 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Tue, 24 Oct 2023 08:55:08 -0400 Subject: [PATCH 17/36] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index a33ed5e..0feb9f3 100755 --- a/README.md +++ b/README.md @@ -1,7 +1,10 @@ # ROS/ROS2 Humanoid Robot Framework +[![Website](https://img.shields.io/badge/Visit%20our-Website-0099cc?style=for-the-badge)](https://robotics-sensors.github.io) +[![Discord](https://img.shields.io/badge/Join%20our-Discord-7289DA?logo=discord&style=for-the-badge)](https://discord.gg/Yc72nd4w) +[![Sponsor](https://img.shields.io/badge/Sponsor-Robotics%20Sensors%20Research-red?style=for-the-badge&logo=github)](https://github.com/sponsors/Robotics-Sensors) -------------------------------------------------------------------------------------------------------- -# Website +# Repository Website https://robotics-sensors.github.io/humanoid_robot_framework -------------------------------------------------------------------------------------------------------- From a27d32150340042a46f442ca7c8c0fb5583d2c72 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Thu, 2 Nov 2023 08:34:14 -0400 Subject: [PATCH 18/36] Create dependabot.yml --- .github/dependabot.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..ac6621f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" From cfaea1ea772a7835fe07f3af19713a310ec038db Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Thu, 2 Nov 2023 08:34:22 -0400 Subject: [PATCH 19/36] Create codeql.yml --- .github/workflows/codeql.yml | 82 ++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/codeql.yml diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..8b343fe --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,82 @@ +# For most projects, this workflow file will not need changing; you simply need +# to commit it to your repository. +# +# You may wish to alter this file to override the set of languages analyzed, +# or to provide custom queries or build logic. +# +# ******** NOTE ******** +# We have attempted to detect the languages in your repository. Please check +# the `language` matrix defined below to confirm you have the correct set of +# supported CodeQL languages. +# +name: "CodeQL" + +on: + push: + branches: [ "main" ] + pull_request: + # The branches below must be a subset of the branches above + branches: [ "main" ] + schedule: + - cron: '37 12 * * 4' + +jobs: + analyze: + name: Analyze + # Runner size impacts CodeQL analysis time. To learn more, please see: + # - https://gh.io/recommended-hardware-resources-for-running-codeql + # - https://gh.io/supported-runners-and-hardware-resources + # - https://gh.io/using-larger-runners + # Consider using larger runners for possible analysis time improvements. + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }} + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: [ 'c-cpp' ] + # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ] + # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both + # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both + # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + + # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift). + # If this step fails, then you should remove it and run the build manually (see below) + - name: Autobuild + uses: github/codeql-action/autobuild@v2 + + # ℹī¸ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + + # If the Autobuild fails above, remove it and uncomment the following three lines. + # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance. + + # - run: | + # echo "Run, Build Application using script" + # ./location_of_script_within_repo/buildscript.sh + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 + with: + category: "/language:${{matrix.language}}" From 27d400152b043065236629d24f34107e17f4a77a Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Fri, 3 Nov 2023 13:27:21 -0400 Subject: [PATCH 20/36] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0feb9f3..be2980b 100755 --- a/README.md +++ b/README.md @@ -9,9 +9,11 @@ https://robotics-sensors.github.io/humanoid_robot_framework -------------------------------------------------------------------------------------------------------- Updated Version [humanoid_robot_framework](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. - Old Version/Previous Used for Different Context [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) readme. +# Contact +If you are interested in accessing the complete version of this repository, we kindly request that you reach out to the organization's director or the company behind this project. We invite you to explore the USE CASE to understand the specific terms and conditions for usage. To utilize this repository, it is imperative that you adhere to the guidelines outlined in the USE CASE. For those interested in showing their support, becoming a sponsor of the organization is an option, and detailed information can be found within the USE CASE and License documents. Furthermore, we encourage you to join our official Discord community, where you can engage with like-minded individuals, contribute to the project, and stay up-to-date with the latest developments. It's worth noting that while a fraction of research is publicly accessible, the majority remains private. To gain insights into the wealth of knowledge held by the Company or the organization's director, we recommend direct contact for more information. + -------------------------------------------------------------------------------------------------------- ## Important The repository has diverged, as the old commits and codes are under the previous License and From e20896f496807391f3fb0d47bd8a710ca27ee3e4 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Sat, 4 Nov 2023 10:46:11 -0400 Subject: [PATCH 21/36] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be2980b..b891c4f 100755 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Updated Version [humanoid_robot_framework](https://github.com/Robotics-Sensors/h Old Version/Previous Used for Different Context [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) readme. # Contact -If you are interested in accessing the complete version of this repository, we kindly request that you reach out to the organization's director or the company behind this project. We invite you to explore the USE CASE to understand the specific terms and conditions for usage. To utilize this repository, it is imperative that you adhere to the guidelines outlined in the USE CASE. For those interested in showing their support, becoming a sponsor of the organization is an option, and detailed information can be found within the USE CASE and License documents. Furthermore, we encourage you to join our official Discord community, where you can engage with like-minded individuals, contribute to the project, and stay up-to-date with the latest developments. It's worth noting that while a fraction of research is publicly accessible, the majority remains private. To gain insights into the wealth of knowledge held by the Company or the organization's director, we recommend direct contact for more information. +Depeding on the repository, If you are interested in accessing the complete version or other repository related to this repository, we kindly request that you reach out to the organization's director or the company behind this project. We invite you to explore the USE CASE to understand the specific terms and conditions for usage. To utilize this repository, it is imperative that you adhere to the guidelines outlined in the USE CASE. For those interested in showing their support, becoming a sponsor of the organization is an option, and detailed information can be found within the USE CASE and License documents. Furthermore, we encourage you to join our official Discord community, where you can engage with like-minded individuals, contribute to the project, and stay up-to-date with the latest developments. It's worth noting that while a fraction of research is publicly accessible, the majority remains private. To gain insights into the wealth of knowledge held by the Company or the organization's director, we recommend direct contact for more information. -------------------------------------------------------------------------------------------------------- ## Important From 27aaf2cc19729e923337e6fe7e7ba9bf711d11a6 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Sun, 5 Nov 2023 01:52:15 -0500 Subject: [PATCH 22/36] Update README.md --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index b891c4f..9968397 100755 --- a/README.md +++ b/README.md @@ -3,6 +3,19 @@ [![Website](https://img.shields.io/badge/Visit%20our-Website-0099cc?style=for-the-badge)](https://robotics-sensors.github.io) [![Discord](https://img.shields.io/badge/Join%20our-Discord-7289DA?logo=discord&style=for-the-badge)](https://discord.gg/Yc72nd4w) [![Sponsor](https://img.shields.io/badge/Sponsor-Robotics%20Sensors%20Research-red?style=for-the-badge&logo=github)](https://github.com/sponsors/Robotics-Sensors) + +# Stats +[![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_framework/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/Robotics-Sensors/humanoid_robot_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_framework/network) +[![GitHub watchers](https://img.shields.io/github/watchers/Robotics-Sensors/humanoid_robot_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_framework/watchers) + +[![GitHub issues](https://img.shields.io/github/issues/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/issues) +[![GitHub pull requests](https://img.shields.io/github/issues-pr/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/pulls) +[![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/blob/main/LICENSE) + +[![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/commits) +[![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_framework/traffic)](https://github.com/Robotics-Sensors/humanoid_robot_framework) + -------------------------------------------------------------------------------------------------------- # Repository Website https://robotics-sensors.github.io/humanoid_robot_framework @@ -11,6 +24,9 @@ https://robotics-sensors.github.io/humanoid_robot_framework Updated Version [humanoid_robot_framework](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. Old Version/Previous Used for Different Context [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) readme. +# Release +[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_framework/releases/) + # Contact Depeding on the repository, If you are interested in accessing the complete version or other repository related to this repository, we kindly request that you reach out to the organization's director or the company behind this project. We invite you to explore the USE CASE to understand the specific terms and conditions for usage. To utilize this repository, it is imperative that you adhere to the guidelines outlined in the USE CASE. For those interested in showing their support, becoming a sponsor of the organization is an option, and detailed information can be found within the USE CASE and License documents. Furthermore, we encourage you to join our official Discord community, where you can engage with like-minded individuals, contribute to the project, and stay up-to-date with the latest developments. It's worth noting that while a fraction of research is publicly accessible, the majority remains private. To gain insights into the wealth of knowledge held by the Company or the organization's director, we recommend direct contact for more information. From 671afc7bfea0537953f833b76d6229b0ec685db9 Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Mon, 13 Nov 2023 17:55:45 -0500 Subject: [PATCH 23/36] latest pushes --- README.md | 24 +- .../CMakeLists.txt | 83 +++ .../package.xml | 81 +++ .../CHANGELOG.rst | 110 ++++ .../CMakeLists.txt | 51 ++ .../devices/dynamixel/GRIPPER.device | 73 +++ .../devices/dynamixel/GRIPPER_TORQUE.device | 74 +++ .../devices/dynamixel/H42-20-S300-R(A).device | 92 ++++ .../devices/dynamixel/H42-20-S300-R.device | 76 +++ .../devices/dynamixel/H42P-020-S300-R.device | 92 ++++ .../dynamixel/H54-100-B210-R-NR.device | 76 +++ .../dynamixel/H54-100-S500-R(A).device | 92 ++++ .../devices/dynamixel/H54-100-S500-R.device | 76 +++ .../devices/dynamixel/H54-200-B500-R.device | 76 +++ .../dynamixel/H54-200-S500-R(A).device | 92 ++++ .../devices/dynamixel/H54-200-S500-R.device | 76 +++ .../devices/dynamixel/H54P-100-S500-R.device | 92 ++++ .../devices/dynamixel/H54P-200-B500-R.device | 92 ++++ .../devices/dynamixel/H54P-200-S500-R.device | 92 ++++ .../devices/dynamixel/L42-10-S300-R.device | 73 +++ .../devices/dynamixel/L54-30-S400-R.device | 74 +++ .../devices/dynamixel/L54-30-S500-R.device | 74 +++ .../devices/dynamixel/L54-50-S290-R.device | 74 +++ .../devices/dynamixel/L54-50-S500-R.device | 74 +++ .../devices/dynamixel/M42-10-S260-R.device | 74 +++ .../devices/dynamixel/M54-40-S250-R.device | 74 +++ .../devices/dynamixel/M54-60-S250-R.device | 74 +++ .../devices/dynamixel/MX-106.device | 66 +++ .../devices/dynamixel/MX-28.device | 62 +++ .../devices/dynamixel/MX-64.device | 66 +++ .../devices/dynamixel/PH42-020-S300-R.device | 92 ++++ .../devices/dynamixel/PH54-100-S500-R.device | 92 ++++ .../devices/dynamixel/PH54-200-S500-R.device | 92 ++++ .../devices/dynamixel/RH-P12-RN(A).device | 90 ++++ .../devices/dynamixel/RH-P12-RN.device | 73 +++ .../devices/dynamixel/XM-430.device | 82 +++ .../devices/dynamixel/XM430-W210.device | 83 +++ .../devices/dynamixel/XM430-W350.device | 83 +++ .../devices/dynamixel/XM540-W150.device | 89 ++++ .../devices/dynamixel/XM540-W270.device | 89 ++++ .../devices/sensor/CM-740.device | 25 + .../devices/sensor/OPEN-CR.device | 30 ++ .../control_table_item.h | 54 ++ .../device.h | 54 ++ .../dynamixel.h | 83 +++ .../dynamixel_state.h | 82 +++ .../robot.h | 72 +++ .../sensor.h | 49 ++ .../sensor_state.h | 50 ++ .../time_stamp.h | 39 ++ .../package.xml | 38 ++ .../dynamixel.cpp | 119 +++++ .../robot.cpp | 480 ++++++++++++++++++ .../sensor.cpp | 39 ++ .../CHANGELOG.rst | 82 +++ .../CMakeLists.txt | 46 ++ .../motion_module.h | 87 ++++ .../sensor_module.h | 57 +++ .../singleton.h | 65 +++ .../package.xml | 33 ++ 60 files changed, 4742 insertions(+), 12 deletions(-) create mode 100755 humanoid_robot_intelligence_control_system_controller/CMakeLists.txt create mode 100755 humanoid_robot_intelligence_control_system_controller/package.xml create mode 100755 humanoid_robot_intelligence_control_system_device/CHANGELOG.rst create mode 100755 humanoid_robot_intelligence_control_system_device/CMakeLists.txt create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER_TORQUE.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R(A).device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42P-020-S300-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-B210-R-NR.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R(A).device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-B500-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R(A).device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-100-S500-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-B500-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-S500-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/L42-10-S300-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S400-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S500-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S290-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S500-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/M42-10-S260-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-40-S250-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-60-S250-R.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-106.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-28.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-64.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH42-020-S300-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-100-S500-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-200-S500-R.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN(A).device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM-430.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W210.device create mode 100644 humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W350.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W150.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W270.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/sensor/CM-740.device create mode 100755 humanoid_robot_intelligence_control_system_device/devices/sensor/OPEN-CR.device create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/control_table_item.h create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/device.h create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel.h create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel_state.h create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/robot.h create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor.h create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor_state.h create mode 100755 humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/time_stamp.h create mode 100755 humanoid_robot_intelligence_control_system_device/package.xml create mode 100755 humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/dynamixel.cpp create mode 100755 humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/robot.cpp create mode 100755 humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/sensor.cpp create mode 100755 humanoid_robot_intelligence_control_system_framework_common/CHANGELOG.rst create mode 100755 humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt create mode 100755 humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/motion_module.h create mode 100755 humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/sensor_module.h create mode 100755 humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/singleton.h create mode 100755 humanoid_robot_intelligence_control_system_framework_common/package.xml diff --git a/README.md b/README.md index 9968397..8b0d5d4 100755 --- a/README.md +++ b/README.md @@ -5,27 +5,27 @@ [![Sponsor](https://img.shields.io/badge/Sponsor-Robotics%20Sensors%20Research-red?style=for-the-badge&logo=github)](https://github.com/sponsors/Robotics-Sensors) # Stats -[![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_framework/stargazers) -[![GitHub forks](https://img.shields.io/github/forks/Robotics-Sensors/humanoid_robot_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_framework/network) -[![GitHub watchers](https://img.shields.io/github/watchers/Robotics-Sensors/humanoid_robot_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_framework/watchers) +[![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/network) +[![GitHub watchers](https://img.shields.io/github/watchers/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/watchers) -[![GitHub issues](https://img.shields.io/github/issues/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/issues) -[![GitHub pull requests](https://img.shields.io/github/issues-pr/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/pulls) -[![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/blob/main/LICENSE) +[![GitHub issues](https://img.shields.io/github/issues/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/issues) +[![GitHub pull requests](https://img.shields.io/github/issues-pr/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/pulls) +[![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) -[![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_framework/commits) -[![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_framework/traffic)](https://github.com/Robotics-Sensors/humanoid_robot_framework) +[![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/commits) +[![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/traffic)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework) -------------------------------------------------------------------------------------------------------- # Repository Website -https://robotics-sensors.github.io/humanoid_robot_framework +https://robotics-sensors.github.io/humanoid_robot_intelligence_control_system_framework -------------------------------------------------------------------------------------------------------- -Updated Version [humanoid_robot_framework](https://github.com/Robotics-Sensors/humanoid_robot_framework) readme. +Updated Version [humanoid_robot_intelligence_control_system_framework](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework) readme. Old Version/Previous Used for Different Context [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) readme. # Release -[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_framework/releases/) +[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_intelligence_control_system_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/releases/) # Contact Depeding on the repository, If you are interested in accessing the complete version or other repository related to this repository, we kindly request that you reach out to the organization's director or the company behind this project. We invite you to explore the USE CASE to understand the specific terms and conditions for usage. To utilize this repository, it is imperative that you adhere to the guidelines outlined in the USE CASE. For those interested in showing their support, becoming a sponsor of the organization is an option, and detailed information can be found within the USE CASE and License documents. Furthermore, we encourage you to join our official Discord community, where you can engage with like-minded individuals, contribute to the project, and stay up-to-date with the latest developments. It's worth noting that while a fraction of research is publicly accessible, the majority remains private. To gain insights into the wealth of knowledge held by the Company or the organization's director, we recommend direct contact for more information. @@ -48,4 +48,4 @@ Latest versions and Maintainer is on organization https://github.com/Robotics-Se * Ronaldson Bellande ## License -This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_framework/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_framework/blob/main/LICENSE) for more information. +This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) for more information. diff --git a/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt b/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt new file mode 100755 index 0000000..c69c671 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt @@ -0,0 +1,83 @@ +cmake_minimum_required(VERSION 3.8) +project(humanoid_robot_intelligence_control_system_controller) + +## Compile as C++11, supported in ROS Kinetic and newer +add_compile_options(-std=c++11) + + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + ) + + find_package(Boost REQUIRED) + + find_package(PkgConfig REQUIRED) +else() + find_package(ament_cmake REQUIRED) +endif() + + +pkg_check_modules(YAML_CPP REQUIRED yaml-cpp) +find_path(YAML_CPP_INCLUDE_DIR + NAMES yaml_cpp.h + PATHS ${YAML_CPP_INCLUDE_DIRS} +) +find_library(YAML_CPP_LIBRARY + NAMES YAML_CPP + PATHS ${YAML_CPP_LIBRARY_DIRS} +) +link_directories(${YAML_CPP_LIBRARY_DIRS}) + +if(NOT ${YAML_CPP_VERSION} VERSION_LESS "0.5") +add_definitions(-DHAVE_NEW_YAMLCPP) +endif(NOT ${YAML_CPP_VERSION} VERSION_LESS "0.5") + + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_package( + INCLUDE_DIRS include + LIBRARIES humanoid_robot_intelligence_control_system_controller + CATKIN_DEPENDS + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + DEPENDS Boost + ) +endif() + + +include_directories( + include + ${catkin_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} + ${YAML_CPP_INCLUDE_DIRS} +) + +add_library(humanoid_robot_intelligence_control_system_controller src/humanoid_robot_intelligence_control_system_controller/humanoid_robot_intelligence_control_system_controller.cpp) +add_dependencies(humanoid_robot_intelligence_control_system_controller ${catkin_EXPORTED_TARGETS}) +target_link_libraries(humanoid_robot_intelligence_control_system_controller ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${YAML_CPP_LIBRARIES}) + +install(TARGETS humanoid_robot_intelligence_control_system_controller + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) diff --git a/humanoid_robot_intelligence_control_system_controller/package.xml b/humanoid_robot_intelligence_control_system_controller/package.xml new file mode 100755 index 0000000..302552d --- /dev/null +++ b/humanoid_robot_intelligence_control_system_controller/package.xml @@ -0,0 +1,81 @@ + + + humanoid_robot_intelligence_control_system_controller + 0.3.2 + humanoid_robot_intelligence_control_system_controller package for ROBOTIS's platform like Manipulator-H, THORMANG and OP series + Apache 2.0 + Ronaldson Bellande + + + catkin + + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + yaml-cpp + + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + yaml-cpp + + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + yaml-cpp + + + ament_cmake + + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + yaml-cpp + + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + yaml-cpp + + roscpp + roslib + std_msgs + sensor_msgs + humanoid_robot_intelligence_control_system_controller_msgs + dynamixel_sdk + humanoid_robot_intelligence_control_system_device + humanoid_robot_intelligence_control_system_framework_common + cmake_modules + yaml-cpp + + diff --git a/humanoid_robot_intelligence_control_system_device/CHANGELOG.rst b/humanoid_robot_intelligence_control_system_device/CHANGELOG.rst new file mode 100755 index 0000000..10a041c --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/CHANGELOG.rst @@ -0,0 +1,110 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package humanoid_robot_intelligence_control_system_device +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.3.2 (2023-10-03) +------------------ +* Make it compatible for ROS1/ROS2 +* Fix bugs +* Update package.xml and CMakeList.txt for to the latest versions +* Contributors & Maintainer: Ronaldson Bellande + +0.3.1 (2023-09-27) +------------------ +* Starting from this point it under a new license +* Fix errors and Issues +* Rename Repository for a completely different purpose +* Make it compatible with ROS/ROS2 +* Upgrade version of all builds and make it more compatible +* Update package.xml and CMakeList.txt for to the latest versions +* Contributors & Maintainer: Ronaldson Bellande + +0.3.0 (2021-05-03) +------------------ +* Update package.xml and CMakeList.txt for noetic branch +* Contributors: Ronaldson Bellande + +0.2.9 (2018-03-22) +------------------ +* modified to prevent duplicate indirect address write +* fixed a bug that occure when handling bulk read item that does not exist +* Contributors: Zerom + +0.2.8 (2018-03-20) +------------------ +* added RH-P12-RN.device file +* Contributors: Zerom, Pyo + +0.2.7 (2018-03-15) +------------------ +* fixed a bug that occur when handling bulk read item that does not exist +* changed the License and package format to version 2 +* Contributors: SCH, Pyo + +0.2.6 (2017-08-09) +------------------ +* OpenCR control table item name changed. (torque_enable -> dynamixel_power) +* fixed to not update update_time_stamp\_ if bulk read fails. +* Contributors: Zerom + +0.2.5 (2017-06-09) +------------------ +* none + +0.2.4 (2017-06-07) +------------------ +* none + +0.2.3 (2017-05-23) +------------------ +* updated the cmake file for ros install +* Contributors: SCH + +0.2.2 (2017-04-24) +------------------ +* added a deivce: OpenCR +* changed to read control cycle from .robot file +* Contributors: Zerom, Kayman + +0.2.1 (2016-11-23) +------------------ +* Merge the changes and update +* mode change debugging +* - convertRadian2Value / convertValue2Radian : commented out the code that limits the maximum/minimum value. +* - modified dependency problem. +* Contributors: Jay Song, Pyo, Zerom, SCH + +0.2.0 (2016-08-31) +------------------ +* bug fixed (position pid gain & velocity pid gain sync write). +* added velocity_to_value_ratio to DXL Pro-H series. +* added velocity p/i/d gain and position i/d gain sync_write code. +* fixed humanoid_robot_intelligence_control_system_device build_depend. +* added XM-430-W210 / XM-430-W350 device file. +* rename (present_current\_ -> present_torque\_) +* modified torque control code +* added device file for MX-64 / MX-106 +* adjusted position min/max value. (MX-28, XM-430) +* Contributors: Zerom, Pyo + +0.1.1 (2016-08-18) +------------------ +* updated the package information +* Contributors: Zerom + +0.1.0 (2016-08-12) +------------------ +* first public release for Kinetic +* modified the package information for release +* develop branch -> master branch +* Setting the license to BSD. +* add SensorState + add Singleton template +* XM-430 / CM-740 device file added. + Sensor device added. +* modified. +* variable name changed. + ConvertRadian2Value / ConvertValue2Radian function bug fixed. +* added code to support the gazebo simulator +* renewal +* Contributors: Zerom diff --git a/humanoid_robot_intelligence_control_system_device/CMakeLists.txt b/humanoid_robot_intelligence_control_system_device/CMakeLists.txt new file mode 100755 index 0000000..a9c5f39 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.8) +project(humanoid_robot_intelligence_control_system_device) + + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + roscpp + dynamixel_sdk + ) +else() + find_package(ament_cmake REQUIRED) +endif() + + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_package( + INCLUDE_DIRS include + LIBRARIES humanoid_robot_intelligence_control_system_device + CATKIN_DEPENDS + roscpp + dynamixel_sdk + ) +endif() + + +include_directories( + include + ${catkin_INCLUDE_DIRS} +) + +add_library(humanoid_robot_intelligence_control_system_device + src/humanoid_robot_intelligence_control_system_device/robot.cpp + src/humanoid_robot_intelligence_control_system_device/sensor.cpp + src/humanoid_robot_intelligence_control_system_device/dynamixel.cpp +) +add_dependencies(humanoid_robot_intelligence_control_system_device ${catkin_EXPORTED_TARGETS}) +target_link_libraries(humanoid_robot_intelligence_control_system_device ${catkin_LIBRARIES}) + +install(TARGETS humanoid_robot_intelligence_control_system_device + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) + +install(DIRECTORY devices + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} +) diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER.device new file mode 100755 index 0000000..7e0846d --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER.device @@ -0,0 +1,73 @@ +[device info] +model_name = GRIPPER +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = 0 +value_of_max_radian_position = 750 +min_radian = 0 +max_radian = 1.150767 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER_TORQUE.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER_TORQUE.device new file mode 100755 index 0000000..208b7cb --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/GRIPPER_TORQUE.device @@ -0,0 +1,74 @@ +[device info] +model_name = GRIPPER +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = 0 +value_of_max_radian_position = 750 +min_radian = 0 +max_radian = 1.150767 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 590 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R(A).device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R(A).device new file mode 100644 index 0000000..a6f523c --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R(A).device @@ -0,0 +1,92 @@ +[device info] +model_name = H42-20-S300-R(A) +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 109.3747778 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -303750 +value_of_max_radian_position = 303750 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R.device new file mode 100755 index 0000000..ab7aecb --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42-20-S300-R.device @@ -0,0 +1,76 @@ +[device info] +model_name = H42-20-S300-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 27.15146 +velocity_to_value_ratio = 2900.59884 +value_of_0_radian_position = 0 +value_of_min_radian_position = -151900 +value_of_max_radian_position = 151900 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42P-020-S300-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42P-020-S300-R.device new file mode 100644 index 0000000..92d405a --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H42P-020-S300-R.device @@ -0,0 +1,92 @@ +[device info] +model_name = H42P-020-S300-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 109.3747778 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -303750 +value_of_max_radian_position = 303750 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-B210-R-NR.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-B210-R-NR.device new file mode 100755 index 0000000..42342ae --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-B210-R-NR.device @@ -0,0 +1,76 @@ +[device info] +model_name = H54-100-B210-R-NR +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 9.09201 +velocity_to_value_ratio = 2046.2777 +value_of_0_radian_position = 0 +value_of_min_radian_position = -250950 +value_of_max_radian_position = 250950 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R(A).device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R(A).device new file mode 100644 index 0000000..fe706cc --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R(A).device @@ -0,0 +1,92 @@ +[device info] +model_name = H54-100-S500-R(A) +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 155.658486 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -501923 +value_of_max_radian_position = 501923 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R.device new file mode 100755 index 0000000..b042f27 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-100-S500-R.device @@ -0,0 +1,76 @@ +[device info] +model_name = H54-100-S500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 9.66026 +velocity_to_value_ratio = 4793.01226 +value_of_0_radian_position = 0 +value_of_min_radian_position = -250950 +value_of_max_radian_position = 250950 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-B500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-B500-R.device new file mode 100755 index 0000000..ca52162 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-B500-R.device @@ -0,0 +1,76 @@ +[device info] +model_name = H54-200-B500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 9.09201 +velocity_to_value_ratio = 4793.01226 +value_of_0_radian_position = 0 +value_of_min_radian_position = -250950 +value_of_max_radian_position = 250950 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R(A).device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R(A).device new file mode 100644 index 0000000..3cfb758 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R(A).device @@ -0,0 +1,92 @@ +[device info] +model_name = H54-200-S500-R(A) +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 146.502114 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -501923 +value_of_max_radian_position = 501923 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R.device new file mode 100755 index 0000000..4f81222 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54-200-S500-R.device @@ -0,0 +1,76 @@ +[device info] +model_name = H54-200-S500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 9.09201 +velocity_to_value_ratio = 4793.01226 +value_of_0_radian_position = 0 +value_of_min_radian_position = -250950 +value_of_max_radian_position = 250950 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-100-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-100-S500-R.device new file mode 100644 index 0000000..e9661e0 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-100-S500-R.device @@ -0,0 +1,92 @@ +[device info] +model_name = H54P-100-S500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 155.658486 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -501923 +value_of_max_radian_position = 501923 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-B500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-B500-R.device new file mode 100644 index 0000000..97f44c5 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-B500-R.device @@ -0,0 +1,92 @@ +[device info] +model_name = H54P-200-B500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 146.502114 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -501923 +value_of_max_radian_position = 501923 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-S500-R.device new file mode 100644 index 0000000..c58460e --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/H54P-200-S500-R.device @@ -0,0 +1,92 @@ +[device info] +model_name = H54P-200-S500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 146.502114 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -501923 +value_of_max_radian_position = 501923 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L42-10-S300-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L42-10-S300-R.device new file mode 100755 index 0000000..8d861f1 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L42-10-S300-R.device @@ -0,0 +1,73 @@ +[device info] +model_name = L42-10-S300-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -2047 +value_of_max_radian_position = 2048 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S400-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S400-R.device new file mode 100755 index 0000000..71fa09d --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S400-R.device @@ -0,0 +1,74 @@ +[device info] +model_name = L54-30-S400-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -144198 +value_of_max_radian_position = 144198 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S500-R.device new file mode 100755 index 0000000..5a8add7 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-30-S500-R.device @@ -0,0 +1,74 @@ +[device info] +model_name = L54-30-S500-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -180684 +value_of_max_radian_position = 180684 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S290-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S290-R.device new file mode 100755 index 0000000..7af9c22 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S290-R.device @@ -0,0 +1,74 @@ +[device info] +model_name = L54-50-S290-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -103860 +value_of_max_radian_position = 103860 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S500-R.device new file mode 100755 index 0000000..11d63b3 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/L54-50-S500-R.device @@ -0,0 +1,74 @@ +[device info] +model_name = L54-50-S500-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -180684 +value_of_max_radian_position = 180684 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M42-10-S260-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M42-10-S260-R.device new file mode 100755 index 0000000..ba205bb --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M42-10-S260-R.device @@ -0,0 +1,74 @@ +[device info] +model_name = M42-10-S260-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -131584 +value_of_max_radian_position = 131584 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-40-S250-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-40-S250-R.device new file mode 100755 index 0000000..62f9990 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-40-S250-R.device @@ -0,0 +1,74 @@ +[device info] +model_name = M54-40-S250-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -125700 +value_of_max_radian_position = 125700 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-60-S250-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-60-S250-R.device new file mode 100755 index 0000000..dd2efde --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/M54-60-S250-R.device @@ -0,0 +1,74 @@ +[device info] +model_name = M54-60-S250-R +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = -125700 +value_of_max_radian_position = 125700 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_torque +position_d_gain_item_name = +position_i_gain_item_name = +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 13 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | torque_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 586 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 588 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_torque | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-106.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-106.device new file mode 100755 index 0000000..a122831 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-106.device @@ -0,0 +1,66 @@ +[device info] +model_name = MX-106 +device_type = dynamixel + +[type info] +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = +velocity_p_gain_item_name = + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 2 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 3 | ID | 1 | RW | EEPROM | 0 | 252 | N + 4 | baudrate | 1 | RW | EEPROM | 0 | 252 | N + 5 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 6 | CW_angle_limit | 2 | RW | EEPROM | 0 | 4095 | N + 8 | CCW_angle_limit | 2 | RW | EEPROM | 0 | 4095 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | max_temperature_limit | 1 | RW | EEPROM | 0 | 99 | N + 12 | min_voltage_limit | 1 | RW | EEPROM | 0 | 250 | N + 13 | max_voltage_limit | 1 | RW | EEPROM | 0 | 250 | N + 14 | max_torque | 2 | RW | EEPROM | 0 | 1023 | N + 16 | status_return_level | 1 | RW | EEPROM | 0 | 2 | N + 17 | alarm_LED | 1 | RW | EEPROM | 0 | 127 | N + 18 | alarm_shutdown | 1 | RW | EEPROM | 0 | 127 | N + 20 | multi_turn_offset | 2 | RW | EEPROM | -26624 | 26624 | Y + 22 | resolution_dividor | 1 | RW | EEPROM | 1 | 255 | N + 24 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 25 | LED | 1 | RW | RAM | 0 | 1 | N + 26 | position_d_gain | 1 | RW | RAM | 0 | 254 | N + 27 | position_i_gain | 1 | RW | RAM | 0 | 254 | N + 28 | position_p_gain | 1 | RW | RAM | 0 | 254 | N + 30 | goal_position | 2 | RW | RAM | -28672 | 28672 | Y + 32 | goal_velocity | 2 | RW | RAM | 0 | 1023 | N + 34 | goal_torque | 2 | RW | RAM | 0 | 1023 | N + 36 | present_position | 2 | R | RAM | -32768 | 32767 | Y + 38 | present_velocity | 2 | R | RAM | 0 | 2048 | N + 40 | present_load | 2 | R | RAM | 0 | 2048 | N + 42 | present_voltage | 1 | R | RAM | 50 | 250 | N + 43 | present_temperature | 1 | R | RAM | 0 | 99 | N + 44 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 46 | is_moving | 1 | R | RAM | 0 | 1 | N + 47 | EEPROM_lock | 1 | RW | RAM | 0 | 1 | N + 48 | punch | 2 | RW | RAM | 0 | 1023 | N + 68 | current_consumption | 2 | RW | RAM | 0 | 4095 | N + 70 | torque_control_mode | 1 | RW | RAM | 0 | 1 | N + 71 | torque_control_goal | 2 | RW | RAM | 0 | 2047 | N + 73 | goal_acceleration | 1 | RW | RAM | 0 | 254 | N + diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-28.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-28.device new file mode 100755 index 0000000..ae1f877 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-28.device @@ -0,0 +1,62 @@ +[device info] +model_name = MX-28 +device_type = dynamixel + +[type info] +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = +velocity_p_gain_item_name = + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 2 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 3 | ID | 1 | RW | EEPROM | 0 | 252 | N + 4 | baudrate | 1 | RW | EEPROM | 0 | 252 | N + 5 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 6 | CW_angle_limit | 2 | RW | EEPROM | 0 | 4095 | N + 8 | CCW_angle_limit | 2 | RW | EEPROM | 0 | 4095 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | max_temperature_limit | 1 | RW | EEPROM | 0 | 99 | N + 12 | min_voltage_limit | 1 | RW | EEPROM | 0 | 250 | N + 13 | max_voltage_limit | 1 | RW | EEPROM | 0 | 250 | N + 14 | max_torque | 2 | RW | EEPROM | 0 | 1023 | N + 16 | status_return_level | 1 | RW | EEPROM | 0 | 2 | N + 17 | alarm_LED | 1 | RW | EEPROM | 0 | 127 | N + 18 | alarm_shutdown | 1 | RW | EEPROM | 0 | 127 | N + 20 | multi_turn_offset | 2 | RW | EEPROM | -26624 | 26624 | Y + 22 | resolution_dividor | 1 | RW | EEPROM | 1 | 255 | N + 24 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 25 | LED | 1 | RW | RAM | 0 | 1 | N + 26 | position_d_gain | 1 | RW | RAM | 0 | 254 | N + 27 | position_i_gain | 1 | RW | RAM | 0 | 254 | N + 28 | position_p_gain | 1 | RW | RAM | 0 | 254 | N + 30 | goal_position | 2 | RW | RAM | -28672 | 28672 | Y + 32 | goal_velocity | 2 | RW | RAM | 0 | 1023 | N + 34 | goal_torque | 2 | RW | RAM | 0 | 1023 | N + 36 | present_position | 2 | R | RAM | -32768 | 32767 | Y + 38 | present_velocity | 2 | R | RAM | 0 | 2048 | N + 40 | present_load | 2 | R | RAM | 0 | 2048 | N + 42 | present_voltage | 1 | R | RAM | 50 | 250 | N + 43 | present_temperature | 1 | R | RAM | 0 | 99 | N + 44 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 46 | is_moving | 1 | R | RAM | 0 | 1 | N + 47 | EEPROM_lock | 1 | RW | RAM | 0 | 1 | N + 48 | punch | 2 | RW | RAM | 0 | 1023 | N + 73 | goal_acceleration | 1 | RW | RAM | 0 | 254 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-64.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-64.device new file mode 100755 index 0000000..c6a50de --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/MX-64.device @@ -0,0 +1,66 @@ +[device info] +model_name = MX-64 +device_type = dynamixel + +[type info] +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = +velocity_p_gain_item_name = + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 2 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 3 | ID | 1 | RW | EEPROM | 0 | 252 | N + 4 | baudrate | 1 | RW | EEPROM | 0 | 252 | N + 5 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 6 | CW_angle_limit | 2 | RW | EEPROM | 0 | 4095 | N + 8 | CCW_angle_limit | 2 | RW | EEPROM | 0 | 4095 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | max_temperature_limit | 1 | RW | EEPROM | 0 | 99 | N + 12 | min_voltage_limit | 1 | RW | EEPROM | 0 | 250 | N + 13 | max_voltage_limit | 1 | RW | EEPROM | 0 | 250 | N + 14 | max_torque | 2 | RW | EEPROM | 0 | 1023 | N + 16 | status_return_level | 1 | RW | EEPROM | 0 | 2 | N + 17 | alarm_LED | 1 | RW | EEPROM | 0 | 127 | N + 18 | alarm_shutdown | 1 | RW | EEPROM | 0 | 127 | N + 20 | multi_turn_offset | 2 | RW | EEPROM | -26624 | 26624 | Y + 22 | resolution_dividor | 1 | RW | EEPROM | 1 | 255 | N + 24 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 25 | LED | 1 | RW | RAM | 0 | 1 | N + 26 | position_d_gain | 1 | RW | RAM | 0 | 254 | N + 27 | position_i_gain | 1 | RW | RAM | 0 | 254 | N + 28 | position_p_gain | 1 | RW | RAM | 0 | 254 | N + 30 | goal_position | 2 | RW | RAM | -28672 | 28672 | Y + 32 | goal_velocity | 2 | RW | RAM | 0 | 1023 | N + 34 | goal_torque | 2 | RW | RAM | 0 | 1023 | N + 36 | present_position | 2 | R | RAM | -32768 | 32767 | Y + 38 | present_velocity | 2 | R | RAM | 0 | 2048 | N + 40 | present_load | 2 | R | RAM | 0 | 2048 | N + 42 | present_voltage | 1 | R | RAM | 50 | 250 | N + 43 | present_temperature | 1 | R | RAM | 0 | 99 | N + 44 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 46 | is_moving | 1 | R | RAM | 0 | 1 | N + 47 | EEPROM_lock | 1 | RW | RAM | 0 | 1 | N + 48 | punch | 2 | RW | RAM | 0 | 1023 | N + 68 | current_consumption | 2 | RW | RAM | 0 | 4095 | N + 70 | torque_control_mode | 1 | RW | RAM | 0 | 1 | N + 71 | torque_control_goal | 2 | RW | RAM | 0 | 2047 | N + 73 | goal_acceleration | 1 | RW | RAM | 0 | 254 | N + diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH42-020-S300-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH42-020-S300-R.device new file mode 100644 index 0000000..92e9df6 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH42-020-S300-R.device @@ -0,0 +1,92 @@ +[device info] +model_name = PH42-020-S300-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 109.3747778 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -303750 +value_of_max_radian_position = 303750 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-100-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-100-S500-R.device new file mode 100644 index 0000000..6dd1ece --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-100-S500-R.device @@ -0,0 +1,92 @@ +[device info] +model_name = PH54-100-S500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 155.658486 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -501923 +value_of_max_radian_position = 501923 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-200-S500-R.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-200-S500-R.device new file mode 100644 index 0000000..b758315 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/PH54-200-S500-R.device @@ -0,0 +1,92 @@ +[device info] +model_name = PH54-200-S500-R +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 146.502114 +velocity_to_value_ratio = 954.93 +value_of_0_radian_position = 0 +value_of_min_radian_position = -501923 +value_of_max_radian_position = 501923 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 3 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 13 | protocol_version | 1 | RW | EEPROM | 1 | 2 | N + 20 | homing_offset | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 48 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 52 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 1 | R | RAM | 0 | 31 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 2047 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 2047 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2100 | 2100 | Y + 550 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 552 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 564 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2100 | 2100 | Y + 574 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 576 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 580 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 584 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 588 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 592 | present_voltage | 2 | R | RAM | 0 | 500 | N + 594 | present_temperature | 1 | R | RAM | 0 | 200 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN(A).device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN(A).device new file mode 100644 index 0000000..31d253b --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN(A).device @@ -0,0 +1,90 @@ +[device info] +model_name = RH-P12-RN(A) +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = 0 +value_of_max_radian_position = 740 +min_radian = 0 +max_radian = 1.150767 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 9 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 1 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 4 | N + 12 | secondary_ID | 1 | RW | EEPROM | 0 | 255 | N + 20 | homing_offset | 4 | RW | EEPROM | -1150 | 1150 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 2970 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 0 | 350 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 0 | 350 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 2009 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 1984 | N + 40 | acceleration_limit | 4 | RW | EEPROM | 0 | 1378788 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 2970 | N + 48 | max_position_limit | 4 | RW | EEPROM | 0 | 1150 | N + 52 | min_position_limit | 4 | RW | EEPROM | 0 | 1150 | N + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 59 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 168 | indirect_address_1 | 2 | RW | EEPROM | 512 | 1023 | N + 512 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 513 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 514 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 515 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 516 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 517 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 518 | hardware_error_status | 2 | R | RAM | 0 | 63 | N + 524 | velocity_i_gain | 2 | RW | RAM | 0 | 32767 | N + 526 | velocity_p_gain | 2 | RW | RAM | 0 | 32767 | N + 528 | position_d_gain | 2 | RW | RAM | 0 | 32767 | N + 530 | position_i_gain | 2 | RW | RAM | 0 | 32767 | N + 532 | position_p_gain | 2 | RW | RAM | 0 | 32767 | N + 536 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 538 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 546 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 548 | goal_pwm | 2 | RW | RAM | -2009 | 2009 | Y + 550 | goal_current | 2 | RW | RAM | -1984 | 1984 | Y + 552 | goal_velocity | 4 | RW | RAM | -2970 | 2970 | Y + 556 | profile_acceleration | 4 | RW | RAM | 0 | 1378788 | N + 560 | profile_velocity | 4 | RW | RAM | 0 | 2970 | N + 564 | goal_position | 4 | RW | RAM | 0 | 1150 | N + 568 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 570 | is_moving | 1 | R | RAM | 0 | 1 | N + 571 | moving_status | 1 | R | RAM | 0 | 255 | N + 572 | present_pwm | 2 | R | RAM | -2009 | 2009 | Y + 574 | present_current | 2 | R | RAM | -1984 | 1984 | Y + 576 | present_velocity | 4 | R | RAM | -2970 | 2970 | Y + 580 | present_position | 4 | R | RAM | -1150 | 1150 | Y + 584 | velocity_trajectory | 4 | R | RAM | -2147483648 | 2147483648 | Y + 588 | position_trajectory | 4 | R | RAM | -2147483648 | 2147483648 | Y + 592 | present_voltage | 2 | R | RAM | 0 | 350 | N + 594 | present_temperature | 1 | R | RAM | 0 | 100 | N + 595 | grip_detection | 1 | R | RAM | 0 | 1 | N + 600 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 602 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 604 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 606 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN.device new file mode 100755 index 0000000..14ed73b --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/RH-P12-RN.device @@ -0,0 +1,73 @@ +[device info] +model_name = RH-P12-RN +device_type = dynamixel + +[type info] +value_of_0_radian_position = 0 +value_of_min_radian_position = 0 +value_of_max_radian_position = 740 +min_radian = 0 +max_radian = 1.150767 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = +velocity_p_gain_item_name = + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 8 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 5 | N + 17 | moving_threshold | 4 | RW | EEPROM | 0 | 2147483647 | N + 21 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 22 | max_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 24 | min_voltage_limit | 2 | RW | EEPROM | 0 | 400 | N + 26 | acceleration_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 30 | current_limit | 2 | RW | EEPROM | 0 | 32767 | N + 32 | velocity_limit | 4 | RW | EEPROM | 0 | 2147483647 | N + 36 | max_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 40 | min_position_limit | 4 | RW | EEPROM | -2147483648 | 2147483647 | Y + 44 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 45 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 46 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 47 | external_port_mod_4 | 1 | RW | EEPROM | 0 | 3 | N + 48 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 49 | indirect_address_1 | 2 | RW | EEPROM | 0 | 65535 | N + 562 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 563 | LED_RED | 1 | RW | RAM | 0 | 255 | N + 564 | LED_GREEN | 1 | RW | RAM | 0 | 255 | N + 565 | LED_BLUE | 1 | RW | RAM | 0 | 255 | N + 590 | position_d_gain | 2 | RW | RAM | 0 | 2047 | N + 592 | position_i_gain | 2 | RW | RAM | 0 | 2047 | N + 594 | position_p_gain | 2 | RW | RAM | 0 | 2047 | N + 596 | goal_position | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 600 | goal_velocity | 4 | RW | RAM | -2147483648 | 2147483647 | Y + 604 | goal_current | 2 | RW | RAM | -32768 | 32767 | Y + 606 | goal_acceleration | 4 | RW | RAM | 0 | 2147483647 | N + 610 | is_moving | 1 | R | RAM | 0 | 1 | N + 611 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 615 | present_velocity | 4 | R | RAM | -2147483648 | 2147483647 | Y + 621 | present_current | 2 | R | RAM | -32768 | 32767 | Y + 623 | present_voltage | 2 | R | RAM | 0 | 500 | N + 625 | present_temperature | 1 | R | RAM | 0 | 200 | N + 626 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 628 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 630 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 632 | external_port_data_4 | 2 | RW | RAM | 0 | 4095 | N + 634 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 890 | registerd_instruction | 1 | R | RAM | 0 | 1 | N + 891 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 892 | hardware_error_status | 2 | R | RAM | 0 | 31 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM-430.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM-430.device new file mode 100755 index 0000000..7dfe91d --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM-430.device @@ -0,0 +1,82 @@ +[device info] +model_name = XM-430 +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 149.795386991 + +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 7 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 1 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 16 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 20 | homing_offset | 4 | RW | EEPROM | -1044479 | 1044479 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 1023 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 1193 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 1023 | N + 48 | max_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 52 | min_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 64 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 65 | LED | 1 | RW | RAM | 0 | 1 | N + 68 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 69 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 70 | hardware_error_status | 1 | R | RAM | 0 | 255 | N + 76 | velocity_i_gain | 2 | RW | RAM | 0 | 32767 | N + 78 | velocity_p_gain | 2 | RW | RAM | 0 | 32767 | N + 80 | position_d_gain | 2 | RW | RAM | 0 | 32767 | N + 82 | position_i_gain | 2 | RW | RAM | 0 | 32767 | N + 84 | position_p_gain | 2 | RW | RAM | 0 | 32767 | N + 88 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 90 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 98 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 100 | goal_pwm | 2 | RW | RAM | 0 | 885 | N + 102 | goal_current | 2 | RW | RAM | 0 | 1193 | N + 104 | goal_velocity | 4 | RW | RAM | 0 | 1023 | N + 108 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 112 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 116 | goal_position | 4 | RW | RAM | -1048575 | 1048575 | Y + 120 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 122 | moving | 1 | R | RAM | 0 | 1 | N + 123 | moving_status | 1 | R | RAM | 0 | 255 | N + 124 | present_pwm | 2 | R | RAM | 0 | 885 | N + 126 | present_current | 2 | R | RAM | 0 | 1193 | N + 128 | present_velocity | 4 | R | RAM | 0 | 1023 | N + 132 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 136 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 140 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 144 | present_input_voltage | 2 | R | RAM | 95 | 160 | N + 146 | present_temperature | 1 | R | RAM | 0 | 100 | N + 168 | indirect_address_1 | 2 | RW | RAM | 0 | 65535 | N + 224 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 578 | indirect_address_29 | 2 | RW | RAM | 0 | 65535 | N + 634 | indirect_data_29 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W210.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W210.device new file mode 100644 index 0000000..6113e04 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W210.device @@ -0,0 +1,83 @@ +[device info] +model_name = XM430-W210 +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 235.53647082 +velocity_to_value_ratio = 41.707853 + +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 7 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 1 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 16 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 20 | homing_offset | 4 | RW | EEPROM | -1044479 | 1044479 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 1023 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 1193 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 1023 | N + 48 | max_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 52 | min_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 64 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 65 | LED | 1 | RW | RAM | 0 | 1 | N + 68 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 69 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 70 | hardware_error_status | 1 | R | RAM | 0 | 255 | N + 76 | velocity_i_gain | 2 | RW | RAM | 0 | 32767 | N + 78 | velocity_p_gain | 2 | RW | RAM | 0 | 32767 | N + 80 | position_d_gain | 2 | RW | RAM | 0 | 32767 | N + 82 | position_i_gain | 2 | RW | RAM | 0 | 32767 | N + 84 | position_p_gain | 2 | RW | RAM | 0 | 32767 | N + 88 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 90 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 98 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 100 | goal_pwm | 2 | RW | RAM | 0 | 885 | N + 102 | goal_current | 2 | RW | RAM | 0 | 1193 | N + 104 | goal_velocity | 4 | RW | RAM | 0 | 1023 | N + 108 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 112 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 116 | goal_position | 4 | RW | RAM | -1048575 | 1048575 | Y + 120 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 122 | moving | 1 | R | RAM | 0 | 1 | N + 123 | moving_status | 1 | R | RAM | 0 | 255 | N + 124 | present_pwm | 2 | R | RAM | 0 | 885 | N + 126 | present_current | 2 | R | RAM | 0 | 1193 | N + 128 | present_velocity | 4 | R | RAM | 0 | 1023 | N + 132 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 136 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 140 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 144 | present_input_voltage | 2 | R | RAM | 95 | 160 | N + 146 | present_temperature | 1 | R | RAM | 0 | 100 | N + 168 | indirect_address_1 | 2 | RW | RAM | 0 | 65535 | N + 224 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 578 | indirect_address_29 | 2 | RW | RAM | 0 | 65535 | N + 634 | indirect_data_29 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W350.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W350.device new file mode 100644 index 0000000..e1be362 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM430-W350.device @@ -0,0 +1,83 @@ +[device info] +model_name = XM430-W350 +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 149.795386991 +velocity_to_value_ratio = 41.707853 + +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 7 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 1 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 16 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 20 | homing_offset | 4 | RW | EEPROM | -1044479 | 1044479 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 1023 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 1193 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 1023 | N + 48 | max_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 52 | min_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 64 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 65 | LED | 1 | RW | RAM | 0 | 1 | N + 68 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 69 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 70 | hardware_error_status | 1 | R | RAM | 0 | 255 | N + 76 | velocity_i_gain | 2 | RW | RAM | 0 | 32767 | N + 78 | velocity_p_gain | 2 | RW | RAM | 0 | 32767 | N + 80 | position_d_gain | 2 | RW | RAM | 0 | 32767 | N + 82 | position_i_gain | 2 | RW | RAM | 0 | 32767 | N + 84 | position_p_gain | 2 | RW | RAM | 0 | 32767 | N + 88 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 90 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 98 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 100 | goal_pwm | 2 | RW | RAM | 0 | 885 | N + 102 | goal_current | 2 | RW | RAM | 0 | 1193 | N + 104 | goal_velocity | 4 | RW | RAM | 0 | 1023 | N + 108 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 112 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 116 | goal_position | 4 | RW | RAM | -1048575 | 1048575 | Y + 120 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 122 | moving | 1 | R | RAM | 0 | 1 | N + 123 | moving_status | 1 | R | RAM | 0 | 255 | N + 124 | present_pwm | 2 | R | RAM | 0 | 885 | N + 126 | present_current | 2 | R | RAM | 0 | 1193 | N + 128 | present_velocity | 4 | R | RAM | 0 | 1023 | N + 132 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 136 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 140 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 144 | present_input_voltage | 2 | R | RAM | 95 | 160 | N + 146 | present_temperature | 1 | R | RAM | 0 | 100 | N + 168 | indirect_address_1 | 2 | RW | RAM | 0 | 65535 | N + 224 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 578 | indirect_address_29 | 2 | RW | RAM | 0 | 65535 | N + 634 | indirect_data_29 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W150.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W150.device new file mode 100755 index 0000000..64fcf3b --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W150.device @@ -0,0 +1,89 @@ +[device info] +model_name = XM540-W150 +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 289.13672036 +velocity_to_value_ratio = 41.707853 + +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 7 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 1 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 16 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 20 | homing_offset | 4 | RW | EEPROM | -1044479 | 1044479 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 1023 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 1193 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 1023 | N + 48 | max_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 52 | min_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 64 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 65 | LED | 1 | RW | RAM | 0 | 1 | N + 68 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 69 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 70 | hardware_error_status | 1 | R | RAM | 0 | 255 | N + 76 | velocity_i_gain | 2 | RW | RAM | 0 | 32767 | N + 78 | velocity_p_gain | 2 | RW | RAM | 0 | 32767 | N + 80 | position_d_gain | 2 | RW | RAM | 0 | 32767 | N + 82 | position_i_gain | 2 | RW | RAM | 0 | 32767 | N + 84 | position_p_gain | 2 | RW | RAM | 0 | 32767 | N + 88 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 90 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 98 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 100 | goal_pwm | 2 | RW | RAM | 0 | 885 | N + 102 | goal_current | 2 | RW | RAM | 0 | 1193 | N + 104 | goal_velocity | 4 | RW | RAM | 0 | 1023 | N + 108 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 112 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 116 | goal_position | 4 | RW | RAM | -1048575 | 1048575 | Y + 120 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 122 | moving | 1 | R | RAM | 0 | 1 | N + 123 | moving_status | 1 | R | RAM | 0 | 255 | N + 124 | present_pwm | 2 | R | RAM | 0 | 885 | N + 126 | present_current | 2 | R | RAM | 0 | 1193 | N + 128 | present_velocity | 4 | R | RAM | 0 | 1023 | N + 132 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 136 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 140 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 144 | present_input_voltage | 2 | R | RAM | 95 | 160 | N + 146 | present_temperature | 1 | R | RAM | 0 | 100 | N + 152 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 154 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 156 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 168 | indirect_address_1 | 2 | RW | RAM | 0 | 65535 | N + 224 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 578 | indirect_address_29 | 2 | RW | RAM | 0 | 65535 | N + 634 | indirect_data_29 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W270.device b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W270.device new file mode 100755 index 0000000..c787cba --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/dynamixel/XM540-W270.device @@ -0,0 +1,89 @@ +[device info] +model_name = XM540-W270 +device_type = dynamixel + +[type info] +torque_to_current_value_ratio = 156.133829 +velocity_to_value_ratio = 41.707853 + +value_of_0_radian_position = 2048 +value_of_min_radian_position = 0 +value_of_max_radian_position = 4095 +min_radian = -3.14159265 +max_radian = 3.14159265 + +torque_enable_item_name = torque_enable +present_position_item_name = present_position +present_velocity_item_name = present_velocity +present_current_item_name = present_current +goal_position_item_name = goal_position +goal_velocity_item_name = goal_velocity +goal_current_item_name = goal_current +position_d_gain_item_name = position_d_gain +position_i_gain_item_name = position_i_gain +position_p_gain_item_name = position_p_gain +velocity_d_gain_item_name = +velocity_i_gain_item_name = velocity_i_gain +velocity_p_gain_item_name = velocity_p_gain + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 6 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 7 | ID | 1 | RW | EEPROM | 0 | 252 | N + 8 | baudrate | 1 | RW | EEPROM | 0 | 7 | N + 9 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 10 | drive_mode | 1 | RW | EEPROM | 0 | 1 | N + 11 | operating_mode | 1 | RW | EEPROM | 0 | 16 | N + 12 | secondary_id | 1 | RW | EEPROM | 0 | 255 | N + 20 | homing_offset | 4 | RW | EEPROM | -1044479 | 1044479 | Y + 24 | moving_threshold | 4 | RW | EEPROM | 0 | 1023 | N + 31 | max_temperature_limit | 1 | RW | EEPROM | 0 | 100 | N + 32 | max_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 34 | min_voltage_limit | 2 | RW | EEPROM | 95 | 160 | N + 36 | pwm_limit | 2 | RW | EEPROM | 0 | 885 | N + 38 | current_limit | 2 | RW | EEPROM | 0 | 1193 | N + 44 | velocity_limit | 4 | RW | EEPROM | 0 | 1023 | N + 48 | max_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 52 | min_position_limit | 4 | RW | EEPROM | 0 | 4095 | N + 56 | external_port_mod_1 | 1 | RW | EEPROM | 0 | 3 | N + 57 | external_port_mod_2 | 1 | RW | EEPROM | 0 | 3 | N + 58 | external_port_mod_3 | 1 | RW | EEPROM | 0 | 3 | N + 63 | shutdown | 1 | RW | EEPROM | 0 | 255 | N + 64 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 65 | LED | 1 | RW | RAM | 0 | 1 | N + 68 | status_return_level | 1 | RW | RAM | 0 | 2 | N + 69 | registered_instruction | 1 | R | RAM | 0 | 1 | N + 70 | hardware_error_status | 1 | R | RAM | 0 | 255 | N + 76 | velocity_i_gain | 2 | RW | RAM | 0 | 32767 | N + 78 | velocity_p_gain | 2 | RW | RAM | 0 | 32767 | N + 80 | position_d_gain | 2 | RW | RAM | 0 | 32767 | N + 82 | position_i_gain | 2 | RW | RAM | 0 | 32767 | N + 84 | position_p_gain | 2 | RW | RAM | 0 | 32767 | N + 88 | feedforward_2nd_gain | 2 | RW | RAM | 0 | 32767 | N + 90 | feedforward_1st_gain | 2 | RW | RAM | 0 | 32767 | N + 98 | bus_watchdog | 1 | RW | RAM | -1 | 127 | Y + 100 | goal_pwm | 2 | RW | RAM | 0 | 885 | N + 102 | goal_current | 2 | RW | RAM | 0 | 1193 | N + 104 | goal_velocity | 4 | RW | RAM | 0 | 1023 | N + 108 | profile_acceleration | 4 | RW | RAM | 0 | 32767 | N + 112 | profile_velocity | 4 | RW | RAM | 0 | 1023 | N + 116 | goal_position | 4 | RW | RAM | -1048575 | 1048575 | Y + 120 | realtime_tick | 2 | R | RAM | 0 | 32767 | N + 122 | moving | 1 | R | RAM | 0 | 1 | N + 123 | moving_status | 1 | R | RAM | 0 | 255 | N + 124 | present_pwm | 2 | R | RAM | 0 | 885 | N + 126 | present_current | 2 | R | RAM | 0 | 1193 | N + 128 | present_velocity | 4 | R | RAM | 0 | 1023 | N + 132 | present_position | 4 | R | RAM | -2147483648 | 2147483647 | Y + 136 | velocity_trajectory | 4 | R | RAM | 0 | 1023 | N + 140 | position_trajectory | 4 | R | RAM | 0 | 4095 | N + 144 | present_input_voltage | 2 | R | RAM | 95 | 160 | N + 146 | present_temperature | 1 | R | RAM | 0 | 100 | N + 152 | external_port_data_1 | 2 | RW | RAM | 0 | 4095 | N + 154 | external_port_data_2 | 2 | RW | RAM | 0 | 4095 | N + 156 | external_port_data_3 | 2 | RW | RAM | 0 | 4095 | N + 168 | indirect_address_1 | 2 | RW | RAM | 0 | 65535 | N + 224 | indirect_data_1 | 1 | RW | RAM | 0 | 255 | N + 578 | indirect_address_29 | 2 | RW | RAM | 0 | 65535 | N + 634 | indirect_data_29 | 1 | RW | RAM | 0 | 255 | N diff --git a/humanoid_robot_intelligence_control_system_device/devices/sensor/CM-740.device b/humanoid_robot_intelligence_control_system_device/devices/sensor/CM-740.device new file mode 100755 index 0000000..5cdf45f --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/sensor/CM-740.device @@ -0,0 +1,25 @@ +[device info] +model_name = CM-740 +device_type = sensor + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 2 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 3 | ID | 1 | RW | EEPROM | 0 | 252 | N + 4 | baudrate | 1 | RW | EEPROM | 0 | 252 | N + 5 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 16 | status_return_level | 1 | RW | EEPROM | 0 | 2 | N + 24 | torque_enable | 1 | RW | RAM | 0 | 1 | N + 25 | LED | 1 | RW | RAM | 0 | 7 | N + 26 | LED_5 | 2 | RW | RAM | 0 | 32767 | N + 28 | LED_6 | 2 | RW | RAM | 0 | 32767 | N + 30 | button | 1 | RW | RAM | 0 | 3 | N + 38 | gyro_z | 2 | R | RAM | 0 | 1023 | N + 40 | gyro_y | 2 | R | RAM | 0 | 1023 | N + 42 | gyro_x | 2 | R | RAM | 0 | 1023 | N + 44 | acc_x | 2 | R | RAM | 0 | 1023 | N + 46 | acc_y | 2 | R | RAM | 0 | 1023 | N + 48 | acc_z | 2 | R | RAM | 0 | 1023 | N + 50 | present_voltage | 1 | R | RAM | 50 | 250 | N + \ No newline at end of file diff --git a/humanoid_robot_intelligence_control_system_device/devices/sensor/OPEN-CR.device b/humanoid_robot_intelligence_control_system_device/devices/sensor/OPEN-CR.device new file mode 100755 index 0000000..71cee8e --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/devices/sensor/OPEN-CR.device @@ -0,0 +1,30 @@ +[device info] +model_name = OPEN-CR +device_type = sensor + +[control table] +# addr | item name | length | access | memory | min value | max value | signed + 0 | model_number | 2 | R | EEPROM | 0 | 65535 | N + 2 | version_of_firmware | 1 | R | EEPROM | 0 | 254 | N + 3 | ID | 1 | RW | EEPROM | 0 | 252 | N + 4 | baudrate | 1 | RW | EEPROM | 0 | 252 | N + 5 | return_delay_time | 1 | RW | EEPROM | 0 | 254 | N + 16 | status_return_level | 1 | RW | EEPROM | 0 | 2 | N + 24 | dynamixel_power | 1 | RW | RAM | 0 | 1 | N + 25 | LED | 1 | RW | RAM | 0 | 7 | N + 26 | LED_RGB | 2 | RW | RAM | 0 | 32767 | N + 28 | buzzer | 2 | RW | RAM | 0 | 65535 | N + 30 | button | 1 | R | RAM | 0 | 15 | N + 31 | present_voltage | 1 | R | RAM | 50 | 250 | N + 32 | gyro_x | 2 | R | RAM | -32800 | 32800 | Y + 34 | gyro_y | 2 | R | RAM | -32800 | 32800 | Y + 36 | gyro_z | 2 | R | RAM | -32800 | 32800 | Y + 38 | acc_x | 2 | R | RAM | -32768 | 32768 | Y + 40 | acc_y | 2 | R | RAM | -32768 | 32768 | Y + 42 | acc_z | 2 | R | RAM | -32768 | 32768 | Y + 44 | roll | 2 | R | RAM | 0 | 4096 | N + 46 | pitch | 2 | R | RAM | 0 | 4096 | N + 48 | yaw | 2 | R | RAM | 0 | 4096 | N + 50 | imu_control | 1 | RW | RAM | 0 | 255 | N + + \ No newline at end of file diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/control_table_item.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/control_table_item.h new file mode 100755 index 0000000..9b0a878 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/control_table_item.h @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright 2018 ROBOTIS CO., LTD. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *******************************************************************************/ + +/* + * control_table_item.h + * + * Created on: 2015. 12. 16. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_CONTROL_TABLE_ITEM_H_ +#define ROBOTIS_DEVICE_CONTROL_TABLE_ITEM_H_ + +#include + +namespace humanoid_robot_intelligence_control_system_framework { + +enum AccessType { Read, ReadWrite }; + +enum MemoryType { EEPROM, RAM }; + +class ControlTableItem { +public: + std::string item_name_; + uint16_t address_; + AccessType access_type_; + MemoryType memory_type_; + uint8_t data_length_; + int32_t data_min_value_; + int32_t data_max_value_; + bool is_signed_; + + ControlTableItem() + : item_name_(""), address_(0), access_type_(Read), memory_type_(RAM), + data_length_(0), data_min_value_(0), data_max_value_(0), + is_signed_(false) {} +}; + +} // namespace humanoid_robot_intelligence_control_system_framework + +#endif /* ROBOTIS_DEVICE_CONTROL_TABLE_ITEM_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/device.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/device.h new file mode 100755 index 0000000..c14deb0 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/device.h @@ -0,0 +1,54 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * device.h + * + * Created on: 2016. 5. 12. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_DEVICE_H_ +#define ROBOTIS_DEVICE_DEVICE_H_ + + +#include +#include +#include + +#include "control_table_item.h" + +namespace humanoid_robot_intelligence_control_system_framework +{ + +class Device +{ +public: + uint8_t id_; + float protocol_version_; + std::string model_name_; + std::string port_name_; + + std::map ctrl_table_; + std::vector bulk_read_items_; + + virtual ~Device() { } +}; + +} + + +#endif /* ROBOTIS_DEVICE_DEVICE_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel.h new file mode 100755 index 0000000..329b626 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel.h @@ -0,0 +1,83 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * dynamixel.h + * + * Created on: 2015. 12. 8. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_DYNAMIXEL_H_ +#define ROBOTIS_DEVICE_DYNAMIXEL_H_ + + +#include +#include +#include + +#include "control_table_item.h" +#include "device.h" +#include "dynamixel_state.h" + +namespace humanoid_robot_intelligence_control_system_framework +{ + +class Dynamixel : public Device +{ +public: + std::string ctrl_module_name_; + DynamixelState *dxl_state_; + + double velocity_to_value_ratio_; + double torque_to_current_value_ratio_; + + int32_t value_of_0_radian_position_; + int32_t value_of_min_radian_position_; + int32_t value_of_max_radian_position_; + double min_radian_; + double max_radian_; + + ControlTableItem *torque_enable_item_; + ControlTableItem *present_position_item_; + ControlTableItem *present_velocity_item_; + ControlTableItem *present_current_item_; + ControlTableItem *goal_position_item_; + ControlTableItem *goal_velocity_item_; + ControlTableItem *goal_current_item_; + ControlTableItem *position_p_gain_item_; + ControlTableItem *position_i_gain_item_; + ControlTableItem *position_d_gain_item_; + ControlTableItem *velocity_p_gain_item_; + ControlTableItem *velocity_i_gain_item_; + ControlTableItem *velocity_d_gain_item_; + + Dynamixel(int id, std::string model_name, float protocol_version); + + double convertValue2Radian(int32_t value); + int32_t convertRadian2Value(double radian); + + double convertValue2Velocity(int32_t value); + int32_t convertVelocity2Value(double velocity); + + double convertValue2Torque(int16_t value); + int16_t convertTorque2Value(double torque); +}; + +} + + +#endif /* ROBOTIS_DEVICE_DYNAMIXEL_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel_state.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel_state.h new file mode 100755 index 0000000..b915824 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/dynamixel_state.h @@ -0,0 +1,82 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * dynamixel_state.h + * + * Created on: 2015. 12. 8. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_DYNAMIXEL_STATE_H_ +#define ROBOTIS_DEVICE_DYNAMIXEL_STATE_H_ + +#include + +#include "time_stamp.h" + +#define INDIRECT_DATA_1 "indirect_data_1" +#define INDIRECT_ADDRESS_1 "indirect_address_1" + +namespace humanoid_robot_intelligence_control_system_framework +{ + +class DynamixelState +{ +public: + TimeStamp update_time_stamp_; + + double present_position_; + double present_velocity_; + double present_torque_; + double goal_position_; + double goal_velocity_; + double goal_torque_; + int position_p_gain_; + int position_i_gain_; + int position_d_gain_; + int velocity_p_gain_; + int velocity_i_gain_; + int velocity_d_gain_; + + std::map bulk_read_table_; + + double position_offset_; + + DynamixelState() + : update_time_stamp_(0, 0), + present_position_(0.0), + present_velocity_(0.0), + present_torque_(0.0), + goal_position_(0.0), + goal_velocity_(0.0), + goal_torque_(0.0), + position_p_gain_(65535), + position_i_gain_(65535), + position_d_gain_(65535), + velocity_p_gain_(65535), + velocity_i_gain_(65535), + velocity_d_gain_(65535), + position_offset_(0) + { + bulk_read_table_.clear(); + } +}; + +} + + +#endif /* ROBOTIS_DEVICE_DYNAMIXEL_STATE_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/robot.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/robot.h new file mode 100755 index 0000000..15350bd --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/robot.h @@ -0,0 +1,72 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * robot.h + * + * Created on: 2015. 12. 11. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_ROBOT_H_ +#define ROBOTIS_DEVICE_ROBOT_H_ + + +#include + +#include "sensor.h" +#include "dynamixel.h" +#include "dynamixel_sdk/port_handler.h" + +#define DYNAMIXEL "dynamixel" +#define SENSOR "sensor" + +#define SESSION_CONTROL_INFO "control info" +#define SESSION_PORT_INFO "port info" +#define SESSION_DEVICE_INFO "device info" + +#define SESSION_TYPE_INFO "type info" +#define SESSION_CONTROL_TABLE "control table" + +#define DEFAULT_CONTROL_CYCLE 8 // milliseconds + +namespace humanoid_robot_intelligence_control_system_framework +{ + +class Robot +{ +private: + int control_cycle_msec_; + +public: + std::map ports_; // string: port name + std::map port_default_device_; // port name, default device name + + std::map dxls_; // string: joint name + std::map sensors_; // string: sensor name + + Robot(std::string robot_file_path, std::string dev_desc_dir_path); + + Sensor *getSensor(std::string path, int id, std::string port, float protocol_version); + Dynamixel *getDynamixel(std::string path, int id, std::string port, float protocol_version); + + int getControlCycle(); +}; + +} + + +#endif /* ROBOTIS_DEVICE_ROBOT_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor.h new file mode 100755 index 0000000..32abe6c --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor.h @@ -0,0 +1,49 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * sensor.h + * + * Created on: 2015. 12. 16. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_SENSOR_H_ +#define ROBOTIS_DEVICE_SENSOR_H_ + +#include +#include +#include + +#include "device.h" +#include "sensor_state.h" +#include "control_table_item.h" + +namespace humanoid_robot_intelligence_control_system_framework +{ + +class Sensor : public Device +{ +public: + SensorState *sensor_state_; + + Sensor(int id, std::string model_name, float protocol_version); +}; + +} + + +#endif /* ROBOTIS_DEVICE_SENSOR_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor_state.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor_state.h new file mode 100755 index 0000000..08f61ba --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/sensor_state.h @@ -0,0 +1,50 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * sensor_state.h + * + * Created on: 2016. 5. 16. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_SENSOR_STATE_H_ +#define ROBOTIS_DEVICE_SENSOR_STATE_H_ + + +#include "time_stamp.h" + +namespace humanoid_robot_intelligence_control_system_framework +{ + +class SensorState +{ +public: + TimeStamp update_time_stamp_; + + std::map bulk_read_table_; + + SensorState() + : update_time_stamp_(0, 0) + { + bulk_read_table_.clear(); + } +}; + +} + + +#endif /* ROBOTIS_DEVICE_SENSOR_STATE_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/time_stamp.h b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/time_stamp.h new file mode 100755 index 0000000..87f59f4 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/include/humanoid_robot_intelligence_control_system_device/time_stamp.h @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright 2018 ROBOTIS CO., LTD. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *******************************************************************************/ + +/* + * time_stamp.h + * + * Created on: 2016. 5. 16. + * Author: zerom + */ + +#ifndef ROBOTIS_DEVICE_TIME_STAMP_H_ +#define ROBOTIS_DEVICE_TIME_STAMP_H_ + +namespace humanoid_robot_intelligence_control_system_framework { + +class TimeStamp { +public: + long sec_; + long nsec_; + + TimeStamp(long sec, long nsec) : sec_(sec), nsec_(nsec) {} +}; + +} // namespace humanoid_robot_intelligence_control_system_framework + +#endif /* ROBOTIS_DEVICE_TIME_STAMP_H_ */ diff --git a/humanoid_robot_intelligence_control_system_device/package.xml b/humanoid_robot_intelligence_control_system_device/package.xml new file mode 100755 index 0000000..b21c17d --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/package.xml @@ -0,0 +1,38 @@ + + + humanoid_robot_intelligence_control_system_device + 0.3.2 + + The package that manages device information of ROBOTIS robots. + This package is used when reading device information with the robot information file + from the humanoid_robot_intelligence_control_system_controller package. + + Apache 2.0 + + Ronaldson Bellande + + + catkin + + roscpp + dynamixel_sdk + + roscpp + dynamixel_sdk + + roscpp + dynamixel_sdk + + + ament_cmake + + roscpp + dynamixel_sdk + + roscpp + dynamixel_sdk + + roscpp + dynamixel_sdk + + diff --git a/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/dynamixel.cpp b/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/dynamixel.cpp new file mode 100755 index 0000000..95a01ca --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/dynamixel.cpp @@ -0,0 +1,119 @@ +/******************************************************************************* + * Copyright 2018 ROBOTIS CO., LTD. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *******************************************************************************/ + +/* + * dynamixel.cpp + * + * Created on: 2015. 12. 8. + * Author: zerom + */ + +#include "humanoid_robot_intelligence_control_system_device/dynamixel.h" + +using namespace humanoid_robot_intelligence_control_system_framework; + +Dynamixel::Dynamixel(int id, std::string model_name, float protocol_version) + : ctrl_module_name_("none"), torque_to_current_value_ratio_(1.0), + velocity_to_value_ratio_(1.0), value_of_0_radian_position_(0), + value_of_min_radian_position_(0), value_of_max_radian_position_(0), + min_radian_(-3.14159265), max_radian_(3.14159265), torque_enable_item_(0), + present_position_item_(0), present_velocity_item_(0), + present_current_item_(0), goal_position_item_(0), goal_velocity_item_(0), + goal_current_item_(0), position_p_gain_item_(0), position_i_gain_item_(0), + position_d_gain_item_(0), velocity_p_gain_item_(0), + velocity_i_gain_item_(0), velocity_d_gain_item_(0) { + this->id_ = id; + this->model_name_ = model_name; + this->port_name_ = ""; + this->protocol_version_ = protocol_version; + + ctrl_table_.clear(); + dxl_state_ = new DynamixelState(); + + bulk_read_items_.clear(); +} + +double Dynamixel::convertValue2Radian(int32_t value) { + double radian = 0.0; + if (value > value_of_0_radian_position_) { + if (max_radian_ <= 0) + return max_radian_; + + radian = + (double)(value - value_of_0_radian_position_) * max_radian_ / + (double)(value_of_max_radian_position_ - value_of_0_radian_position_); + } else if (value < value_of_0_radian_position_) { + if (min_radian_ >= 0) + return min_radian_; + + radian = + (double)(value - value_of_0_radian_position_) * min_radian_ / + (double)(value_of_min_radian_position_ - value_of_0_radian_position_); + } + + // if (radian > max_radian_) + // return max_radian_; + // else if (radian < min_radian_) + // return min_radian_; + + return radian; +} + +int32_t Dynamixel::convertRadian2Value(double radian) { + int32_t value = 0; + if (radian > 0) { + if (value_of_max_radian_position_ <= value_of_0_radian_position_) + return value_of_max_radian_position_; + + value = (radian * + (value_of_max_radian_position_ - value_of_0_radian_position_) / + max_radian_) + + value_of_0_radian_position_; + } else if (radian < 0) { + if (value_of_min_radian_position_ >= value_of_0_radian_position_) + return value_of_min_radian_position_; + + value = (radian * + (value_of_min_radian_position_ - value_of_0_radian_position_) / + min_radian_) + + value_of_0_radian_position_; + } else + value = value_of_0_radian_position_; + + // if (value > value_of_max_radian_position_) + // return value_of_max_radian_position_; + // else if (value < value_of_min_radian_position_) + // return value_of_min_radian_position_; + + return value; +} + +double Dynamixel::convertValue2Velocity(int32_t value) { + return (double)value / velocity_to_value_ratio_; +} + +int32_t Dynamixel::convertVelocity2Value(double velocity) { + return (int32_t)(velocity * velocity_to_value_ratio_); + ; +} + +double Dynamixel::convertValue2Torque(int16_t value) { + return (double)value / torque_to_current_value_ratio_; +} + +int16_t Dynamixel::convertTorque2Value(double torque) { + return (int16_t)(torque * torque_to_current_value_ratio_); +} diff --git a/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/robot.cpp b/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/robot.cpp new file mode 100755 index 0000000..c930e86 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/robot.cpp @@ -0,0 +1,480 @@ +/******************************************************************************* + * Copyright 2018 ROBOTIS CO., LTD. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *******************************************************************************/ + +/* + * robot.cpp + * + * Created on: 2015. 12. 11. + * Author: zerom + */ + +#include +#include +#include + +#include "humanoid_robot_intelligence_control_system_device/robot.h" + +using namespace humanoid_robot_intelligence_control_system_framework; + +static inline std::string <rim(std::string &s) { + s.erase(s.begin(), + std::find_if(s.begin(), s.end(), + std::not1(std::ptr_fun(std::isspace)))); + return s; +} +static inline std::string &rtrim(std::string &s) { + s.erase(std::find_if(s.rbegin(), s.rend(), + std::not1(std::ptr_fun(std::isspace))) + .base(), + s.end()); + return s; +} +static inline std::string &trim(std::string &s) { return ltrim(rtrim(s)); } + +static inline std::vector split(const std::string &text, + char sep) { + std::vector tokens; + std::size_t start = 0, end = 0; + + while ((end = text.find(sep, start)) != (std::string::npos)) { + tokens.push_back(text.substr(start, end - start)); + trim(tokens.back()); + start = end + 1; + } + tokens.push_back(text.substr(start)); + trim(tokens.back()); + + return tokens; +} + +Robot::Robot(std::string robot_file_path, std::string dev_desc_dir_path) + : control_cycle_msec_(DEFAULT_CONTROL_CYCLE) { + if (dev_desc_dir_path.compare(dev_desc_dir_path.size() - 1, 1, "/") != 0) + dev_desc_dir_path += "/"; + + std::ifstream file(robot_file_path.c_str()); + if (file.is_open()) { + std::string session = ""; + std::string input_str; + while (!file.eof()) { + std::getline(file, input_str); + + // remove comment ( # ) + std::size_t pos = input_str.find("#"); + if (pos != std::string::npos) + input_str = input_str.substr(0, pos); + + // trim + input_str = trim(input_str); + + // find session + if (!input_str.compare(0, 1, "[") && + !input_str.compare(input_str.size() - 1, 1, "]")) { + input_str = input_str.substr(1, input_str.size() - 2); + std::transform(input_str.begin(), input_str.end(), input_str.begin(), + ::tolower); + session = trim(input_str); + continue; + } + + if (session == SESSION_CONTROL_INFO) { + std::vector tokens = split(input_str, '='); + if (tokens.size() != 2) + continue; + + if (tokens[0] == "control_cycle") + control_cycle_msec_ = std::atoi(tokens[1].c_str()); + } else if (session == SESSION_PORT_INFO) { + std::vector tokens = split(input_str, '|'); + if (tokens.size() != 3) + continue; + + std::cout << tokens[0] << " added. (baudrate: " << tokens[1] << ")" + << std::endl; + + ports_[tokens[0]] = + dynamixel::PortHandler::getPortHandler(tokens[0].c_str()); + ports_[tokens[0]]->setBaudRate(std::atoi(tokens[1].c_str())); + port_default_device_[tokens[0]] = tokens[2]; + } else if (session == SESSION_DEVICE_INFO) { + std::vector tokens = split(input_str, '|'); + if (tokens.size() != 7) + continue; + + if (tokens[0] == DYNAMIXEL) { + std::string file_path = + dev_desc_dir_path + tokens[0] + "/" + tokens[3] + ".device"; + int id = std::atoi(tokens[2].c_str()); + std::string port = tokens[1]; + float protocol = std::atof(tokens[4].c_str()); + std::string dev_name = tokens[5]; + + dxls_[dev_name] = getDynamixel(file_path, id, port, protocol); + + Dynamixel *dxl = dxls_[dev_name]; + std::vector sub_tokens = split(tokens[6], ','); + if (sub_tokens.size() > 0 && sub_tokens[0] != "") { + std::map::iterator indirect_it = + dxl->ctrl_table_.find(INDIRECT_ADDRESS_1); + if (indirect_it != + dxl->ctrl_table_.end()) // INDIRECT_ADDRESS_1 exist + { + uint16_t indirect_data_addr = + dxl->ctrl_table_[INDIRECT_DATA_1]->address_; + for (int _i = 0; _i < sub_tokens.size(); _i++) { + std::map::iterator + bulkread_it = dxl->ctrl_table_.find(sub_tokens[_i]); + if (bulkread_it == dxl->ctrl_table_.end()) { + fprintf( + stderr, + "\n ##### BULK READ ITEM [ %s ] NOT FOUND!! #####\n\n", + sub_tokens[_i].c_str()); + continue; + } + + dxl->bulk_read_items_.push_back(new ControlTableItem()); + ControlTableItem *dest_item = dxl->bulk_read_items_[_i]; + ControlTableItem *src_item = dxl->ctrl_table_[sub_tokens[_i]]; + + dest_item->item_name_ = src_item->item_name_; + dest_item->address_ = indirect_data_addr; + dest_item->access_type_ = src_item->access_type_; + dest_item->memory_type_ = src_item->memory_type_; + dest_item->data_length_ = src_item->data_length_; + dest_item->data_min_value_ = src_item->data_min_value_; + dest_item->data_max_value_ = src_item->data_max_value_; + dest_item->is_signed_ = src_item->is_signed_; + + indirect_data_addr += dest_item->data_length_; + } + } else // INDIRECT_ADDRESS_1 not exist + { + for (int i = 0; i < sub_tokens.size(); i++) { + if (dxl->ctrl_table_[sub_tokens[i]] != NULL) + dxl->bulk_read_items_.push_back( + dxl->ctrl_table_[sub_tokens[i]]); + } + } + } + } else if (tokens[0] == SENSOR) { + std::string file_path = + dev_desc_dir_path + tokens[0] + "/" + tokens[3] + ".device"; + int id = std::atoi(tokens[2].c_str()); + std::string port = tokens[1]; + float protocol = std::atof(tokens[4].c_str()); + std::string dev_name = tokens[5]; + + sensors_[dev_name] = getSensor(file_path, id, port, protocol); + + Sensor *sensor = sensors_[dev_name]; + std::vector sub_tokens = split(tokens[6], ','); + if (sub_tokens.size() > 0 && sub_tokens[0] != "") { + std::map::iterator indirect_it = + sensor->ctrl_table_.find(INDIRECT_ADDRESS_1); + if (indirect_it != + sensor->ctrl_table_.end()) // INDIRECT_ADDRESS_1 exist + { + uint16_t indirect_data_addr = + sensor->ctrl_table_[INDIRECT_DATA_1]->address_; + for (int i = 0; i < sub_tokens.size(); i++) { + sensor->bulk_read_items_.push_back(new ControlTableItem()); + ControlTableItem *dest_item = sensor->bulk_read_items_[i]; + ControlTableItem *src_item = sensor->ctrl_table_[sub_tokens[i]]; + + dest_item->item_name_ = src_item->item_name_; + dest_item->address_ = indirect_data_addr; + dest_item->access_type_ = src_item->access_type_; + dest_item->memory_type_ = src_item->memory_type_; + dest_item->data_length_ = src_item->data_length_; + dest_item->data_min_value_ = src_item->data_min_value_; + dest_item->data_max_value_ = src_item->data_max_value_; + dest_item->is_signed_ = src_item->is_signed_; + + indirect_data_addr += dest_item->data_length_; + } + } else // INDIRECT_ADDRESS_1 exist + { + for (int i = 0; i < sub_tokens.size(); i++) + sensor->bulk_read_items_.push_back( + sensor->ctrl_table_[sub_tokens[i]]); + } + } + } + } + } + file.close(); + } else { + std::cout << "Unable to open file : " + robot_file_path << std::endl; + } +} + +Sensor *Robot::getSensor(std::string path, int id, std::string port, + float protocol_version) { + Sensor *sensor; + + // load file model_name.device + std::ifstream file(path.c_str()); + if (file.is_open()) { + std::string session = ""; + std::string input_str; + + while (!file.eof()) { + std::getline(file, input_str); + + // remove comment ( # ) + std::size_t pos = input_str.find("#"); + if (pos != std::string::npos) + input_str = input_str.substr(0, pos); + + // trim + input_str = trim(input_str); + if (input_str == "") + continue; + + // find _session + if (!input_str.compare(0, 1, "[") && + !input_str.compare(input_str.size() - 1, 1, "]")) { + input_str = input_str.substr(1, input_str.size() - 2); + std::transform(input_str.begin(), input_str.end(), input_str.begin(), + ::tolower); + session = trim(input_str); + continue; + } + + if (session == SESSION_DEVICE_INFO) { + std::vector tokens = split(input_str, '='); + if (tokens.size() != 2) + continue; + + if (tokens[0] == "model_name") + sensor = new Sensor(id, tokens[1], protocol_version); + } else if (session == SESSION_CONTROL_TABLE) { + std::vector tokens = split(input_str, '|'); + if (tokens.size() != 8) + continue; + + ControlTableItem *item = new ControlTableItem(); + item->item_name_ = tokens[1]; + item->address_ = std::atoi(tokens[0].c_str()); + item->data_length_ = std::atoi(tokens[2].c_str()); + + if (tokens[3] == "R") + item->access_type_ = Read; + else if (tokens[3] == "RW") + item->access_type_ = ReadWrite; + + if (tokens[4] == "EEPROM") + item->memory_type_ = EEPROM; + else if (tokens[4] == "RAM") + item->memory_type_ = RAM; + + item->data_min_value_ = std::atol(tokens[5].c_str()); + item->data_max_value_ = std::atol(tokens[6].c_str()); + + if (tokens[7] == "Y") + item->is_signed_ = true; + else if (tokens[7] == "N") + item->is_signed_ = false; + sensor->ctrl_table_[tokens[1]] = item; + } + } + sensor->port_name_ = port; + + fprintf(stderr, "(%s) [ID:%3d] %14s added. \n", port.c_str(), sensor->id_, + sensor->model_name_.c_str()); + // std::cout << "[ID:" << (int)(_sensor->id) << "] " << _sensor->model_name + // << " added. (" << port << ")" << std::endl; + file.close(); + } else + std::cout << "Unable to open file : " + path << std::endl; + + return sensor; +} + +Dynamixel *Robot::getDynamixel(std::string path, int id, std::string port, + float protocol_version) { + Dynamixel *dxl; + + // load file model_name.device + std::ifstream file(path.c_str()); + if (file.is_open()) { + std::string session = ""; + std::string input_str; + + std::string torque_enable_item_name = ""; + std::string present_position_item_name = ""; + std::string present_velocity_item_name = ""; + std::string present_current_item_name = ""; + std::string goal_position_item_name = ""; + std::string goal_velocity_item_name = ""; + std::string goal_current_item_name = ""; + std::string position_d_gain_item_name = ""; + std::string position_i_gain_item_name = ""; + std::string position_p_gain_item_name = ""; + std::string velocity_d_gain_item_name = ""; + std::string velocity_i_gain_item_name = ""; + std::string velocity_p_gain_item_name = ""; + + while (!file.eof()) { + std::getline(file, input_str); + + // remove comment ( # ) + std::size_t pos = input_str.find("#"); + if (pos != std::string::npos) + input_str = input_str.substr(0, pos); + + // trim + input_str = trim(input_str); + if (input_str == "") + continue; + + // find session + if (!input_str.compare(0, 1, "[") && + !input_str.compare(input_str.size() - 1, 1, "]")) { + input_str = input_str.substr(1, input_str.size() - 2); + std::transform(input_str.begin(), input_str.end(), input_str.begin(), + ::tolower); + session = trim(input_str); + continue; + } + + if (session == SESSION_DEVICE_INFO) { + std::vector tokens = split(input_str, '='); + if (tokens.size() != 2) + continue; + + if (tokens[0] == "model_name") + dxl = new Dynamixel(id, tokens[1], protocol_version); + } else if (session == SESSION_TYPE_INFO) { + std::vector tokens = split(input_str, '='); + if (tokens.size() != 2) + continue; + + if (tokens[0] == "torque_to_current_value_ratio") + dxl->torque_to_current_value_ratio_ = std::atof(tokens[1].c_str()); + else if (tokens[0] == "velocity_to_value_ratio") + dxl->velocity_to_value_ratio_ = std::atof(tokens[1].c_str()); + + else if (tokens[0] == "value_of_0_radian_position") + dxl->value_of_0_radian_position_ = std::atoi(tokens[1].c_str()); + else if (tokens[0] == "value_of_min_radian_position") + dxl->value_of_min_radian_position_ = std::atoi(tokens[1].c_str()); + else if (tokens[0] == "value_of_max_radian_position") + dxl->value_of_max_radian_position_ = std::atoi(tokens[1].c_str()); + else if (tokens[0] == "min_radian") + dxl->min_radian_ = std::atof(tokens[1].c_str()); + else if (tokens[0] == "max_radian") + dxl->max_radian_ = std::atof(tokens[1].c_str()); + + else if (tokens[0] == "torque_enable_item_name") + torque_enable_item_name = tokens[1]; + else if (tokens[0] == "present_position_item_name") + present_position_item_name = tokens[1]; + else if (tokens[0] == "present_velocity_item_name") + present_velocity_item_name = tokens[1]; + else if (tokens[0] == "present_current_item_name") + present_current_item_name = tokens[1]; + else if (tokens[0] == "goal_position_item_name") + goal_position_item_name = tokens[1]; + else if (tokens[0] == "goal_velocity_item_name") + goal_velocity_item_name = tokens[1]; + else if (tokens[0] == "goal_current_item_name") + goal_current_item_name = tokens[1]; + else if (tokens[0] == "position_d_gain_item_name") + position_d_gain_item_name = tokens[1]; + else if (tokens[0] == "position_i_gain_item_name") + position_i_gain_item_name = tokens[1]; + else if (tokens[0] == "position_p_gain_item_name") + position_p_gain_item_name = tokens[1]; + else if (tokens[0] == "velocity_d_gain_item_name") + velocity_d_gain_item_name = tokens[1]; + else if (tokens[0] == "velocity_i_gain_item_name") + velocity_i_gain_item_name = tokens[1]; + else if (tokens[0] == "velocity_p_gain_item_name") + velocity_p_gain_item_name = tokens[1]; + } else if (session == SESSION_CONTROL_TABLE) { + std::vector tokens = split(input_str, '|'); + if (tokens.size() != 8) + continue; + + ControlTableItem *item = new ControlTableItem(); + item->item_name_ = tokens[1]; + item->address_ = std::atoi(tokens[0].c_str()); + item->data_length_ = std::atoi(tokens[2].c_str()); + + if (tokens[3] == "R") + item->access_type_ = Read; + else if (tokens[3] == "RW") + item->access_type_ = ReadWrite; + + if (tokens[4] == "EEPROM") + item->memory_type_ = EEPROM; + else if (tokens[4] == "RAM") + item->memory_type_ = RAM; + + item->data_min_value_ = std::atol(tokens[5].c_str()); + item->data_max_value_ = std::atol(tokens[6].c_str()); + + if (tokens[7] == "Y") + item->is_signed_ = true; + else if (tokens[7] == "N") + item->is_signed_ = false; + dxl->ctrl_table_[tokens[1]] = item; + } + } + dxl->port_name_ = port; + + if (dxl->ctrl_table_[torque_enable_item_name] != NULL) + dxl->torque_enable_item_ = dxl->ctrl_table_[torque_enable_item_name]; + if (dxl->ctrl_table_[present_position_item_name] != NULL) + dxl->present_position_item_ = + dxl->ctrl_table_[present_position_item_name]; + if (dxl->ctrl_table_[present_velocity_item_name] != NULL) + dxl->present_velocity_item_ = + dxl->ctrl_table_[present_velocity_item_name]; + if (dxl->ctrl_table_[present_current_item_name] != NULL) + dxl->present_current_item_ = dxl->ctrl_table_[present_current_item_name]; + if (dxl->ctrl_table_[goal_position_item_name] != NULL) + dxl->goal_position_item_ = dxl->ctrl_table_[goal_position_item_name]; + if (dxl->ctrl_table_[goal_velocity_item_name] != NULL) + dxl->goal_velocity_item_ = dxl->ctrl_table_[goal_velocity_item_name]; + if (dxl->ctrl_table_[goal_current_item_name] != NULL) + dxl->goal_current_item_ = dxl->ctrl_table_[goal_current_item_name]; + if (dxl->ctrl_table_[position_d_gain_item_name] != NULL) + dxl->position_d_gain_item_ = dxl->ctrl_table_[position_d_gain_item_name]; + if (dxl->ctrl_table_[position_i_gain_item_name] != NULL) + dxl->position_i_gain_item_ = dxl->ctrl_table_[position_i_gain_item_name]; + if (dxl->ctrl_table_[position_p_gain_item_name] != NULL) + dxl->position_p_gain_item_ = dxl->ctrl_table_[position_p_gain_item_name]; + if (dxl->ctrl_table_[velocity_d_gain_item_name] != NULL) + dxl->velocity_d_gain_item_ = dxl->ctrl_table_[velocity_d_gain_item_name]; + if (dxl->ctrl_table_[velocity_i_gain_item_name] != NULL) + dxl->velocity_i_gain_item_ = dxl->ctrl_table_[velocity_i_gain_item_name]; + if (dxl->ctrl_table_[velocity_p_gain_item_name] != NULL) + dxl->velocity_p_gain_item_ = dxl->ctrl_table_[velocity_p_gain_item_name]; + + fprintf(stderr, "(%s) [ID:%3d] %14s added. \n", port.c_str(), dxl->id_, + dxl->model_name_.c_str()); + // std::cout << "[ID:" << (int)(_dxl->id) << "] " << _dxl->model_name << " + // added. (" << port << ")" << std::endl; + file.close(); + } else + std::cout << "Unable to open file : " + path << std::endl; + + return dxl; +} + +int Robot::getControlCycle() { return control_cycle_msec_; } diff --git a/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/sensor.cpp b/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/sensor.cpp new file mode 100755 index 0000000..6d5e619 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_device/src/humanoid_robot_intelligence_control_system_device/sensor.cpp @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright 2018 ROBOTIS CO., LTD. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *******************************************************************************/ + +/* + * sensor.cpp + * + * Created on: 2016. 5. 11. + * Author: zerom + */ + +#include "humanoid_robot_intelligence_control_system_device/sensor.h" + +using namespace humanoid_robot_intelligence_control_system_framework; + +Sensor::Sensor(int id, std::string model_name, float protocol_version) { + + this->id_ = id; + this->model_name_ = model_name; + this->port_name_ = ""; + this->protocol_version_ = protocol_version; + ctrl_table_.clear(); + + sensor_state_ = new SensorState(); + + bulk_read_items_.clear(); +} diff --git a/humanoid_robot_intelligence_control_system_framework_common/CHANGELOG.rst b/humanoid_robot_intelligence_control_system_framework_common/CHANGELOG.rst new file mode 100755 index 0000000..0af7c89 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_framework_common/CHANGELOG.rst @@ -0,0 +1,82 @@ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Changelog for package humanoid_robot_intelligence_control_system_framework_common +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +0.3.2 (2023-10-03) +------------------ +* Make it compatible for ROS1/ROS2 +* Fix bugs +* Update package.xml and CMakeList.txt for to the latest versions +* Contributors & Maintainer: Ronaldson Bellande + +0.3.1 (2023-09-27) +------------------ +* Starting from this point it under a new license +* Fix errors and Issues +* Rename Repository for a completely different purpose +* Make it compatible with ROS/ROS2 +* Upgrade version of all builds and make it more compatible +* Update package.xml and CMakeList.txt for to the latest versions +* Contributors & Maintainer: Ronaldson Bellande + +0.2.9 (2018-03-22) +------------------ +* none + +0.2.8 (2018-03-20) +------------------ +* tested for system dependencies +* Contributors: Pyo + +0.2.7 (2018-03-15) +------------------ +* change the License and package format to version 2 +* Contributors: Pyo + +0.2.6 (2017-08-09) +------------------ +* none + +0.2.5 (2017-06-09) +------------------ +* none + +0.2.4 (2017-06-07) +------------------ +* none + +0.2.3 (2017-05-23) +------------------ +* updated the cmake file for ros install +* Contributors: SCH + +0.2.2 (2017-04-24) +------------------ +* updated for other packages +* Contributors: Zerom, Kayman + +0.2.1 (2016-11-23) +------------------ +* Merge the changes and update +* - dependencies fixed. (Pull requests `#26 `_) +* - modified dependency problem. +* Contributors: Jay Song, Pyo, Zerom + +0.2.0 (2016-08-31) +------------------ +* updated CHANGLOG.rst for minor release +* rename ControlMode(CurrentControl -> TorqueControl) +* rename (port_to_sync_write_torque\_ -> port_to_sync_write_current\_) +* Contributors: Zerom, Pyo + +0.1.1 (2016-08-18) +------------------ +* updated the package information + +0.1.0 (2016-08-12) +------------------ +* modified the package information for release +* Setting the license to BSD. +* add SensorState + add Singleton template +* Contributors: Jay Song, Zerom, Pyo diff --git a/humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt b/humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt new file mode 100755 index 0000000..d90d27c --- /dev/null +++ b/humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt @@ -0,0 +1,46 @@ +cmake_minimum_required(VERSION 3.8) +project(humanoid_robot_intelligence_control_system_framework_common) + + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + roscpp + humanoid_robot_intelligence_control_system_device + ) +else() + find_package(ament_cmake REQUIRED) +endif() + + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_package( + INCLUDE_DIRS include + LIBRARIES ${PROJECT_NAME} + CATKIN_DEPENDS + roscpp + humanoid_robot_intelligence_control_system_device + ) +endif() + + +include_directories( + include + ${catkin_INCLUDE_DIRS} +) + +add_library(${PROJECT_NAME} + include/${PROJECT_NAME}/motion_module.h + include/${PROJECT_NAME}/sensor_module.h + include/${PROJECT_NAME}/singleton.h +) +set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE CXX) + +install(TARGETS humanoid_robot_intelligence_control_system_framework_common + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) diff --git a/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/motion_module.h b/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/motion_module.h new file mode 100755 index 0000000..9df7326 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/motion_module.h @@ -0,0 +1,87 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * motion_module.h + * + * Created on: 2016. 1. 15. + * Author: zerom + */ + +#ifndef ROBOTIS_FRAMEWORK_COMMON_MOTION_MODULE_H_ +#define ROBOTIS_FRAMEWORK_COMMON_MOTION_MODULE_H_ + + +#include +#include + +#include "singleton.h" +#include "humanoid_robot_intelligence_control_system_device/robot.h" +#include "humanoid_robot_intelligence_control_system_device/dynamixel.h" + +namespace humanoid_robot_intelligence_control_system_framework +{ + +enum ControlMode +{ + PositionControl, + VelocityControl, + TorqueControl +}; + +class MotionModule +{ +protected: + bool enable_; + std::string module_name_; + ControlMode control_mode_; + +public: + std::map result_; + + virtual ~MotionModule() { } + + std::string getModuleName() { return module_name_; } + ControlMode getControlMode() { return control_mode_; } + + void setModuleEnable(bool enable) + { + if(this->enable_ == enable) + return; + + this->enable_ = enable; + if(enable) + onModuleEnable(); + else + onModuleDisable(); + } + bool getModuleEnable() { return enable_; } + + virtual void onModuleEnable() { } + virtual void onModuleDisable() { } + + virtual void initialize(const int control_cycle_msec, Robot *robot) = 0; + virtual void process(std::map dxls, std::map sensors) = 0; + + virtual void stop() = 0; + virtual bool isRunning() = 0; +}; + + +} + + +#endif /* ROBOTIS_FRAMEWORK_COMMON_MOTION_MODULE_H_ */ diff --git a/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/sensor_module.h b/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/sensor_module.h new file mode 100755 index 0000000..23e6292 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/sensor_module.h @@ -0,0 +1,57 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * sensor_module.h + * + * Created on: 2016. 3. 30. + * Author: zerom + */ + +#ifndef ROBOTIS_FRAMEWORK_COMMON_SENSOR_MODULE_H_ +#define ROBOTIS_FRAMEWORK_COMMON_SENSOR_MODULE_H_ + + +#include +#include + +#include "singleton.h" +#include "humanoid_robot_intelligence_control_system_device/robot.h" +#include "humanoid_robot_intelligence_control_system_device/dynamixel.h" + +namespace humanoid_robot_intelligence_control_system_framework +{ + +class SensorModule +{ +protected: + std::string module_name_; + +public: + std::map result_; + + virtual ~SensorModule() { } + + std::string getModuleName() { return module_name_; } + + virtual void initialize(const int control_cycle_msec, Robot *robot) = 0; + virtual void process(std::map dxls, std::map sensors) = 0; +}; + +} + + +#endif /* ROBOTIS_FRAMEWORK_COMMON_SENSOR_MODULE_H_ */ diff --git a/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/singleton.h b/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/singleton.h new file mode 100755 index 0000000..5f1c4ab --- /dev/null +++ b/humanoid_robot_intelligence_control_system_framework_common/include/humanoid_robot_intelligence_control_system_framework_common/singleton.h @@ -0,0 +1,65 @@ +/******************************************************************************* +* Copyright 2018 ROBOTIS CO., LTD. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*******************************************************************************/ + +/* + * singleton.h + * + * Created on: 2016. 5. 17. + * Author: zerom + */ + +#ifndef ROBOTIS_FRAMEWORK_COMMON_SINGLETON_H_ +#define ROBOTIS_FRAMEWORK_COMMON_SINGLETON_H_ + + +namespace humanoid_robot_intelligence_control_system_framework +{ + +template +class Singleton +{ +private: + static T *unique_instance_; + +protected: + Singleton() { } + Singleton(Singleton const&) { } + Singleton& operator=(Singleton const&) { return *this; } + +public: + static T* getInstance() + { + if(unique_instance_ == NULL) + unique_instance_ = new T; + return unique_instance_; + } + + static void destroyInstance() + { + if(unique_instance_) + { + delete unique_instance_; + unique_instance_ = NULL; + } + } +}; + +template T* Singleton::unique_instance_ = NULL; + +} + + +#endif /* ROBOTIS_FRAMEWORK_COMMON_SINGLETON_H_ */ diff --git a/humanoid_robot_intelligence_control_system_framework_common/package.xml b/humanoid_robot_intelligence_control_system_framework_common/package.xml new file mode 100755 index 0000000..c12c3b2 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_framework_common/package.xml @@ -0,0 +1,33 @@ + + + humanoid_robot_intelligence_control_system_framework_common + 0.3.2 + The package contains commonly used headers for the humanoid_robot_intelligence_control_system_framework + Apache 2.0 + Ronaldson Bellande + + + catkin + + roscpp + humanoid_robot_intelligence_control_system_device + + roscpp + humanoid_robot_intelligence_control_system_device + + roscpp + humanoid_robot_intelligence_control_system_device + + + ament_cmake + + roscpp + humanoid_robot_intelligence_control_system_device + + roscpp + humanoid_robot_intelligence_control_system_device + + roscpp + humanoid_robot_intelligence_control_system_device + + From 7c10a3efb91c315151d341c0a83b5b5e48531b97 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Thu, 30 Nov 2023 20:17:06 -0500 Subject: [PATCH 24/36] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b0d5d4..0e48dcd 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ROS/ROS2 Humanoid Robot Framework +# ROS/ROS2 Humanoid Robot Intelligence Control System Framework [![Website](https://img.shields.io/badge/Visit%20our-Website-0099cc?style=for-the-badge)](https://robotics-sensors.github.io) [![Discord](https://img.shields.io/badge/Join%20our-Discord-7289DA?logo=discord&style=for-the-badge)](https://discord.gg/Yc72nd4w) From 9309e355ce4f9a906b136cc915e4b1dbdd68da0f Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Thu, 30 Nov 2023 21:19:56 -0500 Subject: [PATCH 25/36] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0e48dcd..76173d3 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ROS/ROS2 Humanoid Robot Intelligence Control System Framework +# ROS/ROS2 {BR&SRI} Humanoid Robot Intelligence Control System Framework [![Website](https://img.shields.io/badge/Visit%20our-Website-0099cc?style=for-the-badge)](https://robotics-sensors.github.io) [![Discord](https://img.shields.io/badge/Join%20our-Discord-7289DA?logo=discord&style=for-the-badge)](https://discord.gg/Yc72nd4w) From 126a83e3620933b1d9ee682907617fedbc561128 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:32:39 -0500 Subject: [PATCH 26/36] Update README.md --- README.md | 78 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index 76173d3..9195865 100755 --- a/README.md +++ b/README.md @@ -1,51 +1,61 @@ -# ROS/ROS2 {BR&SRI} Humanoid Robot Intelligence Control System Framework +# Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System Demos [![Website](https://img.shields.io/badge/Visit%20our-Website-0099cc?style=for-the-badge)](https://robotics-sensors.github.io) [![Discord](https://img.shields.io/badge/Join%20our-Discord-7289DA?logo=discord&style=for-the-badge)](https://discord.gg/Yc72nd4w) [![Sponsor](https://img.shields.io/badge/Sponsor-Robotics%20Sensors%20Research-red?style=for-the-badge&logo=github)](https://github.com/sponsors/Robotics-Sensors) -# Stats -[![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/stargazers) -[![GitHub forks](https://img.shields.io/github/forks/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/network) -[![GitHub watchers](https://img.shields.io/github/watchers/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/watchers) +## 🤖 Explore Humanoid Robot Intelligence with Us! -[![GitHub issues](https://img.shields.io/github/issues/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/issues) -[![GitHub pull requests](https://img.shields.io/github/issues-pr/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/pulls) -[![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) +Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System Demos repository! Here, we invite you to delve into the fascinating world of humanoid robotics, showcasing the innovative capabilities of our intelligent control system. -[![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/commits) -[![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/traffic)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework) +### 🚀 Key Repository Stats --------------------------------------------------------------------------------------------------------- -# Repository Website -https://robotics-sensors.github.io/humanoid_robot_intelligence_control_system_framework +- ![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg?style=social) Starred by the community +- ![GitHub forks](https://img.shields.io/github/forks/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg?style=social) Forked by enthusiasts +- ![GitHub watchers](https://img.shields.io/github/watchers/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg?style=social) Watched by curious minds --------------------------------------------------------------------------------------------------------- -Updated Version [humanoid_robot_intelligence_control_system_framework](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework) readme. -Old Version/Previous Used for Different Context [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) readme. +- ![GitHub issues](https://img.shields.io/github/issues/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Actively addressing issues +- ![GitHub pull requests](https://img.shields.io/github/issues-pr/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Welcoming contributions +- ![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Licensed under Apache 2.0 -# Release -[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_intelligence_control_system_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/releases/) +- ![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Latest updates +- ![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/traffic) Engaging with the community -# Contact -Depeding on the repository, If you are interested in accessing the complete version or other repository related to this repository, we kindly request that you reach out to the organization's director or the company behind this project. We invite you to explore the USE CASE to understand the specific terms and conditions for usage. To utilize this repository, it is imperative that you adhere to the guidelines outlined in the USE CASE. For those interested in showing their support, becoming a sponsor of the organization is an option, and detailed information can be found within the USE CASE and License documents. Furthermore, we encourage you to join our official Discord community, where you can engage with like-minded individuals, contribute to the project, and stay up-to-date with the latest developments. It's worth noting that while a fraction of research is publicly accessible, the majority remains private. To gain insights into the wealth of knowledge held by the Company or the organization's director, we recommend direct contact for more information. +--- --------------------------------------------------------------------------------------------------------- -## Important -The repository has diverged, as the old commits and codes are under the previous License and -the new commits and codes are under New License +## 🌐 Repository Website --------------------------------------------------------------------------------------------------------- -Latest versions and Maintainer is on organization https://github.com/Robotics-Sensors +Explore our [repository website](https://robotics-sensors.github.io/humanoid_robot_intelligence_control_system_demos) for detailed documentation, tutorials, and additional information about our humanoid robot intelligence control system. +--- -# USE CASE --------------------------------------------------------------------------------------------------------- -* Every repository within our organization is a valuable resource that can be utilized for educational purposes by individuals who actively contribute to the repository or choose to become sponsors of the organization. For those who wish to use our services conversationally, the acquisition of a license and subscription from our company website is mandatory. This ensures that the services are appropriately compensated for their use. Additionally, for the 90% of services designated as private, acquiring a license and subscription can be facilitated through our company website. We encourage interested parties to visit our website to explore and procure the necessary licenses and subscriptions for the diverse range of services and products we offer. Your support and commitment enable us to maintain and enhance the quality of our offerings, contributing to a thriving collaborative environment. --------------------------------------------------------------------------------------------------------- +### 🔄 Updates and Versions -### Maintainer -* Ronaldson Bellande +- **Updated Version:** [humanoid_robot_intelligence_control_system_module](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos) +- **Old Version/Previous Used for Different Context:** [ROBOTIS-OP3-Demo](https://github.com/ROBOTIS-GIT/ROBOTIS-OP3-Demo) -## License -This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0), see [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) for more information. +--- + +# 🎉 Latest Release + +[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_intelligence_control_system_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/releases/) + +--- + +## đŸ“ĸ Important Announcement + +The repository has recently undergone significant updates. Older commits and codes are covered under the previous license, while new commits and codes fall under the new license. + +--- + +🚀 For the latest versions and updates, visit our organization: [Robotics-Sensors](https://github.com/Robotics-Sensors). + +### 🧑‍đŸ’ŧ Maintainer + +Meet our dedicated maintainer, **Ronaldson Bellande**. + +--- + +## 📄 License + +This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). For detailed information, refer to [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/blob/main/LICENSE). From cd094d8173eb6ac724573fef8dc8b275738d3c71 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:33:44 -0500 Subject: [PATCH 27/36] Update README.md --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 9195865..347179d 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System Demos +# Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System framework [![Website](https://img.shields.io/badge/Visit%20our-Website-0099cc?style=for-the-badge)](https://robotics-sensors.github.io) [![Discord](https://img.shields.io/badge/Join%20our-Discord-7289DA?logo=discord&style=for-the-badge)](https://discord.gg/Yc72nd4w) @@ -6,39 +6,39 @@ ## 🤖 Explore Humanoid Robot Intelligence with Us! -Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System Demos repository! Here, we invite you to delve into the fascinating world of humanoid robotics, showcasing the innovative capabilities of our intelligent control system. +Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System framework repository! Here, we invite you to delve into the fascinating world of humanoid robotics, showcasing the innovative capabilities of our intelligent control system. ### 🚀 Key Repository Stats -- ![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg?style=social) Starred by the community -- ![GitHub forks](https://img.shields.io/github/forks/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg?style=social) Forked by enthusiasts -- ![GitHub watchers](https://img.shields.io/github/watchers/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg?style=social) Watched by curious minds +- ![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social) Starred by the community +- ![GitHub forks](https://img.shields.io/github/forks/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social) Forked by enthusiasts +- ![GitHub watchers](https://img.shields.io/github/watchers/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social) Watched by curious minds -- ![GitHub issues](https://img.shields.io/github/issues/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Actively addressing issues -- ![GitHub pull requests](https://img.shields.io/github/issues-pr/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Welcoming contributions -- ![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Licensed under Apache 2.0 +- ![GitHub issues](https://img.shields.io/github/issues/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg) Actively addressing issues +- ![GitHub pull requests](https://img.shields.io/github/issues-pr/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg) Welcoming contributions +- ![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg) Licensed under Apache 2.0 -- ![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos.svg) Latest updates -- ![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/traffic) Engaging with the community +- ![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg) Latest updates +- ![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/traffic) Engaging with the community --- ## 🌐 Repository Website -Explore our [repository website](https://robotics-sensors.github.io/humanoid_robot_intelligence_control_system_demos) for detailed documentation, tutorials, and additional information about our humanoid robot intelligence control system. +Explore our [repository website](https://robotics-sensors.github.io/humanoid_robot_intelligence_control_system_framework) for detailed documentation, tutorials, and additional information about our humanoid robot intelligence control system. --- ### 🔄 Updates and Versions -- **Updated Version:** [humanoid_robot_intelligence_control_system_module](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos) -- **Old Version/Previous Used for Different Context:** [ROBOTIS-OP3-Demo](https://github.com/ROBOTIS-GIT/ROBOTIS-OP3-Demo) +- **Updated Version:** [humanoid_robot_intelligence_control_system_module](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework) +- **Old Version/Previous Used for Different Context:** [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) --- # 🎉 Latest Release -[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_intelligence_control_system_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/releases/) +[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_intelligence_control_system_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/releases/) --- @@ -58,4 +58,4 @@ Meet our dedicated maintainer, **Ronaldson Bellande**. ## 📄 License -This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). For detailed information, refer to [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_demos/blob/main/LICENSE). +This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). For detailed information, refer to [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE). From 815e6ed2a638eb399dcdc514ca1f9d4722748c63 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Thu, 8 Feb 2024 02:25:24 -0500 Subject: [PATCH 28/36] Update README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 347179d..9c2bc38 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,10 @@ Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System framework repository! Here, we invite you to delve into the fascinating world of humanoid robotics, showcasing the innovative capabilities of our intelligent control system. +## đŸ’ģ Functionality To Switch from ROS to ROS2 Checkout The Below Repository + +[![Toggle ROS Versions](https://img.shields.io/badge/Toggle%20ROS%20Versions-Explore%20ROS%20and%20ROS2%20migration-blue?style=for-the-badge&logo=ros&color=blue)](https://github.com/Robotics-Sensors/ros_extension/) + ### 🚀 Key Repository Stats - ![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social) Starred by the community From 548d6585262695780454b9ce853381bb3d6b9971 Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Mon, 29 Apr 2024 15:54:09 -0400 Subject: [PATCH 29/36] latest pushes --- .../package.xml | 61 ++++++++++++++----- .../package.xml | 16 +++++ .../package.xml | 25 +++++++- 3 files changed, 84 insertions(+), 18 deletions(-) diff --git a/humanoid_robot_intelligence_control_system_controller/package.xml b/humanoid_robot_intelligence_control_system_controller/package.xml index 302552d..d2e9ca0 100755 --- a/humanoid_robot_intelligence_control_system_controller/package.xml +++ b/humanoid_robot_intelligence_control_system_controller/package.xml @@ -1,8 +1,25 @@ + + humanoid_robot_intelligence_control_system_controller 0.3.2 - humanoid_robot_intelligence_control_system_controller package for ROBOTIS's platform like Manipulator-H, THORMANG and OP series + humanoid_robot_intelligence_control_system_controller package for ROBOTIS's platform + like Manipulator-H, THORMANG and OP series Apache 2.0 Ronaldson Bellande @@ -13,10 +30,12 @@ roslib std_msgs sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs + + humanoid_robot_intelligence_control_system_controller_msgs dynamixel_sdk humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common + + humanoid_robot_intelligence_control_system_framework_common cmake_modules yaml-cpp @@ -24,10 +43,13 @@ roslib std_msgs sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs + + humanoid_robot_intelligence_control_system_controller_msgs dynamixel_sdk - humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common + + humanoid_robot_intelligence_control_system_device + + humanoid_robot_intelligence_control_system_framework_common cmake_modules yaml-cpp @@ -35,10 +57,12 @@ roslib std_msgs sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs + + humanoid_robot_intelligence_control_system_controller_msgs dynamixel_sdk humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common + + humanoid_robot_intelligence_control_system_framework_common cmake_modules yaml-cpp @@ -49,10 +73,12 @@ roslib std_msgs sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs + + humanoid_robot_intelligence_control_system_controller_msgs dynamixel_sdk humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common + + humanoid_robot_intelligence_control_system_framework_common cmake_modules yaml-cpp @@ -60,10 +86,13 @@ roslib std_msgs sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs + + humanoid_robot_intelligence_control_system_controller_msgs dynamixel_sdk - humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common + + humanoid_robot_intelligence_control_system_device + + humanoid_robot_intelligence_control_system_framework_common cmake_modules yaml-cpp @@ -71,10 +100,12 @@ roslib std_msgs sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs + + humanoid_robot_intelligence_control_system_controller_msgs dynamixel_sdk humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common + + humanoid_robot_intelligence_control_system_framework_common cmake_modules yaml-cpp diff --git a/humanoid_robot_intelligence_control_system_device/package.xml b/humanoid_robot_intelligence_control_system_device/package.xml index b21c17d..397f854 100755 --- a/humanoid_robot_intelligence_control_system_device/package.xml +++ b/humanoid_robot_intelligence_control_system_device/package.xml @@ -1,3 +1,19 @@ + + humanoid_robot_intelligence_control_system_device diff --git a/humanoid_robot_intelligence_control_system_framework_common/package.xml b/humanoid_robot_intelligence_control_system_framework_common/package.xml index c12c3b2..aed0500 100755 --- a/humanoid_robot_intelligence_control_system_framework_common/package.xml +++ b/humanoid_robot_intelligence_control_system_framework_common/package.xml @@ -1,8 +1,25 @@ + + humanoid_robot_intelligence_control_system_framework_common 0.3.2 - The package contains commonly used headers for the humanoid_robot_intelligence_control_system_framework + The package contains commonly used headers for the + humanoid_robot_intelligence_control_system_framework Apache 2.0 Ronaldson Bellande @@ -13,7 +30,8 @@ humanoid_robot_intelligence_control_system_device roscpp - humanoid_robot_intelligence_control_system_device + + humanoid_robot_intelligence_control_system_device roscpp humanoid_robot_intelligence_control_system_device @@ -25,7 +43,8 @@ humanoid_robot_intelligence_control_system_device roscpp - humanoid_robot_intelligence_control_system_device + + humanoid_robot_intelligence_control_system_device roscpp humanoid_robot_intelligence_control_system_device From 3faa700595da8d48f43b57409fa78477dac0c84c Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Mon, 29 Apr 2024 16:04:18 -0400 Subject: [PATCH 30/36] latest pushes --- .../CMakeLists.txt | 14 ++++++++++++++ .../CMakeLists.txt | 14 ++++++++++++++ .../CMakeLists.txt | 14 ++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt b/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt index c69c671..d90c748 100755 --- a/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt +++ b/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt @@ -1,3 +1,17 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + cmake_minimum_required(VERSION 3.8) project(humanoid_robot_intelligence_control_system_controller) diff --git a/humanoid_robot_intelligence_control_system_device/CMakeLists.txt b/humanoid_robot_intelligence_control_system_device/CMakeLists.txt index a9c5f39..906a25f 100755 --- a/humanoid_robot_intelligence_control_system_device/CMakeLists.txt +++ b/humanoid_robot_intelligence_control_system_device/CMakeLists.txt @@ -1,3 +1,17 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + cmake_minimum_required(VERSION 3.8) project(humanoid_robot_intelligence_control_system_device) diff --git a/humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt b/humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt index d90d27c..bc1e839 100755 --- a/humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt +++ b/humanoid_robot_intelligence_control_system_framework_common/CMakeLists.txt @@ -1,3 +1,17 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + cmake_minimum_required(VERSION 3.8) project(humanoid_robot_intelligence_control_system_framework_common) From 4feda088ec63687bef3c3b77dab1887f33a3e3b3 Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Tue, 7 May 2024 00:54:10 -0400 Subject: [PATCH 31/36] latest pushes --- .../package.xml | 4 ++-- humanoid_robot_intelligence_control_system_device/package.xml | 4 ++-- .../package.xml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/humanoid_robot_intelligence_control_system_controller/package.xml b/humanoid_robot_intelligence_control_system_controller/package.xml index d2e9ca0..63452d9 100755 --- a/humanoid_robot_intelligence_control_system_controller/package.xml +++ b/humanoid_robot_intelligence_control_system_controller/package.xml @@ -1,5 +1,6 @@ + - humanoid_robot_intelligence_control_system_controller 0.3.2 diff --git a/humanoid_robot_intelligence_control_system_device/package.xml b/humanoid_robot_intelligence_control_system_device/package.xml index 397f854..fcd6b2d 100755 --- a/humanoid_robot_intelligence_control_system_device/package.xml +++ b/humanoid_robot_intelligence_control_system_device/package.xml @@ -1,5 +1,6 @@ + - humanoid_robot_intelligence_control_system_device 0.3.2 diff --git a/humanoid_robot_intelligence_control_system_framework_common/package.xml b/humanoid_robot_intelligence_control_system_framework_common/package.xml index aed0500..258c36e 100755 --- a/humanoid_robot_intelligence_control_system_framework_common/package.xml +++ b/humanoid_robot_intelligence_control_system_framework_common/package.xml @@ -1,5 +1,6 @@ + - humanoid_robot_intelligence_control_system_framework_common 0.3.2 From f617e1d97999178f5bdddd12a96d762c58ee7c49 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Tue, 7 May 2024 17:15:19 -0400 Subject: [PATCH 32/36] Update README.md --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9c2bc38..7a802c5 100755 --- a/README.md +++ b/README.md @@ -8,10 +8,18 @@ Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System framework repository! Here, we invite you to delve into the fascinating world of humanoid robotics, showcasing the innovative capabilities of our intelligent control system. +## đŸ“ĸ Work with Bellande Algorithms and Models through Bellande's API! + +[![Bellande's Algorithm through Bellande API](https://img.shields.io/badge/Bellande's%20Algorithm%20through%20Bellande's%20API-Bellande%20API-blue?style=for-the-badge&logo=ros&color=blue)](https://github.com/Robotics-Sensors/Web-ROS-API) + +--- + ## đŸ’ģ Functionality To Switch from ROS to ROS2 Checkout The Below Repository [![Toggle ROS Versions](https://img.shields.io/badge/Toggle%20ROS%20Versions-Explore%20ROS%20and%20ROS2%20migration-blue?style=for-the-badge&logo=ros&color=blue)](https://github.com/Robotics-Sensors/ros_extension/) +--- + ### 🚀 Key Repository Stats - ![GitHub stars](https://img.shields.io/github/stars/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg?style=social) Starred by the community @@ -56,7 +64,7 @@ The repository has recently undergone significant updates. Older commits and cod ### 🧑‍đŸ’ŧ Maintainer -Meet our dedicated maintainer, **Ronaldson Bellande**. +Meet our dedicated author & maintainer, **Ronaldson Bellande**. --- From b26f775429b90ebf17953bc77085771bda694618 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Wed, 8 May 2024 23:44:32 -0400 Subject: [PATCH 33/36] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 7a802c5..ab4394d 100755 --- a/README.md +++ b/README.md @@ -14,6 +14,12 @@ Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System framework rep --- +## 🧑‍đŸ’ŧ Work with Bellande Models through Bellande Framework! + +[![Bellande's Algorithm through Bellande API](https://img.shields.io/badge/Bellande's%20Models%20through%20Bellande's%20Framework-Bellande%20Framework-blue?style=for-the-badge&logo=ros&color=blue)](https://github.com/Robotics-Sensors/ROS-MODELS) + +--- + ## đŸ’ģ Functionality To Switch from ROS to ROS2 Checkout The Below Repository [![Toggle ROS Versions](https://img.shields.io/badge/Toggle%20ROS%20Versions-Explore%20ROS%20and%20ROS2%20migration-blue?style=for-the-badge&logo=ros&color=blue)](https://github.com/Robotics-Sensors/ros_extension/) From 54e99b5aeebc4766c1440dcd96aa80102a843849 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Tue, 4 Jun 2024 21:40:55 -0400 Subject: [PATCH 34/36] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index ab4394d..b1db628 100755 --- a/README.md +++ b/README.md @@ -8,6 +8,11 @@ Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System framework repository! Here, we invite you to delve into the fascinating world of humanoid robotics, showcasing the innovative capabilities of our intelligent control system. +## 🔄 Run and Experiment with the build Bellande's Humanoid Robot + +[![Bellande's Humanoid](https://img.shields.io/badge/Bellande's-Humanoid%20Robot%20Package-blue?style=for-the-badge&logo=ros&color=blue)](https://github.com/Robotics-Sensors/bellande_humanoid_robotics_package) + + ## đŸ“ĸ Work with Bellande Algorithms and Models through Bellande's API! [![Bellande's Algorithm through Bellande API](https://img.shields.io/badge/Bellande's%20Algorithm%20through%20Bellande's%20API-Bellande%20API-blue?style=for-the-badge&logo=ros&color=blue)](https://github.com/Robotics-Sensors/Web-ROS-API) From d15403aa5c67deb10317e6a8d7941a3d7f506d91 Mon Sep 17 00:00:00 2001 From: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> Date: Wed, 12 Jun 2024 00:05:54 -0400 Subject: [PATCH 35/36] Update README.md Signed-off-by: Ronaldson Bellande <47253433+RonaldsonBellande@users.noreply.github.com> --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b1db628..3490366 100755 --- a/README.md +++ b/README.md @@ -42,26 +42,26 @@ Welcome to the {BR&SRI} Humanoid Robot Intelligence Control System framework rep - ![GitHub license](https://img.shields.io/github/license/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg) Licensed under Apache 2.0 - ![GitHub last commit](https://img.shields.io/github/last-commit/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework.svg) Latest updates -- ![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/traffic) Engaging with the community +- ![Visitor & Github Clones](https://img.shields.io/badge/dynamic/json?color=2e8b57&label=Visitor%20%26%20GitHub%20Clones&query=$.count&url=https://api.github.com/repos/Robotics-Sensors/bellande_humanoid_robot_intelligence_control_system_framework/traffic) Engaging with the community --- ## 🌐 Repository Website -Explore our [repository website](https://robotics-sensors.github.io/humanoid_robot_intelligence_control_system_framework) for detailed documentation, tutorials, and additional information about our humanoid robot intelligence control system. +Explore our [repository website](https://robotics-sensors.github.io/bellande_humanoid_robot_intelligence_control_system_framework) for detailed documentation, tutorials, and additional information about our humanoid robot intelligence control system. --- ### 🔄 Updates and Versions -- **Updated Version:** [humanoid_robot_intelligence_control_system_module](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework) +- **Updated Version:** [humanoid_robot_intelligence_control_system_module](https://github.com/Robotics-Sensors/bellande_humanoid_robot_intelligence_control_system_framework) - **Old Version/Previous Used for Different Context:** [ROBOTIS-Framework](https://github.com/ROBOTIS-GIT/ROBOTIS-Framework) --- # 🎉 Latest Release -[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/humanoid_robot_intelligence_control_system_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/releases/) +[![Latest Release](https://img.shields.io/github/v/release/Robotics-Sensors/bellande_humanoid_robot_intelligence_control_system_tools?style=for-the-badge&color=yellow)](https://github.com/Robotics-Sensors/bellande_humanoid_robot_intelligence_control_system_framework/releases/) --- @@ -81,4 +81,4 @@ Meet our dedicated author & maintainer, **Ronaldson Bellande**. ## 📄 License -This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). For detailed information, refer to [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE). +This SDK is distributed under the [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0). For detailed information, refer to [LICENSE](https://github.com/Robotics-Sensors/humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE) and [NOTICE](https://github.com/Robotics-Sensors/bellande_humanoid_robot_intelligence_control_system_framework/blob/main/LICENSE). From a28c9c4b732b184a56c984f0b435e04fe67fd41c Mon Sep 17 00:00:00 2001 From: RonaldsonBellande Date: Fri, 26 Jul 2024 15:17:09 -0400 Subject: [PATCH 36/36] latest pushes --- .../CMakeLists.txt | 157 +++++++----------- .../package.xml | 100 ++--------- .../setup.py | 26 +++ .../src/PIDController.py | 50 ++++++ .../CMakeLists.txt | 60 +++++++ .../package.xml | 46 +++++ .../setup.py | 26 +++ .../src/PIDController.py | 50 ++++++ .../CMakeLists.txt | 60 +++++++ .../package.xml | 46 +++++ .../setup.py | 26 +++ .../src/PIDController.py | 50 ++++++ .../CMakeLists.txt | 71 ++++++++ .../object_detector_processor.launch.py | 108 ++++++++++++ .../ros1/object_detector_processor.launch | 41 +++++ .../package.xml | 61 +++++++ .../setup.py | 26 +++ .../src/object_detection_processor.py | 111 +++++++++++++ .../CMakeLists.txt | 71 ++++++++ .../ros1/speech_detector_processor.launch | 41 +++++ .../speech_detector_processor.launch.py | 108 ++++++++++++ .../package.xml | 61 +++++++ .../setup.py | 26 +++ .../src/speech_detection_processor.py | 111 +++++++++++++ 24 files changed, 1353 insertions(+), 180 deletions(-) mode change 100755 => 100644 humanoid_robot_intelligence_control_system_controller/CMakeLists.txt mode change 100755 => 100644 humanoid_robot_intelligence_control_system_controller/package.xml create mode 100644 humanoid_robot_intelligence_control_system_controller/setup.py create mode 100644 humanoid_robot_intelligence_control_system_controller/src/PIDController.py create mode 100644 humanoid_robot_intelligence_control_system_external_sensors/CMakeLists.txt create mode 100644 humanoid_robot_intelligence_control_system_external_sensors/package.xml create mode 100644 humanoid_robot_intelligence_control_system_external_sensors/setup.py create mode 100644 humanoid_robot_intelligence_control_system_external_sensors/src/PIDController.py create mode 100644 humanoid_robot_intelligence_control_system_internal_sensors/CMakeLists.txt create mode 100644 humanoid_robot_intelligence_control_system_internal_sensors/package.xml create mode 100644 humanoid_robot_intelligence_control_system_internal_sensors/setup.py create mode 100644 humanoid_robot_intelligence_control_system_internal_sensors/src/PIDController.py create mode 100644 humanoid_robot_intelligence_control_system_object_detector/CMakeLists.txt create mode 100644 humanoid_robot_intelligence_control_system_object_detector/launch/object_detector_processor.launch.py create mode 100644 humanoid_robot_intelligence_control_system_object_detector/launch/ros1/object_detector_processor.launch create mode 100644 humanoid_robot_intelligence_control_system_object_detector/package.xml create mode 100644 humanoid_robot_intelligence_control_system_object_detector/setup.py create mode 100644 humanoid_robot_intelligence_control_system_object_detector/src/object_detection_processor.py create mode 100644 humanoid_robot_intelligence_control_system_speech_detector/CMakeLists.txt create mode 100644 humanoid_robot_intelligence_control_system_speech_detector/launch/ros1/speech_detector_processor.launch create mode 100644 humanoid_robot_intelligence_control_system_speech_detector/launch/speech_detector_processor.launch.py create mode 100644 humanoid_robot_intelligence_control_system_speech_detector/package.xml create mode 100644 humanoid_robot_intelligence_control_system_speech_detector/setup.py create mode 100644 humanoid_robot_intelligence_control_system_speech_detector/src/speech_detection_processor.py diff --git a/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt b/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt old mode 100755 new mode 100644 index d90c748..e7de26d --- a/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt +++ b/humanoid_robot_intelligence_control_system_controller/CMakeLists.txt @@ -1,97 +1,60 @@ -# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not -# use this file except in compliance with the License. You may obtain a copy of -# the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations under -# the License. - -cmake_minimum_required(VERSION 3.8) -project(humanoid_robot_intelligence_control_system_controller) - -## Compile as C++11, supported in ROS Kinetic and newer -add_compile_options(-std=c++11) - - -if($ENV{ROS_VERSION} EQUAL 1) - find_package(catkin REQUIRED COMPONENTS - roscpp - roslib - std_msgs - sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - ) - - find_package(Boost REQUIRED) - - find_package(PkgConfig REQUIRED) -else() - find_package(ament_cmake REQUIRED) -endif() - - -pkg_check_modules(YAML_CPP REQUIRED yaml-cpp) -find_path(YAML_CPP_INCLUDE_DIR - NAMES yaml_cpp.h - PATHS ${YAML_CPP_INCLUDE_DIRS} -) -find_library(YAML_CPP_LIBRARY - NAMES YAML_CPP - PATHS ${YAML_CPP_LIBRARY_DIRS} -) -link_directories(${YAML_CPP_LIBRARY_DIRS}) - -if(NOT ${YAML_CPP_VERSION} VERSION_LESS "0.5") -add_definitions(-DHAVE_NEW_YAMLCPP) -endif(NOT ${YAML_CPP_VERSION} VERSION_LESS "0.5") - - -if($ENV{ROS_VERSION} EQUAL 1) - catkin_package( - INCLUDE_DIRS include - LIBRARIES humanoid_robot_intelligence_control_system_controller - CATKIN_DEPENDS - roscpp - roslib - std_msgs - sensor_msgs - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - humanoid_robot_intelligence_control_system_device - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - DEPENDS Boost - ) -endif() - - -include_directories( - include - ${catkin_INCLUDE_DIRS} - ${Boost_INCLUDE_DIRS} - ${YAML_CPP_INCLUDE_DIRS} -) - -add_library(humanoid_robot_intelligence_control_system_controller src/humanoid_robot_intelligence_control_system_controller/humanoid_robot_intelligence_control_system_controller.cpp) -add_dependencies(humanoid_robot_intelligence_control_system_controller ${catkin_EXPORTED_TARGETS}) -target_link_libraries(humanoid_robot_intelligence_control_system_controller ${catkin_LIBRARIES} ${Boost_LIBRARIES} ${YAML_CPP_LIBRARIES}) - -install(TARGETS humanoid_robot_intelligence_control_system_controller - ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -) - -install(DIRECTORY include/${PROJECT_NAME}/ - DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -) +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +cmake_minimum_required(VERSION 3.0.2) +project(humanoid_robot_intelligence_control_system_controller) + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + rospy + ) + + catkin_package( + CATKIN_DEPENDS + rospy + ) + +else() + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_python REQUIRED) + find_package(rclpy REQUIRED) + find_package(std_msgs REQUIRED) +endif() + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_python_setup() + + catkin_install_python(PROGRAMS + src/PIDController.py + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + install(DIRECTORY config launch rviz + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +else() + ament_python_install_package(${PROJECT_NAME}) + + install(PROGRAMS + src/PIDController.py + DESTINATION lib/${PROJECT_NAME} + ) + + install(DIRECTORY config launch rviz + DESTINATION share/${PROJECT_NAME} + ) + + ament_package() +endif() diff --git a/humanoid_robot_intelligence_control_system_controller/package.xml b/humanoid_robot_intelligence_control_system_controller/package.xml old mode 100755 new mode 100644 index 63452d9..0ab0b27 --- a/humanoid_robot_intelligence_control_system_controller/package.xml +++ b/humanoid_robot_intelligence_control_system_controller/package.xml @@ -17,96 +17,30 @@ the License. humanoid_robot_intelligence_control_system_controller - 0.3.2 - humanoid_robot_intelligence_control_system_controller package for ROBOTIS's platform - like Manipulator-H, THORMANG and OP series + 0.0.1 + + This Package is for Detection Math + Apache 2.0 Ronaldson Bellande - catkin - - roscpp - roslib - std_msgs - sensor_msgs - - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - humanoid_robot_intelligence_control_system_device - - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - yaml-cpp - - roscpp - roslib - std_msgs - sensor_msgs - - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - - humanoid_robot_intelligence_control_system_device - - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - yaml-cpp - - roscpp - roslib - std_msgs - sensor_msgs - - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - humanoid_robot_intelligence_control_system_device - - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - yaml-cpp - - ament_cmake + ament_cmake_python - roscpp - roslib - std_msgs - sensor_msgs - - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - humanoid_robot_intelligence_control_system_device - - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - yaml-cpp + + rospy - roscpp - roslib - std_msgs - sensor_msgs - - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - - humanoid_robot_intelligence_control_system_device - - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - yaml-cpp + + rclpy - roscpp - roslib - std_msgs - sensor_msgs - - humanoid_robot_intelligence_control_system_controller_msgs - dynamixel_sdk - humanoid_robot_intelligence_control_system_device - - humanoid_robot_intelligence_control_system_framework_common - cmake_modules - yaml-cpp + + python3-opencv + python3-yaml + usb_cam + + catkin + ament_cmake + diff --git a/humanoid_robot_intelligence_control_system_controller/setup.py b/humanoid_robot_intelligence_control_system_controller/setup.py new file mode 100644 index 0000000..cbd6630 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_controller/setup.py @@ -0,0 +1,26 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +# fetch values from package.xml +setup_args = generate_distutils_setup( + scripts=['src/PIDController.py'], + packages=['humanoid_robot_intelligence_control_system_controller'], + package_dir={'': 'src'}, +) + +setup(**setup_args) diff --git a/humanoid_robot_intelligence_control_system_controller/src/PIDController.py b/humanoid_robot_intelligence_control_system_controller/src/PIDController.py new file mode 100644 index 0000000..0a87c58 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_controller/src/PIDController.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import time +from typing import Dict, List, Tuple + +class PIDController: + def __init__(self, gains: Tuple[float, float, float], name: str, output_limits: Tuple[float, float] = (-float('inf'), float('inf'))): + self.kp, self.ki, self.kd = gains + self.name = name + self.output_limits = output_limits + self.reset() + + def reset(self): + self.last_error = 0 + self.integral = 0 + self.last_time = time.time() + + def compute(self, setpoint: float, process_variable: float) -> float: + current_time = time.time() + dt = current_time - self.last_time + error = setpoint - process_variable + + self.integral += error * dt + derivative = (error - self.last_error) / dt if dt > 0 else 0 + + output = self.kp * error + self.ki * self.integral + self.kd * derivative + output = max(min(output, self.output_limits[1]), self.output_limits[0]) + + self.last_error = error + self.last_time = current_time + + return output + + def update_config(self, gains: Tuple[float, float, float]): + self.kp, self.ki, self.kd = gains diff --git a/humanoid_robot_intelligence_control_system_external_sensors/CMakeLists.txt b/humanoid_robot_intelligence_control_system_external_sensors/CMakeLists.txt new file mode 100644 index 0000000..e7de26d --- /dev/null +++ b/humanoid_robot_intelligence_control_system_external_sensors/CMakeLists.txt @@ -0,0 +1,60 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +cmake_minimum_required(VERSION 3.0.2) +project(humanoid_robot_intelligence_control_system_controller) + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + rospy + ) + + catkin_package( + CATKIN_DEPENDS + rospy + ) + +else() + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_python REQUIRED) + find_package(rclpy REQUIRED) + find_package(std_msgs REQUIRED) +endif() + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_python_setup() + + catkin_install_python(PROGRAMS + src/PIDController.py + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + install(DIRECTORY config launch rviz + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +else() + ament_python_install_package(${PROJECT_NAME}) + + install(PROGRAMS + src/PIDController.py + DESTINATION lib/${PROJECT_NAME} + ) + + install(DIRECTORY config launch rviz + DESTINATION share/${PROJECT_NAME} + ) + + ament_package() +endif() diff --git a/humanoid_robot_intelligence_control_system_external_sensors/package.xml b/humanoid_robot_intelligence_control_system_external_sensors/package.xml new file mode 100644 index 0000000..0ab0b27 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_external_sensors/package.xml @@ -0,0 +1,46 @@ + + + + + humanoid_robot_intelligence_control_system_controller + 0.0.1 + + This Package is for Detection Math + + Apache 2.0 + Ronaldson Bellande + + catkin + ament_cmake + ament_cmake_python + + + rospy + + + rclpy + + + python3-opencv + python3-yaml + usb_cam + + + catkin + ament_cmake + + diff --git a/humanoid_robot_intelligence_control_system_external_sensors/setup.py b/humanoid_robot_intelligence_control_system_external_sensors/setup.py new file mode 100644 index 0000000..cbd6630 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_external_sensors/setup.py @@ -0,0 +1,26 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +# fetch values from package.xml +setup_args = generate_distutils_setup( + scripts=['src/PIDController.py'], + packages=['humanoid_robot_intelligence_control_system_controller'], + package_dir={'': 'src'}, +) + +setup(**setup_args) diff --git a/humanoid_robot_intelligence_control_system_external_sensors/src/PIDController.py b/humanoid_robot_intelligence_control_system_external_sensors/src/PIDController.py new file mode 100644 index 0000000..0a87c58 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_external_sensors/src/PIDController.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import time +from typing import Dict, List, Tuple + +class PIDController: + def __init__(self, gains: Tuple[float, float, float], name: str, output_limits: Tuple[float, float] = (-float('inf'), float('inf'))): + self.kp, self.ki, self.kd = gains + self.name = name + self.output_limits = output_limits + self.reset() + + def reset(self): + self.last_error = 0 + self.integral = 0 + self.last_time = time.time() + + def compute(self, setpoint: float, process_variable: float) -> float: + current_time = time.time() + dt = current_time - self.last_time + error = setpoint - process_variable + + self.integral += error * dt + derivative = (error - self.last_error) / dt if dt > 0 else 0 + + output = self.kp * error + self.ki * self.integral + self.kd * derivative + output = max(min(output, self.output_limits[1]), self.output_limits[0]) + + self.last_error = error + self.last_time = current_time + + return output + + def update_config(self, gains: Tuple[float, float, float]): + self.kp, self.ki, self.kd = gains diff --git a/humanoid_robot_intelligence_control_system_internal_sensors/CMakeLists.txt b/humanoid_robot_intelligence_control_system_internal_sensors/CMakeLists.txt new file mode 100644 index 0000000..e7de26d --- /dev/null +++ b/humanoid_robot_intelligence_control_system_internal_sensors/CMakeLists.txt @@ -0,0 +1,60 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +cmake_minimum_required(VERSION 3.0.2) +project(humanoid_robot_intelligence_control_system_controller) + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + rospy + ) + + catkin_package( + CATKIN_DEPENDS + rospy + ) + +else() + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_python REQUIRED) + find_package(rclpy REQUIRED) + find_package(std_msgs REQUIRED) +endif() + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_python_setup() + + catkin_install_python(PROGRAMS + src/PIDController.py + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + install(DIRECTORY config launch rviz + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +else() + ament_python_install_package(${PROJECT_NAME}) + + install(PROGRAMS + src/PIDController.py + DESTINATION lib/${PROJECT_NAME} + ) + + install(DIRECTORY config launch rviz + DESTINATION share/${PROJECT_NAME} + ) + + ament_package() +endif() diff --git a/humanoid_robot_intelligence_control_system_internal_sensors/package.xml b/humanoid_robot_intelligence_control_system_internal_sensors/package.xml new file mode 100644 index 0000000..0ab0b27 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_internal_sensors/package.xml @@ -0,0 +1,46 @@ + + + + + humanoid_robot_intelligence_control_system_controller + 0.0.1 + + This Package is for Detection Math + + Apache 2.0 + Ronaldson Bellande + + catkin + ament_cmake + ament_cmake_python + + + rospy + + + rclpy + + + python3-opencv + python3-yaml + usb_cam + + + catkin + ament_cmake + + diff --git a/humanoid_robot_intelligence_control_system_internal_sensors/setup.py b/humanoid_robot_intelligence_control_system_internal_sensors/setup.py new file mode 100644 index 0000000..cbd6630 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_internal_sensors/setup.py @@ -0,0 +1,26 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +# fetch values from package.xml +setup_args = generate_distutils_setup( + scripts=['src/PIDController.py'], + packages=['humanoid_robot_intelligence_control_system_controller'], + package_dir={'': 'src'}, +) + +setup(**setup_args) diff --git a/humanoid_robot_intelligence_control_system_internal_sensors/src/PIDController.py b/humanoid_robot_intelligence_control_system_internal_sensors/src/PIDController.py new file mode 100644 index 0000000..0a87c58 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_internal_sensors/src/PIDController.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import time +from typing import Dict, List, Tuple + +class PIDController: + def __init__(self, gains: Tuple[float, float, float], name: str, output_limits: Tuple[float, float] = (-float('inf'), float('inf'))): + self.kp, self.ki, self.kd = gains + self.name = name + self.output_limits = output_limits + self.reset() + + def reset(self): + self.last_error = 0 + self.integral = 0 + self.last_time = time.time() + + def compute(self, setpoint: float, process_variable: float) -> float: + current_time = time.time() + dt = current_time - self.last_time + error = setpoint - process_variable + + self.integral += error * dt + derivative = (error - self.last_error) / dt if dt > 0 else 0 + + output = self.kp * error + self.ki * self.integral + self.kd * derivative + output = max(min(output, self.output_limits[1]), self.output_limits[0]) + + self.last_error = error + self.last_time = current_time + + return output + + def update_config(self, gains: Tuple[float, float, float]): + self.kp, self.ki, self.kd = gains diff --git a/humanoid_robot_intelligence_control_system_object_detector/CMakeLists.txt b/humanoid_robot_intelligence_control_system_object_detector/CMakeLists.txt new file mode 100644 index 0000000..55bba24 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_object_detector/CMakeLists.txt @@ -0,0 +1,71 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +cmake_minimum_required(VERSION 3.0.2) +project(humanoid_robot_intelligence_control_system_object_detector) + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + rospy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + ) + + catkin_package( + CATKIN_DEPENDS + rospy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + ) + +else() + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_python REQUIRED) + find_package(rclpy REQUIRED) + find_package(std_msgs REQUIRED) + find_package(sensor_msgs REQUIRED) + find_package(geometry_msgs REQUIRED) + find_package(cv_bridge REQUIRED) +endif() + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_python_setup() + + catkin_install_python(PROGRAMS + src/object_detection_processor.py + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + install(DIRECTORY config launch rviz + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +else() + ament_python_install_package(${PROJECT_NAME}) + + install(PROGRAMS + src/object_detection_processor.py + DESTINATION lib/${PROJECT_NAME} + ) + + install(DIRECTORY config launch rviz + DESTINATION share/${PROJECT_NAME} + ) + + ament_package() +endif() diff --git a/humanoid_robot_intelligence_control_system_object_detector/launch/object_detector_processor.launch.py b/humanoid_robot_intelligence_control_system_object_detector/launch/object_detector_processor.launch.py new file mode 100644 index 0000000..64ac1dd --- /dev/null +++ b/humanoid_robot_intelligence_control_system_object_detector/launch/object_detector_processor.launch.py @@ -0,0 +1,108 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import os +import sys +import subprocess +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import DeclareLaunchArgument +from launch.substitutions import LaunchConfiguration + +def ros1_launch_description(): + # Get command-line arguments + args = sys.argv[1:] + + # Construct the ROS 1 launch command + roslaunch_command = ["roslaunch", "humanoid_robot_intelligence_control_system_object_detector", "object_detector_processor.launch"] + args + + roslaunch_command.extend([ + "usb_cam", "usb_cam_node", "name:=camera", + "video_device:=/dev/video0", + "image_width:=640", + "image_height:=480", + "pixel_format:=yuyv", + "camera_frame_id:=usb_cam", + "io_method:=mmap" + ]) + + roslaunch_command.extend([ + "ros_web_api_bellande_2d_computer_vision", "bellande_2d_computer_vision_object_detection.py", "name:=object_detection_node" + ]) + + roslaunch_command.extend([ + "humanoid_robot_intelligence_control_system_detector", "object_detection_processor.py", "name:=object_detection_processor_node" + ]) + + roslaunch_command.extend([ + "rviz", "rviz", "name:=rviz", + "args:=-d $(find ros_web_api_bellande_2d_computer_vision)/rviz/visualization.rviz" + ]) + + # Execute the launch command + subprocess.call(roslaunch_command) + +def ros2_launch_description(): + nodes_to_launch = [] + + nodes_to_launch.append(Node( + package='usb_cam', + executable='usb_cam_node', + name='camera', + output='screen', + parameters=[{ + 'video_device': '/dev/video0', + 'image_width': 640, + 'image_height': 480, + 'pixel_format': 'yuyv', + 'camera_frame_id': 'usb_cam', + 'io_method': 'mmap' + }] + )) + + nodes_to_launch.append(Node( + package='ros_web_api_bellande_2d_computer_vision', + executable='bellande_2d_computer_vision_object_detection.py', + name='object_detection_node', + output='screen', + remappings=[('camera/image_raw', '/usb_cam/image_raw')] + )) + + nodes_to_launch.append(Node( + package='humanoid_robot_intelligence_control_system_object_detector', + executable='object_detection_processor.py', + name='object_detection_processor_node', + output='screen', + parameters=[{'yaml_path': '$(find ros_web_api_bellande_2d_computer_vision)/yaml/object_detection_params.yaml'}] + )) + + nodes_to_launch.append(Node( + package='rviz2', + executable='rviz2', + name='rviz', + arguments=['-d', '$(find ros_web_api_bellande_2d_computer_vision)/rviz/visualization.rviz'] + )) + + return LaunchDescription(nodes_to_launch) + +if __name__ == "__main__": + ros_version = os.getenv("ROS_VERSION") + if ros_version == "1": + ros1_launch_description() + elif ros_version == "2": + ros2_launch_description() + else: + print("Unsupported ROS version. Please set the ROS_VERSION environment variable to '1' for ROS 1 or '2' for ROS 2.") + sys.exit(1) diff --git a/humanoid_robot_intelligence_control_system_object_detector/launch/ros1/object_detector_processor.launch b/humanoid_robot_intelligence_control_system_object_detector/launch/ros1/object_detector_processor.launch new file mode 100644 index 0000000..6799e95 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_object_detector/launch/ros1/object_detector_processor.launch @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/humanoid_robot_intelligence_control_system_object_detector/package.xml b/humanoid_robot_intelligence_control_system_object_detector/package.xml new file mode 100644 index 0000000..706fe9e --- /dev/null +++ b/humanoid_robot_intelligence_control_system_object_detector/package.xml @@ -0,0 +1,61 @@ + + + + + humanoid_robot_intelligence_control_system_object_detector + 0.0.1 + + This Package is for Object Detection, detecting objects like tools, or utilities + + Apache 2.0 + Ronaldson Bellande + + catkin + ament_cmake + ament_cmake_python + + + rospy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + image_transport + dynamic_reconfigure + message_generation + message_runtime + + + rclpy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + image_transport + rosidl_default_generators + rosidl_default_runtime + + + python3-opencv + python3-yaml + usb_cam + + + catkin + ament_cmake + + diff --git a/humanoid_robot_intelligence_control_system_object_detector/setup.py b/humanoid_robot_intelligence_control_system_object_detector/setup.py new file mode 100644 index 0000000..a2eac39 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_object_detector/setup.py @@ -0,0 +1,26 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +# fetch values from package.xml +setup_args = generate_distutils_setup( + scripts=['src/object_detection_processor.py'], + packages=['humanoid_robot_intelligence_control_system_object_detector'], + package_dir={'': 'src'}, +) + +setup(**setup_args) diff --git a/humanoid_robot_intelligence_control_system_object_detector/src/object_detection_processor.py b/humanoid_robot_intelligence_control_system_object_detector/src/object_detection_processor.py new file mode 100644 index 0000000..6f44d68 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_object_detector/src/object_detection_processor.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import rospy +import cv2 +import numpy as np +from sensor_msgs.msg import Image, CameraInfo +from std_msgs.msg import Bool, String +from cv_bridge import CvBridge +import yaml + +class ObjectDetectionProcessor: + def __init__(self): + rospy.init_node('object_detection_processor') + self.bridge = CvBridge() + self.enable = True + self.new_image_flag = False + self.load_params() + self.setup_ros() + + def load_params(self): + param_path = rospy.get_param('~yaml_path', '') + if param_path: + with open(param_path, 'r') as file: + self.params = yaml.safe_load(file) + else: + self.set_default_params() + + def set_default_params(self): + self.params = { + 'debug': False, + 'ellipse_size': 2, + # Add other default parameters as needed + } + + def setup_ros(self): + self.image_pub = rospy.Publisher('image_out', Image, queue_size=10) + self.camera_info_pub = rospy.Publisher('camera_info', CameraInfo, queue_size=10) + + rospy.Subscriber('enable', Bool, self.enable_callback) + rospy.Subscriber('image_in', Image, self.image_callback) + rospy.Subscriber('cameraInfo_in', CameraInfo, self.camera_info_callback) + rospy.Subscriber('object_detection_result', String, self.object_detection_callback) + + def enable_callback(self, msg): + self.enable = msg.data + + def image_callback(self, msg): + if not self.enable: + return + self.cv_image = self.bridge.imgmsg_to_cv2(msg, "bgr8") + self.new_image_flag = True + self.image_header = msg.header + + def camera_info_callback(self, msg): + if not self.enable: + return + self.camera_info_msg = msg + + def object_detection_callback(self, msg): + if not self.enable or not hasattr(self, 'cv_image'): + return + + objects = eval(msg.data) # Assuming the data is a string representation of a list + self.process_detected_objects(objects) + + def process_detected_objects(self, objects): + output_image = self.cv_image.copy() + for obj in objects: + x, y, w, h = obj['bbox'] + cv2.rectangle(output_image, (int(x), int(y)), (int(x+w), int(y+h)), (0, 255, 0), 2) + cv2.putText(output_image, f"{obj['label']}: {obj['confidence']:.2f}", + (int(x), int(y-10)), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) + + self.publish_image(output_image) + + def publish_image(self, image): + img_msg = self.bridge.cv2_to_imgmsg(image, encoding="bgr8") + img_msg.header = self.image_header + self.image_pub.publish(img_msg) + if hasattr(self, 'camera_info_msg'): + self.camera_info_pub.publish(self.camera_info_msg) + + def run(self): + rate = rospy.Rate(30) # 30 Hz + while not rospy.is_shutdown(): + if self.new_image_flag: + # The processing is done in object_detection_callback + self.new_image_flag = False + rate.sleep() + +if __name__ == '__main__': + try: + processor = ObjectDetectionProcessor() + processor.run() + except rospy.ROSInterruptException: + pass diff --git a/humanoid_robot_intelligence_control_system_speech_detector/CMakeLists.txt b/humanoid_robot_intelligence_control_system_speech_detector/CMakeLists.txt new file mode 100644 index 0000000..78abc20 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_speech_detector/CMakeLists.txt @@ -0,0 +1,71 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +cmake_minimum_required(VERSION 3.0.2) +project(humanoid_robot_intelligence_control_system_speech_detector) + +if($ENV{ROS_VERSION} EQUAL 1) + find_package(catkin REQUIRED COMPONENTS + rospy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + ) + + catkin_package( + CATKIN_DEPENDS + rospy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + ) + +else() + find_package(ament_cmake REQUIRED) + find_package(ament_cmake_python REQUIRED) + find_package(rclpy REQUIRED) + find_package(std_msgs REQUIRED) + find_package(sensor_msgs REQUIRED) + find_package(geometry_msgs REQUIRED) + find_package(cv_bridge REQUIRED) +endif() + +if($ENV{ROS_VERSION} EQUAL 1) + catkin_python_setup() + + catkin_install_python(PROGRAMS + src/speech_detection_processor.py + DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} + ) + + install(DIRECTORY config launch rviz + DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} + ) + +else() + ament_python_install_package(${PROJECT_NAME}) + + install(PROGRAMS + src/speech_detection_processor.py + DESTINATION lib/${PROJECT_NAME} + ) + + install(DIRECTORY config launch rviz + DESTINATION share/${PROJECT_NAME} + ) + + ament_package() +endif() diff --git a/humanoid_robot_intelligence_control_system_speech_detector/launch/ros1/speech_detector_processor.launch b/humanoid_robot_intelligence_control_system_speech_detector/launch/ros1/speech_detector_processor.launch new file mode 100644 index 0000000..014521f --- /dev/null +++ b/humanoid_robot_intelligence_control_system_speech_detector/launch/ros1/speech_detector_processor.launch @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/humanoid_robot_intelligence_control_system_speech_detector/launch/speech_detector_processor.launch.py b/humanoid_robot_intelligence_control_system_speech_detector/launch/speech_detector_processor.launch.py new file mode 100644 index 0000000..c11ca70 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_speech_detector/launch/speech_detector_processor.launch.py @@ -0,0 +1,108 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import os +import sys +import subprocess +from launch import LaunchDescription +from launch_ros.actions import Node +from launch.actions import DeclareLaunchArgument +from launch.substitutions import LaunchConfiguration + +def ros1_launch_description(): + # Get command-line arguments + args = sys.argv[1:] + + # Construct the ROS 1 launch command + roslaunch_command = ["roslaunch", "humanoid_robot_intelligence_control_system_speech_detector", "speech_detector_processor.launch"] + args + + roslaunch_command.extend([ + "usb_cam", "usb_cam_node", "name:=camera", + "video_device:=/dev/video0", + "image_width:=640", + "image_height:=480", + "pixel_format:=yuyv", + "camera_frame_id:=usb_cam", + "io_method:=mmap" + ]) + + roslaunch_command.extend([ + "ros_web_api_bellande_2d_computer_vision", "bellande_2d_computer_vision_speech_detection.py", "name:=speech_detection_node" + ]) + + roslaunch_command.extend([ + "humanoid_robot_intelligence_control_system_ball_detector", "speech_detection_processor.py", "name:=speech_detection_processor_node" + ]) + + roslaunch_command.extend([ + "rviz", "rviz", "name:=rviz", + "args:=-d $(find ros_web_api_bellande_2d_computer_vision)/rviz/visualization.rviz" + ]) + + # Execute the launch command + subprocess.call(roslaunch_command) + +def ros2_launch_description(): + nodes_to_launch = [] + + nodes_to_launch.append(Node( + package='usb_cam', + executable='usb_cam_node', + name='camera', + output='screen', + parameters=[{ + 'video_device': '/dev/video0', + 'image_width': 640, + 'image_height': 480, + 'pixel_format': 'yuyv', + 'camera_frame_id': 'usb_cam', + 'io_method': 'mmap' + }] + )) + + nodes_to_launch.append(Node( + package='ros_web_api_bellande_2d_computer_vision', + executable='bellande_2d_computer_vision_speech_detection.py', + name='speech_detection_node', + output='screen', + remappings=[('camera/image_raw', '/usb_cam/image_raw')] + )) + + nodes_to_launch.append(Node( + package='humanoid_robot_intelligence_control_system_speech_detector', + executable='speech_detection_processor.py', + name='speech_detection_processor_node', + output='screen', + parameters=[{'yaml_path': '$(find ros_web_api_bellande_2d_computer_vision)/yaml/speech_detection_params.yaml'}] + )) + + nodes_to_launch.append(Node( + package='rviz2', + executable='rviz2', + name='rviz', + arguments=['-d', '$(find ros_web_api_bellande_2d_computer_vision)/rviz/visualization.rviz'] + )) + + return LaunchDescription(nodes_to_launch) + +if __name__ == "__main__": + ros_version = os.getenv("ROS_VERSION") + if ros_version == "1": + ros1_launch_description() + elif ros_version == "2": + ros2_launch_description() + else: + print("Unsupported ROS version. Please set the ROS_VERSION environment variable to '1' for ROS 1 or '2' for ROS 2.") + sys.exit(1) diff --git a/humanoid_robot_intelligence_control_system_speech_detector/package.xml b/humanoid_robot_intelligence_control_system_speech_detector/package.xml new file mode 100644 index 0000000..416194b --- /dev/null +++ b/humanoid_robot_intelligence_control_system_speech_detector/package.xml @@ -0,0 +1,61 @@ + + + + + humanoid_robot_intelligence_control_system_speech_detector + 0.0.1 + + This Package is for Object Detection, detecting speechs like tools, or utilities + + Apache 2.0 + Ronaldson Bellande + + catkin + ament_cmake + ament_cmake_python + + + rospy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + image_transport + dynamic_reconfigure + message_generation + message_runtime + + + rclpy + std_msgs + sensor_msgs + geometry_msgs + cv_bridge + image_transport + rosidl_default_generators + rosidl_default_runtime + + + python3-opencv + python3-yaml + usb_cam + + + catkin + ament_cmake + + diff --git a/humanoid_robot_intelligence_control_system_speech_detector/setup.py b/humanoid_robot_intelligence_control_system_speech_detector/setup.py new file mode 100644 index 0000000..f4a55e3 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_speech_detector/setup.py @@ -0,0 +1,26 @@ +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from distutils.core import setup +from catkin_pkg.python_setup import generate_distutils_setup + +# fetch values from package.xml +setup_args = generate_distutils_setup( + scripts=['src/speech_detection_processor.py'], + packages=['humanoid_robot_intelligence_control_system_speech_detector'], + package_dir={'': 'src'}, +) + +setup(**setup_args) diff --git a/humanoid_robot_intelligence_control_system_speech_detector/src/speech_detection_processor.py b/humanoid_robot_intelligence_control_system_speech_detector/src/speech_detection_processor.py new file mode 100644 index 0000000..fcc60d2 --- /dev/null +++ b/humanoid_robot_intelligence_control_system_speech_detector/src/speech_detection_processor.py @@ -0,0 +1,111 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2024 Bellande Robotics Sensors Research Innovation Center, Ronaldson Bellande +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import rospy +import cv2 +import numpy as np +from sensor_msgs.msg import Image, CameraInfo +from std_msgs.msg import Bool, String +from cv_bridge import CvBridge +import yaml + +class ObjectDetectionProcessor: + def __init__(self): + rospy.init_node('speech_detection_processor') + self.bridge = CvBridge() + self.enable = True + self.new_image_flag = False + self.load_params() + self.setup_ros() + + def load_params(self): + param_path = rospy.get_param('~yaml_path', '') + if param_path: + with open(param_path, 'r') as file: + self.params = yaml.safe_load(file) + else: + self.set_default_params() + + def set_default_params(self): + self.params = { + 'debug': False, + 'ellipse_size': 2, + # Add other default parameters as needed + } + + def setup_ros(self): + self.image_pub = rospy.Publisher('image_out', Image, queue_size=10) + self.camera_info_pub = rospy.Publisher('camera_info', CameraInfo, queue_size=10) + + rospy.Subscriber('enable', Bool, self.enable_callback) + rospy.Subscriber('image_in', Image, self.image_callback) + rospy.Subscriber('cameraInfo_in', CameraInfo, self.camera_info_callback) + rospy.Subscriber('speech_detection_result', String, self.speech_detection_callback) + + def enable_callback(self, msg): + self.enable = msg.data + + def image_callback(self, msg): + if not self.enable: + return + self.cv_image = self.bridge.imgmsg_to_cv2(msg, "bgr8") + self.new_image_flag = True + self.image_header = msg.header + + def camera_info_callback(self, msg): + if not self.enable: + return + self.camera_info_msg = msg + + def speech_detection_callback(self, msg): + if not self.enable or not hasattr(self, 'cv_image'): + return + + speechs = eval(msg.data) # Assuming the data is a string representation of a list + self.process_detected_speechs(speechs) + + def process_detected_speechs(self, speechs): + output_image = self.cv_image.copy() + for obj in speechs: + x, y, w, h = obj['bbox'] + cv2.rectangle(output_image, (int(x), int(y)), (int(x+w), int(y+h)), (0, 255, 0), 2) + cv2.putText(output_image, f"{obj['label']}: {obj['confidence']:.2f}", + (int(x), int(y-10)), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) + + self.publish_image(output_image) + + def publish_image(self, image): + img_msg = self.bridge.cv2_to_imgmsg(image, encoding="bgr8") + img_msg.header = self.image_header + self.image_pub.publish(img_msg) + if hasattr(self, 'camera_info_msg'): + self.camera_info_pub.publish(self.camera_info_msg) + + def run(self): + rate = rospy.Rate(30) # 30 Hz + while not rospy.is_shutdown(): + if self.new_image_flag: + # The processing is done in speech_detection_callback + self.new_image_flag = False + rate.sleep() + +if __name__ == '__main__': + try: + processor = ObjectDetectionProcessor() + processor.run() + except rospy.ROSInterruptException: + pass