Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The problem is that I'm currently setting these values by 1) subscribing the topic 2) set the values and publish because I cannot access to a ros driver of this robot and modify the code. However, I personally don't like this method (redundancy & message filtering) and want to try any better way to directly set those values.

well, as messages are exchanged peer-to-peer between nodes, unfortunately there isn't a "better way" afaik.

I can only think of one other way to approach this, and that would be injecting them (ie: your covariances) on the consumer side (ie: the node which subscribes to these messages). If that node is under your control (ie: you can change the source), you could change its subscriber callback to first pre-process the incoming messages.

If it's not under your control, I believe subscribe-process-publish is what you'll need to do,

Note that you don't need to write a "whole new node" for this. topic_tools/transform can do most of the work for you. You just need to provide the correct expression.

The problem is that I'm currently setting these values by 1) subscribing the topic 2) set the values and publish because I cannot access to a ros driver of this robot and modify the code. However, I personally don't like this method (redundancy & message filtering) and want to try any better way to directly set those values.

well, as messages are exchanged peer-to-peer between nodes, unfortunately there isn't a "better way" afaik.

What did you have in mind yourself?

I can only think of one other way to approach this, and that would be injecting them (ie: your covariances) on the consumer side (ie: the node which subscribes to these messages). If that node is under your control (ie: you can change the source), you could change its subscriber callback to first pre-process the incoming messages.

If it's not under your control, I believe subscribe-process-publish is what you'll need to do,

Note that you don't need to write a "whole new node" for this. topic_tools/transform can do most of the work for you. You just need to provide the correct expression.

The problem is that I'm currently setting these values by 1) subscribing the topic 2) set the values and publish because I cannot access to a ros driver of this robot and modify the code. However, I personally don't like this method (redundancy & message filtering) and want to try any better way to directly set those values.

well, as messages are exchanged peer-to-peer between nodes, unfortunately there isn't a "better way" afaik.

What did you have in mind yourself?

I can only think of one other way to approach this, this (if we exclude non-ROS-based approaches), and that would be injecting them (ie: your covariances) on the consumer side (ie: the node which subscribes to these messages). If that node is under your control (ie: you can change the source), you could change its subscriber callback to first pre-process the incoming messages.

If it's not under your control, I believe subscribe-process-publish is what you'll need to do,

Note that you don't need to write a "whole new node" for this. topic_tools/transform can do most of the work for you. You just need to provide the correct expression.