Difference between revisions of "Alvaro-RV-HAPTICROS01"

From robotica.unileon.es
Jump to: navigation, search
(Phantom Omni Package Installation on ROS Groovy)
m
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
* '''Project name:''' Turtlebot robot indoor navigation
 
* '''Project name:''' Turtlebot robot indoor navigation
 
+
* '''Dates:''' July - September 2013
* '''Dates:''' July 2013 -
 
 
 
 
* '''Degree:''' Summer Research Residence
 
* '''Degree:''' Summer Research Residence
 
+
* '''Author:''' Jose Álvaro Fernández Álvarez
* '''Authors:''' Álvaro  
 
 
 
 
* '''Contact:''' jferna08@estudiantes.unileon.es
 
* '''Contact:''' jferna08@estudiantes.unileon.es
 +
* '''Tags:''' ROS, Haptics, Arduino
 +
* '''Technologies:''' ROS, Phantom Omni, Arduino
 +
* '''Status:''' Finished
  
* '''SVN Repositories:'''
 
 
* '''Tags:''' ROS, Haptics
 
 
* '''Technologies:''' ROS, Phantom Omni
 
  
* '''State:''' Ongoing
+
=ROS Fuerte & ROS Groovy Installation on Ubuntu 12.04=
  
----
+
==Sources.list Configuration==
  
==ROS Fuerte Installation on Ubuntu 12.04==
 
===Sources.list Configuration===
 
 
For the computer accept packages.ros.org must enter in the terminal the next line.
 
For the computer accept packages.ros.org must enter in the terminal the next line.
 
<syntaxhighlight lang=Bash>sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'</syntaxhighlight>
 
<syntaxhighlight lang=Bash>sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'</syntaxhighlight>
  
===Keys Configuration===
+
==Keys Configuration==
 +
 
 
<syntaxhighlight lang=Bash>wget http://packages.ros.org/ros.key -O - | sudo apt-key add -</syntaxhighlight>
 
<syntaxhighlight lang=Bash>wget http://packages.ros.org/ros.key -O - | sudo apt-key add -</syntaxhighlight>
  
===Installation===
+
==Installation==
 +
 
 +
* '''ROS Fuerte'''
 
We make sure that the server ROS.org is indexed.
 
We make sure that the server ROS.org is indexed.
 
<syntaxhighlight lang=Bash>sudo apt-get update</syntaxhighlight>
 
<syntaxhighlight lang=Bash>sudo apt-get update</syntaxhighlight>
Line 36: Line 31:
 
