Feature/humble/current based control #70
Draft
+319
−114
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Implementation of Current Mode and CurrentBasedPosition Mode & Proposal for Additional Features
I have implemented control for Current and CurrentBasedPosition.
I am proposing this as a draft pull request for the following reasons:
If you approve this proposal, we will consider making improvements and other modifications/splitting the PR. If you do not approve, we will reject this proposal.
Tested Environment
Implemented Features
Changes
1. Current Mode and CurrentBasedPosition Control Mode
1.1. Addition of Mode Switching Method
Commits(Add): c06216f1eed03124ba4bc1d409a03b0acc5b0129, 86da4367412476249e2bdaabd6d00a922e3355b6,
Commits(Removal): b44fcaa315cb91aad107c6bbcaa22694d5e54334, 9186d0603c8580bb9e1ad51028bd6bb38f5568e6
prepare_command_mode_switch
function using information fromhardware_interface
.prev_command_
value of the previous loop.1.2. Addition of Modes
Commits: b59cdc4f3df7b176f1524d8c4e7c0adaf47aca35, faed640e35536898300a8e3c882e048896255ce4
2. Addition of Joint State/Command Interface
Commit: 193dc8512ad0ded41da339707ccc96db1c2eee2d
joint
command_interface
/state_interface
information fromurdf
.3. Control of both RS485 and TTL Motors in a Single Circuit
Commit: 3eb921d7cb2f669eece591addb83d6564798e757
According to U2D2's specifications, TTL and RS485 cannot be read simultaneously. To overcome this limitation, we split the joints by protocol, allowing for separate reads. This approach ensures functionality even when both protocols are used together.
4. Minor Corrections
use_dummy
work in UpperCase as well 909f7de545d57e2af19b857c2604f0d5fb06781exacro
args
that become UpperCase.Questions
prepare_command_mode_switch
, it was necessary to define the behavior whencommandInterfaces
do not exist at startup.NoControl
mode to theControlMode
enum, although it does not exist in Dynamixel. Is this acceptable?xacro
is more correct. However, I do not see a necessity to intentionally limit the number of interfaces. Is the implementation of this feature necessary?