There isn’t much programming involved yet, just a how to get ROS onto an EV3. This project Source Code is home to the latest HowTo.
I’m interested in running/using ROS with EV3s. There is a project which interfaces the NXT with ROS, but it doesn’t seem to be maintained. The version of ROS recommended for the NXT stack is DiamondBack, which was supported up until Ubuntu 11.04.
The EV3 is much more capable that the NXT, so I was surprised I only found people asking on forums if ROS ran on the EV3 and didn’t find anyone actually try it out. I’ve created a wiki entry for the EV3 on ROS.org.
So far I have only had the time to prove it is possible to install the ros communication stack onto an EV3 running ev3dev.
I was unable to run roscore in ev3dev on the EV3. However, after connecting the EV3 to
a network (via USB adapter) and with a
roscore running on a laptop, I was able to run the talker and listener nodes
from the ROS python tutorials on the EV3.
This very basic example is shown in the above YouTube video. It is NOT an interesting video, it has no sound, and it’s basically just some
terminal windows. I’ve connected to both the laptop running
roscore and the EV3 via
ssh from a virtual machine. It should be noded that
starting the python ros nodes is not quick, but once started they appear to run fine. At 2:37 I start run
and according to the video it takes about 15 seconds for the listener to start printing the recieved messages. I also forget to
source the ROS
setup.bash and set the
ROS_MASTER_URI environment variable, I didn’t edit the video, hopefully this reminds others
not to make the same mistake. I’ll try to replace the video with something cooler soon.
I think the next step is to write either one rosnode for each type of sensors, publishing the data to rostopics, and one rosnode which provides an interface to the motors via publishing to rostopics. Or possibly one highly configurable rosnode which provides all the interfaces for sensors and motors. It needs to be tested which approach is more system heavy.
I unfortunately don’t have much time to play with this project again until the new year. But I am sharing now for those who are interested.