= ROS Electric Emys = {{http://www.ros.org/news/resources/2011/electric_640w.png|electric}} Electric Emys was released on August 30, 2011 and is the fourth [[Distributions|ROS distribution release]]. Electric Emys includes stable libraries for [[arm_navigation]] and [[perception_pcl|PCL]] and also expands ROS support to many new platforms like Android and Arduino. <> == Installation == Please see the [[/Installation|installation instructions]]. ''Stack contributors'': [[http://www.ros.org/debbuild/electric.html|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|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 [[http://www.ros.org/reps/rep-0109.html|unary stacks]]. {{attachment:wizard_turtle-178w-240h.jpg|wizard|align="right"}}''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 [[arm_navigation/Tutorials|updated tutorials]] for a guide to these new tools. ''Interactive markers'' <> Thanks to David Gossow, the [[rviz]] 3D visualization tool now has [[rviz/Tutorials/Interactive Markers: Getting Started|"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'' {{http://pointclouds.org/assets/images/contents/news/pcl-1.1-logo.png}} The most recent release of Point Cloud Library is [[pcl|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 [[http://dev.pointclouds.org/projects/pcl/wiki/ChangeList|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 ([[http://opencv.willowgarage.com/wiki/OpenCV%20Change%20Logs|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 [[http://www.openrobots.org/wiki/morse|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. * [[http://www.ros.org/reps/rep-0109.html|REP 109: Unary Stacks]] * [[http://www.ros.org/reps/rep-0111.html|REP 111: Multiple Package Manager Support for Rosdep]] * [[http://www.ros.org/reps/rep-0112.html|REP 112: Source Package Manager for Rosdep]] * [[http://www.ros.org/reps/rep-0113.html|REP 113: ROS Electric Variants]] == 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. * [[assimp]] * [[eigen]] * [[opencv2]] * [[tinyxml]] * [[yaml_cpp]] 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: * [[bullet]] * [[sound_drivers]] → [[audio_common]] * [[simulator_stage]] → [[stage]] (unary stack) * Now part of [[arm_navigation]]: * `motion_planning_common` * `motion_planners` * `kinematics` * `trajectory_filters` == Change Lists == * [[arm_navigation/ChangeList|arm_navigation 1.0]] * [[bond_core/ChangeList|bond_core 1.6]] * [[camera_drivers/ChangeList/1.6|camera_drivers 1.6]] * [[common_msgs/ChangeList/1.6|common_msgs 1.6]] * [[common/ChangeList/1.6|common 1.6]] * [[control/ChangeList|control 1.0]] * [[diagnostics/ChangeList/1.6|diagnostics 1.6]] * [[driver_common/ChangeList/1.2|driver_common 1.2]] * [[filters/ChangeList|filters 1.6]] * [[geometry/ChangeList/1.6|geometry 1.6]] * [[image_common/ChangeList/1.6|image_common 1.6]] * [[image_pipeline/ChangeList/1.6|image_pipeline 1.6]] * [[imu_drivers/ChangeList/1.2|imu_drivers 1.2]] * [[joystick_drivers/ChangeList/1.6|joystick_drivers 1.6]] * [[laser_drivers/ChangeList|laser_drivers 1.4]] * [[navigation/ChangeList/1.6|navigation 1.6]] * [[nodelet_core/ChangeList|nodelet_core 1.6]] * [[perception_pcl/ChangeList|perception_pcl 1.0]] * [[physics_ode/ChangeList/1.6|physics_ode 1.6]] * [[pluginlib/ChangeList|pluginlib 1.6]] * [[robot_model/ChangeList/1.6|robot_model 1.6]] * [[ROS/ChangeList/1.6|ros 1.6]] * [[ros_comm/ChangeList/1.6|ros_comm 1.6]] * [[rx/ChangeList/1.6|rx 1.6]] * [[simulator_gazebo/ChangeList/1.4|simulator_gazebo 1.4]] * [[slam_gmapping/ChangeList/1.2|slam_gmapping 1.2]] * [[stage/ChangeList|stage 1.4]] * [[vision_opencv/ChangeList/1.6|vision_opencv 1.6]] * [[visualization/ChangeList/1.6|visualization 1.6]] * [[visualization_common/ChangeList/1.6|visualization_common 1.6]] * [[xacro/ChangeList|xacro 1.6]] == Planning (old) == Please see the [[/Planning|planning document]].