Re: Help for ROS on Windows

512 views
Skip to first unread message

Daniel Stonier

unread,
Jul 29, 2014, 9:41:36 AM7/29/14
to Gerard Canal Camprodon, win...@googlegroups.com, Yeongil Choe, Sergio Escalera, Cecilio Angulo



On 29 July 2014 02:58, Gerard Canal Camprodon <gerard...@est.fib.upc.edu> wrote:
Dear Yeong-Il Choe and Daniel Stonier,

I'm a student from Spain (Universitat de Barcelona and Polytechnical University of Catalunya), and I am now beginning my Master thesis. I am going to use a Kinect2 sensor, which is now only available for Windows platforms and the SDK only works on windows 8/8.1. I am going to use ROS to program a NAO robot which will make use of the Kinect2 data, so I plan to have a Windows computer to get the data and an Ubuntu one to process it and control the NAO. I intend to use ROS on Windows for some pre-processing of the data and sending it with some topic to the Linux computer. As the ROS wiki page for the win_ros package says you are the Authors and Maintainer, I would like to ask you for some help or advice. 

The page says it is prepared for Visual Studio 2010, and I had the samples working on Windows 7 (prior upgrading it). But, the Kinect 2 documentation says I need Visual Studio 2012 or 2013, for which I installed Visual Studio 2013 in my computer. With this, I am able to compile the talker.cpp example, but I get an exception on roscpp.dll when I run it (this didn't happen on windows 7 and I was able to run it properly). I can also run well a roscore and the samples from the msvc_runtime package.

I would really appreciate any kind of help or advice on how to solve this issue and run code that I make for ROS in windows, using the Kinect 2 features. I have not much experience in Windows programming.

Thank you very much, 

Gerard Canal

Just to get basic problems out of the way, did you compile everything from source, or did you grab the 2010 built binaries and try to compile a talker.cpp on 2013?

Cheers,
Daniel.

PS CC'd this to the winros mailing list so we have a record of it...hope you don't mind.

Daniel Stonier

unread,
Jul 31, 2014, 1:58:51 PM7/31/14
to Gerard Canal Camprodon, win...@googlegroups.com, Yeongil Choe, Sergio Escalera, Cecilio Angulo



On 29 July 2014 23:45, Gerard Canal Camprodon <gerard...@est.fib.upc.edu> wrote:
Hello Daniel,
Thank you for your answer. I don't mind to add this to winros mailing list, hope it can be helpful for someone else :).

Right now I downloaded the pre compiled binaries and used VS 2013 to compile the talker example. The talker compiles well, and it actually runs and connects to the ros core. But once it connects, there appears an unhandled exception on roscpp.dll, saying it tried to access memory position 0x0000000. 
I was about to try to compile the source as explained in the Msvc Compiled SDK, but as it said it uses windows sdk 7.1 I thought I may have the same issue and it was better to ask for advice (as I don't have much experience in compiling big projects in windows). I also tried to compile from VS2010 setting the Platform Toolset to use the Windows SDK 7.1, but didn't work either (same result as with the 2013 compiler). 

At a guess, I'd say that there's a problem mixing 2010 and 2013 libraries and binaries. Even c++ debug/release isn't guaranteed to mix on windows.

Cheers,
Daniel.

Best,
Gerard Canal

Daniel Stonier

unread,
Jul 31, 2014, 3:23:51 PM7/31/14
to Gerard Canal Camprodon, win...@googlegroups.com, Yeongil Choe, Sergio Escalera, Cecilio Angulo

From http://msdn.microsoft.com/en-us/windows/desktop/bg162891.aspx

The Windows SDK no longer ships with a complete command-line build environment. You must install a compiler and build environment separately. 

This is ominous. I'd basically have to try and rebuild win-ros up, find the right build environment and tools again and patch it all together. This is probably more work than you're planning on, and definitely more than I have time for in the foreseeable future (I also don't have a need any longer).

Other possible options:

1) Can you write around the kinect with C# code? There are two guys which are playing around with C# implementations...
2) Thought of a message bridge sitting between your kinect windows program and the ROS ubuntu system?

K (W)  <->   B (W|U)  <->  R (U)

Here B <-> R would obviously be over ROS. K <-> B could be whatever messaging abstraction layer you need to get the job done. If B is on the same machine, perhaps shared memory or even just a couple of crude socket connectors. The only constraint here I guess is that it has to handle big data (point clouds).

Daniel.

On 1 August 2014 03:15, Gerard Canal Camprodon <gerard...@est.fib.upc.edu> wrote:
Yes I also thought it'd be for this reason. 

What would you suggest me to try? Is there any way to compile it from source with Visual Studio 2013 and preferrably without depending on the Windows 7 SDK?

Thank you,

Gerard Canal

Daniel Stonier

unread,
Aug 3, 2014, 11:38:11 PM8/3/14
to Gerard Canal Camprodon, win...@googlegroups.com, Yeongil Choe, Sergio Escalera, Cecilio Angulo
On 4 August 2014 01:41, Gerard Canal Camprodon <gerard...@est.fib.upc.edu> wrote:
Hello Daniel,
Thank you very much for your time and advice. About your options, I think the second one would be more suitable. In fact, I have thought about something similar, but instead of having the bridge in the Linux machine, having it in the windows one. Compiling the ROS nodes in VS2010 (so they'd theoretically run well on W8) and communicate it with the Kinect process with a Pipe or something similar, to avoid burdening the network too much sending the pointclouds, and doing the processing of them in the Windows machine. 

Sounds like a plan.
 
Also, I wanted to ask you if you knew anyone in the community who may be interested in compiling it for windows 8. I suppose that there will be more people out there willing to use the Kinect2 with their robots and may be facing similar problems. Do you know anyone who could be interested in it? Or in where could I post it to ask? In the win-ros group, in the ROS answers webpage, or maybe in both?

Might be able to, but it's not easy. You have to find someone who is knowledgeable and motivated to do stuff in both windows and linux and ros. That's almost a mutually exclusive set :P My motivation stemmed from providing a link to our other software groups so they had no excuse not to work with our ros control group. Unfortunately I don't anticipate us using windows much over the next year.

Cheers,
Daniel.


 
Best,
Gerard Canal

jmw...@cogsimtech.com

unread,
Aug 6, 2014, 10:16:55 AM8/6/14
to win...@googlegroups.com, gerard...@est.fib.upc.edu, yic...@yujinrobot.com, ser...@maia.ub.es, cecilio...@upc.edu
Can we infer from this that proper ROS Windows support is essentially dormant for Indigo and beyond at the current time?  From what I can see you've done a fantastic job of it in the past, but I understand without a direct project to support the effort its a lot of work to volunteer.

I have some ambitions to try getting indigo running on windows as well as trying a few edge projects (VS2013 if the C++11 ABI issues don't bite too hard, moving to powershell to get rid of batch file hell and come closer to bash/unix level command functionality), but I too have way too much work to give it any real support right now. I'm also still very new to ROS.

Daniel Stonier

unread,
Aug 9, 2014, 7:19:48 AM8/9/14
to win...@googlegroups.com, Gerard Canal, Yeongil Choe, Sergio Escalera, Cecilio Angulo
On 6 August 2014 23:16, <jmw...@cogsimtech.com> wrote:
Can we infer from this that proper ROS Windows support is essentially dormant for Indigo and beyond at the current time?  From what I can see you've done a fantastic job of it in the past, but I understand without a direct project to support the effort its a lot of work to volunteer.

Yes, that sums it up pretty well.
 
I have some ambitions to try getting indigo running on windows as well as trying a few edge projects (VS2013 if the C++11 ABI issues don't bite too hard, moving to powershell to get rid of batch file hell and come closer to bash/unix level command functionality), but I too have way too much work to give it any real support right now. I'm also still very new to ROS.

I have a great many ambitions too :) Very disappointing knowing that I can't realise them all!

Be sure you want to commit to it before jumping - it's probably alot more work than you expect and it's only something I could manage because of company support. Getting more familiar with ROS too would be useful.

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/d/optout.

Greg Brill

unread,
Aug 14, 2014, 11:48:17 PM8/14/14
to win...@googlegroups.com, gerard...@est.fib.upc.edu, yic...@yujinrobot.com, ser...@maia.ub.es, cecilio...@upc.edu
I have a working pretty complete ROS build of Indigo for Windows 8.  It requires Cygwin32, and I have done some minimal testing...but it seems to work reasonable well.  Even a good part of Catkin.  It uses gcc on windows, but you can still use Visual Studio to develop if you leverage a utility like VisualGDB (which is tremendous).   I also have a smaller build that doesn't require cygwin and can use Visual Studio 2013...but that is just a monolithic DLL that has most the ROS core libraries in it...useful if you just wanted to write a simple node in Windows and communicate with a ROSCORE running somewhere else. 

If anyone wants it I can post it somewhere. 

G.A. vd. Hoorn - 3ME

unread,
Aug 15, 2014, 1:57:25 AM8/15/14
to win...@googlegroups.com, Greg Brill, gerard...@est.fib.upc.edu, yic...@yujinrobot.com, ser...@maia.ub.es, cecilio...@upc.edu
On 15-8-2014 5:48, Greg Brill wrote:
> I have a working pretty complete ROS build of Indigo for Windows 8. It
> requires Cygwin32, and I have done some minimal testing...but it seems to
> work reasonable well. Even a good part of Catkin. It uses gcc on windows,
> but you can still use Visual Studio to develop if you leverage a utility
> like VisualGDB (which is tremendous). I also have a smaller build that
> doesn't require cygwin and can use Visual Studio 2013...but that is just a
> monolithic DLL that has most the ROS core libraries in it...useful if you
> just wanted to write a simple node in Windows and communicate with a
> ROSCORE running somewhere else.
>
> If anyone wants it I can post it somewhere.

Always interested. If you could make it available that'd be great.


Gijs
>>>>>> *The Windows SDK no longer ships with a complete command-line build
>>>>>> environment. You must install a compiler and build environment separately. *
>>> email to win-ros+u...@googlegroups.com<javascript:>.

Caleb Rascon

unread,
Oct 6, 2014, 6:16:30 PM10/6/14
to win...@googlegroups.com, gerard...@est.fib.upc.edu, yic...@yujinrobot.com, ser...@maia.ub.es, cecilio...@upc.edu
Hi,

Sorry for barging in like this, but I'm in a very similar position as OP, and I'd really like to see this monolithic DLL that lets you connect to a ROSCORE in another machine, as I think that it would be a good step in solving my issue.

If you can point me to your "pretty complete ROS build of Indigo for Windows 8" that would be great too.

Cheers,

Caleb

Gerard Canal

unread,
Oct 6, 2014, 6:36:27 PM10/6/14
to Caleb Rascon, win...@googlegroups.com, Gerard Canal Camprodon, Yeongil Choe, Sergio Escalera, Cecilio Angulo
Hi,
I just wanted to point that I have not worked much more on this issue as I had other things to work at meanwhile, but as there's no more info nor DLL published (yet), I finally I plan to use the rosserial_windows package (http://wiki.ros.org/rosserial_windows) to send the information to a ROSCORE running in a Linux pc -in answers.ros they pointed me to this, as there was a blog in which the developers used the rosserial_windows package to send kinect 2 data outside of windows, I can look for the reference if anyone is interested-. I have not tried this approach much, but I have run the tutorials and it seems to work fine, it sends messages from Windows to a ROSCORE in an Ubuntu laptop correctly. It's not a complete ROS, but it's something to work with.

Hope it may help, 

Gerard Canal



Gerard Canal

Caleb Rascon

unread,
Oct 6, 2014, 6:56:29 PM10/6/14
to win...@googlegroups.com, caleb....@gmail.com, gerard...@est.fib.upc.edu, yic...@yujinrobot.com, ser...@maia.ub.es, cecilio...@upc.edu
Thank you so much for telling me about rosserial_windows, as it is exactly what I'm looking for. I just found a blog post about how that's the way they're using the Kinect 2 sensor with the PR2, which it may be the one you're referring to: http://hackaday.com/2014/07/21/cutting-ribbons-with-robots-and-a-oculus-rift/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+hackaday%2FLgoM+%28Hack+a+Day%29

I'll try the rosserial_windows package and I'll post my progress here. It seems to be very well documented: http://wiki.ros.org/rosserial_windows

Thanks again.

Caleb

Gerard Canal Camprodon

unread,
Oct 6, 2014, 7:33:40 PM10/6/14
to Caleb Rascon, win...@googlegroups.com, Gerard Canal Camprodon, Yeongil Choe, Sergio Escalera, Cecilio Angulo
I thought I had sent it here, but it seems I didn't, sorry for that.
Yes, it was that blog post. I have only tried the tutorials for now, so I'll be very glad to know about your progress with it, as I'll need to use it soon :)

Glad that it helped,



Gerard Canal

Eugene Simine

unread,
Oct 27, 2014, 10:18:08 AM10/27/14
to win...@googlegroups.com, gerard...@est.fib.upc.edu, yic...@yujinrobot.com, ser...@maia.ub.es, cecilio...@upc.edu

Hi guys,

i think i managed to compile winros in WIn7x64 with VC2012 for x64. Took me about a week of on and off effort but it looks like it runs and all. I can dump binaries somewhere and write out the steps i took if anyone is interested. I'll try to compile it with VC2013 as well.

Eugene Simine

unread,
Oct 29, 2014, 11:57:07 AM10/29/14
to win...@googlegroups.com, gerard...@est.fib.upc.edu, yic...@yujinrobot.com, ser...@maia.ub.es, cecilio...@upc.edu
Ok i've made couple of posts that outline the steps i took for compiling win_ros with MSVC2013 anyone wants to try following my instructions and let me know if they are workable that'd be great. Here's a link:

http://answers.ros.org/question/196227/compiling-win_ros-hydro-on-windows7-64bit-with-vs2013-x64/
Reply all
Reply to author
Forward
0 new messages