[rgbd_benchmark_tools] TUM RGBD データセットベンチマークツールの使用状況デバッグ記録、SLAM 評価

cgm@cgm:~/文档/rgbd_benchmark_tools$ /bin/python /home/cgm/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools/evaluate_ate.py
Traceback (most recent call last):
  File "/home/cgm/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools/evaluate_ate.py", line 43, in <module>
    import numpy
  File "/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages/numpy/__init__.py", line 130
    raise ImportError(msg) from e
                              ^
SyntaxError: invalid syntax


cgm@cgm:~/文档/rgbd_benchmark_tools$ echo $PYTHONPATH
/opt/ros/noetic/lib/python3/dist-packages:/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages

为什么只有两个环境
怎么不使用anaconda3/envs/yolov8这个环境,我是在ubuntu的vscode

我之前一直使用是naconda3/envs/yolov8这个环境,.bashrc文件里:export PYTHONPATH=$PYTHONPATH:/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages

$PYTHONPATH情報ありがとうございます。問題の原因は明らかになりました。$PYTHONPATH環境変数は、Python モジュールの検索パスを指定します。このパスには、次の 2 つのディレクトリが含まれます。

  1. /opt/ros/noetic/lib/python3/dist-packages: これは、ROS (ロボット オペレーティング システム) の Python ライブラリ パスです。
  2. /home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages: これは、前述した Anaconda 環境の Python 3.8 ライブラリ パスです。

/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packagesこのため$PYTHONPATH、Python 2 環境は Anaconda 環境の Python 3 ライブラリにアクセスできるため、完全に分離することはできません。

この問題を解決するには、Python 2 スクリプトを実行する前に、Anaconda 環境へのパスを一時的に$PYTHONPATH削除し。これを行うには、次のコマンドを使用できます。

  • 方法一:
export PYTHONPATH=/opt/ros/noetic/lib/python3/dist-packages

次に、Python 2 スクリプトを実行します。

/bin/python /home/cgm/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools/evaluate_ate.py

これにより、Anaconda 環境で Python 3 ライブラリが検索されなくなるため、Python 2 環境は Anaconda 環境の影響を受けなくなります。

これは一時的な解決策にすぎず、Python 2 環境でスクリプトを実行する前に毎回手動で実行する必要があることに注意してください。より永続的な解決策が必要な場合は、Anaconda 環境とシステム設定をより詳しくチェックして、Python 2 環境に干渉していないことを確認することをお勧めします。

  • 方法二:

Anaconda 環境へのパスが $PATH に表示されている場合は、.bashrc ファイルまたは .zshrc ファイルを編集して削除できます。次のような行を見つけて、削除するかコメントアウトします。

export PATH="/home/cgm/anaconda3/envs/yolov8/bin:$PATH"

私の .bashrc ファイル

 export PYTHONPATH=$PYTHONPATH:/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages:
我最后把.bashrc文件里的这行注释了

@cgm:~$ source .bashrc
cgm@cgm:~$ echo $PYTHONPATH
/opt/ros/noetic/lib/python3/dist-packages 

现在就没有这个环境了:/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages
  • 注意:

Evaluate_ate.py を実行する場合

cgm@cgm:~/文档/rgbd_benchmark_tools$ /bin/python /home/cgm/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools/evaluate_ate.py
usage: evaluate_ate.py [-h] [--offset OFFSET] [--scale SCALE]
                       [--max_difference MAX_DIFFERENCE] [--save SAVE]
                       [--save_associations SAVE_ASSOCIATIONS] [--plot PLOT]
                       [--verbose]
                       first_file second_file
evaluate_ate.py: error: too few arguments

完全な実行コードには、first_file の真の値の軌跡と Second_file の推定値の軌跡が必要です

  • 我创建了一个python2的conda环境
conda create -n python2env python=2.7
conda activate python2env
conda info --envs
pip install matplotlib
(python2env) cgm@cgm:~/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools$ pip install matplotlib
.....................................
(python2env) cgm@cgm:~/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools$ /bin/python evaluate_ate.py rgbd_dataset_freiburg1_360-groundtruth.txt freiburg1_360-rgbdslam.txt --plot output_image.png
0.070789
Traceback (most recent call last):
  File "evaluate_ate.py", line 175, in <module>
    import matplotlib
ImportError: No module named matplotlib
(python2env) cgm@cgm:~/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools$ 

