Outils pour utilisateurs

Outils du site


Action disabled: diff
gaze

Ceci est une ancienne révision du document !


Installation sur VGG

Installation ROS Kinetic

Setup your computer to accept software from packages.ros.org:

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

Set up your keys:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

Installation:

sudo apt-get update

Recommended:

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

Other:

sudo apt-get install ros-kinetic-desktop
sudo apt-get install ros-kinetic-ros-base

To find available packages, use:

apt-cache search ros-kinetic

Init rosdep:

sudo rosdep init
rosdep update

Environement setup:

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

Dependencies for building packages:

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

Create a ROS Workspace:

mkdir -p ~/catkin_ws
cd ~/catkin_ws
catkin_make

Source your new setup.*sh file:

source devel/setup.bash
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc (not sure)

Create your workspace (Non-admin users)

Before you begin, make sure that ROS Kinetic is properly installed on computer:

export | grep ROS
result.txt
declare -x ROSLISP_PACKAGE_DIRECTORIES="/home/tdedieu/catkin_ws/devel/share/common-lisp"
declare -x ROS_DISTRO="kinetic"
declare -x ROS_ETC_DIR="/opt/ros/kinetic/etc/ros"
declare -x ROS_MASTER_URI="http://localhost:11311"
declare -x ROS_PACKAGE_PATH="/home/tdedieu/catkin_ws/src:/opt/ros/kinetic/share"
declare -x ROS_ROOT="/opt/ros/kinetic/share/ros"
declare -x ROS_VERSION="1"

Environement setup:

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

Create your Workspace:

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

Source your new setup.*sh file:

source devel/setup.bash
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

Note: Last command allows to avoid making the previous command at each new open terminal.

Now you can do this to go directly to package folder:

roscd <mypackage>

Copy your ros package in src/:

cp -r <your_path>/<your_package> ~/catkim_ws/src/

Example:

cp -r ~/Documents/mypackage/ ~/catkin_ws/src/

Compile your packages:

catkin_make

Driver ueye

mkdir -p ~/Download
cd ~/Download
wget http://homepages.laas.fr/bvandepo/files/ueye/uEye-Linux-4.90.06-64.tgz
mkdir -p uEye-Linux-4.90.06-64
cd uEye-Linux-4.90.06-64
tar xvf ../uEye-Linux-4.90.06-64.tgz
sudo ./ueyesdk-setup-4.90.06-usb-amd64.gz.run
result.txt
  Reload and retrigger udev to apply uEye rules...
***************************************************************************
Successfully installed ueyeusbd. Start (as root) with:
     /etc/init.d/ueyeusbdrc start
 
If ueyeusbd hangs and does not terminate on rc 'stop' command,
run (as root)
     /etc/init.d/ueyeusbdrc force-stop
 
NOTE that the daemon refuses to terminate if there are clients connected!
To uninstall, run '/usr/local/share/ueye/bin/ueyed_install-usb uninstall'.
 
If a graphical desktop environment is available, one may use the
uEye Camera Manager to configure cameras and services. To start
it, type idscameramanager on the command line or in the graphical application
launcher. If idscameramanager shall be used for daemon configuration and service
control, it _must_ be started as root.

Démarrage du driver (utilisateur tdedieu autorisé via visudo):

sudo /etc/init.d/ueyeusbdrc start

Arrêt du driver (utilisateur tdedieu autorisé via visudo):

sudo /etc/init.d/ueyeusbdrc stop

Problème

Camera de la marque IDS, uEye SE USB 3.1 Gen 1 (Model: UI320xSE-M).

Free-run mode

Ueyedemo avec la configuration suivante:

image size: 4104x3006
subsampling: 1
binning:1
sensor_scaling: 1.0
pixel clock: 395 Mhz
exposure: 10 ms
framerate: 24,35 fps

Résultats:

fps: 24.35, failed:0

Ueye_cam avec la configuration suivante:

result.txt
  <param name="color_mode" type="str" value="rgb8" /> <!-- valid options: 'rgb8', 'mono8', 'bayer_rggb8' -->
 
  <param name="image_width" type="int" value="4104" />
  <param name="image_height" type="int" value="3006" />
 
  <param name="subsampling" type="int" value="1" /> <!-- supported by only some UEye cameras -->
  <param name="binning" type="int" value="1" /> <!-- supported by only some UEye cameras -->
  <param name="sensor_scaling" type="double" value="1.0" /> <!-- supported by only some UEye cameras -->
 
  <param name="auto_exposure" type="bool" value="False" />
  <param name="exposure" type="int" value="10" /> <!-- in ms -->
 
  <param name="auto_frame_rate" type="bool" value="False" />
  <param name="frame_rate" type="double" value="24.0" />
  <param name="pixel_clock" type="int" value="395" />

Commande:

rostopic hz /scene/image_raw
result.txt
average rate: 7.381
	min: 0.121s max: 0.147s std dev: 0.00565s window: 183
average rate: 7.376
	min: 0.121s max: 0.147s std dev: 0.00559s window: 190
average rate: 7.373
	min: 0.121s max: 0.147s std dev: 0.00559s window: 198
average rate: 7.369
	min: 0.121s max: 0.149s std dev: 0.00564s window: 200

Pourquoi les images par seconde (ips) ne sont pas environ égales (facteur < 2), alors que les paramètres sont les mêmes? Il semble que se soit l'appelle à la fonction startFrameGrabber() dans le fichier ueye_cam_nodelet.cpp qui est trop lente. En effet, la publication d'un std_msgs::String pour tester les ips nous donne plus de 20 000 ips quand cette fonction n'est pas exécuté. Le problème a été identifié, il s'agit de la fonction std::copy qui est exécuté en 0.25 secondes en moyenne. L'utilisation de la fonction memcpy a fait augmenter les ips jusqu'à 14 contre 7 avec std::copy.

Remarques

Trigger-mode

Lorsque la configuration maître-escalves est mise en place. Il est important de savoir que les ips peuvent être réduite. Par exemple, au temps d'exposition maximum, la fréquence d'image est environ moitié moins élevée qu'en mode freerun.

De plus, pour ne pas perdre des images, il faut régler les paramètres en fonction de la caméra la plus lente pour qu'elle arrive à suivre.

Lorsque vous voulez visualiser les images des caméras:

roscore
rosrun image_view image_view image:=/<nom_topic>/image_raw (maître)
rosrun image_view image_view image:=/<nom_topic>/image_raw (esclave1)  
rosrun image_view image_view image:=/<nom_topic>/image_raw (esclave2)
...

Important: Lancez la visualisation du maître avant les esclaves.

Il est possible de faire également:

roslaunch ueye_cam view_me.launch (caméras gauche, droite et scène)
roslaunch ueye_cam view_stereo.launch (caméras gauche et droite)
roslaunch ueye_cam view_scene.launch (caméra scène)

Installation editeur atom

mkdir -p ~/Download
cd ~/Download
wget http://homepages.laas.fr/bvandepo/files/ueye/atom-amd64.deb
sudo dpkg -i atom-amd64.deb

Installation AprilTag

https://april.eecs.umich.edu/software/apriltag.html

mkdir -p ~/Download
cd ~/Download
wget https://april.eecs.umich.edu/media/apriltag/apriltag-2016-12-01.tgz
tar -xvzf apriltag-2016-12-01.tgz
cd apriltag-2016-12-01
make -j4
sudo make install
gaze.1530520921.txt.gz · Dernière modification : 2018/07/02 10:42 de bvandepo