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

2d navigation with Arduino + iRobot?

asked 2019-06-04 16:28:03 -0500

Usui gravatar image

So I have used iRobot + a laser scanner for 2d navigation using amcl, gmapping and move_base node. However, when I want it to run I have to place my laptop on top of it so now I am wondering if it is possible to use arduino so it is more convenient. I have been using ros but I feel like I am still at a beginner level so anything is appreciated!

edit retag flag offensive close merge delete


An arduino is not powerful enough do what you need it to do, its a microcontroller not a computer. I think you may be able to get away with a new raspberry pi but I'm not totally certain about that. A modern i3 processor / nvidia board should be enough though.

stevemacenski gravatar image stevemacenski  ( 2019-06-04 16:53:32 -0500 )edit

which one do you think will be the easiest/quickest to do? Since I am still a beginner.

Usui gravatar image Usui  ( 2019-06-04 16:56:41 -0500 )edit

Definitely not the nvidia board

stevemacenski gravatar image stevemacenski  ( 2019-06-04 17:04:34 -0500 )edit This showed navigation with raspberry pi 3. Is it possible to just use laser scanner + irobot + raspberry pi? or do I need more?

Usui gravatar image Usui  ( 2019-06-04 17:30:22 -0500 )edit

I cannot tell you, you would have to try for yourself or ask someone that has tried

stevemacenski gravatar image stevemacenski  ( 2019-06-04 17:36:29 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2019-06-04 17:50:38 -0500

billy gravatar image

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.

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 (, 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.

edit flag offensive delete link more


Method 2 seems like the easiest, I will do that just to make sure that I can do it then I will try with other methods mentioned above. How would I get start with method 2? Btw, I am using the create_autonomy iRobot package + a hokuyo laser (urg_node)

Usui gravatar image Usui  ( 2019-06-04 18:23:15 -0500 )edit

If you already have it running on a PC, you should have a pretty good idea how to do it already.

Follow tutorials for ROS networking Tutorials for ROS on Raspberry PI Install ROS drivers for sensors on PI

billy gravatar image billy  ( 2019-06-04 22:05:08 -0500 )edit

@billy Which tutorial? Could you link it? Thank you!

Usui gravatar image Usui  ( 2019-06-06 12:30:43 -0500 )edit

Question Tools

1 follower


Asked: 2019-06-04 16:28:03 -0500

Seen: 541 times

Last updated: Jun 04 '19