Open iydv opened 11 months ago
Nice. Thanks for the PR.
I'll try to go over it in the next couple days.
Could you perhaps post some example/representative ros2 topic echo
output?
High-level comment: please avoid merging in main
. I'd suggest to rebase instead. Keeps history clean, and as long as we don't have any related, concurrent development in main
or other branches, does not seem like it violates any consistency / coherency on the Git history side.
yes, sorry. I have deleted the merge.
Could you perhaps post some example/representative
ros2 topic echo
output?
here are examples of topic outputs (I will change later joint_external_torque
to output empty position and velocity) :
ros2 topic echo /tcp_force_torque
:
ros2 topic echo /joint_external_torque
:
To verify the values you can use teach pad: Safety Func. -> ForceMonitor
Unfortunately, the F/T values oscillates a lot, so you might not see exact values on teach pad
Those are some serious nrs, are you pushing on the robot?
Unfortunately, the F/T values oscillates a lot, so you might not see exact values on teach pad
yes. I expect some filtering to be beneficial/necessary on the ROS side in actual applications.
Those are some serious nrs, are you pushing on the robot?
I did not select correct tool in settings with proper weight, so the values are off since it uses tool weight for calculation
No multi-group support. Based on my information, the collaborative robots work only on YRC1000/ YRC1000u controllers which do not support multi-groups. Can @ted-miller please clarify this?
The YRC1000 does support multi-group. But we don't do multi-HC configurations.
Register addresses for TCP/ joint torque values should be obtained from parameters in ctrlGroup similar to Ros_CtrlGroup_GetFBServoSpeed function. However, I have not found where I can define register addresses. Are they defined in ParameterExtraction.yrcLib ? How can I edit it?
The registers are hardcoded. There is now way to change them. register list.pdf
I would suggest defining these as contants/defines in a header file
@iydv: have you had any chance to look at some of things commented on above?
Just a friendly ping again.
@iydv: have you had any chance to look at some of things commented on above?
I was waiting for full review, in case a major code rework is required.
If general code structure is fine, I can integrate changes from above.
If general code structure is fine, I can integrate changes from above.
done
@gavanderhoorn did you had any time to review the current implementation?
@ted-miller thank you for feedback, I will try to integrate all changes.
@gavanderhoorn or @iydv is it possible to get a compiled version for YRC1000m for testing this?
I have a compilation issue, as VS 2017 is hard to get and then end up in the dependencies hell already for more then a day...
VS 2017 isn't a requirement: I use VS 2022 myself. Do you have the MotoPlus SDK?
Edit: I'll see if I can build a (rebased) version of this later.
Edit 2: @destogl: see 20240820_mr2_yrc1m_h_pr188-alpha2.zip. It's a version of this PR rebased on-top of current main
. I can't test it myself right now, so use caution. The .zip
only contains the binary, none of the other files that would typically be part of a release, but you can get those from the regular 0.1.3
release .zip
.
@gavanderhoorn thank you for this! It works great on our HC20SDTP model and directly out of the box. Thank you for this!
I have managed to set up the VS for the compilation, but the key needs a few more days to come so we can also compile this.
We will report our experiences, so you guys have more feedback, and let's hope this lands soon into release.
Based on discussion #184 I have implemented the first version of the force torque monitor. I have tested the code on HC10 and the data is published correctly on both topics.
However, there are several issues which require clarification:
1) No multi-group support. Based on my information, the collaborative robots work only on YRC1000/ YRC1000u controllers which do not support multi-groups. Can @ted-miller please clarify this? 2) Register addresses for TCP/ joint torque values should be obtained from parameters in
ctrlGroup
similar toRos_CtrlGroup_GetFBServoSpeed
function. However, I have not found where I can define register addresses. Are they defined inParameterExtraction.yrcLib
? How can I edit it?