Robot Operating System port

Robot Operating System port

Postby 9600 » Fri Aug 23, 2013 3:53 pm

I was recently made aware of Robot Operating System (ROS) and wonder if this could be interesting if used with Parallella?

I must admit to knowing very little about it, but I'm looking forward to finding out more in a few weeks time via a talk at Open Source Hardware Camp!

Cheers,

Andrew
Andrew Back (a.k.a. 9600 / carrierdetect)
User avatar
9600
 
Posts: 997
Joined: Mon Dec 17, 2012 3:25 am

Re: Robot Operating System port

Postby stealthpaladin » Mon Aug 26, 2013 4:31 am

Andrew hi, thanks for this!

I've had in the back of my mind for a while the idea to construct a homebrew CNC machine with modular head and boom sockets. While I have too many time constraints to actively pursue this personal project, it's something I'd like to at least implement the software for someday, being a dev! In my mind I'd like to build the positioning, angularity and momentum systems using hydraulics, variable torque mechanics & something driven by OpenCV+OpenCL fed by the Ruby extension to Google SketchUp. ^_^;

Looking at ROS and considering it coupled with the Parallella, it's a very convincing proposition in my mind :)

One of the best things I see right away is, using my little virtual project there as an example..If I were to build the hardware and software successfully to do, perhaps, a fancy wood lathe; I might one day come back and want to add a laser or camera onto the head.

If I had based my project on Parallella and ROS, I could scale, or if it had been a few years upgrade, my Parallella to enable processing and events for new the hardware.

Now talking about somewhere on the order of 40,000 voxels per cubic meter - you could use cheapo boards with an ARM. But in case people don't know, that's really not many voxels! To get very fine-grained detail you need precision mechanical hardware, computational hardware and computational software.
User avatar
stealthpaladin
 
Posts: 41
Joined: Sat Jul 20, 2013 9:46 am

Re: Robot Operating System port

Postby greton100 » Thu Jan 09, 2014 12:59 pm

Currently, ARM Cortex is one of the most reasonable and popular platforms for mobile robots in the price range of 100 to 2000 euros. Boards such as ODROID-X have a similar price as Parallella, but Parallella adds up 16 cores more. This is why Parallella seems to be the #1 choice for thousands of robotics projects out there.

ROS, on the other hand, is supported by a wide community. Major players in the industry and research take advantage of ROS (and hopefully develop it as well). Even if it takes a couple of weeks to get used to ROS, you can pretty much find any piece of code you need, be it SLAM, navigation, signal processing or very importantly, device drivers.

Another important thing is that ROS is often coupled with 2 other great libraries, PCL and OpenCV. Some of the algorithms are very heavy and thus have GPU-implementations. However, GPUs are pretty much ruled out in embedded apps, because you don't want a Fermi GPU to be killing your battery in a couple of minutes. Mobile GPUs are another option, but there remains the problem that it's difficult to convert your problem to a "graphical operation".

For these reasons, we WILL see ROS coupled with Parallella very soon. Ports of ROS for ARM Cortex already exist, so the question is how to take advantage of Epiphany in the most effective way. One way would be to make a ROS package that allows easy access to Epiphany parallelization.

Disclaimer: I am not very experienced with ROS or computer architecture, so I really don't know what I'm talking about.
greton100
 
Posts: 4
Joined: Fri Jan 03, 2014 1:32 pm
Location: Finland

Re: Robot Operating System port

Postby shr » Tue Feb 11, 2014 6:48 pm

ROS seems to be a communication framework, some modleling tools, and a loose collection of packages useful for robotics. A good place to start might be to identify one the packages that could benefit from the Epiphany for a porting effort. Has anyone looked at porting any of them to the Parallella?
“At that time [1909] the chief engineer was almost always the chief test pilot as well. That had the fortunate result of eliminating poor engineering early in aviation” — Igor Sikorsky
shr
 
Posts: 23
Joined: Mon Dec 17, 2012 3:29 am
Location: Lyons, Colorado, USA

Re: Robot Operating System port

Postby mboorns » Wed Mar 19, 2014 4:24 am

haven't seen a response here for a while... anyone get ROS working on a Parallella board?
mboorns
 
Posts: 1
Joined: Wed Mar 19, 2014 4:22 am

Re: Robot Operating System port

Postby 9600 » Wed Mar 19, 2014 7:02 am

There is no reason why it should not build on Ubuntu Linaro or Debian etc. with Parallella. However, the work that remains to be done to make it truly exciting in this context is to develop support for offloading computationally intensive stuff to the Epiphany, such as machine vision, along with support for hooking up sensors and high-speed peripherals etc.

Cheers,

Andrew
Andrew Back (a.k.a. 9600 / carrierdetect)
User avatar
9600
 
Posts: 997
Joined: Mon Dec 17, 2012 3:25 am

Re: Robot Operating System port

Postby Gamedrummer » Mon Jun 23, 2014 1:34 pm

The one issue that I'm runnning into when trying to install ROS on my Parallella is that the distribution of Ubuntu on it is 14.04 which means that only ROS Indigo will run on it. And since the FPGA is set up as a dual core ARM processor it requires the experimental build of ROS Indigo for ARM. So far it appears ROS' repository does not contain a bare-bones installation since it is still relatively new (as of this post) and Indigo for ARM is an experimental build, meaning it will most likely take even longer for it to be in a release state.

