Skip to content

Linux SBC environments, Linux 32-bit platforms, and ROS 2#672

Merged
GyuH13 merged 9 commits intomainfrom
feature-support-easy-sdk-in-other-os
Jan 2, 2026
Merged

Linux SBC environments, Linux 32-bit platforms, and ROS 2#672
GyuH13 merged 9 commits intomainfrom
feature-support-easy-sdk-in-other-os

Conversation

@GyuH13
Copy link
Member

@GyuH13 GyuH13 commented Dec 17, 2025

Summary

This PR enables the Dynamixel Easy SDK to support Linux SBC environments, Linux 32-bit platforms, and ROS 2 (ament-based) build systems.

Changes

  • Updated the Makefiles to allow building the Easy SDK on Linux SBC and Linux 32-bit environments.

  • Modified the ROS 2 package CMakeLists.txt to build and install the Easy SDK using ament_cmake.

  • Added the control table to the ROS 2 package. (for supporting ROS distribution and binary (distro) deployment.)

Testing

Linux SBC: Tested on Raspberry Pi 5.

Linux 32-bit: Tested in an Ubuntu 18.04 32-bit Docker environment.

ROS 2 support: Tested both CMake-based builds and colcon-based builds.

Copilot AI review requested due to automatic review settings December 17, 2025 09:11
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @GyuH13, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the Dynamixel Easy SDK by extending its reach to Linux SBC and 32-bit Linux environments, alongside a crucial integration with the ROS 2 ament build system. These changes aim to improve the SDK's versatility and ease of use for developers working with embedded systems and modern robotics frameworks, ensuring broader hardware and software compatibility.

Highlights

  • Expanded Platform Support: The Dynamixel Easy SDK now officially supports Linux Single Board Computer (SBC) environments and Linux 32-bit platforms, significantly broadening its compatibility.
  • ROS 2 Integration: The SDK has been updated to seamlessly integrate with ROS 2's ament-based build system, facilitating easier development and deployment within ROS 2 ecosystems.
  • New Easy SDK Components: New C++ header and source files have been introduced for the 'Easy SDK' components, including connector, control_table, data_types, dynamixel_error, group_executor, and motor, providing a more streamlined interface.
  • Control Table Addition: A comprehensive set of control table model files has been added to the ROS 2 package, enabling robust support for various Dynamixel models and simplifying ROS distribution and binary deployment.
  • Version Update: The project version has been incremented to 4.0.3 across relevant documentation and package manifests.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR enables the Dynamixel Easy SDK for Linux SBC environments, Linux 32-bit platforms, and ROS 2 (ament-based) build systems. Key changes include updating Makefiles for broader Linux platform support, modifying ROS 2 package configuration for ament_cmake-based builds, and adding control table files to support ROS binary distribution.

  • Updated Makefile to add C++17 standard flag for Linux 64-bit builds
  • Modified ROS 2 CMakeLists.txt to build and install the Easy SDK with control table files
  • Added comprehensive control table model files for various Dynamixel motor models
  • Incremented version from 4.0.2 to 4.0.3 across all package manifests

Reviewed changes

Copilot reviewed 94 out of 94 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
ros/dynamixel_sdk/CMakeLists.txt Added Easy SDK source files, control table installation, and compile definition for control table path
ros/dynamixel_sdk/src/dynamixel_easy_sdk/*.cpp Added new Easy SDK implementation files (motor, connector, group_executor, control_table, dynamixel_error)
ros/dynamixel_sdk/include/dynamixel_easy_sdk/*.hpp Added new Easy SDK header files defining interfaces for motor control, error handling, and data types
ros/dynamixel_sdk/control_table/*.model Added control table model files for all supported Dynamixel motor models
c++/build/linux64/Makefile Added C++17 standard flag to support Easy SDK features
ros/dynamixel_sdk/package.xml Updated version to 4.0.3 and added new author
python/setup.py, python/pyproject.toml Updated version to 4.0.3 and added new author
ReleaseNote.md, Doxyfile, CHANGELOG.rst Updated version and release notes

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a significant and well-designed C++ wrapper, the 'Easy SDK', for the Dynamixel SDK, enhancing usability with modern C++ features like Result types for error handling and a fluent API for group commands. It also extends support to Linux SBCs, 32-bit Linux platforms, and improves ROS 2 integration. My review focuses on ensuring build consistency across platforms and improving the design and clarity of the new API. I've identified a critical build issue for SBCs, a metadata inconsistency, and a couple of design points in the new API concerning constructor responsibilities and state caching that could be improved for robustness and performance.

@GyuH13 GyuH13 requested review from sunghowoo and yun-goon December 18, 2025 05:53
@GyuH13 GyuH13 self-assigned this Dec 18, 2025
@GyuH13 GyuH13 added the enhancement New feature or request label Dec 18, 2025
@GyuH13 GyuH13 added this to Platform Dec 18, 2025
@github-project-automation github-project-automation bot moved this to 🌱 Todo in Platform Dec 18, 2025
@GyuH13 GyuH13 moved this from 🌱 Todo to 📝 Pull Request in Platform Dec 18, 2025
Copy link
Member

@sunghowoo sunghowoo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@GyuH13 GyuH13 merged commit 4ce0ef3 into main Jan 2, 2026
3 checks passed
@GyuH13 GyuH13 deleted the feature-support-easy-sdk-in-other-os branch January 2, 2026 09:13
@github-project-automation github-project-automation bot moved this from 📝 Pull Request to 🚩Done in Platform Jan 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

3 participants