Also you can [http://ros.org/wiki/fuerte/Installation/Ubuntu#Installation-1/ install independently] the libraries, tools and stacks.
 
Also you can [http://ros.org/wiki/fuerte/Installation/Ubuntu#Installation-1/ install independently] the libraries, tools and stacks.
  
===Enviroment Configuration===
+
* '''ROS Groovy'''
 +
 
 +
We make sure that the server ROS.org is indexed.
 +
<syntaxhighlight lang=Bash>sudo apt-get update</syntaxhighlight>
 +
 
 +
Install the library package and complete tools: ROS, rx, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception.
 +
<syntaxhighlight lang=Bash>sudo apt-get install ros-groovy-desktop-full</syntaxhighlight>
 +
 
 +
Also you can [http://wiki.ros.org/groovy/Installation/Ubuntu#Installation-1/ install independently] the libraries, tools and stacks.
 +
 
 +
==Rosdep Initialization (Only ROS Groovy)==
 +
 
 +
Before of to use ROS we must initialize rosdep which allows us easily to install the  source system dependencies that we want to compile and also is necessary for execute some basic components of ROS.
 +
 
 +
<syntaxhighlight lang=Bash>sudo rosdep init
 +
rosdep update</syntaxhighlight>
 +
 
 +
==Enviroment Configuration==
 +
 
 +
* '''ROS Fuerte'''
 +
 
 
For the enviroment variables are added each time you start the computer type this lines
 
For the enviroment variables are added each time you start the computer type this lines
<syntaxhighlight lang=Bash>echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc</syntaxhighlight>
+
<syntaxhighlight lang=Bash>echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc
<syntaxhighlight lang=Bash>. ~/.bashrc</syntaxhighlight>
+
. ~/.bashrc</syntaxhighlight>
  
 
We can check if  we have added typing ''gedit ~/.bashrc'' and looking at end of file
 
We can check if  we have added typing ''gedit ~/.bashrc'' and looking at end of file
Line 47: Line 62:
 
'''IMPORTANT!!!''' If there is more than one ROS distribution installed in the file ~/.bashrc must only contain the version you're using
 
'''IMPORTANT!!!''' If there is more than one ROS distribution installed in the file ~/.bashrc must only contain the version you're using
  
===Independent Tools===
+
* '''ROS Groovy'''
 +
 
 +
For the enviroment variables are added each time you start the computer type this lines
 +
<syntaxhighlight lang=Bash>echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc
 +
. ~/.bashrc</syntaxhighlight>
 +
 
 +
We can check if  we have added typing ''gedit ~/.bashrc'' and looking at end of file
 +
 
 +
[[File:Bashrc groovy.png|500px|thumb|center|bashrc file]]
 +
 
 +
'''IMPORTANT!!!''' If there is more than one ROS distribution installed in the file ~/.bashrc must only contain the version you're using
 +
 
 +
==Independent Tools==
 +
 
 +
* '''ROS Fuerte'''
 
Rosinstall and rosdep are used often in the terminal, but they are distributed individually. Rosinstall allows you to download source code trees for packages and ROS stacks. Rosdep allows easy installation of the system dependencies for the source code to be compiled.  
 
Rosinstall and rosdep are used often in the terminal, but they are distributed individually. Rosinstall allows you to download source code trees for packages and ROS stacks. Rosdep allows easy installation of the system dependencies for the source code to be compiled.  
  
Line 53: Line 82:
 
<syntaxhighlight lang=Bash>sudo apt-get install python-rosinstall python-rosdep</syntaxhighlight>
 
<syntaxhighlight lang=Bash>sudo apt-get install python-rosinstall python-rosdep</syntaxhighlight>
  
===Create a ROS Workspace===
+
* '''ROS Groovy'''
 +
 
 +
Rosinstall is used often in the terminal, but it is distributed individually. Rosinstall allows you to download source code trees for packages and ROS stacks. For install this tool, you write in the terminal the next line
 +
 
 +
<syntaxhighlight lang=Bash>sudo apt-get install python-rosinstall</syntaxhighlight>
 +
 
 +
==Create a ROS Workspace in ROS Fuerte==
 +
 
 
* '''Create a new workspace'''
 
* '''Create a new workspace'''
 
With the next command we go to create a workspace in ~/fuerte_workspace which inherits the set of installed packages in /opt/ros/fuerte
 
With the next command we go to create a workspace in ~/fuerte_workspace which inherits the set of installed packages in /opt/ros/fuerte
Line 68: Line 104:
 
We create the sandbox directory in our workspace created before and we add to the workspace
 
We create the sandbox directory in our workspace created before and we add to the workspace
  
<syntaxhighlight lang=Bash>mkdir ~/fuerte_workspace/sandbox</syntaxhighlight>
+
<syntaxhighlight lang=Bash>mkdir ~/fuerte_workspace/sandbox
<syntaxhighlight lang=Bash>rosws set ~/fuerte_workspace/sandbox</syntaxhighlight>
+
rosws set ~/fuerte_workspace/sandbox</syntaxhighlight>
  
 
Each time that the entries of workspace change it, is necessary to do a re-source
 
Each time that the entries of workspace change it, is necessary to do a re-source
Line 85: Line 121:
 
<syntaxhighlight lang=Bash>/home/your_user_name/fuerte_workspace/sandbox:/opt/ros/fuerte/share:/opt/ros/fuerte/stacks</syntaxhighlight>
 
<syntaxhighlight lang=Bash>/home/your_user_name/fuerte_workspace/sandbox:/opt/ros/fuerte/share:/opt/ros/fuerte/stacks</syntaxhighlight>
  
==ROS Groovy Installation on Ubuntu 12.04==
+
==Create a ROS Workspace in ROS Groovy==
===Sources.list Configuration===
 
For the computer accept packages.ros.org must enter in the terminal the next line.
 
<syntaxhighlight lang=Bash>sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'</syntaxhighlight>
 
 
 
===Keys Configuration===
 
<syntaxhighlight lang=Bash>wget http://packages.ros.org/ros.key -O - | sudo apt-key add -</syntaxhighlight>
 
 
 
===Installation===
 
We make sure that the server ROS.org is indexed.
 
<syntaxhighlight lang=Bash>sudo apt-get update</syntaxhighlight>
 
 
 
Install the library package and complete tools: ROS, rx, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception.
 
<syntaxhighlight lang=Bash>sudo apt-get install ros-groovy-desktop-full</syntaxhighlight>
 
 
 
Also you can [http://wiki.ros.org/groovy/Installation/Ubuntu#Installation-1/ install independently] the libraries, tools and stacks.
 
 
 
===Rosdep Initialization===
 
Before of to use ROS we must initialize rosdep which allows us easily to install the  source system dependencies that we want to compile and also is necessary for execute some basic components of ROS.
 
 
 
<syntaxhighlight lang=Bash>sudo rosdep init</syntaxhighlight>
 
<syntaxhighlight lang=Bash>rosdep update</syntaxhighlight>
 
 
 
===Enviroment Configuration===
 
For the enviroment variables are added each time you start the computer type this lines
 
<syntaxhighlight lang=Bash>echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc</syntaxhighlight>
 
<syntaxhighlight lang=Bash>. ~/.bashrc</syntaxhighlight>
 
 
 
We can check if  we have added typing ''gedit ~/.bashrc'' and looking at end of file
 
 
 
[[File:Bashrc groovy.png|500px|thumb|center|bashrc file]]
 
 
 
'''IMPORTANT!!!''' If there is more than one ROS distribution installed in the file ~/.bashrc must only contain the version you're using
 
 
 
===Independent Tools===
 
Rosinstall is used often in the terminal, but it is distributed individually. Rosinstall allows you to download source code trees for packages and ROS stacks. For install this tool, you write in the terminal the next line
 
  
<syntaxhighlight lang=Bash>sudo apt-get install python-rosinstall</syntaxhighlight>
 
 
===Create a ROS Workspace ===
 
 
* '''Create a new workspace'''
 
* '''Create a new workspace'''
  
 
With the next command we go to create a workspace in ~/catkin_ws which inherits the set of installed packages in /opt/ros/groovy
 
With the next command we go to create a workspace in ~/catkin_ws which inherits the set of installed packages in /opt/ros/groovy
  
<syntaxhighlight lang=Bash>mkdir -p ~/catkin_ws/src</syntaxhighlight>
+
<syntaxhighlight lang=Bash>mkdir -p ~/catkin_ws/src
<syntaxhighlight lang=Bash>cd ~/catkin_ws/src</syntaxhighlight>
+
cd ~/catkin_ws/src
<syntaxhighlight lang=Bash>catkin_init_workspace</syntaxhighlight>
+
catkin_init_workspace</syntaxhighlight>
  
 
Initially our workspace is empty, only have a CmakeList.txt in the src directory. For make the workspace execute
 
Initially our workspace is empty, only have a CmakeList.txt in the src directory. For make the workspace execute
  
<syntaxhighlight lang=Bash>cd ~/catkin_ws/</syntaxhighlight>
+
<syntaxhighlight lang=Bash>cd ~/catkin_ws/
<syntaxhighlight lang=Bash>catkin_make</syntaxhighlight>
+
catkin_make</syntaxhighlight>
  
 
Finally, we configure the enviroment variabble to take into consideration our new workspace, for this execute
 
Finally, we configure the enviroment variabble to take into consideration our new workspace, for this execute
Line 144: Line 142:
 
For to do this change continuous we can add the previous line to end of file ''~/.bashrc''
 
For to do this change continuous we can add the previous line to end of file ''~/.bashrc''
  
==Phantom Omni Package Installation on ROS Fuerte ==
+
=Phantom Omni Package Installation on ROS Fuerte & ROS Groovy=
===Requirements===
+
 
 +
==Requirements==
  
 
Phantom Omni Device
 
Phantom Omni Device
OpenHaptics SDK, you can download [http://dsc.sensable.com/ here]. Go to Software Downloads in Linux Drivers section and download the version 3.0
 
  
===PDD Installation and Configuration (Phantom Device Drivers)===
+
OpenHaptics SDK, you can download [http://dsc.sensable.com/ here].
 +
 
 +
Go to Software Downloads in Linux Drivers section and download the version 3.0
 +
 
 +
==PDD Installation and Configuration (Phantom Device Drivers)==
 +
 
 
* '''Installation'''
 
* '''Installation'''
  
Line 169: Line 172:
 
Create symbol links to the previous library with the libraries called libPHANToMIO.so and  libPHANToMIO.so.4 into /usr/lib directory
 
Create symbol links to the previous library with the libraries called libPHANToMIO.so and  libPHANToMIO.so.4 into /usr/lib directory
  
 
+
<syntaxhighlight lang=Bash>sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so
<syntaxhighlight lang=Bash>sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so</syntaxhighlight>
+
sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so.4</syntaxhighlight>  
<syntaxhighlight lang=Bash>sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so.4</syntaxhighlight>
 
 
(if you can't overwrite old files, delete them previously)
 
(if you can't overwrite old files, delete them previously)
  
Line 180: Line 182:
 
Install freeglut and several libraries which are necessary with the next commands
 
Install freeglut and several libraries which are necessary with the next commands
  
<syntaxhighlight lang=Bash>sudo apt-get install freeglut3-dev</syntaxhighlight>
+
<syntaxhighlight lang=Bash>sudo apt-get install freeglut3-dev
<syntaxhighlight lang=Bash>sudo apt-get install  x11proto-gl-dev</syntaxhighlight>
+
sudo apt-get install  x11proto-gl-dev
<syntaxhighlight lang=Bash>sudo apt-get install libmotif-dev</syntaxhighlight>
+
sudo apt-get install libmotif-dev
<syntaxhighlight lang=Bash>sudo apt-get install mesa-utils</syntaxhighlight>
+
sudo apt-get install mesa-utils</syntaxhighlight>
  
 
Download the libGLw libraries with the motif links already compiled from [http://dsc.sensable.com/forum/topic.asp?TOPIC_ID=1241 here] and copy the files that contains into /usr/lib directory with the command
 
Download the libGLw libraries with the motif links already compiled from [http://dsc.sensable.com/forum/topic.asp?TOPIC_ID=1241 here] and copy the files that contains into /usr/lib directory with the command
Line 200: Line 202:
 
* '''PHANToM Configuration'''
 
* '''PHANToM Configuration'''
  
For to use any haptic application we must specify the model which we are using, for this, initialize the PHANToMConfiguration, it's important initialize with the flag LANG=en_us because if our system language is different to english and, we initialize without flag later the haptic doesn't work correctly
+
For to use any haptic application we must specify the model which we are using, for this, initialize the PHANToMConfiguration, it's important initialize with the flag LANG=en_us because if our system language is different to english and, we initialize without flag after the haptic doesn't work correctly
  
 
<syntaxhighlight lang=Bash>LANG=en_us /usr/sbin/PHANToMConfiguration </syntaxhighlight>
 
<syntaxhighlight lang=Bash>LANG=en_us /usr/sbin/PHANToMConfiguration </syntaxhighlight>
Line 227: Line 229:
 
PHANToMTest_BoxTest
 
PHANToMTest_BoxTest
  
Finally, push next for finish  
+
Finally, push next for finish
  
===OpenHaptics Toolkit Installation===
+
==OpenHaptics Toolkit Installation==
  
 
Go to OpenHapticsAE_Linux_v3_0/OpenHaptics-AE 3.0/32-bit directory and execute
 
Go to OpenHapticsAE_Linux_v3_0/OpenHaptics-AE 3.0/32-bit directory and execute
Line 243: Line 245:
 
<syntaxhighlight lang=Bash>3DTOUCH_BASE=/usr/share/3DTouch</syntaxhighlight>
 
<syntaxhighlight lang=Bash>3DTOUCH_BASE=/usr/share/3DTouch</syntaxhighlight>
  
===Sensable_Phantom Package Installation===
+
==Phantom Omni Package Installation==
 +
 
 +
* '''ROS Fuerte'''
  
 
Make a clone of the repository in your sandbox directory using the rosbuild branch  from repository
 
Make a clone of the repository in your sandbox directory using the rosbuild branch  from repository
Line 249: Line 253:
 
<syntaxhighlight lang=Bash>git clone -b rosbuild https://github.com/bgromov/sensable_phantom.git</syntaxhighlight>
 
<syntaxhighlight lang=Bash>git clone -b rosbuild https://github.com/bgromov/sensable_phantom.git</syntaxhighlight>
  
Later to clone, execute
+
After to clone, execute
  
 
<syntaxhighlight lang=Bash>rospack profile</syntaxhighlight>
 
<syntaxhighlight lang=Bash>rospack profile</syntaxhighlight>
Line 255: Line 259:
 
Go to sensable_phantom directory which you download in your sandbox directory and compile it. Before to compile a new package make sure that you have made ''rospack profile''
 
Go to sensable_phantom directory which you download in your sandbox directory and compile it. Before to compile a new package make sure that you have made ''rospack profile''
  
<syntaxhighlight lang=Bash>roscd sensable_phantom</syntaxhighlight>
+
<syntaxhighlight lang=Bash>roscd sensable_phantom
<syntaxhighlight lang=Bash>rosmake sensable_phantom</syntaxhighlight>
+
rosmake sensable_phantom</syntaxhighlight>
  
If you have problems because you can't do rosmake by errno13 denegation permissions, look this [http://www.ros.org/wiki/groovy/Installation/OSX/Homebrew/Source site]
+
If you have problems because you can't do rosmake by denegation permissions, you must see the user who create the package downloaded with ''ls -all'', if the user isn't you, must change it. For this, execute next command replacing the parameters
  
==Phantom Omni Package Installation on ROS Groovy==
+
<syntaxhighlight lang=Bash>sudo chown -R your_user directory_to_change</syntaxhighlight>
  
===Requirements===
+
* '''ROS Groovy'''
  
Phantom Omni Device
+
Make a clone of the repositories in your src directory of your workspace
OpenHaptics SDK, you can download [http://dsc.sensable.com/ here]. Go to Software Downloads in Linux Drivers section and download the version 3.0
 
  
===PDD Installation and Configuration (Phantom Device Drivers)===
+
<syntaxhighlight lang=Bash>cd ~/catkin_ws/src
* '''Installation'''
+
git clone https://github.com/danepowell/omni_description
 +
git clone https://github.com/danepowell/phantom_omni</syntaxhighlight>
  
For install the drivers we go to directory OpenHapticsAE_Linux_v3_0/OpenHaptics-AE 3.0/32-bit from terminal and execute the next command (if our computer warns us that alien isn't installed we can install it with '''sudo apt-get install alien''')
+
After clonation, execute
  
<syntaxhighlight lang=Bash>sudo dpkg -i phantomdevicedrivers_4.3-3_i386.deb</syntaxhighlight>
+
<syntaxhighlight lang=Bash>rospack profile</syntaxhighlight>
 
 
* '''Phantom Haptic Device Interface Installation by IEEE1394 Fireware port'''
 
 
 
In this point is where we would to load raw1394 module in the kernel. Due to the change of the old driver stack (video1394, raw1394, etc) for the new driver stack (firewire.core, firewire-ohci). From the Ubuntu vesion 11.04, we will download the new beta drivers adapted to the new drivers stack.
 
 
 
We can donwnload it from [http://dsc.sensable.com/forum/topic.asp?TOPIC_ID=1283 forums of Sensable]
 
 
 
Once downloaded we must to copy the file included in the package "libPHANToMIO.so.4.3" into /usr/lib directory and overwrite the old file.
 
 
 
<syntaxhighlight lang=Bash>sudo cp libPHANToMIO.so.4.3 /usr/lib</syntaxhighlight>
 
 
 
Create symbol links to the previous library with the libraries called libPHANToMIO.so and  libPHANToMIO.so.4 into /usr/lib directory
 
 
 
 
 
<syntaxhighlight lang=Bash>sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so</syntaxhighlight>
 
<syntaxhighlight lang=Bash>sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so.4</syntaxhighlight>
 
(if you can't overwrite old files, delete them previously)
 
  
Copy the new configuration application ''PHANToMConfiguration'' which is adapted to the new firewire drivers into /usr/sbin directory.
+
Go to root directory of your workspace and compile it executing
  
<syntaxhighlight lang=Bash>sudo cp PHANToMConfiguration /usr/sbin</syntaxhighlight>
+
<syntaxhighlight lang=Bash>cd ~/catkin_ws
 
+
catkin_make</syntaxhighlight>
Install freeglut and several libraries which are necessary with the next commands
 
 
 
<syntaxhighlight lang=Bash>sudo apt-get install freeglut3-dev</syntaxhighlight>
 
<syntaxhighlight lang=Bash>sudo apt-get install  x11proto-gl-dev</syntaxhighlight>
 
<syntaxhighlight lang=Bash>sudo apt-get install libmotif-dev</syntaxhighlight>
 
<syntaxhighlight lang=Bash>sudo apt-get install mesa-utils</syntaxhighlight>
 
 
 
Download the libGLw libraries with the motif links already compiled from [http://dsc.sensable.com/forum/topic.asp?TOPIC_ID=1241 here] and copy the files that contains into /usr/lib directory with the command
 
<syntaxhighlight lang=Bash>sudo cp libGLw* /usr/lib</syntaxhighlight>
 
 
 
Create a symbol link into /usr/lib/i386-linux-gnu/ directory to the libraw1394.so.11 library (the directory can change depends of your linux version, for to look for where is located you can use the command ''locate libraw1394''). This is necessary because the drivers requires libraw.so.8 to which already is obsolete.
 
 
 
<syntaxhighlight lang=Bash>sudo ln -s libraw1394.so.11 libraw1394.so.8</syntaxhighlight>
 
 
 
If when we use the PHANToMTest or other application of OpenHaptics only we can execute as root or the haptic can't initialize we must give permissions to port /dev/fw* , for this we must follow the instructions of paragraph Permissions and ownership for /dev/fw* in this [https://ieee1394.wiki.kernel.org/index.php/Juju_Migration#Permissions_and_ownership_for_.2Fdev.2Ffw.2A link]
 
 
 
one way to assign permissions fast (although each time that restart our computer the permissions are restored) is the next command
 
 
 
<syntaxhighlight lang=Bash>sudo chmod 777 /dev/fw*</syntaxhighlight>
 
 
 
* '''PHANToM Configuration'''
 
 
 
For to use any haptic application we must specify the model which we are using, for this, initialize the PHANToMConfiguration, it's important initialize with the flag LANG=en_us because if our system language is different to english and, we initialize without flag later the haptic doesn't work correctly
 
 
 
<syntaxhighlight lang=Bash>LANG=en_us /usr/sbin/PHANToMConfiguration </syntaxhighlight>
 
 
 
The options must be as in the capture
 
 
 
[[File:PHANToMConfiguration.png|500px|thumb|center|PHANToMConfiguration Application]]
 
 
 
'''IMPORTANT:''' If not shows the serial number, must change the fireware wire to the other port and push in the default button.
 
 
 
Finally, push apply and later in OK. Now,must to calibrate and test if the haptic works, for this, execute
 
 
 
<syntaxhighlight lang=Bash>LANG=en_us /usr/sbin/PHANToMTest</syntaxhighlight>
 
 
 
In the Select section we choose the configuration which we have made in PHANToMConfiguration
 
 
 
[[File:PHANToMTest select.png|500px|thumb|center|PHANToMTest Application]]
 
 
 
Push next until Read encoders and test that the stylus buttons work correctly, for this, push the buttons and see the status change between ON and OFF.
 
 
 
[[File:PHANToMTest_ReadEncoders.png|500px|thumb|center|PHANToMTest Application]]
 
 
 
Push next until Box Test and test that the haptic can't take out the ball of the box
 
 
 
[[File:PHANToMTest_BoxTest.png|500px|thumb|center|PHANToMTest Application]]
 
PHANToMTest_BoxTest
 
 
 
Finally, push next for finish
 
 
 
===OpenHaptics Toolkit Installation===
 
 
 
Go to OpenHapticsAE_Linux_v3_0/OpenHaptics-AE 3.0/32-bit directory and execute
 
 
 
<syntaxhighlight lang=Bash>sudo dpkg -i openhaptics-ae_3.0-2_i386.deb</syntaxhighlight>
 
 
 
Now, install the library libncurses5-dev
 
 
 
<syntaxhighlight lang=Bash>sudo apt-get install libncurses5-dev</syntaxhighlight>
 
 
 
Finally, must change etc/enviroment adding next line at end of the file
 
 
 
<syntaxhighlight lang=Bash>3DTOUCH_BASE=/usr/share/3DTouch</syntaxhighlight>
 

Latest revision as of 10:43, 26 June 2014

  • Project name: Turtlebot robot indoor navigation
  • Dates: July - September 2013
  • Degree: Summer Research Residence
  • Author: Jose Álvaro Fernández Álvarez
  • Contact: jferna08@estudiantes.unileon.es
  • Tags: ROS, Haptics, Arduino
  • Technologies: ROS, Phantom Omni, Arduino
  • Status: Finished


ROS Fuerte & ROS Groovy Installation on Ubuntu 12.04

Sources.list Configuration

For the computer accept packages.ros.org must enter in the terminal the next line.

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'

Keys Configuration

wget http://packages.ros.org/ros.key -O - | sudo apt-key add -

Installation

  • ROS Fuerte

We make sure that the server ROS.org is indexed.

sudo apt-get update

Install the library package and complete tools: ROS, rx, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception.

sudo apt-get install ros-fuerte-desktop-full

Also you can install independently the libraries, tools and stacks.

  • ROS Groovy

We make sure that the server ROS.org is indexed.

sudo apt-get update

Install the library package and complete tools: ROS, rx, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception.

sudo apt-get install ros-groovy-desktop-full

Also you can install independently the libraries, tools and stacks.

Rosdep Initialization (Only ROS Groovy)

Before of to use ROS we must initialize rosdep which allows us easily to install the source system dependencies that we want to compile and also is necessary for execute some basic components of ROS.

sudo rosdep init
rosdep update

Enviroment Configuration

  • ROS Fuerte

For the enviroment variables are added each time you start the computer type this lines

echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc
. ~/.bashrc

We can check if we have added typing gedit ~/.bashrc and looking at end of file

bashrc file

IMPORTANT!!! If there is more than one ROS distribution installed in the file ~/.bashrc must only contain the version you're using

  • ROS Groovy

For the enviroment variables are added each time you start the computer type this lines

echo "source /opt/ros/fuerte/setup.bash" >> ~/.bashrc
. ~/.bashrc

We can check if we have added typing gedit ~/.bashrc and looking at end of file

bashrc file

IMPORTANT!!! If there is more than one ROS distribution installed in the file ~/.bashrc must only contain the version you're using

Independent Tools

  • ROS Fuerte

Rosinstall and rosdep are used often in the terminal, but they are distributed individually. Rosinstall allows you to download source code trees for packages and ROS stacks. Rosdep allows easy installation of the system dependencies for the source code to be compiled.

For install those tools, you write in the terminal the next line

sudo apt-get install python-rosinstall python-rosdep
  • ROS Groovy

Rosinstall is used often in the terminal, but it is distributed individually. Rosinstall allows you to download source code trees for packages and ROS stacks. For install this tool, you write in the terminal the next line

sudo apt-get install python-rosinstall

Create a ROS Workspace in ROS Fuerte

  • Create a new workspace

With the next command we go to create a workspace in ~/fuerte_workspace which inherits the set of installed packages in /opt/ros/fuerte

rosws init ~/fuerte_workspace /opt/ros/fuerte

NOTE: rosw is a type of rosintall package which doesn't install default. if we haven't installed rosintall in the last steps, we must do with the next command

sudo apt-get install python-rosinstall
  • Create a sandbox directory for the new packages

When we create a new package we always must put it in a directory that is in the enviroment variable ROS_PACKAGE_PATH. All the directories that are added with rosw is added automatically to this variable. For this. we create a sandbox directory to which we will add the hide file .rosinstall with rosw

We create the sandbox directory in our workspace created before and we add to the workspace

mkdir ~/fuerte_workspace/sandbox
rosws set ~/fuerte_workspace/sandbox

Each time that the entries of workspace change it, is necessary to do a re-source

source ~/fuerte_workspace/setup.bash

Also, it is advisable to add the last line to the file ~/.bashrc just after the line to which already added at the beginning of installation for haven't execute each time we starts our computer.

To confirm that our path has been modified we can execute the next line

$ echo $ROS_PACKAGE_PATH

and we must obtain a output similar to this

/home/your_user_name/fuerte_workspace/sandbox:/opt/ros/fuerte/share:/opt/ros/fuerte/stacks

Create a ROS Workspace in ROS Groovy

  • Create a new workspace

With the next command we go to create a workspace in ~/catkin_ws which inherits the set of installed packages in /opt/ros/groovy

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

Initially our workspace is empty, only have a CmakeList.txt in the src directory. For make the workspace execute

cd ~/catkin_ws/
catkin_make

Finally, we configure the enviroment variabble to take into consideration our new workspace, for this execute

source ~/catkin_ws/devel/setup.bash

For to do this change continuous we can add the previous line to end of file ~/.bashrc

Phantom Omni Package Installation on ROS Fuerte & ROS Groovy

Requirements

Phantom Omni Device

OpenHaptics SDK, you can download here.

Go to Software Downloads in Linux Drivers section and download the version 3.0

PDD Installation and Configuration (Phantom Device Drivers)

  • Installation

For install the drivers we go to directory OpenHapticsAE_Linux_v3_0/OpenHaptics-AE 3.0/32-bit from terminal and execute the next command (if our computer warns us that alien isn't installed we can install it with sudo apt-get install alien)

sudo dpkg -i phantomdevicedrivers_4.3-3_i386.deb
  • Phantom Haptic Device Interface Installation by IEEE1394 Fireware port

In this point is where we would to load raw1394 module in the kernel. Due to the change of the old driver stack (video1394, raw1394, etc) for the new driver stack (firewire.core, firewire-ohci). From the Ubuntu vesion 11.04, we will download the new beta drivers adapted to the new drivers stack.

We can donwnload it from forums of Sensable

Once downloaded we must to copy the file included in the package "libPHANToMIO.so.4.3" into /usr/lib directory and overwrite the old file.

sudo cp libPHANToMIO.so.4.3 /usr/lib

Create symbol links to the previous library with the libraries called libPHANToMIO.so and libPHANToMIO.so.4 into /usr/lib directory

sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so
sudo ln -s  libPHANToMIO.so.4.3  libPHANToMIO.so.4

(if you can't overwrite old files, delete them previously)

Copy the new configuration application PHANToMConfiguration which is adapted to the new firewire drivers into /usr/sbin directory.

sudo cp PHANToMConfiguration /usr/sbin

Install freeglut and several libraries which are necessary with the next commands

sudo apt-get install freeglut3-dev
sudo apt-get install  x11proto-gl-dev
sudo apt-get install libmotif-dev
sudo apt-get install mesa-utils

Download the libGLw libraries with the motif links already compiled from here and copy the files that contains into /usr/lib directory with the command

sudo cp libGLw* /usr/lib

Create a symbol link into /usr/lib/i386-linux-gnu/ directory to the libraw1394.so.11 library (the directory can change depends of your linux version, for to look for where is located you can use the command locate libraw1394). This is necessary because the drivers requires libraw.so.8 to which already is obsolete.

sudo ln -s libraw1394.so.11 libraw1394.so.8

If when we use the PHANToMTest or other application of OpenHaptics only we can execute as root or the haptic can't initialize we must give permissions to port /dev/fw* , for this we must follow the instructions of paragraph Permissions and ownership for /dev/fw* in this link

one way to assign permissions fast (although each time that restart our computer the permissions are restored) is the next command

sudo chmod 777 /dev/fw*
  • PHANToM Configuration

For to use any haptic application we must specify the model which we are using, for this, initialize the PHANToMConfiguration, it's important initialize with the flag LANG=en_us because if our system language is different to english and, we initialize without flag after the haptic doesn't work correctly

LANG=en_us /usr/sbin/PHANToMConfiguration

The options must be as in the capture

PHANToMConfiguration Application

IMPORTANT: If not shows the serial number, must change the fireware wire to the other port and push in the default button.

Finally, push apply and later in OK. Now,must to calibrate and test if the haptic works, for this, execute

LANG=en_us /usr/sbin/PHANToMTest

In the Select section we choose the configuration which we have made in PHANToMConfiguration

PHANToMTest Application

Push next until Read encoders and test that the stylus buttons work correctly, for this, push the buttons and see the status change between ON and OFF.

PHANToMTest Application

Push next until Box Test and test that the haptic can't take out the ball of the box

PHANToMTest Application

PHANToMTest_BoxTest

Finally, push next for finish

OpenHaptics Toolkit Installation

Go to OpenHapticsAE_Linux_v3_0/OpenHaptics-AE 3.0/32-bit directory and execute

sudo dpkg -i openhaptics-ae_3.0-2_i386.deb

Now, install the library libncurses5-dev

sudo apt-get install libncurses5-dev

Finally, must change etc/enviroment adding next line at end of the file

3DTOUCH_BASE=/usr/share/3DTouch

Phantom Omni Package Installation

  • ROS Fuerte

Make a clone of the repository in your sandbox directory using the rosbuild branch from repository

git clone -b rosbuild https://github.com/bgromov/sensable_phantom.git

After to clone, execute

rospack profile

Go to sensable_phantom directory which you download in your sandbox directory and compile it. Before to compile a new package make sure that you have made rospack profile

roscd sensable_phantom
rosmake sensable_phantom

If you have problems because you can't do rosmake by denegation permissions, you must see the user who create the package downloaded with ls -all, if the user isn't you, must change it. For this, execute next command replacing the parameters

sudo chown -R your_user directory_to_change
  • ROS Groovy

Make a clone of the repositories in your src directory of your workspace

cd ~/catkin_ws/src
git clone https://github.com/danepowell/omni_description
git clone https://github.com/danepowell/phantom_omni

After clonation, execute

rospack profile

Go to root directory of your workspace and compile it executing

cd ~/catkin_ws
catkin_make