ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

answered 2012-05-29 10:08:11 -0600

joq gravatar image

That sounds challenging.

  • One "best practice" suggestion is to write each nodelet as a separate class that can be instantiated as both a node or a nodelet. Then, test them thoroughly as nodes before tackling the more difficult nodelet environment. The 1394 camera driver may be more complex than your application, but demonstrates how most of the code can be common to the node and nodelet implementations.

  • Once all that is working, you can try running the nodelet manager under gdb. That is messy, but should be possible. At least you can catch the exceptions.

  • With 30 nodelets in one process, you may also want to increase the number of threads in the pool.

That sounds challenging.

  • One "best practice" suggestion is to write each nodelet as a separate class that can be instantiated as both a node or and a nodelet. Then, test them thoroughly as nodes before tackling the more difficult nodelet environment. The 1394 camera driver may be more complex than your application, but demonstrates how most of the code can be common to the node and nodelet implementations.

  • Once all that is working, you can try running the nodelet manager under gdb. That is messy, but should be possible. At least you can catch the exceptions.

  • With 30 nodelets in one process, you may also want to increase the number of threads in the pool.

That sounds challenging.

  • One "best practice" suggestion is to write each nodelet as a separate class that can be instantiated as both a node and a nodelet. Then, test them thoroughly as nodes before tackling the more difficult nodelet environment. The 1394 camera driver may be more complex than your application, but demonstrates how most of the code can be common to the node and nodelet implementations.

  • Once all that is working, you can try running the nodelet manager under gdb. That is messy, but should be possible. At least you can catch the exceptions.

  • With 30 nodelets in one process, you may also want to increase the number of threads in the pool.