How to install ROS Jade on OS X Yosemite

For all the OS X users out there being annoyed by having to run ROS in their virtual machines, here is the gist for compiling it natively:

https://gist.github.com/jmtatsch/3aa268d41ae40c89b35a

Be warned, this is not a walk in the park. There are usually plenty of issues to work around. But the result is worth it!

How to install ROS Indigo on OS X Yosemite

Compiling the Robot Operating System (ROS) Indigo on Mac OS X can be quite a challenge. Here is a well tested recipe originally created by Mike Purvis and updated by me for OS X Yosemite 10.10.2:

Switch between formula versions in Homebrew

When working with ROS on MacOS X and updating and upgrading your packages via Homebrew, you will often find your packages broken because some library was replaced by a newer one. A typical error looks like this:

Not too long ago, one would have just used brew versions and checked out the version needed, but that was long deprecated and has become unavailable recently. Nowadays, switch can be used instead:

Now you can easily switch back to r116 by:

Install ROS Indigo Igloo on Radxa Rock

Assuming you followed my tutorial for configuring your Radxa Rock, you can easily install ROS Indigo on it by:

Setup your environment:

As ROS does not recognize Linaro as an OS:

and replace „Linaro“ with „Ubuntu“

Init a catkin workspace:

and test it:

Echo ROS topics from a remote roscore

I needed to display some topics registered to my the roscore on the raspi on my main computer for debugging and visualization. That should have been easy in theory, as simple as exporting the ROS_MASTER_URI on my main computer:

[code]export ROS_MASTER_URI=http://raspberrypi:11311[/code]

However after that I was able to list the topics with:

[code]rostopic list[/code]

But I couldn’t echo the topic with:

[code]rostopic echo /imu_quat[/code]

there was simply no output. Directly exporting the IP in the master uri to avoid the name resolution didn’t help either.

The trick was to use a name and to make sure it gets resolved locally ?!?
You can achieve that by editing your hosts file:
[code]sudo nano /etc/hosts[/code]
There you should add something like:
[code]192.168.181.12 raspberrypi[/code]

I hope this saves other people some time.

ROS and XCode

Compile all your ROS packages as usual and make sure there are no more errors left

Because having too many packages in Xcode can be a bit overwhelming, I recommend to install all the unused packages to /opt/ros/indigo:

Remove the build, devel and the unneeded stuff from src

Then generate a Xcode project by:

you may have to do this every time you add a new package or add files to a package so define an alias:

Define an alias for starting ROS from the console in your .zshrc:

Start ROS from the console so that it gets its correct environment

If you get an error like this after linking:

Click Product->Scheme->Edit Scheme->Run „Target Name“->Environment Variables
and add DYLD_LIBRARY_PATH /opt/ros/indigo/lib

Bildschirmfoto 2014-01-14 um 13.08.55