-
Notifications
You must be signed in to change notification settings - Fork 22
Robot not moving when publishing to /jog_arm_server/joint_delta_jog_cmds #88
Comments
I just spent about an hour trying to re-create this. I think it's a bug with "auto" stamping of ROS messages. Joint jogging works fine if I use a joystick to send the commands. See here. If you read through the github issue, they recommend adding -s for "substitution". I didn't try this. As in that answer, I would recommend creating a Python executable to publish messages for testing. |
Here's the command I was using to try to auto-fill the stamp. Really similar to yours:
The message from the joystick that works looks like this (no frame_id needed):
|
Thank you for your help. |
jog_arm actually expects a frequently-updated message. 25 or 125 Hz should both be fine. There's a "incoming_command_timeout" parameter -- if it doesn't get a new command within that timeframe, it stops. So that's why you need some type of rate, not just a single command. The scale/joint parameter is radians per control cycle. For us with UR robots, it would be (radians per 0.008s.) If you wanted to send a single command, maybe MoveIt! would be a better option. You could just set a joint goal. |
If you don't want to use MoveIt!, just write a node that republishes your neural network output at a constant rate. |
Originally I did want to use moveit for its collision avoidance, but having used it for a while now it seems like moveit and the UR family don’t really get on. I was consistently given errors saying ‘path planning failed’. When it did move the arm would act like a taxi driver, taking the longest most convoluted route it could find. Changing to the CHOMP and STOMP algorithms made no difference and so I decided to abandon the idea of moveit. Do you know if there is still some self collision avoidance when not using moveit? Singularity avoidance would be nice too. This might be starting to get a little off topic but yes, I was thinking I would need to write a node that somehow collected the output from my NN, wherever that may be, on Matlab or simply a script or even a ROS node itself, and then perhaps store the results in a distribution table that the node can randomly choose actions from and publish to jog_arm. Thanks again. |
Hi @PorkPy , did you manage to solve this issue ? I am having exactly the same problem on a UR3 robot, my rqt_graph looks like yours and I am publishing to /jog_arm_server/joint_delta_jog_cmds with no movement of the robot. I doubt it's a header problem in my case since I have no issues publishing to /jog_arm_server/delta_jog_cmds Thanks ! @AndyZe thank you for your package, the end effector jogging works incredibly well it was really useful for my project |
@telejesus2 |
Hi @PorkPy thanks for your reply |
I am trying to publish joint commands to a UR5 using jog_arm. Each command will be to move 6 joints by +/- 1 degree increments.
First of all, I'm finding it difficult to find the correct syntax for publishing to this topic but I have been attempting to use:
'rostopic pub /jog_arm_server/joint_delta_jog_cmds jog_msgs/JogJoint -1 '{stamp: now, frame_id: base_link}' [wrist_3_joint] [10]'
For which I get an output:
'publishing and latching message for 3.0 seconds'
Echoing the topic gives:
'header:
seq: 1
stamp:
secs: 1550500372
nsecs: 132920026
frame_id: "base_link"
joint_names: [wrist_3_joint]
deltas: [10.0]'
So I'm getting an output and /jog_arm_server is connected to /move_group but the robot is not moving.
Am I going about this the right way?
I don't think sending discreet 1-degree commands to a UR5 should be this difficult.
Many thanks.
Edit:
if I change the header to:
'{seq: auto, stamp: auto, frame_id: auto}'
I get:
[WARN] [1550506997.124494]: Inbound TCP/IP connection failed: 'Header' object has no attribute 'secs'
Here is my output from rqt_graph
The text was updated successfully, but these errors were encountered: