hkust-aerial-robotics / d2slam Goto Github PK
View Code? Open in Web Editor NEW$D^2$SLAM: Decentralized and Distributed Collaborative Visual-inertial SLAM System for Aerial Swarm
$D^2$SLAM: Decentralized and Distributed Collaborative Visual-inertial SLAM System for Aerial Swarm
Hi,when I want to evaluate multir-robot datasets on my PC with docker, I have met a strange problem.
rosrun sync_bag_player docker_swarm_test.py /home/mwy/BAG/D2SLAM/tum_corr/d2vins.yaml
Start swarm docker test
Launching docker swarm1
docker run --name swarm1_319961 --gpus all --rm -it -v -v /home/mwy/BAG/D2SLAM/tum_corr/outputs/d2vins/swarm1:/root/output/ -v /home/mwy/BAG/D2SLAM/tum_corr/Configs:/root/SwarmConfig/ -v /home/mwy/BAG/D2SLAM/tum_corr/d2vins.yaml:/root/config.yaml -v /home/mwy/BAG/D2SLAM/tum_corr:/root/bags/ -v /tmp/swarm1_319961_entry_point.sh:/root/entry_point.sh -v /home/mwy/D2SLAM_sync_bag_player/src/sync_bag_player/scripts/docker_entrypoint.sh:/root/docker_entrypoint.sh --env='DRONE_ID=1' --env='DISPLAY' --volume='/tmp/.X11-unix:/tmp/.X11-unix:rw' --privileged d2slam:pc /root/docker_entrypoint.sh /root/bags/dataset-corridor1_512_16-sync-comp.bag 319961
Launching docker swarm2
docker run --name swarm2_319961 --gpus all --rm -it -v -v /home/mwy/BAG/D2SLAM/tum_corr/outputs/d2vins/swarm2:/root/output/ -v /home/mwy/BAG/D2SLAM/tum_corr/Configs:/root/SwarmConfig/ -v /home/mwy/BAG/D2SLAM/tum_corr/d2vins.yaml:/root/config.yaml -v /home/mwy/BAG/D2SLAM/tum_corr:/root/bags/ -v /tmp/swarm2_319961_entry_point.sh:/root/entry_point.sh -v /home/mwy/D2SLAM_sync_bag_player/src/sync_bag_player/scripts/docker_entrypoint.sh:/root/docker_entrypoint.sh --env='DRONE_ID=2' --env='DISPLAY' --volume='/tmp/.X11-unix:/tmp/.X11-unix:rw' --privileged d2slam:pc /root/docker_entrypoint.sh /root/bags/dataset-corridor2_512_16-sync-comp.bag 319961
Launching docker swarm3
docker run --name swarm3_319961 --gpus all --rm -it -v -v /home/mwy/BAG/D2SLAM/tum_corr/outputs/d2vins/swarm3:/root/output/ -v /home/mwy/BAG/D2SLAM/tum_corr/Configs:/root/SwarmConfig/ -v /home/mwy/BAG/D2SLAM/tum_corr/d2vins.yaml:/root/config.yaml -v /home/mwy/BAG/D2SLAM/tum_corr:/root/bags/ -v /tmp/swarm3_319961_entry_point.sh:/root/entry_point.sh -v /home/mwy/D2SLAM_sync_bag_player/src/sync_bag_player/scripts/docker_entrypoint.sh:/root/docker_entrypoint.sh --env='DRONE_ID=3' --env='DISPLAY' --volume='/tmp/.X11-unix:/tmp/.X11-unix:rw' --privileged d2slam:pc /root/docker_entrypoint.sh /root/bags/dataset-corridor3_512_16-sync-comp.bag 319961
docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.
docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.
docker: invalid reference format: repository name must be lowercase.
See 'docker run --help'.
^CKeyboardInterrupt
Error response from daemon: Cannot kill container: swarm1_319961: No such container: swarm1_319961
Error response from daemon: Cannot kill container: swarm2_319961: No such container: swarm2_319961
Error response from daemon: Cannot kill container: swarm3_319961: No such container: swarm3_319961
I think this docker container name id valid ,and In the previous several runs, the terminal didn't indicate any issues with the names of the Docker containers. However, the instantiated containers had empty 'swarm_ws' directories, which prevented subsequent operations. Strangely enough, after a certain test, the terminal suddenly started pointing out problems with the Docker container names.
感谢您们出色的工作!请问可以单独使用你们一架无人机中的多目VINS吗?
Thank you for your wonderful job!
在使用make pc
命令构建docker images时,出现如下报错:
Errors << d2frontend:make /home/yc/d2slam_ws/logs/d2frontend/build.make.000.log
In file included from /home/yc/d2slam_ws/src/D2SLAM/d2frontend/include/d2frontend/CNN/superpoint_common.h:2,
from /home/yc/d2slam_ws/src/D2SLAM/d2frontend/src/CNN/superpoint_common.cpp:1:
/usr/local/include/ATen/ATen.h:4:2: error: #error C++17 or later compatible compiler is required to use ATen.
4 | #error C++17 or later compatible compiler is required to use ATen.
| ^~~~~
In file included from /usr/local/include/c10/util/string_view.h:4,
from /usr/local/include/c10/util/StringUtil.h:6,
from /usr/local/include/c10/util/Exception.h:5,
from /usr/local/include/ATen/core/Generator.h:11,
from /usr/local/include/ATen/CPUGeneratorImpl.h:3,
from /usr/local/include/ATen/Context.h:3,
from /usr/local/include/ATen/ATen.h:7,
from /home/yc/d2slam_ws/src/D2SLAM/d2frontend/include/d2frontend/CNN/superpoint_common.h:2,
from /home/yc/d2slam_ws/src/D2SLAM/d2frontend/src/CNN/superpoint_common.cpp:1:
/usr/local/include/c10/util/C++17.h:27:2: error: #error You need C++17 to compile PyTorch
27 | #error You need C++17 to compile PyTorch
| ^~~~~
我将swarm_ws/src/D2SLAM/d2fronted/CMakeLists.txt中的 CXX_STANDARD 都由14修改为17后,全部包都build成功了。
这是一个bug吗?
Hello, when I build docker image for pc,
I meet this error about opencv and opencv_contrib
fatal error: opencv2/objdetect/aruco_board.hpp: No such file or directory
| #include <opencv2/objdetect/aruco_board.hpp>
How to solve this problem?
Thank you for your excellent job at first.
I have a problem. When I have successfully built an image, it is shown that:
WARNING: Detected NVIDIA NVIDIA GeForce RTX 4060 Laptop GPU GPU, which is not yet supported in this version of the container
I believe that using nvcr.io/nvidia/tensorrt:22.08-py3
as the base image on my laptop may not be appropriate. Can you please help me modify the Dockerfile
to make it more suitable for it even various GPUs? Thank you for your assistance.
Thanks for this great job!
But I meet some problem of workspace with docker pc
When I config the workspace and run as instructions
rosrun sync_bag_player docker_swarm_test.py /home/zph/hard_disk/rosbag/d2slam/D2SLAMDataset/quadcam_7inch_n3_2023_1_14/d2vins.yaml -z -t
The d2vins.yaml
is as follows:
dataset:
swarm1: #drone 1
id: 1
config_path: "Configs/"
bag: "eight_noyaw_1-sync.bag"
# swarm2: #drone 2
# id: 2
# config_path: "Configs/"
# bag: "eight_noyaw_2-sync.bag"
# swarm5: #drone 3
# id: 5
# config_path: "Configs/"
# bag: "eight_noyaw_5-sync.bag"
# swarm6: #drone 4
# id: 6
# config_path: "Configs/"
# bag: "eight_noyaw_6-sync.bag"
# swarm7: #drone 5
# id: 7
# config_path: "Configs/"
# bag: "eight_noyaw_7-sync.bag"
output_path: "outputs/d2vins-5-sync/"
# workspace: "/home/xuhao/d2slam_ws/"
# workspace: "/home/zyh/d2slam_ws"
workspace: "/home/zph/ros_ws/d2slam_ws" # should be your d2slam ws
# workspace: ""
image_name: "d2slam:pc"
exclude_topics: ["/uwb_node/incoming_broadcast_data"]
rate: 0.1
t_start: 0
duration: 1000
start_latency: 10
entry_point_script: |
#!/bin/bash
RVIZ=false
SHOW=true
if [ $DRONE_ID -eq 1 ]
then
SHOW=true
RVIZ=true
fi
echo "ready to roslaunch d2vins"
roslaunch d2vins quadcam.launch show:=$SHOW self_id:=$DRONE_ID \
config:=/root/SwarmConfig/quadcam/quadcam_multi.yaml \
enable_loop:=false rviz:=$RVIZ send_whole_img_desc:=false send_img:=false enable_pgo:=false \
main_id:=1
I find I can not souce the workspace correctly, Because it has remapped to my worksapce of my host. I have compiled D2SLAM successfully on my host.
But when I change the line in docker_swarm_test.py
as follow:
# -v {workspace}:/root/swarm_ws/ \
# -v {workspace_mount} \
cmd = f"""docker run --name {container_name} --gpus all --rm -it \
-v {output_path}:/root/output/ \
-v {swarm_config_path}:/root/SwarmConfig/ \
-v {config_path}:/root/config.yaml \
-v {dataset_path}:/root/bags/ \
-v {entry_point_path}:/root/entry_point.sh \
-v {docker_entry_point}:/root/docker_entrypoint.sh \
--env='DRONE_ID={_id}' \
--env='DISPLAY' --volume='/tmp/.X11-unix:/tmp/.X11-unix:rw' \
--privileged \
{image_name} /root/docker_entrypoint.sh /root/bags/{bag_path} {token}"""
That will not replace the workspace of docker with the workspace of host. It can run with the original code.
But I can not change the code in host and run it in the docker.
I hope I can change the code in /home/zph/ros_ws/d2slam_ws
and run it in docker
Could you give some suggestions?
Best !
The following files are missing when compiling the project in docker
#include <swarm_msgs/DistributedPGOData_t.hpp>
#include <swarm_msgs/DPGOData.h>
#include <swarm_msgs/Odometry.h>
#include <swarm_msgs/Landmark.h>
您好!您的工作让我耳目一新,感谢您在该项目上投入的时间和精力!
我最近尝试在我的ubuntu18系统上成功运行,但遇到了一些编译上的问题,由于编译过程中涉及到的库较多所以相互之间依赖程度也较高 在我的本地编译过程中一直存在各包版本无法匹配的错误
我的电脑CUDA为11.6版本
所以想请教您一下,您的这些依赖是什么版本的呢?
(以上列出的版本为我本地安装的版本)
您好 感谢您的工作!
请问下您四目鱼眼相机的内参以及外参您是采用什么方法标定的呢?
Hey, I meet an error:
[d2vins_node-1] Stack trace (most recent call last):
[d2vins_node-1] 31 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 30 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 29 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 28 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 27 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 26 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 25 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 24 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 23 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 22 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 21 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 20 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 19 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 18 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 17 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 16 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 15 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 14 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 13 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 12 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 11 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 10 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 9 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 8 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 7 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 6 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 5 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 4 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 3 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 2 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 1 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 32, in searchClosest [0x7f89ab2fe6fb]
[d2vins_node-1] 29: return i0;
[d2vins_node-1] 30: }
[d2vins_node-1] 31: if (buf[i].t > t - eps) {
[d2vins_node-1] > 32: return searchClosest(t, i0, i);
[d2vins_node-1] 33: } else {
[d2vins_node-1] 34: return searchClosest(t, i, i1);
[d2vins_node-1] 35: }
[d2vins_node-1] 0 Source "/root/D2SLAM/src/D2SLAM/d2common/src/d2imu.cpp", line 20, in searchClosest [0x7f89ab2fe651]
[d2vins_node-1] 17: return searchClosest(t, 0, buf.size());
[d2vins_node-1] 18: }
[d2vins_node-1] 19:
[d2vins_node-1] > 20: size_t IMUBuffer::searchClosest(double t, int i0, int i1) const {
[d2vins_node-1] 21: const double eps = 5e-4;
[d2vins_node-1] 22: const Guard lock(buf_lock);
[d2vins_node-1] 23: // printf("IMUBuffer::searchClosest: t=%f, i0=%d, i1=%d\n", t, i0, i1);
[d2vins_node-1] Segmentation fault (Address not mapped to object [0x7ffe67c8aff8])
** it seems to occur randomly on the TUM dataset.**
首先,非常感谢您可以分享这个工作内容
我在尝试着复现您的工作,按照教程中的方法,镜像是在Ubuntu18.04的电脑上以save方式打包为.tar文件的,之后在Xavier AGX上用load转化为了镜像,进一步在将镜像实例化为容器时,出现了以下错误:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused "process_linux.go:432: running prestart hook 0 caused \"error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig.real --device=all --compute --compat32 --graphics --utility --video --display --pid=666 /media/nvidia/ssd/dockerimages/overlay2/dd869bbb4187ebab72ff2bba6055da31f08b8e1c0ea3e81661cb864c37bed94a/merged]\\nnvidia-container-cli: mount error: file creation failed: /media/nvidia/ssd/dockerimages/overlay2/dd869bbb4187ebab72ff2bba6055da31f08b8e1c0ea3e81661cb864c37bed94a/merged/usr/lib/aarch64-linux-gnu/libcudnn_adv_infer_static_v8.a: file exists\\n\""": unknown.
ERRO[0005] error waiting for container: context canceled
实例化的命令是
sudo docker run -it --gpus all d2slam:jetson
Thank you so much for your excellent work!
I have a drone and try to fix the quad-cam mentioned in #2 (comment).
However, due to the difference of the drone structure, I have some difficulties. Therefore, I would like to ask the author for some details about drone hardware
.
Next I plan to use OddityRC XI35Pro and the official recommended motor (Stream 2006 motor), propeller (Gemfan D90-3.5).
I especially want to know the type of flight controller with four integrated electronic speed controls (ESCs)
you writted in paper. If possible, can you share the drawings of other parts for the convenience of direct 3D printing.
Thank you.
when i run the command
roslaunch d2vins quadcam.launch enable_pgo:=true enable_loop:=true
the following error appeares
and here is my quadcam_single.yaml
`%YAML:1.0
#inputs
imu: 1
imu_topic: "/dji_sdk_1/dji_sdk/imu"
image0_topic: "/arducam/image"
is_compressed_images: 1
imu_freq: 400
image_freq: 16
frame_step: 2
#Camera configuration
camera_configuration: 3 #STEREO_PINHOLE = 0, STEREO_FISHEYE = 1, PINHOLE_DEPTH = 2, FOURCORNER_FISHEYE = 3
calib_file_path: "quad_cam_calib-camchain-imucam-7-inch-n3.yaml"
image_width: 1280
image_height: 800
enable_undistort_image: 1
undistort_fov: 200
width_undistort: 800
height_undistort: 400
photometric_calib: "mask.png"
avg_photometric: 0.7
#estimation
estimate_extrinsic: 0 # 0 Have an accurate extrinsic parameters. We will trust the following imu^R_cam, imu^T_cam, don't change it.
estimate_td: 0 # online estimate time offset between camera and imu
td: -0.186 # For new datasets with filter
estimation_mode: 0
double_counting_common_feature: 0
min_inv_dep: 0.01 #100 meter away.
#optimization parameters
max_solver_time: 0.08 # max solver itration time (ms), to guarantee real time
max_num_iterations: 8 # max solver itrations, to guarantee real time
consensus_max_steps: 4
timout_wait_sync: 100
rho_landmark: 1.0
rho_frame_T: 100
rho_frame_theta: 100
relaxation_alpha: 0.
consensus_sync_for_averaging: 0
consensus_sync_to_start: 0 #Is sync on start of the solving..
consensus_trigger_time_err_us: 100
#depth fusing
depth_far_thres: 3.0 # The max depth in frontend
depth_near_thres: 0.3
fuse_dep: 1 #if fuse depth measurement
max_depth_to_fuse: 5.0
min_depth_to_fuse: 0.3
#Multi-drone
track_remote_netvlad_thres: 0.5
#Initialization
init_method: 0 #0 IMU, 1 PnP
depth_estimate_baseline: 0.03
#sliding window
max_sld_win_size: 11
landmark_estimate_tracks: 4 #when use depth or stereo, 3 is OK.
min_solve_frames: 6
#solver
multiple_thread: 1
#outlier rejection
thres_outlier : 10.0
perform_outlier_rejection_num: 10000
tri_max_err: 0.2
#Marginalization
enable_marginalization: 1
margin_sparse_solver: 1
always_fixed_first_pose: 0
remove_base_when_margin_remote: 2
#feature tracker parameters
max_cnt: 150 # max feature number in feature tracking
max_superpoint_cnt: 100 # max feature extraction by superpoint
max_solve_cnt: 1000
check_essential: 0
enable_lk_optical_flow: 1 #enable lk opticalflow featuretrack to enhance ego-motion estimation.
remote_min_match_num: 20
enable_superglue_local: 0
enable_superglue_remote: 0
ransacReprojThreshold: 10.0
enable_search_local_aera: 1
search_local_max_dist: 0.05
parallex_thres: 0.012
knn_match_ratio: 0.8 #This apply to superpoint feature track & loop clouse detection.
#CNN
cnn_use_onnx: 1
enable_pca_superpoint: 1
superpoint_pca_dims: 64
acc_n: 0.1 # accelerometer measurement noise standard deviation. #0.2 0.04
gyr_n: 0.05 # gyroscope measurement noise standard deviation. #0.05 0.004
acc_w: 0.002 # accelerometer bias random work noise standard deviation. #0.002
gyr_w: 0.0004 # gyroscope bias random work noise standard deviation. #4.0e-5
g_norm: 9.805 # gravity magnitude
#Loop Closure Detection
loop_detection_netvlad_thres: 0.8
enable_homography_test: 0
accept_loop_max_yaw: 10
accept_loop_max_pos: 1.0
loop_inlier_feature_num: 50
gravity_check_thres: 0.03
pgo_solver_time: 1.0
solver_timer_freq: 1.0
enable_pcm: 1
pcm_thres: 2.8
#PGO
pgo_solver_time: 0.5 # Max time to solve PGO each update in D2PGO
pgo_mode: 1 # PGO MODE=0, D2PGO collects all information and solve it in non-distributed; 1: D2PGO works in distributed mode.
pgo_rho_frame_T: 0.84 # rho for translation
pgo_rho_frame_theta: 0.25 # rho for rotation
pgo_eta_k: 0.1 # eta_k for PGO
write_g2o: 0 # If output g2o file, debug only
g2o_output_path: "output.g2o" # PGO file path
write_pgo_to_file: 1 # If write pgo data as csv.
#outputs
output_path: "/root/output/"
debug_print_sldwin: 0
debug_print_states: 0
enable_perf_output: 0
debug_write_margin_matrix: 0
show_track_id: 0`
Thank you so much for your excellent work!
I try to run d^2-slam in Microsoft Airsim simulator, while I meet some problems:
I would like to seek help from the authors.
Thanks very much.
您好,我依据Dockfile下载了libtorch,但编译的时候遇上了C++版本不统一的问题。libtorch里用的是17,而我们项目里用的是14,我直接docker编译,在pc上编译不过,想问下您用的torch版本是多少,具体是怎么解决的
Hello, I downloaded libtorch based on the Dockfile, but encountered a problem of inconsistent C++ versions during compilation. The libtorch version is compiled with C++17, while our project uses C++14. I tried to compile it directly with Docker, but it failed on my PC. I would like to ask what version of Torch you are using and how you specifically resolved this issue.
[D2VINS] solve_count 4515 landmarks 150 odom Pose T [-2.104,+1.200,+0.756] YPR [+56.1,-1.2,+5.4] Vel 0.56 0.55 -0.07 td 1.0ms opti_time 16.8ms
[D2Frontend::LoopCam] KF Count 916 loop_cam cost avg 13.1ms cur 12.9ms
#4 Source "/home/hzbz/project/swarm_ws/D2SLAM/d2frontend/src/loop_detector.cpp", line 151, in processImageArray [0x7f719dcc9678]
148: printf("Compute loop connection %ld and %ld\n", image_array.frame_id, _old_fisheye_img.frame_id);
149: swarm_msgs::LoopEdge ret;
150: if (_old_fisheye_img.drone_id == self_id) {
> 151: success = computeLoop(_old_fisheye_img, image_array, camera_index_old, camera_index, ret);
152: } else if (image_array.drone_id == self_id) {
153: success = computeLoop(image_array, _old_fisheye_img, camera_index, camera_index_old, ret);
154: } else {
[D2VINS] force landmarks 0 to broadcast
[LoopNet@1] broadcast image array: 1000915 lazy: 0 size 47016 need_send_features 1
#3 Source "/home/hzbz/project/swarm_ws/D2SLAM/d2frontend/src/loop_detector.cpp", line 602, in computeLoop [0x7f719dcc71a4]
599: }
600:
601: if (params->show) {
> 602: drawMatched(frame_array_a, frame_array_b, main_dir_a, main_dir_b, success, inliers, DP_old_to_new, index2dirindex_a, index2dirindex_b);
603: }
604:
605: return success;
[D2Frontend::LoopCam] KF Count 917 loop_cam cost avg 13.1ms cur 11.8ms
#2 Source "/home/hzbz/project/swarm_ws/D2SLAM/d2frontend/src/loop_detector.cpp", line 638, in drawMatched [0x7f719dcc0319]
635: int new_dir_id = index2dirindex_a[i].first;
636: auto pt_old = frame_array_b.images[old_dir_id].landmarks[old_pt_id].pt2d;
637: auto pt_new = frame_array_a.images[new_dir_id].landmarks[new_pt_id].pt2d;
> 638: if (_matched_imgs[old_dir_id].empty()) {
639: continue;
640: }
641: cv::Scalar color(rand() % 255, rand() % 255, rand() % 255);
#1 Object "/usr/local/lib/libopencv_core.so.4.5.3", at 0x7f719e594303, in cv::Mat::empty() const
#0 Object "/usr/local/lib/libopencv_core.so.4.5.3", at 0x7f719e5942cc, in cv::Mat::total() const
段错误 (对于映射对象的权限无效 [0x242ff4000])
SWARM_LOCAL 0 new loops, 0 total loops
[D2PGO::solve@1] solve_count 24 mode single,0 total frames 257 loops 0 opti_time 0.8ms iters 1 initial cost 6.63e-28 final cost 6.63e-28
When I'd like to run this project on my PC, I chose to run
“roslaunch d2vins realsense.launch”
and then I changed the params in d435_single.yaml such as
"
"
and left.yaml and right.yaml
"projection_parameters:"
to my params, then I try to roslaunch, but when the terminal writes
“
[ INFO] [1683553483.037062515]: D2VINS node 1 initialized. Ready to start.
[ INFO] [1683553483.037151392]: Starting d2vins_net lcm.
”
then it cannot write anything on the screen, just looks like to wait for some other topics???
but there are any other input topics except imu and camera/infra1 /infra2 ?
Dear Dr. Xu,
Thank you for the excellent work. But since the Internet policy, it is unconnected to Dropbox from China's mainland. Could you provide a dataset download link for China's mainland?
Best regards,
Dapeng
I can run d2vins with enable_loop=false successfully in single drone situation, however, when setting enable_loop=true, the process terminated by the same error @yinloonga mentioned in #1 . I think the reason is that remote_index is empty. In single drone situation, the drone will not get remote images, as a result, remote_index will be empty. It means that d2vins can not support for state estimation of single drone?
Looking forward to your reply.
@xuhao1 @Peize-Liu @yinloonga
Thanks.
[d2vins_node-1] terminate called after throwing an instance of 'std::out_of_range'
[d2vins_node-1] what(): vector::M_range_check: n (which is 18446744073709551615) >= this->size() (which is 0)
[d2vins_node-1] Stack trace (most recent call last):
[d2vins_node-1] 31 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affa2626, in void message_filters::Synchronizer<message_filters::sync_policies::ExactTime<sensor_msgs::msg::Image<std::allocator >, sensor_msgs::msg::Image<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >::cb<1>(std::tuple_element<1, std::tuple<message_filters::MessageEvent<sensor_msgs::msg::Image<std::allocator > const>, message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const> > >::type const&)
[d2vins_node-1] 30 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affa6aa3, in void message_filters::sync_policies::ExactTime<sensor_msgs::msg::Image_<std::allocator >, sensor_msgs::msg::Image_<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::add<1>(std::tuple_element<1, std::tuple<message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const>, message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const> > >::type const&)
[d2vins_node-1] 29 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affab3fb, in message_filters::sync_policies::ExactTime<sensor_msgs::msg::Image_<std::allocator >, sensor_msgs::msg::Image_<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::checkTuple(std::tuple<message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const>, message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const>, message_filters::MessageEvent<message_filters::NullType const> >&)
[d2vins_node-1] 28 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affae528, in message_filters::Synchronizer<message_filters::sync_policies::ExactTime<sensor_msgs::msg::Image_<std::allocator >, sensor_msgs::msg::Image_<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType> >::signal(message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const> const&, message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&)
[d2vins_node-1] 27 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affae897, in message_filters::Signal9<sensor_msgs::msg::Image_<std::allocator >, sensor_msgs::msg::Image_<std::allocator >, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType, message_filters::NullType>::call(message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const> const&, message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&)
[d2vins_node-1] 26 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affdaf79, in message_filters::CallbackHelper9T<std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&>::call(bool, message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const> const&, message_filters::MessageEvent<sensor_msgs::msg::Image_<std::allocator > const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&, message_filters::MessageEvent<message_filters::NullType const> const&)
[d2vins_node-1] 25 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affde168, in std::function<void (std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>)>::operator()(std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>) const
[d2vins_node-1] 24 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff8228d, in std::Function_handler<void (std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>, std::shared_ptr<message_filters::NullType const>), std::function<void (std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&)> >::M_invoke(std::Any_data const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>&&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>&&, std::shared_ptr<message_filters::NullType const>&&, std::shared_ptr<message_filters::NullType const>&&, std::shared_ptr<message_filters::NullType const>&&, std::shared_ptr<message_filters::NullType const>&&, std::shared_ptr<message_filters::NullType const>&&, std::shared_ptr<message_filters::NullType const>&&, std::shared_ptr<message_filters::NullType const>&&)
[d2vins_node-1] 23 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff8785e, in std::function<void (std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&)>::operator()(std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&) const
[d2vins_node-1] 22 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff7a703, in std::Function_handler<void (std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image_<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&), std::_Bind<std::_Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)> (std::_Placeholder<1>, std::_Placeholder<2>, std::_Placeholder<3>, std::_Placeholder<4>, std::_Placeholder<5>, std::_Placeholder<6>, std::_Placeholder<7>, std::_Placeholder<8>, std::_Placeholder<9>)> >::M_invoke(std::Any_data const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&)
[d2vins_node-1] 21 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff8201d, in void std::_Bind<std::_Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)> (std::_Placeholder<1>, std::Placeholder<2>, std::Placeholder<3>, std::Placeholder<4>, std::Placeholder<5>, std::Placeholder<6>, std::Placeholder<7>, std::Placeholder<8>, std::Placeholder<9>)>::operator()<std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, void>(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&)
[d2vins_node-1] 20 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff87689, in void std::Bind<std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)> (std::Placeholder<1>, std::Placeholder<2>, std::Placeholder<3>, std::Placeholder<4>, std::Placeholder<5>, std::Placeholder<6>, std::Placeholder<7>, std::Placeholder<8>, std::Placeholder<9>)>::call<void, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul>(std::tuple<std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&>&&, std::Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul>)
[d2vins_node-1] 19 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff9029e, in std::invoke_result<std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)>&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&>::type std::invoke<std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)>&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&>(std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)>&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&)
[d2vins_node-1] 18 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff986ec, in void std::invoke_impl<void, std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)>&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&>(std::invoke_other, std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)>&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&)
[d2vins_node-1] 17 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff9e15b, in void std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)>::operator()<std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, void>(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&)
[d2vins_node-1] 16 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affa2d02, in void std::Bind<void (D2FrontEnd::D2Frontend::(D2FrontEnd::D2Frontend, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)>::call<void, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, 0ul, 1ul, 2ul>(std::tuple<std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&, std::shared_ptr<message_filters::NullType const> const&>&&, std::Index_tuple<0ul, 1ul, 2ul>)
[d2vins_node-1] 15 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affa7b2e, in std::invoke_result<void (D2FrontEnd::D2Frontend::*&)(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>), D2FrontEnd::D2Frontend*&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&>::type std::invoke<void (D2FrontEnd::D2Frontend::*&)(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>), D2FrontEnd::D2Frontend*&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&>(void (D2FrontEnd::D2Frontend::*&)(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>), D2FrontEnd::D2Frontend*&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&)
[d2vins_node-1] 14 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9affac65d, in void std::invoke_impl<void, void (D2FrontEnd::D2Frontend::*&)(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>), D2FrontEnd::D2Frontend*&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&>(std::invoke_memfun_deref, void (D2FrontEnd::D2Frontend::*&)(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>), D2FrontEnd::D2Frontend*&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const> const&)
[d2vins_node-1] 13 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff5639a, in D2FrontEnd::D2Frontend::stereoImagesCallback(std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>, std::shared_ptr<sensor_msgs::msg::Image<std::allocator > const>)
[d2vins_node-1] 12 Object "/root/D2SLAM/install/d2frontend/lib/liblibd2frontend.so", at 0x7fb9aff573c1, in D2FrontEnd::D2Frontend::processStereoframe(D2Common::StereoFrame const&)
[d2vins_node-1] 11 Object "/root/D2SLAM/install/d2vins/lib/d2vins/d2vins_node", at 0x55cac3534df6, in D2VINSNode::getMotionPredict(double) const
[d2vins_node-1] 10 Object "/root/D2SLAM/install/d2vins/lib/d2vins/d2vins_node", at 0x55cac3612b95, in D2VINS::D2Estimator::getMotionPredict(double) const
[d2vins_node-1] 9 Object "/root/D2SLAM/install/d2vins/lib/d2vins/d2vins_node", at 0x55cac3616cd6, in D2Common::IMUBuffer::operator
[d2vins_node-1] 8 Object "/root/D2SLAM/install/d2vins/lib/d2vins/d2vins_node", at 0x55cac361e3c2, in std::vector<D2Common::IMUData, std::allocatorD2Common::IMUData >::at(unsigned long)
[d2vins_node-1] 7 Object "/root/D2SLAM/install/d2vins/lib/d2vins/d2vins_node", at 0x55cac3626579, in std::vector<D2Common::IMUData, std::allocatorD2Common::IMUData >::_M_range_check(unsigned long) const
[d2vins_node-1] 6 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7fb995386368, in
[d2vins_node-1] 5 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7fb99538f698, in __cxa_throw
[d2vins_node-1] 4 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7fb99538f3e6, in std::terminate()
[d2vins_node-1] 3 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7fb99538f37b, in
[d2vins_node-1] 2 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28", at 0x7fb9953838d0, in
[d2vins_node-1] 1 Object "/usr/lib/x86_64-linux-gnu/libc-2.31.so", at 0x7fb994fa9858, in abort
[d2vins_node-1] 0 Object "/usr/lib/x86_64-linux-gnu/libc-2.31.so", at 0x7fb994fca00b, in raise
[d2vins_node-1] Aborted (Signal sent by tkill() 6778 0)
Hello, Thanks for sharing great work!
I'm trying to evaluate D2SLAM on single PC with multi-robot datasets, especially TUM datasets.
But i cannot find any guidance how to deal with TUM datasets in a multi-robot manner.
can you show me how to use sync_bag_player with TUM dataset?
Additionally, By using sync_bag_player, can i get multi-trajectory file?
For example, if i played 3 bag files. Does the agent give 3 trajectory file (.txt) respectively ?
Hi, and thanks for ur great job.
I do love what u have accomplished.
I'm new would u mind helping me?
can I use ur repo to see the results on Kitti and other datasets?
and can I use only 1 swarm?
thanks
Hello, earlier I consulted about D2SLAM configuration issues. According to your advice, I tried to run it using Dockerfile. However, after trying it on two computers, I found that the problem still exists. The specific error is related to the LibTorch version, and after my testing, I found that the version(https://download.pytorch.org/libtorch/cu113/libtorch-shared-with-deps-1.10.1%2Bcu113.zip )is more suitable.
However, when I am running the D2SLAM algorithm with a monocular fisheye camera, the algorithm prompts that it cannot receive the message, and I suspect this is related to the ROS communication method. Therefore, I am looking for relevant debugging and configuration methods. If you have any suggestions or solutions, please feel free to share them. Additionally, I would greatly appreciate it if you could update the Dockerfile for our direct use.
TUM corridor4_512 dataset
as the following pic:/vrpn_client/raw_transform
) in yellow.enable_loop:=true
, then got error messages from the terminal just as the follow pic. From the call stack, we know that the ERROR is about the loop_detector
module.您好 感谢您的工作!
我想把您的代码部署到真实的4架无人机上面,请问这样可行吗
你好,请问你们工作中使用的四个鱼眼相机是时间同步的吗?
Some errors occurred in the docker container.
root@294f8aca6b95:~/swarm_ws/src/sync_bag_player/scripts# rosrun sync_bag_player environment_setup.sh
SIOCADDRT: Operation not permitted
xhost: unable to open display ""
root@294f8aca6b95:~/swarm_ws/src/sync_bag_player/scripts#
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.