ROS Electric Emys
Electric Emys was released on August 30, 2011 and is the fourth ROS distribution release. Electric Emys includes stable libraries for arm_navigation and PCL and also expands ROS support to many new platforms like Android and Arduino.
Contents
Installation
Please see the installation instructions.
Stack contributors: debian build status
Platforms
ROS Electric Emys is primarily targeted at the Ubuntu Lucid through Natty releases, though it can also be installed on various Linux systems like Red Hat, Debian, and Gentoo. It can also be used on OSes like Mac OS X, FreeBSD, Android, and Windows, though with more limited compatibility.
Overview
Batteries included, but modular
- We strive to integrate ROS with the best open-source software libraries for robotics out there, while maintaining a modular system that allows you to pick and choose exactly what you need. "Smaller, lighter" was a theme of our Diamondback release, and we've continued that with ROS Electric by streamlining integration and making it more portable. We are now using standard system installs of many libraries, such as OpenCV, assimp, yaml-cpp, TinyXML, and Eigen, so that you can use them the same with or without ROS.
ROS Electric separates many of the lower-level ROS libraries into smaller components so that you only have to use what you need. KDL, nodelet, filters, xacro, and pluginlib are now available separately, and KDL in ROS is now maintained directly by the Orocos developers. We have also updated ROS to allow unary stacks.
Arm navigation 1.0
The arm navigation library has reached its 1.0 release, which has a stable ROS API. The arm navigation library enables you to execute collision-free motion plans and control for a robot arm manipulator. It is compatible with multiple motion planners, including ompl and sbpl. This release includes a new setup wizard to help you configure arm navigation for your robot manipulator. It also includes new visualization tools for working with motion planners and a powerful experimental GUI tool for generating, saving, and playing back planning scenes.
Please see the updated tutorials for a guide to these new tools.
Interactive markers
Thanks to David Gossow, the rviz 3D visualization tool now has "interactive markers": programmable user interface components. You can use these to create custom GUIs, such as controls for moving the arms, gripper, and base of your robot.
PCL 1.1
The most recent release of Point Cloud Library is available with ROS. This release contains lots of new features, optimizations, and bug fixes, and we have also performed numerous user tests to improve PCL's documentation and tutorials. Please see the PCL 1.1 change list for more information.
OpenCV 2.3, standalone
The vision_opencv stack now integrates with the standalone version of OpenCV and has been updated to OpenCV 2.3 (change list). We are now hosting a debian binary package of OpenCV 2.3, which is used for both standalone installations of OpenCV as well as ROS integration.
Android, Pure Java
Damon Kohler at Google has created a new rosjava library that is written in pure Java and is compatible with Android. We will soon be releasing components that let you create UIs on Android devices to interact with ROS robots as well as use sensors on Android devices in your robot system.
Arduino
Michael Ferguson and Adam Stambler have created a new rosserial library that lets you use Arduino hardware with ROS. This library sets up a point-to-point connection with Arduino hardware so that you can send ROS messages back and forth with another system.
Windows
Daniel Stonier (Yujin Robot) is hosting a win_ros stack that collects libraries and tools for using ROS on Windows. Daniel has also provided numerous patches to integrate the in-progress rosbuild2 system that provides more direct integration with standard Windows build toolchains.
ARM
Debian binaries of several ROS stacks are now available for armel systems. This enables binary installs on platforms like the PandaBoard and Gumstix.
Python 3
Thanks to Michael Karg (TUM), Severin Lemaignan (LAAS), and Lorenz Mösenlechner (TUM) for numerous patches to many of the ROS libraries compatible with Python 3. This update enables seamless use of ROS with the MORSE simulator.
ROS core improvements
The ROS package system and rosdep install tool were upgraded for ROS Electric to help make ROS smaller and easier to use with more platforms. For information, please see the REPs below.
Other improvements
New image processing nodelets
image_pipeline has gained a nodelet for emulating ROI/binning. depth_image_proc introduces new nodelets for depth-RGB registration and working with depth images.
Improved camera_calibration and image_proc
camera_calibration is now faster, more robust, more configurable, and gives better feedback to the user. image_proc has gained new edge-aware and VNG debayering algorithms, dynamic_reconfigure support, and support for 16-bit encodings and YUV.
robot_model: COLLADA/URDF integration and new urdf tools
Supports loading a robot model from both URDF and COLLADA (thanks Rosen Diankov). Also added new simmechanics_to_urdf converter and joint_state_publisher (thanks David Lu!).
tf
- New performance optimizations that result in up to 100x speedup in some cases.
navigation
Much improved support for dynamic_reconfigure.
sensor_msgs/Joy
New and updated joystick message migrated from joy package.
camera_info_manager URLs
Allow substitution variables in camera_info_manager URLs.
Migration from Diamondback
The following packages have been migrated to standard system installs.
Please see their pages to help you migrate.
Several deprecated features have been removed, including:
ros::Message base class
rosrecord package
roslib messages: Header, Clock, and Log
New/Reorganized stacks:
common_rosdeps (New): collects shared rosdep definitions
- Previously part of common:
nodelet_core (previously part of common)
bond_core (previously part of common)
pluginlib (previously part of common)
- Previously part of geometry:
simulator_stage → stage (unary stack)
Now part of arm_navigation:
motion_planning_common
motion_planners
kinematics
trajectory_filters
Change Lists
Planning (old)
Please see the planning document.