I installed this framework and followed the instructions, but when I run it, I get the following error:
ros melodic ubuntu 18.04
... logging to /home/mobiiin/.ros/log/5a6f3b96-10a2-11ec-b5bc-1002b5cd5c12/roslaunch mobiiin-ubu-22317.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://mobiiin-ubu:40883/
SUMMARY
========
PARAMETERS
* /dxslam/config: realsense_d435.yaml
* /dxslam/depth_topic: /camera/depth/image
* /dxslam/feature_topic: camera/color/feat...
* /dxslam/image_topic: /camera/rgb/image...
* /dxslam/pub_tf_child_frame:
* /dxslam/pub_tf_parent_frame: map
* /dxslam/reference_frame: vslam_origin
* /dxslam/vocabulary: DXSLAM.fbow
* /rosdistro: melodic
* /rosversion: 1.14.11
NODES
/
dxslam (dxslam_ros/dxslam)
map_vslam_tf (tf/static_transform_publisher)
auto-starting new master
process[master]: started with pid [22334]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 5a6f3b96-10a2-11ec-b5bc-1002b5cd5c12
process[rosout-1]: started with pid [22354]
started core service [/rosout]
process[map_vslam_tf-2]: started with pid [22365]
process[dxslam-3]: started with pid [22382]
File does not exist: DXSLAM.fbow
File does not exist: realsense_d435.yaml
Vocabulary: /home/mobiiin/git/dxslam/Vocabulary/DXSLAM.fbow
Config: /home/mobiiin/catkin_ws/src/dxslam_ros/config/realsense_d435.yaml
[dxslam-3] process has died [pid 22382, exit code -11, cmd /home/mobiiin/catkin_ws/devel/lib/dxslam_ros/dxslam __name:=dxslam __log:=/home/mobiiin/.ros/log/5a6f3b96-10a2-11ec-b5bc-1002b5cd5c12/dxslam-3.log].
log file: /home/mobiiin/.ros/log/5a6f3b96-10a2-11ec-b5bc-1002b5cd5c12/dxslam-3*.log
this is the file that fails while running. it doesn't go further than line 218.
and it has the correct path to vocabulary and yaml file
any help is appreciated
p.s.: there isn't any log file whatsoever, I don't know why it mentions the log file at the end
heres a part of the code where it reports it cant find the files then it goes forward: I think there's a possibility that this is not actually the issue
auto exist = [](std::string filename) {
std::ifstream fs(filename);
if (!fs.good()) std::cerr << "File does not exist: " << filename << std::endl;
return fs.good();
};
auto directory = [](std::string path) {
size_t pos = path.find_last_of("\\/");
return (std::string::npos == pos) ? "" : path.substr(0, pos);
};
// find the specified filenames in the same folder of the default vocabulary/config
if (!exist(p_vocabulary_)) {
p_vocabulary_ = directory(default_vocabulary) + "/" + p_vocabulary_;
if (!exist(p_vocabulary_)) return false;
}
if (!exist(p_config_)) {
p_config_ = directory(default_config) + '/' + p_config_;
if (!exist(p_config_)) return false;
}
std::cout << "Vocabulary: " << p_vocabulary_ << "\n";
std::cout << "Config: " << p_config_ << "\n";
P.S: I've found that this line is the one causing the problem: could it be an opencv issue?
cv::FileStorage config_fs(p_config_.c_str(), cv::FileStorage::READ);
catkin_make
in the~/catkin_ws
directory? Did yousource ~/catkin_ws/devel/setup.bash
? There are two errors in there -File does not exist: DXSLAM.fbow
andFile does not exist: realsense_d435.yaml
- have you checked that those files exist? $\endgroup$