Vins-Mono+Fusion 学習ノート (1)

1. 走り方

         1、安装依赖

                注: YOUR_DISTRO を独自の ros バージョンに変更します。

sudo apt-get install ros-YOUR_DISTRO-cv-bridge ros-YOUR_DISTRO-tf ros-YOUR_DISTRO-message-filters ros-YOUR_DISTRO-image-transport
#笔者ros为18.04版本输入如下
sudo apt-get install ros-melodic-cv-bridge ros-melodic-tf ros-melodic-message-filters ros-melodic-image-transport

        2. 最初のワークスペース

        Visual SLAM の講義 14 でライブラリをインストールした場合は、次の手順に従ってターミナルにライブラリを入力できます。そうでない場合は、公式 Web サイトにアクセスして必要なライブラリをインストールする必要があります:https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git

ROSとCeres Solverをインストールする必要があります。 Ceres Solver ライブラリの作成者は、インストール方法を以前に記事に記録していますので、必要な場合は、次のリンクを確認してください。

ゼロから始める Ceres ソルバー チュートリアル_Daily Yixue のブログ-CSDN ブログ_ceres ソルバー チュートリアル

mkdir -p catkin_ws/src
cd ./catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
cd ..
catkin_make

        3. 走る

roslaunch vins_estimator euroc.launch 
roslaunch vins_estimator vins_rviz.launch
rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.ba

2.ROSの使用

  • 機能パッケージ: 機能パッケージ (パッケージ) は ROS の基本単位です。 ROS アプリケーションは機能パッケージ単位で開発されます。機能パッケージを検索します。
find ./ -name "package.xml" #注意是在工作目录空间下进行寻找

6 つの関数パッケージがあることがわかります。

  1. ./src/VINS-Mono-master/benchmark_publisher/package.xml #軌跡データの送信
  2. ./src/VINS-Mono-master/feature_tracker/package.xml #前セクションの関数パッケージ
  3. ./src/VINS-Mono-master/pose_graph/package.xml #ループバックチェック機能パッケージ
  4. ./src/VINS-Mono-master/vins_estimator/package.xml #バックエンド関数パッケージ
  5. ./src/VINS-Mono-master/camera_model/package.xml #カメラモデル関数パッケージ
  6. ./src/VINS-Mono-master/ar_demo/package.xml

ノード: 関数パッケージには少なくとも 1 つのノードがあり、ノードはプロセスとして理解できます。

メッセージ: ノードはメッセージを通じてデータを送受信します。メッセージ タイプはカスタマイズまたは ros 定義のメッセージ タイプにすることができます。

トピック: 最も一般的な夜間メッセージ方式。パブリッシャが送信を担当し、サブスクライバが受信を担当し、サブスクライバ ノードはマスター ノードを介してパブリッシャ ノードに直接接続されます。

rqt_graph を使用してノード間の直接通信を表示する

 起動ファイル: 複数のノードを同時に起動できます (そうしないと、各ノードが 1 つの端末を占有します)。パラメータはパラメータ サーバーにロードされます (設定ファイルとして機能します)。

起動ファイルを使用してワンクリックで開始する

起動ファイルを自分で変更して、ワンクリック起動を実現できます。

vins_estimator の起動ファイル内の euroc.launch の補助コピーは one_start.launch です。

次のように変更します。# は自己追加です。1 つ目は rviz を開き、2 つ目はプレイバッグ ファイルです

<launch>
    <arg name="config_path" default = "$(find feature_tracker)/../config/euroc/euroc_config.yaml" />
  <arg name="vins_path" default = "$(find feature_tracker)/../config/../" />
    <include file="$(find vins_estimator)/launch/vins_rviz.launch"/>#自己加入
    <node name="feature_tracker" pkg="feature_tracker" type="feature_tracker" output="log">
        <param name="config_file" type="string" value="$(arg config_path)" />
        <param name="vins_folder" type="string" value="$(arg vins_path)" />
    </node>
 
    <node name="vins_estimator" pkg="vins_estimator" type="vins_estimator" output="screen">
       <param name="config_file" type="string" value="$(arg config_path)" />
       <param name="vins_folder" type="string" value="$(arg vins_path)" />
    </node>
 
    <node name="pose_graph" pkg="pose_graph" type="pose_graph" output="screen">
        <param name="config_file" type="string" value="$(arg config_path)" />
        <param name="visualization_shift_x" type="int" value="0" />
        <param name="visualization_shift_y" type="int" value="0" />
        <param name="skip_cnt" type="int" value="0" />
        <param name="skip_dis" type="double" value="0" />
    </node>
 
    <node pkg="rosbag" type="play" name="play" args="/home/hhb/dataset/EUROC/MH_05_difficult.bag" output="screen"/>#自己加入
</launch>

Guess you like

Origin blog.csdn.net/HHB791829200/article/details/128317219