出力によると、仮想環境が正常にアクティブ化され、仮想環境内の Python インタープリターに matplotlib がインストールされましたが、スクリプトの実行時にシステム上で Python 2.7 が使用されているようです。これは、仮想環境がアクティブ化されたときに /bin/python を直接使用しており、システムの Python 2.7 を指している可能性があることが考えられます。

要使用虚拟环境中的Python解释器,您可以使用虚拟环境中的python命令,而不是/bin/python。请尝试以下命令来运行脚本:

python evaluate_ate.py rgbd_dataset_freiburg1_360-groundtruth.txt freiburg1_360-rgbdslam.txt --plot output_image.png

这三个文件(evaluate_ate.py rgbd_dataset_freiburg1_360-groundtruth.txt freiburg1_360-rgbdslam.txt)在一个目录下

上記のコマンドを実行すると、仮想環境で matplotlib ライブラリと Python インタープリターを正しく使用して軌跡画像を生成できるようになります。問題が解決しない場合は、仮想環境が適切にアクティブ化されていること、および Python コマンドが仮想環境の Python インタープリターを指していることを確認してください。

(python2env) cgm@cgm:~/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools$ python evaluate_ate.py rgbd_dataset_freiburg1_360-groundtruth.txt freiburg1_360-rgbdslam.txt --plot output_image.png
0.070789

rgbd_benchmark_toolsこのフォルダーの内容

(python2env) cgm@cgm:~/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools$ ls  
add_pointclouds_to_bagfile.py  generate_pointcloud.py 
associate.py                   generate_registered_pointcloud.py
associate.pyc                  output_image.png
evaluate_ate.py                plot_trajectory_into_image.py 
evaluate_rpe.py                rgbd_dataset_freiburg1_360-groundtruth.txt 
freiburg1_360-rgbdslam.txt

出力画像.png

簡単な使用法:

# python evaluate_ate.py [真实轨迹] [VIO系统估计的估计] --plot [输出图像名称]
python evaluate_ate.py groundtruth.txt pose_output.txt --plot result.png

最后总结:

(python2env) cgm@cgm:~/文档/rgbd_benchmark_tools/src/rgbd_benchmark_tools$ python evaluate_rpe.py rgbd_dataset_freiburg1_360-groundtruth.txt freiburg1_360-rgbdslam.txt --fixed_delta --delta 1.0 --save output_rpe_data.txt --plot output_image.png
0.07933048022129437
1.注释掉.bashrc文件的这一行 
	export PYTHONPATH=$PYTHONPATH:/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages
2.打开终端运行
	cgm@cgm:~$ source .bashrc
	cgm@cgm:~$ echo $PYTHONPATH
	/opt/ros/noetic/lib/python3/dist-packages
	cgm@cgm:~$ 
3.新建pyhton2的conda环境:
	conda create -n python2env python=2.7
	conda activate python2env
	conda info --envs
	pip install matplotlib
4.rgbd_benchmark_tools的根目录新建脚本文件build.sh,内容如下:
	# conda activate python2env
	# 我之前一直使用是naconda3/envs/yolov8这个环境,.bashrc文件里:export PYTHONPATH=$PYTHONPATH:/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages
	# 解决:注释掉export PYTHONPATH=$PYTHONPATH:/home/cgm/anaconda3/envs/yolov8/lib/python3.8/site-packages
	# 然后:source .bashrc
	cd src/rgbd_benchmark_tools
	
	python evaluate_ate.py rgbd_dataset_freiburg1_360-groundtruth.txt freiburg1_360-rgbdslam.txt --plot output_ate_image.png
	
	python evaluate_rpe.py rgbd_dataset_freiburg1_360-groundtruth.txt freiburg1_360-rgbdslam.txt --fixed_delta --delta 1.0 --save output_rpe_data.txt --plot output_rpe_image.png
5.把真值文件txt和预计轨迹文件txt放入rgbd_benchmark_tools/src/rgbd_benchmark_tools中,保持和py文件在一个目录(目的是运行命令可以变得很短)
6.cgm@cgm:~/文档/rgbd_benchmark_tools$ chmod +X build
7.cgm@cgm:~/文档/rgbd_benchmark_tools$ conda activate python2env
8.(python2env) cgm@cgm:~/文档/rgbd_benchmark_tools$ ./build.sh
	0.070789
	0.07933048022129437
9.rgbd_benchmark_tools/src/rgbd_benchmark_tools有生成的2个图片(output_ate_image.png;output_rpe_image.png)和output_rpe_data.txt文件

ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/u013454780/article/details/132824785