localization_in_auto_driving's People
Forkers
njauwangkai yxw027 weixiaopassking gutsgwh1997 autoperson dbsgws daoran sheepwxy haner277 collector-m liucsg oceanforever maizifei bulangtuihuo zeng-xiangwei fkgkdfgy hezip jinqiang buaahuangbs renping0535 mengxingshifen1218 zzy0713 auroralwj sysuzyc chenmeng0508 liangwu89 richardhansir insaneyilin chenhui1025 xiaoxinnn waihekor ldx596999414 ruixianzhang666 ilucky7 mindthink josephchen5 ideallic eglrp kinggreat24 alazylearner wanghuayou1028 joyuagv wbercode zhangyin497 qian5683 pxc2017 muzuixiaohai herolin12 kingshida xiaojake dongfangturing tristaclover simongeng1 ipandaxin forrest-z lucianzhong hdm8809 zhutongseu1994 whuzs wangjibohome doruimifasou tanqingge serena2018 lemonhi cranesoar lipaul lachiven sunnyaaron lianshangni0922 holygen solarslam alpha-baymax fzk19996 schaosun wds01060202 jolins ryontang geerniya fengpan1010 gagnhai qff892444 apmmaster 849631323 lu-minous xlan09 laney097 aoqixiaoning huangxiongd magicchos qiaozhijian ma-xiaowen xikunliu-huskit clarkren lybhit shawn9091 catsonger sjtumichael aimicm fsswl coolbatigollocalization_in_auto_driving's Issues
undefined reference to `google::InitGoogleLogging(char const*)'
after install glog and gflags still report error
程序编译出错 multiple definition of `main'
您好,在编译(每一个tag)的时候会报错,报错如下:
[ 93%] Building CXX object lidar_localization/CMakeFiles/front_end_node.dir/src/sensor_data/gnss_data.cpp.o
[100%] Linking CXX executable /home/s/ros_ws/devel/lib/lidar_localization/front_end_node
CMakeFiles/front_end_node.dir/build/CMakeFiles/3.5.1/CompilerIdCXX/CMakeCXXCompilerId.cpp.o: In function main:
CMakeCXXCompilerId.cpp:(.text.startup+0x0): multiple definition of main'
CMakeFiles/front_end_node.dir/src/front_end_node.cpp.o:front_end_node.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status
lidar_localization/CMakeFiles/front_end_node.dir/build.make:974: recipe for target '/home/s/ros_ws/devel/lib/lidar_localization/front_end_node' failed
make[2]: *** [/home/s/ros_ws/devel/lib/lidar_localization/front_end_node] Error 1
CMakeFiles/Makefile2:492: recipe for target 'lidar_localization/CMakeFiles/front_end_node.dir/all' failed
make[1]: *** [lidar_localization/CMakeFiles/front_end_node.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j12 -l12" failed
请问这可能是什么原因?
tap5.0 rosluanch错误
我尝试着一个一个Tag运行,看看每一次的优化。
在git clone 5.0版本,并catkin_make后,roslaunch front_end.launch后,报告process has died。我不太清楚是哪里的问题,因为我并没有对代码做任何的修改。完整的信息如下:
hurricanezj@ZhaoJie-Alienware-17-R4:~/catkin_ws$ roslaunch lidar_localization front_end.launch
... logging to /home/hurricanezj/.ros/log/99c924c4-88fd-11ea-91e7-9cb6d0effb2d/roslaunch-ZhaoJie-Alienware-17-R4-25122.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://ZhaoJie-Alienware-17-R4:34547/
SUMMARY
PARAMETERS
-
/rosdistro: kinetic
-
/rosversion: 1.12.14
NODES
/
front_end_node (lidar_localization/front_end_node)
rviz (rviz/rviz)ROS_MASTER_URI=http://localhost:11311
process[rviz-1]: started with pid [25139]
process[front_end_node-2]: started with pid [25140]
[front_end_node-2] process has died [pid 25140, exit code -11, cmd /home/hurricanezj/catkin_ws/devel/lib/lidar_localization/front_end_node __name:=front_end_node __log:=/home/hurricanezj/.ros/log/99c924c4-88fd-11ea-91e7-9cb6d0effb2d/front_end_node-2.log].
log file: /home/hurricanezj/.ros/log/99c924c4-88fd-11ea-91e7-9cb6d0effb2d/front_end_node-2*.log
希望您可以抽空帮我看看。运行环境为Ubuntu16.04,ros-kinetic ,前面的tag3.0与tag4.0均正常。
环境的配置能否再详细一点?
运动畸变的小问题
在models/scan_adjust/distortion_adjust.cpp中有下面的代码片段:
float start_orientation = atan2(origin_cloud_ptr->points[0].y, origin_cloud_ptr->points[0].x);
Eigen::AngleAxisf t_V(start_orientation, Eigen::Vector3f::UnitZ());
Eigen::Matrix3f rotate_matrix = t_V.matrix();
Eigen::Matrix4f transform_matrix = Eigen::Matrix4f::Identity();
transform_matrix.block<3,3>(0,0) = rotate_matrix.inverse();
pcl::transformPointCloud(*origin_cloud_ptr, *origin_cloud_ptr, transform_matrix);
velocity_ = rotate_matrix * velocity_;
angular_rate_ = rotate_matrix * angular_rate_;
这里对原始点云绕Z轴旋转start_orientation的角度不是很理解,而且角速度和线速度都有这样的操作。知乎上面也没有给出相应的解释,谢谢分享。
程序运行报错
bool DistortionAdjust::AdjustCloud(CloudData::CLOUD_PTR& input_cloud_ptr, CloudData::CLOUD_PTR& output_cloud_ptr) {
CloudData::CLOUD_PTR origin_cloud_ptr(new CloudData::CLOUD(*input_cloud_ptr));
output_cloud_ptr.reset(new CloudData::CLOUD());
...
}
这里的输入和输出不能是同一个指针,在里边的函数首先reset了。
偶尔会出现Eigen对齐报错
front_end_node: /usr/local/include/eigen3/Eigen/src/Core/DenseStorage.h:128: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 32>::plain_array() [with T = float; int Size = 16; int MatrixOrArrayOptions = 0]: Assertion `(internal::UIntPtr(eigen_unaligned_array_assert_workaround_gcc47(array)) & (31)) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.
不定时出现,使用了上面eigen网页的办法能够解决,但运行时偶尔会出现,重新编译又不会出现,不知道有没有什么好的解决办法。
bag files
bag 数据可以从别的地方下载吗?baidu 网盘从北美无法访问
How to test my own pointcloud on this model
Hi,
I'd like to test my own data on this model, is it possible to do it?
Looking forward to hearing from you soon!
编译问题
编译出现错误:
front_end.cpp:(.text._ZN4YAML18TypedBadConversionIfED2Ev[_ZN4YAML18TypedBadConversionIfED5Ev]+0xf): undefined reference to `YAML::BadConversion::~BadConversion()'
请问你装的yaml-cpp是什么版本的?@Little-Potato-1990
定位
定位
map export
Hi,
Is it possible to export the map showed in Rviz?
Thank you very much!
Eigen Warning:开启roslaunch 都会报错 Eigen的错误,请问这个怎么解决
tag 3.0代码编译报错
重定位匹配
我用保存下来的pcd地图去做ndt匹配重定位的时候,误差极大,看轨迹是输出错误的轨迹,这是正常的吗?
github仓库无法下载
一些问题
你好,我在运行roslaunch lidar_localization mapping出现eigen的错误,如下:
back_end_node: /home/zhangshun/catkin_ws/src/localization_in_auto_driving/lidar_localization/third_party/eigen3/Eigen/src/Core/DenseStorage.h:128: Eigen::internal::plain_array<T, Size, MatrixOrArrayOptions, 32>::plain_array() [with T = float; int Size = 16; int MatrixOrArrayOptions = 0]: Assertion `(reinterpret_cast<size_t>(eigen_unaligned_array_assert_workaround_gcc47(array)) & (31)) == 0 && "this assertion is explained here: " "http://eigen.tuxfamily.org/dox-devel/group__TopicUnalignedArrayAssert.html" " **** READ THIS WEB PAGE !!! ****"' failed.
请问这个怎么解决呢?谢谢
前端里程计扩展失败
乾哥你好,在使用您的前端里程计扩展成lego_loam的过程中,我更改了launch中的点云和里程计话题,关闭了lego_loam中rviz的启动,但是运行的时候rviz不会显示点云,扩展不成功,请问扩展时候需要注意些什么
Tag14.0无法编译
[ 2%] Built target geometry_msgs_generate_messages_cpp
make[2]: *** No rule to make target '/usr/lib/libf77blas.so', needed by '/home/hurricanezj/catkin_ws/devel/lib/aloam_velodyne/alaserMapping'. Stop.
CMakeFiles/Makefile2:2164: recipe for target 'localization_in_auto_driving/A-LOAM-devel/CMakeFiles/alaserMapping.dir/all' failed
make[1]: *** [localization_in_auto_driving/A-LOAM-devel/CMakeFiles/alaserMapping.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 2%] Built target pcl_msgs_generate_messages_eus
[ 3%] Built target kittiHelper
[ 3%] Built target rosgraph_msgs_generate_messages_cpp
[ 3%] Built target pcl_msgs_generate_messages_lisp
[ 3%] Built target pcl_msgs_generate_messages_nodejs
make[2]: *** No rule to make target '/usr/lib/libf77blas.so', needed by '/home/hurricanezj/catkin_ws/devel/lib/aloam_velodyne/alaserOdometry'. Stop.
CMakeFiles/Makefile2:2238: recipe for target 'localization_in_auto_driving/A-LOAM-devel/CMakeFiles/alaserOdometry.dir/all' failed
make[1]: *** [localization_in_auto_driving/A-LOAM-devel/CMakeFiles/alaserOdometry.dir/all] Error 2
[ 3%] Built target ascanRegistration
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j8 -l8" failed
catkin_make的报错信息如上,应该是A-LOAM部分的依赖问题,我用sudo apt-get install libblas-dev
安装了libblas了,但还是报错。而其实我也不需要A-LOAM的前端,我只是想看看定位的效果。请问,有什么建议吗?
数据集的百度网盘链接失效了
求更新
velocity_data.cpp第66行
哥,这个速度顺序写错了吧,而且就算是w X r, 这个66行里也写错了吧
64 delta_v(0) = w(1) * r(2) - w(2) * r(1);
65 delta_v(1) = w(2) * r(0) - w(0) * r(2);
66 delta_v(2) = w(1) * r(1) - w(1) * r(0);
这个速度叉乘,66行应该是 delta_v(2) = w(0) * r(1) - w(1) * r(0); 吧
图优化
你好,非常感谢你的工作,这里姿态的信息矩阵是否会更新呢
When I roslaunch tag 12.0 mapping.launch, it shows that on my end and I am not sure is that my cpu problem
terminate called after throwing an instance of 'YAML::BadFile'
what(): bad file
terminate called after throwing an instance of 'YAML::BadFile'
what(): bad file
terminate called after throwing an instance of 'YAML::BadFile'
what(): bad file
[loop_closing_node-6] process has died [pid 9155, exit code -6, cmd /home/xc/lab_ws/devel/lib/lidar_localization/loop_closing_node __name:=loop_closing_node __log:=/home/xc/.ros/log/796c8116-6417-11ec-8d7c-dda1d1a189dd/loop_closing_node-6.log].
log file: /home/xc/.ros/log/796c8116-6417-11ec-8d7c-dda1d1a189dd/loop_closing_node-6*.log
[viewer_node-7] process has died [pid 9156, exit code -6, cmd /home/xc/lab_ws/devel/lib/lidar_localization/viewer_node __name:=viewer_node __log:=/home/xc/.ros/log/796c8116-6417-11ec-8d7c-dda1d1a189dd/viewer_node-7.log].
log file: /home/xc/.ros/log/796c8116-6417-11ec-8d7c-dda1d1a189dd/viewer_node-7*.log
[back_end_node-5] process has died [pid 9154, exit code -6, cmd /home/xc/lab_ws/devel/lib/lidar_localization/back_end_node __name:=back_end_node __log:=/home/xc/.ros/log/796c8116-6417-11ec-8d7c-dda1d1a189dd/back_end_node-5.log].
log file: /home/xc/.ros/log/796c8116-6417-11ec-8d7c-dda1d1a189dd/back_end_node-5*.log
缺少头文件
/home/***/localization_in_autodriving_ws/src/lidar_localization/src/apps/back_end_node.cpp:9:10: fatal error: lidar_localization/optimizeMap.h: 没有那个文件或目录 #include "lidar_localization/optimizeMap.h"
tag14下编译提示缺少头文件,我去检查了一下好像确实没有哎?请问是我哪里出问题了吗?
some doubts and bugs
一些疑惑和bug,如有错误,请您谅解。
1.void VelocityData::TransformCoordinate(Eigen::Matrix4f transform_matrix)
{
....
Eigen::Vector3d r(matrix(0,3), matrix(1,3), matrix(2,3));
Eigen::Vector3d delta_v;
delta_v(0) = w(1) * r(2) - w(2) * r(1);
delta_v(1) = w(2) * r(0) - w(0) * r(2);
**delta_v(2) = w(1) * r(1) - w(1) * r(0);** //这里叉乘感觉 应该是w(0) * r(1) - w(1) * r(0)
v = v + delta_v;
....
}
- data_pretreat_flow.cpp 中
bool DataPretreatFlow::TransformData() {
gnss_pose_ = Eigen::Matrix4f::Identity();
current_gnss_data_.UpdateXYZ();
gnss_pose_(0,3) = current_gnss_data_.local_E;
gnss_pose_(1,3) = current_gnss_data_.local_N;
gnss_pose_(2,3) = current_gnss_data_.local_U;
gnss_pose_.block<3,3>(0,0) = current_imu_data_.GetOrientationMatrix();
gnss_pose_ *= lidar_to_imu_;
**current_velocity_data_.TransformCoordinate(lidar_to_imu_);**//该变换感觉是反了,是否应该改为lidar_to_imu_.reverse().
distortion_adjust_ptr_->SetMotionInfo(0.1, current_velocity_data_);
distortion_adjust_ptr_->AdjustCloud(current_cloud_data_.cloud_ptr, current_cloud_data_.cloud_ptr);
return true;
}
3.distortion_adjust.cpp
bool DistortionAdjust::AdjustCloud(...)
{
float orientation_space = 2.0 * M_PI;
float delete_space = 5.0 * M_PI / 180.0;
float start_orientation = atan2(origin_cloud_ptr->points[0].y, origin_cloud_ptr->points[0].x);
Eigen::AngleAxisf t_V(start_orientation, Eigen::Vector3f::UnitZ());
Eigen::Matrix3f rotate_matrix = t_V.matrix();
Eigen::Matrix4f transform_matrix = Eigen::Matrix4f::Identity();
transform_matrix.block<3,3>(0,0) = rotate_matrix.inverse();
pcl::transformPointCloud(*origin_cloud_ptr, *origin_cloud_ptr, transform_matrix);// 这边为什么要将 首个激光点 旋转到 雷达的X轴上去呢?
velocity_ = rotate_matrix * velocity_;// 没能明白您这里的线速度和角速度为什么还需要坐标变换,您能解释下吗,麻烦了。
angular_rate_ = rotate_matrix * angular_rate_;
for (size_t point_index = 1; point_index < origin_cloud_ptr->points.size(); ++point_index) {
float orientation = atan2(origin_cloud_ptr->points[point_index].y, origin_cloud_ptr->points[point_index].x);
if (orientation < 0.0)
orientation += 2.0 * M_PI;
if (orientation < delete_space || 2.0 * M_PI - orientation < delete_space)
continue;
float real_time = fabs(orientation) / orientation_space * scan_period_ - scan_period_ / 2.0;
Eigen::Vector3f origin_point(origin_cloud_ptr->points[point_index].x,
origin_cloud_ptr->points[point_index].y,
origin_cloud_ptr->points[point_index].z);
Eigen::Matrix3f current_matrix = UpdateMatrix(real_time);
Eigen::Vector3f rotated_point = current_matrix * origin_point;
Eigen::Vector3f adjusted_point = rotated_point + velocity_ * real_time;
CloudData::POINT point;
point.x = adjusted_point(0);
point.y = adjusted_point(1);
point.z = adjusted_point(2);
output_cloud_ptr->points.push_back(point);
}
pcl::transformPointCloud(*output_cloud_ptr, *output_cloud_ptr, transform_matrix.inverse());
return true;
}
LoopClosing::DetectNearestKeyFrame 函数的最后部分不理解
if (min_distance > detect_area_) {
skip_num = std::max((int)(min_distance / 2.0), loop_step_);
return false;
} else {
skip_num = loop_step_;
return true;
}
闭环修正那一篇提出:假如本次检测,当前帧和满足条件1 的历史帧中的最短距离是100米,而我们需要的是两米范围内的关键帧,那么我们认为在接下来的至少98米路程内,是不会有满足条件的历史帧的,那么这段距离内就没必要检测了。
为什么接下来的路程内不会有满足条件的历史帧? min_distance
是距离值,赋给skip_num
做跳过的帧数,物理意义不一致
gps信号为nan
在data_pretreat_flow.cpp中的168行
我在断点设在这之后:current_gnss_data_.UpdateXYZ();
其中current_gnss_data_.local_E输出的数据为nan。
请问下这是什么原因。
以下是我一帧的gps信号
header:
seq: 9
stamp:
secs: 1599204405
nsecs: 861517906
frame_id: "gps"
status:
status: 0
service: 1
latitude: 24.6181951667
longitude: 118.036970833
altitude: 33.6
position_covariance: [11.559999999999999, 0.0, 0.0, 0.0, 11.559999999999999, 0.0, 0.0, 0.0, 184.95999999999998]
position_covariance_type: 1
时间同步的一个小疑惑
在知乎中发现您的这一系列文章,觉得发现了宝藏,正在努力学习,感谢您做的这些工作。这处代码为何要加上这一句?这样只对首帧的雷达数据对应上对齐的IMU,假如第二帧雷达数据没有对应上IMU数据,不将该帧点云丢弃吗?
编译出现问题
我在Ubuntu2004环境下使用catkin_make编译出现如下错误:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
G2O_CORE_LIBRARY
linked by target "matching_node" in directory /home/joy/WS/localization_in_auto_driving/src/lidar_localization
linked by target "back_end_node" in directory /home/joy/WS/localization_in_auto_driving/src/lidar_localization
linked by target "front_end_node" in directory /home/joy/WS/localization_in_auto_driving/src/lidar_localization
linked by target "data_pretreat_node" in directory /home/joy/WS/localization_in_auto_driving/src/lidar_localization
当然几乎所有发节点都包含这个错误,想请教一下这个是什么问题,
运行前端出错
catkin_make lidar_localization error
ubuntu16.04,对lidar_localization执行catkin_make
G2O 出现软链接问题
/usr/bin/ld: cannot find -lG2O_TYPES_DATA-NOTFOUND
/usr/bin/ld: cannot find -lG2O_CORE_LIBRARY-NOTFOUND
/usr/bin/ld: cannot find -lG2O_STUFF_LIBRARY-NOTFOUND
/usr/bin/ld: cannot find -lG2O_SOLVER_PCG-NOTFOUND
/usr/bin/ld: cannot find -lG2O_SOLVER_CSPARSE-NOTFOUND
/usr/bin/ld: cannot find -lG2O_SOLVER_CHOLMOD-NOTFOUND
/usr/bin/ld: cannot find -lG2O_TYPES_SLAM3D-NOTFOUND
/usr/bin/ld: cannot find -lG2O_TYPES_SLAM3D_ADDONS-NOTFOUND
是不是我的环境有问题?
修改了部分软链接,编译安装了setup_file里的g2o,问题还是存在
有什么出坑的经验吗?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.