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
Moveit servo with Universal_Robots_ROS_Driver and simulated UR5 controller #2673
Comments
Thanks for reporting an issue. Because we're a volunteer community, providing a pull request with suggested changes is always welcomed. |
Hi Espen, Lol at the name telecoffee. It's great that all your parameters and the controller seem to be loaded correctly. I think the error is pretty clear: Can you please change |
Hehe, yeah. We are working on a project with a universal robot, senseGlove and a Shadowhand to remotely make a cup of espresso ;) I tried your suggestion, and the server gave this feedback when i tried to publish a message to /servo_server/delta_twist_cmds.
The robot is in no way near a self collision or singularity, and I tried different positions as well. I hope my work let me publish the code when it is done :) |
Maybe the end effector (the shadow hand) is too close to collision with the robot? You can open the SRDF and disable collision checking between those 2 bodies. Or make |
hmm. I changed it to Can it be that I am using the wrong ee_frame_name? |
OK, that's good. The collision issue seems to be resolved. No, ee_frame_name wouldn't cause that. It must be that your gamepad controller (or whatever it is) is publishing on the wrong topic. It should be publishing on Use |
I do not have a gamepad for this. I am going to send the commands from Unity to ROS when I get the glove as a controller. For the moment I am trying to publish this
I only get the stale command warning when I try to publish. this is the servo topics
and if I run rosnode info on that topic when I am publishing, I get.
roswtf gives me this
|
^ that's a problem. Can you do |
Here it is
|
It must be that the message type of |
I noticed that I did the |
Well, I've about reached the end of what I'll debug for free. You could put print statements to see what Servo actually receives here:
|
Thank you so much for your help so far. I really appreciate it 🥇 |
I know you won't help anymore, but I thought I will add to our discussion for future references for other, and hope that someone can push me in the right direction as well :) So I have gotten the robot to move with moveit servo(See further down in post how I fixed it), but there are still some stuff to figure out. The problem I have now, is that when i publish
all joints of the robot goes as fast as possible straight to zero. If i publish something like this
The robot's joints all go to zero, but takes a different route. I have noticed that when echoing Does anyone have a clue how to fix this? Changes made to get connection up and running I have added
to the ur5_controllers.yaml file that can be found in
And also chaned
in the servo_config.yaml file I have also changed the controller that are launched in the ur5_bringup.launch file in
with this
To avoid that I have to change controller every time I launch the ur5_bringup.launch And here is the rqt_graph of the setup |
I think the twist command you're sending is just really fast. 1 m/s is pretty quick. I'm guessing the arm "stretches out" to reach that as well as it can. Then you probably see some singularity warnings, I hope? Try a slower twist command first. |
It happens even when I just publish a single message with a speed with 0.01 as well. But I do get singularity warnings when I publish with a rate. I must have done something wrong with the controller I implemented, everything works when I follow the moveit servo tutorial with the gazebo model and ros_industrial |
Final update from me. The error with the robot moving to 0 in joint angle was that i forgot to change the publish_joint variables in the servo config file. I changed it to from
to
And now it works |
@EspenTeigen How did you use the Universal_Robots_ROS_Driver in the first place? I want to use it because I need to use the external control on a real robot. |
Solved it by using joint_group_vel_controller. |
Hi. i have struggled for a while now with implementing moveit servo on my UR-robot. When i try to publish a message to move the robot, I only get messages about halting for collision and Stale command(full log further down). I have confirmed that communication between ROS and UR CB-controller is working by running a path planning with moveit.
My configuration:
ROS melodic on Ubuntu 18.04 in WSL2
I use the Universal_Robots_ROS_Driver to communicate with controller
I have a virtual machine running the CB-controller
ros-melodic-moveit-servo is installed
Here is how I start my setup
roslaunch telecoffee bringup_ur.launch
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=false
roslaunch telecoffee servo.launch
After everything is booted up i switch controller with
rosservice call /controller_manager/switch_controller "start_controllers: ['joint_group_vel_controller'] stop_controllers: ['scaled_pos_joint_traj_controller'] strictness: 0 start_asap: false timeout: 0.0"
and confirms that controller is running
This is servo.launch
And this is my servo configuration file ur_servo.yaml
When everything is up and running, I try to publish
And the response I get from servo_server is
Here is my file tree
├── CMakeLists.txt
├── README.md
├── config
│ ├── unity.yaml
│ └── ur_servo.yaml
├── include
├── launch
│ ├── bringup_unity.launch
│ ├── bringup_ur.launch
│ └── servo.launch
├── package.xml
├── scripts
│ ├── unityServer.py
│ └── ur_control.py
└── src
├── cpp_interface_example.cpp
└── servo_server.cpp
This is my first post, so please give feedback how I can make the posts better in the future. All feedback that can help me are really appreciated.
Espen
The text was updated successfully, but these errors were encountered: