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

Yes, it is possible to place the PC remotely.

Method 1 - Do all ROS processing on a Raspberry Pi on the robot - I do not know if Raspberry Pi has processing power to run full navigation stack. I doubt it.

Method 2 - Use Raspberry Pi with ROS to interface your sensors and motor driver and and put data into ROS topics - use WiFi to network Raspberry Pi with PC and run AMCL and move-base on PC - this seems likely to succeed if you can assure uninterrupted WiFi access.

Method 3 - Do it the hard way - using a wireless serial port and Arduino - I have a small two wheel robot with remote PC. It uses a Bluetooth serial port for all communication. On board there is a uC(not arduino but close enough) that puts all sensor data into a single data stream and sends to PC which has a node to decode the data stream and send data to appropriate nodes for processing. All robot commands from ROS go through same serial link and uC sends commands to appropriate device (laser scanner, motor driver, wav files).

There are ROS nodes that can help support this. http://wiki.ros.org/rosserial

I haven't used ROSserial so not sure how difficult it is to use.

In my case, for data transfer to PC, I started with Neato Laser scanner driver hacked (https://github.com/getSurreal/XV_Lidar_Controller), ported it to a thread in LPC1769, and interleaved all other data into the data stream using the same packet format. Data interleaved includes IMU data, wheel odom, bumper states, battery voltage, and laser scan data. It's absolutely workable, but it required a bunch of effort to do it.

If I had to start over, I would use Method 2. You'd learn a lot more doing method 3. Let me know if Method 1 works.