diff --git a/README.md b/README.md
index 3d12688e25f3ac67414bd5c8bf5c71cb0e9737ae..d3464abca4bf1461ebcd106ac913a7cc93c37781 100644
--- a/README.md
+++ b/README.md
@@ -1,63 +1,92 @@
 universal_robot
-===============
+======
 
 This repository provides ROS support for the universal robots.  This repo holds source code for all versions > groovy.  For those versions <= groovy see: hg https://kforge.ros.org/ros_industrial/universal_robot
 
-To check that the package works with a UR5, set up a catkin workspace and clone the repository into the src/ folder. It should look like ~/catkin_ws/src/universal_robot. Don't forget to source the setup file ($ source ~/catkin_ws/devel/setup.*sh), then use catkin_make to compile.
 
+__Installation from Source__  
+There are releases available for ROS Hydro and ROS Indigo. However, for the latest features and developments you might want to install from source.
 
-The following will show the commands needed to bringup either REAL or SIMULATED robots.
-Both robots (ur5 and ur10) can be used in the same way. Simply replace the prefix accordingly.
-For each command use a new terminal (don't forget to source the setup shell files)!
+First set up a catkin workspace (see [this tutorials](http://wiki.ros.org/catkin/Tutorials)).  
+Then clone the repository into the src/ folder. It should look like /path/to/your/catkin_workspace/src/universal_robot.  
+Make sure to source the correct setup file according to your workspace hierarchy, then use ```catkin_make``` to compile.  
 
-To bring up the REAL robot, run:
+---
 
-```roslaunch ur_bringup ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT reverse_port:=REVERSE_PORT```
+__Usage with real Hardware__  
+There are launch files available to bringup a real robot - either UR5 or UR10.  
+In the following the commands for the UR5 are given. For the UR10, simply replace the prefix accordingly.
 
-To bring up the SIMULATED robots, run:
+Don't forget to source the correcct setup shell files and use a new terminal for each command!   
 
-```roslaunch ur_gazebo ur5.launch```
+To bring up the real robot, run:
+
+```roslaunch ur_bringup ur5_bringup.launch robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]```
 
 A simple test script that moves the robot to predefined positions can be executed like this:
 
-```roscd ur_driver; ./test_move.py```
+```rosrun ur_driver test_move.py```
 
 
-BEWARE:
-Remember that you should always have your hands on the big red button in case there is something in the way, or anything unexcpected happens.
+CAUTION:  
+Remember that you should always have your hands on the big red button in case there is something in the way or anything unexcpected happens.
 
 
+__MoveIt! with real Hardware__  
+Additionally, you can use MoveIt! to control the robot.  
+There exist MoveIt! configuration packages for both robots.  
 
-Additionally, you can use MoveIt! to control the robot.
-For setting up the MoveIt! nodes to allow motion planning with the REAL robot, run:
+For setting up the MoveIt! nodes to allow motion planning run:
 
 ```roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch```
 
-For setting up the MoveIt! nodes to allow motion planning with the SIMULATED robot, run:
+For starting up RViz with a configuration including the MoveIt! Motion Planning plugin run:
 
-```roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true```
+```roslaunch ur5_moveit_config moveit_rviz.launch config:=true```
+
+
+NOTE:  
+As MoveIt! seems to have difficulties with finding plans for the UR with full joint limits [-2pi, 2pi], there is a joint_limited version using joint limits restricted to [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments 'limited', i.e.:  
 
-In order to be able to use RViz to trigger Planning Request using the MoveIt! Plugin for RViz, run:
+```roslaunch ur_bringup ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT [reverse_port:=REVERSE_PORT]```
+
+```roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true```
 
 ```roslaunch ur5_moveit_config moveit_rviz.launch config:=true```
 
-NOTE: 
-As MoveIt! seems to have difficulties with finding plans for the UR with joint limits [-2pi, 2pi], there is a joint_limited version using joint limits [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments 'limited':
 
-```roslaunch ur_bringup ur5_bringup.launch limited:=true robot_ip:=IP_OF_THE_ROBOT reverse_port:=REVERSE_PORT```
+---
 
-OR
+__Usage with Gazebo Simulation__  
+There are launch files available to bringup a simulated robot - either UR5 or UR10.  
+In the following the commands for the UR5 are given. For the UR10, simply replace the prefix accordingly.
 
-```roslaunch ur_gazebo ur5.launch limited:=true```
+Don't forget to source the correcct setup shell files and use a new terminal for each command!   
 
-```roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true```
+To bring up the simulated robot in Gazebo, run:
 
-OR
+```roslaunch ur_gazebo ur5.launch```
 
-```roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch limited:=true sim:=true```
+
+__MoveIt! with a simulated robot__  
+Again, you can use MoveIt! to control the simulated robot.  
+
+For setting up the MoveIt! nodes to allow motion planning run:
+
+```roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true```
+
+For starting up RViz with a configuration including the MoveIt! Motion Planning plugin run:
 
 ```roslaunch ur5_moveit_config moveit_rviz.launch config:=true```
 
 
+NOTE:  
+As MoveIt! seems to have difficulties with finding plans for the UR with full joint limits [-2pi, 2pi], there is a joint_limited version using joint limits restricted to [-pi,pi]. In order to use this joint limited version, simply use the launch file arguments 'limited', i.e.:  
+
+```roslaunch ur_gazebo ur5.launch limited:=true```
+
+```roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true limited:=true```
+
+```roslaunch ur5_moveit_config moveit_rviz.launch config:=true```