documentation

View project on GitHub

MSF: Installation et lancement

##Révisions Auteure : Eva
Date : 29 decembre 2015
Idiot-proofé par :
Source: https://pixhawk.org/dev/ros/visual_estimation

ORB SLAM Setup (ou n’importe quel autre algo de navigation visuelle)

Wiki(s) à venir

  • Calibration cameras
  • clone
  • unzip voc

MSF Setup

Installation des dépendances
À l’intérieur du fichier src du workspace:
git clone https://github.com/ethz-asl/asctec_mav_framework
git clone https://github.com/ethz-asl/catkin_simple
git clone https://github.com/ethz-asl/gflags_catkin.git
git clone https://github.com/ethz-asl/glog_catkin
git clone https://github.com/ethz-asl/geodetic_utils.git

Installation de MSF
Encore à l’intérieur du fichier src du workspace:
git clone https://github.com/evter95/ethzasl_msf.git
Ceci est mon fork contenant les modifications nécessaires du code original suivant: https://github.com/ethz-asl/ethzasl_msf

Remove asctec_hl_gps dans le fichier asctec_mav_framework

catkin_make -j2

add launch file

##Changes in ORB SLAM On veut que ORB SLAM publit un topic de type geometry_msgs/PoseStamped
Les changements nécessaires pour ce faire sont situés dans le pull request suivant: https://github.com/raulmur/ORB_SLAM/pull/33
Vous pouvez faire les modifications vous-mêmes ou utiliser mon fork Dans inlcude/tracking.h:
Ajouter:

  • debut:
    #include geometry_msgs/PoseStamped.h"
  • ligne 186:
    ros::NodeHandle n; ros::Publisher PosPub = n.advertise<geometry_msgs::PoseStamped>("ORB_SLAM/pose", 5);

Dans src/tracking.cc:
Ajouter:

  • ligne 318:
    geometry_msgs::PoseStamped poseMSG;
    poseMSG.pose.position.x = tfTcw.getOrigin().x();
    poseMSG.pose.position.y = tfTcw.getOrigin().y();
    poseMSG.pose.position.z = tfTcw.getOrigin().z();
    poseMSG.pose.orientation.x = tfTcw.getRotation().x();
    poseMSG.pose.orientation.y = tfTcw.getRotation().y();
    poseMSG.pose.orientation.z = tfTcw.getRotation().z();
    poseMSG.pose.orientation.w = tfTcw.getRotation().w();
    poseMSG.header.frame_id = “VSLAM”;
    poseMSG.header.stamp = ros::Time::now();
    PosPub.publish(poseMSG);

Enlever ligne