switching between joint_state_publisher and custom made joint_val_publisher
Hi,
I have a simulated robot in RViz which is a 7 DoF robot arm. It receives fake joint angle values from the node joint_state_publisher
. But now I have written ROS service server and client nodes to compute motion plan as service response given initial and final joint poses as input to the service request. Next I have another node named execute_plan
that publishes joint angles, obtained from motion plan, to /joint_states
topic. The problem is that since joint_state_publisher
have already been publishing the joint angles to the /joint_states
topic, launching the node execute_plan
results in publishing different joint angles to the same /joint_states
topic. As a result, in RViz I see a wired motion of the robot arm. I understand this is happening because of two nodes publishing different values to the same topic simultaneously. What I want is to kill (or send it to idle) the joint_state_publisher
node as long as execute_plan
is done with executing the plan. Can anyone tell me how to send a running node to idle mode while keeping track of the status of the other node? Any help is appreciated.
Hello @anirban, I have the EXACT same issue. Did you ever come to solve this? I am currently reading up on the proper use of JSP which I believe it the main issue. Please let me know if you have discovered anything!
@matthewmarkey: the issue the OP describes is due to the fact he's trying to use the JSP for commanding state. As I already wrote in your own question(s), that's not what it is for.
Additionally, OP hasn't remapped the topic the JSP publishes on, nor the topic(s) his own node(s) use. You'll then end-up with multiple publishers on the
joint_states
topic -- which in itself is not a problem, but it becomes a problem if thoseJointState
messages contain information for the same joints.Solution: don't use the JSP to command anything. And don't use it if you already have a robot driver / Gazebo / something else publishing actual, corresponding to the real-world
JointState
messages. There is no need for a JSP in that case, unless you need it to coalesce messages from multipleJointState
publishers into a single, coherent 'view' of the ...(more)Ok thank you for that prompt explanation.
I understand what you are saying about using the JSP to control the robot. I am not trying to coalesce multiple messages, just send the gazebo joint messages. So, I am just trying to disable the JSP at this point.
I have tried removing the node completely and then saving the launch file, but the model still behaves in the same manner as I have described to you many, many, many times, ha.
As I already wrote in #q352941, that most likely has nothing to do with the JSP being started or not.
And please don't post off-topic comments under other questions.