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

In short: as the ROS nodes for nxt don't run on your brick, you are free to use any code / library you want (as long as you can run it on your laptop/pc).


Longer answer: The nxt_ros package is 'nothing more' than a wrapper around the nxt_python Python library. This enables bidirectional communication between ROS and the NXT brick.

As the rest of your ROS nodes "don't care" where their data is coming from or going to, you are free to use any other nodes, as long as their messages are compatible.

This is actually one of the fundamental tenets of component based development: keep implementation specific details 'locked up' inside your components, while using suitable connectors to exchange the proper messages. Ideally, no knowledge about you using the NXT as an actuation platform is ever present in any of your nodes, apart from the nxt_ros package (cum suis).

click to hide/show revision 2
Changed answer after TS edited the question.

In short: as the ROS nodes for nxt don't run on your brick, you are free to use any code / library you want (as long as you can run it on your laptop/pc).


Longer answer: The nxt_ros package is 'nothing more' than a wrapper around the nxt_python Python library. This enables bidirectional communication between ROS and the NXT brick.

As the rest of your ROS nodes "don't care" where their data is coming from or going to, you are free to use any other nodes, as long as their messages are compatible.

This is actually one of the fundamental tenets of component based development: keep implementation specific details 'locked up' inside your components, while using suitable connectors to exchange the proper messages. Ideally, no knowledge about you using the NXT as an actuation platform is ever present in any of your nodes, apart from the nxt_ros package (cum suis).


Answer to the edit: yes, your computer/laptop will need to be running all the time. As I wrote, the nxt_ros package is just a wrapper around a library, facilitating communication between your computer and the brick over usb/bluetooth.

According to this page, the brick has a 48MHz ARM7 with 64KB ram. While perhaps rosserial_arduino could be adapted to run on it, the brick is in no way powerful enough to run a full blown ROS.