0
$\begingroup$

I want to build a low cost robot, running ROS for educational purposes. It can be a simple line follower using raspberry pi and an IR sensor. Is it overambitious as a beginner project? How difficult is it to make ROS run on custom hardware?

P.S. I am newbie in both robotics and programming and I am more interested in building actual robots than running simulations. Also, I cant afford to buy ROS compatible robots.

$\endgroup$
2
  • 1
    $\begingroup$ Hi Siddhesh, the Raspberry PI is well suited for your line follower, but there'll be many, many more tutorials if you use an Arduino. The Pi is a full-fledged computer, and you only really need a small, specialized Arduino. Using ROS here is like using a sledge hammer when you need to hammer in a nail. :) $\endgroup$ Feb 26, 2016 at 20:25
  • $\begingroup$ Hi Ryan, my goal is to learn ROS, not to build line follower. I wanted to know how difficult it is to run ROS locally on pi and will I need to write any code (drivers ?) for acquiring data from sensor (It can be any sensor IR sensor, Kinect etc. ) ? $\endgroup$
    – Siddhesh
    Feb 27, 2016 at 2:29

1 Answer 1

2
$\begingroup$

It is not extremely difficult to achieve this. It is probably a great way to learn after you complete the main ROS tutorials. Using ROS will get you free joystick or keyboard teleoperation of your bot along potential integration with the ROS navigation stack.

You have the choice of either interfacing with your robot hardware using the GPIO onboard you raspi or using a microcontroller and interfacing that with the computer using rosserial. I would recommend using rosserial and an Arduino because controlling a small robot and reading analog sensors is better documented on the Arduino platform. Either way is totally doable though. Good Luck!

$\endgroup$
1
  • 1
    $\begingroup$ Using a microcontroller is indeed the better option here but not only because of the reason you have mentioned - better documentation. It's getting the timings right. When you run something on a Pi, you have to deal with the latency that comes from the kernel itself (Pi uses a normal and not a low-latency kernel). Approx. 2 months ago I was playing with some servos and steppers by controlling these using buttons and I was astonished how visible the delays were. If you use a mC you can easily avoid these by using interrupts. $\endgroup$ Feb 28, 2016 at 23:16

Not the answer you're looking for? Browse other questions tagged or ask your own question.