I attempted to pull the ROS Hydro for ARM repository and, sure enough, the bare-bones package is available but due to the operating system being Ubuntu 14.04 it cannot be installed. I'm looking into getting a build of the Parallella system with Ubuntu 12.04 and seeing how that works, I will let you all know what my findings are.

--John
http://www.chicagoedt.org
Gamedrummer
 
Posts: 25
Joined: Mon Dec 17, 2012 3:27 am
Location: Chicago, Illinois

Re: Robot Operating System port

Postby Gamedrummer » Fri Jun 27, 2014 2:18 am

I have the Ubuntu 12.04 image working and ROS Hydro (for ARM) is fully functional on the system, I just want to document how I installed the Ubuntu 12.04 image on my Revision 1 board.

From the file server I pulled the old Ubuntu 12.04 LTS build (ftp://ftp.parallella.org/ubuntu/archive/gen1/Parallella16_z7020wGPIO_131220.zip).

Once I downloaded the image, and decompressed it the image's md5sum came up wrong, so I had to follow Shodruk's steps to correct the image. Search for "shodruk » Thu Mar 06, 2014 4:43 pm" to find the exact post I'm talking about (http://forums.parallella.org/viewtopic.php?f=48&t=989&p=6301&hilit=Parallella16_z7020wGPIO_131220.zip#p6301).

At this point the only thing the Parallella woud do was output a black screen and not initialize USB devices. Looking at the partitioning of the SD card I noticed that the BOOT partition was only 47 MiB, yet in the newest functioning build the BOOT partition is 128 MiB, to correct this I opened GParted and shifted the rootfs to the right 81 MiB (I did not re-size it) it took about an hour to complete. Then I copied all the contents (including the hidden ".Trash" folder), erased the BOOT partition and formatted the newly unallocated space (FAT32, Primary Partition, 128MiB, labeled it BOOT) and paste all the content back, and then uploaded the kernel from the "creating an SD card" step 6 (http://www.parallella.org/create-sdcard/). After all of that the system booted up fine.

With the system functioning I installed ROS Hydro (for ARM) (http://wiki.ros.org/hydro/Installation/UbuntuARM). And after a few tests, I can say that ROS is working just fine!

Let me know if anyone wants clarification on what I did or if you're running into issues following my procedure.

--John
http://www.chicagoedt.org
Gamedrummer
 
Posts: 25
Joined: Mon Dec 17, 2012 3:27 am
Location: Chicago, Illinois

Re: Robot Operating System port

Postby Gamedrummer » Mon Jun 30, 2014 12:21 pm

I would like to rescind my statement that "ROS Hydro (for ARM) is fully functional", I jumped to the conclusion since I saw most of the ROS commands I just assumed that the system was working. After installing ROS I resized the operating system from 7 GiB to 24.5 GiB, since I am using a 32 GiB SD card. I logged back in and found that the 'rosrun', 'roslaunch', and 'catkin_init_workspace' are not listed, and any attempts to call them do not work. I think the issue might be that it installed incorrectly, or was damaged when I was resizing the partition. I am going to try removing ROS from the system and re-install it to see if that fixes it. If anyone has any idea why this might happen please let me know, thanks.

If that does not work I will try updating Ubuntu to 13.04, because according to the ROS Hydro (for ARM) installation guide, "Due to limited resources, there are only active builds for Raring armhf, since this appear to be the most popular Ubuntu distribution in use on ARM." (http://wiki.ros.org/hydro/Installation/UbuntuARM).

--John
http://www.chicagoedt.org
Gamedrummer
 
Posts: 25
Joined: Mon Dec 17, 2012 3:27 am
Location: Chicago, Illinois

Re: Robot Operating System port

Postby Gamedrummer » Wed Jul 02, 2014 1:44 pm

Now I have a functional ROS Hydro (for ARM) running on my Parallella, by this I mean I can call 'rosrun', 'roslaunch', and all the other commands that were missing before. After my last post I removed all ROS components from the device, but like an idiot I immediately updated the OS, which caused a lot of problems. I think when I re-sized the partition it may have damaged parts of the OS. To correct this issue I wiped the system out and built a new Linaro system from scatch following the guide on the wiki (http://elinux.org/Parallella_Linaro_Nano). But rather than use the saucy build (Ubuntu 14.04) as stated in the first step I pulled the quantal build (Ubuntu 12.11) (http://releases.linaro.org/13.04/ubuntu/quantal-images/nano/linaro-quantal-nano-20130422-342.tar.gz). There is one slight issue I ran into when I was following this guide, when I ran parted the EXT4 partition was viewed as corrupt in gparted, to correct this I did all the formatting in gparted and gave the EXT4 partition (rootfs) the remaining SD card (I am using a 32GB card). From there I followed the rest of the guide. The only issue I am running into at this time is that I can not launch the Xserver, when I type in 'xstart' on tty2 (logged in as linaro) I get a bunch of errors. I will work without the GUI for the time being. Right now I am porting over our IGVC robot's code to the Parallella and I will be testing it with the ARM alone to determine what I should push off to the Epiphany.

I will attempt to put a raring build (Ubuntu 13.04) on my 64GB SD and see if I can get that working as well to utilize a more active build of ROS (according to the ROS Hydro ARM installation guide).

--John
http://www.chicagoedt.org
Gamedrummer
 
Posts: 25
Joined: Mon Dec 17, 2012 3:27 am
Location: Chicago, Illinois

Next

Return to Robotics

Who is online

Users browsing this forum: No registered users and 1 guest