Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

One of my projects' nodes has one function which is finding matches in patterns which requires a lot of processing power and it contains many functions with loops and a lot of math stuff. I assume replacing this node with nodelets will improve the performance since it'll take less time to run through the whole code. Is this right?

The big advantage of nodelets is that they allow you to communicate using ROS msgs essentially "for free" (ie: msg exchanges become pointer-passing between nodelets). This is especially advantageous when you're exchanging large messages frequently (ie: camera images, large point clouds, etc), as the size of the message does not contribute significantly any longer on total time taken to send out and receive a message (pointers are fixed size).

If your "function" is not bound by communication, but by computation, the converting things to nodelets will not improve performance.

Can nodelets be combined with regular nodes?

This depends on what you mean by "combined with".

If you're asking: can nodelets exchange messages with nodes, then: yes.

If you're asking: can nodelets be combined (into a single executable fi) with nodes, then no.

One of my projects' nodes has one function which is finding matches in patterns which requires a lot of processing power and it contains many functions with loops and a lot of math stuff. I assume replacing this node with nodelets will improve the performance since it'll take less time to run through the whole code. Is this right?

The big advantage of nodelets is that they allow you to communicate using ROS msgs essentially "for free" (ie: msg exchanges become pointer-passing between nodelets). This is especially advantageous when you're exchanging large messages frequently (ie: camera images, large point clouds, etc), as the size of the message does not contribute significantly any longer on total time taken to send out and receive a message (pointers are fixed size).

If your "function" is not bound by communication, but by computation, the then converting things to nodelets will not improve performance.performance (how could it: your CPU does not get faster all of a sudden, it still has to execute the exact same amount of code).

Can nodelets be combined with regular nodes?

This depends on what you mean by "combined with".

If you're asking: can nodelets exchange messages with nodes, then: yes.

If you're asking: can nodelets be combined (into a single executable fi) with nodes, then no.

One of my projects' nodes has one function which is finding matches in patterns which requires a lot of processing power and it contains many functions with loops and a lot of math stuff. I assume replacing this node with nodelets will improve the performance since it'll take less time to run through the whole code. Is this right?

The big advantage of nodelets is that they allow you to communicate using ROS msgs essentially "for free" (ie: msg exchanges become pointer-passing between nodelets). nodelets running in the same process). This is especially advantageous when you're exchanging large messages frequently (ie: camera images, large point clouds, etc), as the size of the message does not contribute significantly any longer on total time taken to send out and receive a message (pointers are fixed size).

If your "function" is not bound by communication, but by computation, then converting things to nodelets will not improve performance (how could it: your CPU does not get faster all of a sudden, it still has to execute the exact same amount of code).

Can nodelets be combined with regular nodes?

This depends on what you mean by "combined with".

If you're asking: can nodelets exchange messages with nodes, then: yes.

If you're asking: can nodelets be combined (into a single executable fi) with nodes, then no.

One of my projects' nodes has one function which is finding matches in patterns which requires a lot of processing power and it contains many functions with loops and a lot of math stuff. I assume replacing this node with nodelets will improve the performance since it'll take less time to run through the whole code. Is this right?

The big advantage of nodelets is that they allow you to communicate using ROS msgs essentially "for free" (ie: msg exchanges become pointer-passing between nodelets running in the same process). This is especially advantageous when you're exchanging large messages frequently (ie: camera images, large point clouds, etc), as the size of the message does not contribute significantly any longer on to total time taken to send out and receive a message (pointers are fixed size).

If your "function" is not bound by communication, but by computation, then converting things to nodelets will not improve performance (how could it: your CPU does not get faster all of a sudden, it still has to execute the exact same amount of code).

Can nodelets be combined with regular nodes?

This depends on what you mean by "combined with".

If you're asking: can nodelets exchange messages with nodes, then: yes.

If you're asking: can nodelets be combined (into a single executable fi) with nodes, then no.

One of my projects' nodes has one function which is finding matches in patterns which requires a lot of processing power and it contains many functions with loops and a lot of math stuff. I assume replacing this node with nodelets will improve the performance since it'll take less time to run through the whole code. Is this right?

The big advantage of nodelets is that they allow you to communicate using ROS msgs essentially "for free" (ie: msg exchanges become pointer-passing between nodelets running in the same process). This is especially advantageous when you're exchanging large messages frequently (ie: camera images, large point clouds, etc), as the size of the message does not contribute significantly any longer to total time taken to send out and receive a message (pointers are fixed size).

If performance of your "function" is not bound by communication, but by computation, then converting things to nodelets will not improve performance (how could it: your CPU does not get faster all of a sudden, it still has to execute the exact same amount of code).

Can nodelets be combined with regular nodes?

This depends on what you mean by "combined with".

If you're asking: can nodelets exchange messages with nodes, then: yes.

If you're asking: can nodelets be combined (into a single executable fi) with nodes, then no.