-
Notifications
You must be signed in to change notification settings - Fork 86
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calling Driver Services while Servoing #83
Comments
Hi @Fneylon , actually it is not encouraged to switch or mix control sources together with ros controller operating, sometimes unexpected behavior may occur since we have not yet fully studied moveit servo exception dealing logic behind the scene. For your inquiry, we just found out if moved to a different pose by another mode (like manual mode), if use keyboard as servo joystick type, the arm will automatically jump back to the last joint configuration under Moveit Servo control when the mode is switched back to servo mode. It seems in this case, the actual joint state is not updated to moveit servo server. We are looking into this issue and see if there is a way to prevent this unexpected behavior. Please be aware of this and try NOT to switch mode under moveit servo application at this moment. Secondly, for the singularity question, since you are using moveit servo, the inverse kinematics calculation, singularity handling and trajectory planning are all done inside this third party module and our internal |
Hi @penglongxiang thanks for the insight! Is there additional unexpected behavior we should be aware of outside of the jumping? We were able to fix the jumping behavior when we were switching between planning and servoing. Meaning we are able to servo, plan to a different position, and resume servoing from the final planned position without the robot jumping. We were initially seeing that jumping behavior, but fixed it. We were thinking we would be able to apply the same fix when switching between force control and servoing we just need to know how to access force control via scripts. As for the singularity question, we've been looking into bio_ik over the last few weeks and we agree it seems like it has the ability to avoid singularities. We tried implementing it and were unsuccessful in seeing any changes in how the robot behaved. Are you aware of additional changes that need to be made outside of getting the bio_ik plug in and making the change in the |
Hello,
We are working with xarm7 and have a few questions about accessing the services in the xarm driver. There are two instances in which we want to uniquely access these services. We are using the humble branch of the xarm_ros2 repo.
Case 1:
We are looking to achieve the following:
We have looked into git issue manual mode with xarm_controller #58 and have been able to recreate the behavior. For reference this is what we called:
However, we are unable to servo again after this.
As a follow up, we investigated the services found in
xarm_driver_service.cpp
. It appears when we launchros2 launch xarm_moveit_servo xarm_moveit_servo_realmove.launch.py robot_ip:=XXX.XXX.X.XXX dof:=7 add_gripper:=true
none of these services are launched. To create these services we made edits toxarm_params.yaml
and changed line 14debug
toTrue
:There appears to be a note in this file saying NOT to edit this file but to instead edit
xarm_user_params.yaml
. We were unable to find this file, though it is in the.gitignore
?Our questions for this use case:
Case 2
The other major issue we are having while seroving is the robot appears to enter a
![Screenshot from 2024-07-02 14-18-00](https://private-user-images.githubusercontent.com/117234679/348322588-7279981a-3b32-48b2-8c08-53ecb500542b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwMzI4MDgsIm5iZiI6MTczOTAzMjUwOCwicGF0aCI6Ii8xMTcyMzQ2NzkvMzQ4MzIyNTg4LTcyNzk5ODFhLTNiMzItNDhiMi04YzA4LTUzZWNiNTAwNTQyYi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjA4JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIwOFQxNjM1MDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mMjYxMTM2OTM5OTY3ZDEwNGEyZTE2ZWE0NDA4Yjc2YTY2YTE1MDMxYjY0ZGM5M2MzNmJkYWU1ZDdlODM2ZGRjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.RNwJnZjuxdqyn8X7eju5YmjrRVShZxP4jhZfEwmPQfU)
singularity
even though, in this figure for example, it is not obvious why the robot is having difficulty moving around itself:We are looking to achieve the following:
We contacted support a few weeks ago and received the following response:
We looked into this issue and we do NOT want to set this via the GUI, rather this is something we need to set in our ROS environment.
Our questions for this use case:
set_allow_approx_motion
service (via command line) and this appeared to do nothing. This is therefore an extension of the previous use case questions.Thank you for your help!
The text was updated successfully, but these errors were encountered: