WinRos or Linux ROS?

185 views
Skip to first unread message

Rud Merriam

unread,
Jun 26, 2013, 2:06:51 PM6/26/13
to win...@googlegroups.com
Hi All,

I am a retired software engineer. I recently was an entrant in the 2013 NASA Sample Return Robot Centennial Challenge. My rovers did not complete the tasks but did have some encouraging results. I am planning on entering in the 2014 SRR, assuming it is held. My three rovers all ran WinXP with custom C++ software I wrote using VS2005. 

At the SRR I decided to try tackling Linux, ROS, and OpenSV to use them for 2014. There is a little more to the story such as not wanting to spend the money for VS2010 or the eventual need to pay for the current version of Windows when I leave WinXP behind.

After a week or so of wrestling with Ubuntu Linux (and other distros) I am really wondering if I should try using WinRos. For some reason Linux frustrates me to no end. I cannot say why considering in my decades of development I worked on numerous embedded and other operating systems, including a multi-tasker I wrote for a '286 embedded system. I know one of my frustrations is there always seems to be something else to set up or SUDO to make things work. (Why do you have to keep going to the command line to do something?)

But I believe from what I have read that WinROS does not have all the pieces of ROS working. Given the scope of my efforts I probably need access to all the capabilities of ROS. Is my understanding correct that there are incomplete parts?

Any other thoughts or words of encouragement? 

Rud Merriam

Daniel Stonier

unread,
Jun 26, 2013, 8:10:06 PM6/26/13
to win...@googlegroups.com
Hi Rud,

Comments below:

On 27 June 2013 03:06, Rud Merriam <rudme...@gmail.com> wrote:
Hi All,

I am a retired software engineer. I recently was an entrant in the 2013 NASA Sample Return Robot Centennial Challenge. My rovers did not complete the tasks but did have some encouraging results. I am planning on entering in the 2014 SRR, assuming it is held. My three rovers all ran WinXP with custom C++ software I wrote using VS2005. 

At the SRR I decided to try tackling Linux, ROS, and OpenSV to use them for 2014. There is a little more to the story such as not wanting to spend the money for VS2010 or the eventual need to pay for the current version of Windows when I leave WinXP behind.

After a week or so of wrestling with Ubuntu Linux (and other distros) I am really wondering if I should try using WinRos. For some reason Linux frustrates me to no end. I cannot say why considering in my decades of development I worked on numerous embedded and other operating systems, including a multi-tasker I wrote for a '286 embedded system. I know one of my frustrations is there always seems to be something else to set up or SUDO to make things work. (Why do you have to keep going to the command line to do something?)

I get the same frustrations sitting on a windows machine! I think it largely comes down to workflow habits. You get so used to a bunch of tools that work in a particular way and some annoyances get so familiar you turn a blind eye to them. So when you finally move machines, every annoyance seems like a mountain and you resist learning a new workflow with new tools.
 
But I believe from what I have read that WinROS does not have all the pieces of ROS working. Given the scope of my efforts I probably need access to all the capabilities of ROS. Is my understanding correct that there are incomplete parts?

Yes - can't expect all the code that is out there to be cross-platform and ported but helping port a package is usually fairly easy these days. The larger problem is the dependencies, either they aren't available on windows (ros packages because of its infrastructure using rosdep tend to use alot of system packages to boost what they do rather than writing their own code) coupled with the fact that dependency management on windows pretty much equates to a human doing the job. 
 
Any other thoughts or words of encouragement? 

Mostly depends on what you need - winros supports the communications right now and we have a guy working on the rqt port. Probably the major fundamental one that it is missing is tf.

From what I read above, I suspect you are doing the control programming for robots. If that's the case, then I'd recommend ubuntu so you can bring ros along with all the control software people have written. Winros' niche right now is more for engaging with a ros robot, or for supporting an esoteric driver on a windows machine sitting alongside a linux ros.

 Cheers,
Daniel
--
You received this message because you are subscribed to the Google Groups "Ros on Windows" group.
To unsubscribe from this group and stop receiving emails from it, send an email to win-ros+u...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Phone : +82-10-5400-3296 (010-5400-3296)
Home: http://snorriheim.dnsdojo.com/

Rud Merriam

unread,
Jun 26, 2013, 8:21:45 PM6/26/13
to win...@googlegroups.com
Hi Daniel,

The quote below is what I needed to know. WinROS is not yet there for me.

I will continue working with Ubuntu and going through the tutorials, etc.

Where is the best place for me to get questions answered and to check for previous questions and answers? The ROS answers board so far seems a bit awkward to use. Are there other email lists that you know of?


- 73 -
Rud Merriam K5RUD
Mystic Lake Software


On 6/26/2013 7:10 PM, Daniel Stonier wrote:

Michael Gratton

unread,
Jun 26, 2013, 9:10:23 PM6/26/13
to win...@googlegroups.com, Rud Merriam
On 27/06/13 04:06, Rud Merriam wrote:
>
> But I believe from what I have read that WinROS does not have all the
> pieces of ROS working. Given the scope of my efforts I probably need
> access to all the capabilities of ROS. Is my understanding correct that
> there are incomplete parts?

Having just completed a project that necessitated using win_ros, I would
suggest you spend more time getting used Linux. ;) I definitely do not
want to denigrate the work of Daniel and others - they have done some
very impressive work getting win_ros to the state it is currently in,
but the fact is that win_ros is in a state (for Groovy, at least) where
it is only very narrowly useful. Since basically everyone uses Linux for
ROS development and deployment that probably won't change any time in
the near future, either.

More specifically, I would suggest win_ros is best used at the moment as
a bridge - a way to get Windows-dependent software and/or hardware that
will not work under Linux talking to a ROS system running on different
machines, under Linux. This was the case for my recent project, where
robots with Windows tablets were hooked up to Raspberry Pis. Windows was
on the tablets only to run 3D Studio Max (which isn't available for
Linux), which was controlled by a ROS system running on the Pis. The Pis
did all the heavy lifting.

If you do choose to use win_ros, expect to only be able to use packages
that have been catkinised, that are written only in C++, and that only
depend on similar packages. In Groovy, a very small number of packages
meet this criteria, so don't expect to be able to use many existing ROS
packages. Expect to spend a lot of time compiling the core and
third-party packages you want to use, fixing build failures and compiler
errors and flagging DLL imports/exports in other people's code. Expect
to spend a lot of time on the command line anyway.

Due to ongoing catkinisation Hydro might be in a better place, however
ROS and the vast majority of the third-party packages out there are
written under the assumption of having a standards-compliant C++
compiler and having POSIX-compatible libraries and shell available.
Window just doesn't fit that picture. To really get any benefit out of
ROS, you really are going to best off getting comfortable with Ubuntu
and the command line.

So, dive in to Linux! It's actually rather awesome once you get used to
it - like Dave said in 2001: A Space Odyssey: “My God, it's full of
stars!” [0]

//Mike

[0] - <https://www.youtube.com/watch?v=r4xj7td9Zt0>

--
Michael Gratton <mic...@quuxo.com>
Quuxo Software <http://quuxo.com/>

signature.asc

Sanyaade Adekoya

unread,
Jun 29, 2013, 2:25:47 PM6/29/13
to win...@googlegroups.com
@Rud,

As many people have suggested to you above linux is your best platform since there are many ROS available on Linux platforms than Windoz. What you need to get down into are:

1.) Your MicroController platform e.g. ARM, Intel or MIP
2.) MCU type/specification: e.g. cortex A8, atom
3.) MCU I/O and interfaces

With those above known then you need to google and search Linux RTOS for your MCU. I am sure someone might have those MCU for something before or something close to what you are doing.

Building images for MCU is pretty well done in Linux environment than in Windows and there are many toolchains ranging from BuildRoot, Angstrom, Yocto, emIDE, Nokia QT that prepare a ready to go environment for your need and others.

IDE like Eclipse, QT, Anjuta, CodeBlocks, emIDE, QNX, etc.. all works flawlessly in Linux most especially Ubuntu, Fedora, ArchLinux to mention but few.

The problems are usually face is which one to use? It can be pretty difficulty to chose one tool in Linux as most will have one or two features that you will want to incorporate in your project. But you have to go for one that mostly close to most of the features. Then join their mailing list, forums, etc..
for example if your MCU boards are ARM based then anything than works on Raspberry Pi, BeagleBoard, FreeScale,  Texas Instruments, AVNet, ATMel, ONX,  etc.. ARM devices will just work or work with little twist on your platform.

Hope this help!

God blesses!!!

Best regards,
Sanyaade

Rud Merriam

unread,
Jun 29, 2013, 5:50:01 PM6/29/13
to win...@googlegroups.com
Hi,

Appreciate your comments and encouragement. Fortunately my robots run with a PC platform. They have a quad-atom ITX motherboard. I think the biggest hassle I might have is accessing the sensors and controllers which are USB based boards.

I am working with Ubuntu in a VM right now. In the next few days I will be following the ROS tutorials. Sometime soon I also need to get OpenCV on the VM to start that learning curve.


- 73 -
Rud Merriam K5RUD
Mystic Lake Software


On 6/29/2013 1:25 PM, Sanyaade Adekoya wrote:

Sanyaade Adekoya

unread,
Jun 29, 2013, 7:48:34 PM6/29/13
to win...@googlegroups.com
Hi Rud,

Intel the maker of atom boards have a project call Yocto see: https://www.yoctoproject.org/ . It covers all Atom motherboards on X86 and you twist every part of the kernel, io, user-space, etc..

It also has gui call hob that make it easy to build os images for atom boards
Programs like OpenCV, Python, Perl, X11, Qt, etc.. can be selected and build as well

Please let me know if you need more information.

God blesses!!!

Best regards,
Sanyaade

Reply all
Reply to author
Forward
0 new messages