Ask Your Question

ros installation on panda board

asked 2012-02-09 17:31:23 -0500

danish gravatar image

updated 2014-01-28 17:11:19 -0500

ngrennan gravatar image

i am new to Ros .i have installed Ros on Ubuntu on panda board now i am going to use Ros .my project is to have a two wheel self balancing robot with the help of Ros is it achievable as i am new to this forum and have no idea about Ros still a beginner so this question will look like a childish question kindly clear me about Ros?? how to start with Ros

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-02-24 07:22:18 -0500

evanmj gravatar image

I would suggest you separate the motor control, encoders, and accelerometer (and various other sensors) out into a separate microcontroller. As mentioned above, the Linux kernel will not handle realtime very well by default. I suggest using an arduino and the avr_bridge package to get information to and from ros. There should be examples of using an arduino as a motor control interface with ros odometry, and similarly plenty of arduino based balancing robots. Between the two examples, you could manage a balancing robot with ros odometry.

The segway route is the "easy way out" if you want to utilize the higher level ros software such as mapping, navigation, etc without messing with the PID and feedback loops of doing a balancing robot implementation yourself... the problem is that the segway bases are quite expensive.

You should be able to mesh multiple arduino examples together to make a balancing robot, then add ros control via the pandaboard.

However you approach it, I would suggest for the ROS portion that you isolate the balancing section of the robot into its own function and make the robot work with ROS with standard motor control (using outriggers to keep it balanced). Treat them as separate projects until you get far enough along in both to meld them together.

edit flag offensive delete link more


your suggestion is very encouraging for me thanks for this informative comment.

danish gravatar image danish  ( 2012-02-26 03:05:57 -0500 )edit

answered 2012-02-09 17:51:09 -0500

ahendrix gravatar image

This is an entirely achievable project.

If you haven't yet, take a look at the Tutorials to get a handle on ROS.

Have you thought about what sort of sensors and motors you're planning to use, and how you're going to interface to them?

edit flag offensive delete link more


yes i have planned all the thing finalize the sensor (interfacing gyroscope and accelerometer),selection of motors and every thing just want to begin with ros .can i built my own packages on ros because there are no packages available according to my requirement you have a info if someone before me has made an two wheel robot on ros platform?.
danish gravatar image danish  ( 2012-02-09 18:25:57 -0500 )edit
HERB ( ) and Marvin ( ) are both balancing robots running ROS, but both use a Segway base to handle balancing.
ahendrix gravatar image ahendrix  ( 2012-02-09 18:44:34 -0500 )edit
Depending on your architecture, you'll probably have to write the balancing control code and a ROS package for the interface drivers. Are you planning to interface your sensors directly to the pandaboard, or do you have a secondary microcontroller to handle balancing?
ahendrix gravatar image ahendrix  ( 2012-02-09 18:50:30 -0500 )edit
Be aware that the stock Linux kernel isn't particularly good at realtime control; if you're planning to run all of your balancing and control loops on your pandaboard, take at look at the various realtime extensions that are available for the linux kernel.
ahendrix gravatar image ahendrix  ( 2012-02-09 18:52:07 -0500 )edit
initially i have decided that all balancing and control loops will be done on pandaboard what you suggest on this should i continue with it or include a secondary controller and inter face it with robot and panda board with microcontroller?
danish gravatar image danish  ( 2012-02-10 00:10:03 -0500 )edit
For a control loop running in the 1-50Hz range, a standard linux kernel and USB interface is probably fine. If your control loop needs to run faster than that, you should consider a realtime linux kernel and a more responsive interface such as serial, or move the control loops to a microcontroller.
ahendrix gravatar image ahendrix  ( 2012-02-10 10:31:37 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools


Asked: 2012-02-09 17:31:23 -0500

Seen: 920 times

Last updated: Feb 24 '12