Skip to content

Conversation

@Woojin-Crive
Copy link
Member

Changes

  • Add omy_hat.model and omy_end.model to supported dynamixel models
  • Update dynamixel.model to include new OMY models (220 and 230)
  • Update gitignore to ensure model files are tracked

- Add omy_hat.model and omy_end.model to supported dynamixel models
- Update dynamixel.model to include new OMY models (220 and 230)
- Update gitignore to ensure model files are tracked
@Woojin-Crive Woojin-Crive requested a review from sunghowoo March 25, 2025 04:05
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.

Hello @Woojin-Crive, 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!

Summary of Changes

This pull request adds new dynamixel model files for OMY series dynamixel servos. Specifically, it introduces omy_hat.model and omy_end.model, and updates the dynamixel.model file to include these new models with IDs 220 and 230 respectively. Additionally, the .gitignore file is updated to ensure that .model files are tracked in the repository.

Highlights

  • New Dynamixel Models: Adds omy_hat.model and omy_end.model to the supported dynamixel models.
  • Dynamixel Model List Update: Updates dynamixel.model to include the new OMY models (220 and 230).
  • Git Ignore Update: Updates .gitignore to ensure model files are tracked.

Changelog

  • .gitignore
    • Added a rule to track .model files, ensuring they are not ignored by Git. Specifically, the line !*.model was added to the file.
  • param/dxl_model/dynamixel.model
    • Added entries for the new OMY models: 220 omy_hat.model and 230 omy_end.model.
  • param/dxl_model/omy_end.model
    • Created a new model file omy_end.model containing the control table and type information for the OMY end effector dynamixel model, including parameters like value_of_zero_radian_position, max_radian, min_radian, and various control table addresses and data names.
  • param/dxl_model/omy_hat.model
    • Created a new model file omy_hat.model containing the control table for the OMY hat dynamixel model, including parameters like DB Voltage, SyncTable settings, and LED control.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue 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 is currently in preview and 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 to provide feedback.

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.


Trivia time!

What is the primary function of a Dynamixel servo in robotics?

Click here for the answer
Dynamixel servos are primarily used for precise and controlled motion in robotic systems, offering features like position, velocity, and torque control, as well as feedback on their current state.

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
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 adds model files for OMY Dynamixel devices and updates the .gitignore file to track .model files. The changes seem straightforward and necessary for supporting these new devices. However, there are a few points that need attention.

Summary of Findings

  • Missing Model Number Validation: The dynamixel.model file update adds new model numbers (220 and 230) without any validation or checks in the code to ensure these are valid or expected values. This could lead to issues if the hardware interface receives unexpected model numbers.
  • Incomplete Control Table Definitions: The omy_hat.model and omy_end.model files define control tables, but it's unclear if all necessary parameters are included. A more thorough review of the Dynamixel documentation is needed to ensure completeness.
  • Lack of Unit Tests: There are no new unit tests included in this pull request to verify the correct loading and parsing of the new model files. Unit tests are essential to ensure the robustness of the code.

Merge Readiness

The pull request introduces necessary model files for new Dynamixel devices. However, the lack of validation for model numbers and the absence of unit tests raise concerns. It is recommended to address these issues before merging. I am unable to approve this pull request, and recommend that others review and approve this code before merging.

Comment on lines +45 to +46
220 omy_hat.model
230 omy_end.model
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Adding the new OMY models here is good, but is there any validation in the code to ensure that these are expected values? Without validation, unexpected model numbers could cause issues. Consider adding a comment explaining the source of these model numbers.

# OMY Dynamixel Models
220\tomy_hat.model
230\tomy_end.model

Comment on lines +1 to +52
[type info]
name value
value_of_zero_radian_position 0
value_of_max_radian_position 740
value_of_min_radian_position 0
min_radian 0.0
max_radian 1.099

[control table]
Address Size Data Name
0 2 Model Number
2 4 Model Information
6 1 Firmware Version
7 1 ID
8 1 Baud Rate (Bus)
10 1 Tool Analog Enable
11 1 Tool Baud Rate
12 1 Tool Protocol
13 1 Tool ID
14 1 Tool Status
30 1 Button Status
32 1 R LED
33 1 G LED
34 1 B LED
36 2 Realtime Tick
40 1 Digital Input
41 1 Digital Output
42 2 Analog Input1
44 2 Analog Input2
46 1 SyncTable Enable
48 2 SyncTable Read Address
52 2 SyncTable Read Size
56 2 SyncTable Write Address
60 2 SyncTable Write Size
378 2 Indirect Address
634 1 Indirect Data
72 1 Hardware Error Status
73 1 Moving
74 2 Present Current
76 4 Present Velocity
80 4 Present Position
84 4 Position Trajectory
200 1 Torque Enable
202 2 Goal Current
204 4 Goal Velocity
208 4 Goal Position
378 2 Indirect Address 1
634 1 Indirect Data 1
378 2 Indirect Address Write
634 1 Indirect Data Write
402 2 Indirect Address Read
646 1 Indirect Data Read
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

This file defines the control table for the omy_end model. It's important to ensure that all necessary parameters are included and correctly defined. Double-check against the Dynamixel documentation for this model to ensure completeness. Are the min/max radian values correct?

Comment on lines +1 to +35
[control table]
Address Size Data Name
0 2 Model Number
2 4 Model Information
6 1 Firmware Version
7 1 ID
8 1 Baud Rate (Bus)
9 1 DXL Baud Rate
10 2 DB Voltage
12 1 DB Voltage Thresh
14 2 DB Voltage D Gain
16 2 DB Voltage I Gain
18 2 DB Voltage P Gain
20 1 SyncTable ID
30 2 SyncTable Read Address
50 2 SyncTable Read Size
70 2 SyncTable Write Address
90 2 SyncTable Write Size
110 2 SyncTable Period
112 2 Indirect Address
512 1 Power Enable
513 1 Voltage Control Enable
514 1 Table Sync Enable
515 1 R LED
516 1 G LED
517 1 B LED
518 1 Status
519 1 EMG Power Ctrl
520 2 Realtime Tick
522 2 Present Input Voltage
524 2 Present Input Current
550 1 Status Return Level
560 1 SyncTable Read Data
688 1 SyncTable Write Data
816 1 Indirect Data
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

Similar to omy_end.model, this file defines the control table for the omy_hat model. Ensure all necessary parameters are included and correctly defined. A thorough review of the Dynamixel documentation is needed to confirm completeness.

@robotpilot robotpilot deleted the branch develop March 25, 2025 04:27
@robotpilot robotpilot closed this Mar 25, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants