- 博客(53)
- 收藏
- 关注
原创 windows ping不通oraclebox中的Ubuntu,无法进行ssh和vscode远程开发解决方法
到第四步,不用修改hostname也能ping通和ssh,需要注意的是nat网络和host only的网络只能开一个,要把nat的网卡关掉,不然还是ping不通。
2024-10-15 16:51:19
281
原创 cmake的帮助文档
其中里面的find modules模块里有各种库的cmake find和及相关变量和使用过程,个人觉得对cmake使用帮助挺大的,分享一下。cmake官网的文档指导文档。
2024-06-13 15:31:59
307
原创 使用ecal protobuf的时候编译过程中报ArenaString、FileDescriptor等无法解析的外部符号错误
里面说到一个Protobuf_USE_STATIC_LIBS变量,将protobuf设置为静态库,想到所报的错误都是关于_declspec(dllimport)符号导出相关的,于是在cmake项目配置过程中加入了Protobuf_USE_STATIC_LIBS变量,再次构建和编译,解决了问题。c++ cmake构建的项目在使用ecal和protobuf的时候编译过程报ArenaString、FileDescriptor等无法解析的外部符号错误。查找了很多官网和github上很多资料都没有提及相关的内容。
2024-06-13 15:22:16
440
原创 使用ecal后导致cmake项目的RelWithDebInfo编译类型会报依赖库NOTFOUND错误
原因:eCAL的cmake脚本强行把Debug/Release之外的类型映射为Release了;如果依赖库以Release类型编译安装就能正常找到,但依赖库pdb的调试符号就没法用了。cmake项目的RelWithDebInfo编译类型会报依赖库NOTFOUND,Release类型却正常,哪怕该依赖库是RelWithDebInfo类型编译的。直接的解决办法:把find_package(eCAL) 语句放在所有find_package语句之后,不让eCAL影响其他库。
2024-06-12 14:21:17
285
原创 windows下cmake使用protobuf依赖库构建项目could not find protobuf missing protobuf_libraries,include,exe
上拉取protobuf的repo后,git checkout到对应版本的tag上,拉取子模块,git submodle update --init --recusive,通过cmake构建protobuf工程,编译和install。第一种方法,手动指定libprotobuf.lib和libprotobuf-lite.lib的路径。在具体需要引用protobuf的工程中引入protobuf依赖库。在Windows下要使用特定版本的protobuf,在官网。里面的解决方法,通过add entry添加一项。
2024-06-07 15:33:49
889
原创 ubuntu上通过apt-get 安装指定版本的ecal
在ubuntu上想通过apt get直接安装ecal不自己编译源码安装的话,apt-cache policy ecal列出可用版本。然后apt-get install需要的版本。ecal官网给出的安装指令是。
2024-03-08 14:02:18
565
原创 symbol lookup error: ./capture: undefined symbol: _ZN2cv3MatC1Ev
的构造函数),原因是在编译时链接了一个版本的 OpenCV 库,但在运行时使用了另一个版本的库。比如系统自带有opencv库,自己又在另外的位置安装了不同版本的opencv库。解决办法,在cmake的时候指定oepncv的路径和版本。这个错误是程序运行时没有正确找到或加载所需的符号(
2024-02-23 20:18:32
689
1
原创 基于ecal的foxglove studio可视化工具的使用
ecal通讯在自动驾驶和机器人中的应用越来越多,在调试测试过程中,可以使用ecal monitor,ecal recoder和ecal player等工具,对ecal 消息进行监测录制回播。但是,有时候需要对消息进行可视化查看,比如雷达点云信息,相机图像等,可以使用foxglove studio可视化工具。foxglove studio有网页端和app,不想安装的话可以直接使用网页端。
2024-02-01 11:33:52
2107
原创 ubuntu下无法访问和ping通github的一种解决方法
sudo service network-manager restart命令,然后就可以正常ping通和打开github网页了。近期在ubuntu下突然无法访问github了,ping也无法ping通,尝试过更换不同的网络也无济于事。两行,然后重启网络,因为我的ubuntu20里/etc/init.d/networking 这个,所以改成了使用。sudo gedit /etc/hosts后再hosts文件输入。的ip地址并添加到hosts文件末尾就可以运行了。运气比较好,只按照文章中的第一步将。
2024-01-23 18:56:57
2392
原创 在ubuntu上交叉编译NVIDIA Jetson的arm64应用程序
在使用orin的时候,由于orin上的cpu编译速度较慢还有其他一些原因没有在自己电脑ubuntu上的x86上直接编译方便。直接在x86上编译出来的程序由于平台不同是不能在arm平台上运行的,要在x86上编译出arm平台的程序需要使用交叉编译工具。后来发现其实在toolchain解压出来的文件里已经有了一个toolchainfile.cmake文件了,所以直接在cmake工程build文件夹里使用。编译出来的so或者可执行程序会比x86编译出来的文件小5倍左右,将编好的程序放到orin上就可以运行啦。
2024-01-17 16:20:30
2302
原创 Ubuntu和windows双系统开机时没有grub选项直接进入windows,bios设置里也没有grub
解决办法,在windows下使用管理员身份打开命名行,输入bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi 重启之后就正常出现grub了。在双系统里使用引导工具时意外把grub启动项删掉了,导致系统启动时直接进入windows系统,没有出来grub的选项。
2023-12-14 15:34:11
2375
1
原创 ubuntu将本机的wifi网络通过网线分享给另一台机器(用于没有有线网络,重装系统后无wifi驱动或者另一台设备没有wifi网卡)
2.在pci ethernet中设置选择另一台机器的mac address,ipv4中选择share to other computer,另一台机器上设置为动态ip,连接上之后另一台机器即可上网。1.将两台机器通过网线连接。
2023-12-13 15:57:14
2542
原创 ubuntu卸载deb安装的软件
ubuntu下通过deb安装的软件,有时候想要卸载,通过软件中心里的installed里找不到对应的安装软件,比如xmind,通过官网deb安装包安装了,但是在软件中心里找不到。这时候通过dpkg -r xmind也是提示找不到xmind,原因是因为软件的名字不对,需要通过dpkg -l查看所有已安装的软件,找到需要卸载的软件名字,xmind的完整名字其实是xmind-vana,这时候再通过sudo dpkg -r xmind-vana就可以卸载了。
2023-10-30 11:18:01
1398
原创 ubuntu下remmina远程另一个windows或者ubuntu的使用
3)vnc和ssh,可视化图形界面,1和2的方式都没法像正常使用ubuntu desktop图形界面那么方便 ,使用rdp和ssh结合可以像正常使用ubuntu系统一样远程另一个ubuntu,选择vnc协议,输入ip用户名和密码,在ssh tunnel选项里enable ssh tunnel,输入账户和密码。1)使用ssh,使用ssh远程只能进入命令行,没有图形界面,选择ssh协议,输入ip用户名和密码即可,远程不上的话注意安装和开启ssh服务。在开启和配置了远程相关服务的前提下,
2023-10-18 10:44:03
5281
原创 两个ubuntu系统之间使用命令行传输文件
sshd检查ssh-server是否运行,如果没出现sshd,说明没启动或者没有安装。sudo apt-get install openssh-server 安装。/etc/init.d/ssh -start启动。确保两台机器之间ip能相互ping通。
2023-10-10 19:00:53
635
原创 ubuntu下调试崩溃程序,设置在当前目录生成core dump文件
但是从cat /proc/sys/kernel/core_pattern获取到的目录并找不到core dump文件。gdb your_exe_name core加载完即可调试core文件,使用bt可以看到调用堆栈。Aborted (core dumped)的时候core文件就会在执行目录下生成了。首先使用ulimit -c unlimited开启core dump记录。为了调试方便,将core dump文件生成到执行目录下。程序崩溃问题时需要调试生成的core dump文件。
2023-10-09 15:43:49
1674
原创 velo2cam calibration雷达部分lidarPattern调试
提取点云edge的时候判断点云与周围点的range阈值,所以圆心处的点云必须要有穿过圆心的点云存在不能把穿过圆心的点云过滤掉,不然圆心边缘不会提取为edge。点云过滤参数,以range距离是否满足参数进行距离过滤。
2023-09-25 11:42:38
328
原创 ubuntu使用静态库在编译时报relocation R_X86_64_TPOFF32 against symbol错误
原因是项目使用的是-fPIC ,而生成静态库时没有加 -fPIC 选项。中加上add_compile_options(-fPIC)即可。在cmakelist。
2023-09-22 09:39:22
2052
1
原创 ubuntu下pcl中voxel_grid.h和pcl/registration/impl/ndt.hpp报error: ‘Index’ is not a member of ‘Eigen’错误
ubuntu下编译代码报pcl中voxel_grid.h和pcl/registration/impl/ndt.hpp报error: ‘Index’ is not a member of ‘Eigen’错误,网上查找说把相关头文件中的。根本的原因是低版本的 gtsam 中使用的是较低版本的 Eigen,还没有。将gtsam的版本升级成4.1及以上版本的即可解决。
2023-09-21 14:43:39
670
原创 ubuntu中程序使用boost库构建过程报Boost::serialization,Boost::thread“but the target was not found错误
原因是没找到Boost::serialization和Boost::thread依赖,用。安装boost,确保boost库中有相关的组件。构建使用了boost的cmake项目时,报。cmakelist中需要添加对应的组件,
2023-09-21 11:13:46
863
原创 velo2cam_calibration标定板参数设置
二维码角点坐标计算:以标定板中心为坐标原点,以每个二维码左上角角点开始顺时针顺序计算四个角点坐标,如第二张仿真图中的红色圆圈,利用delta_width_qr_center_和delta_height_qr_center_以及marksize计算。四个圆心的坐标计算:以标定板中心为坐标原点,利用delta_width_circles_和delta_height_circles_计算四个圆心坐标。
2023-09-19 17:38:51
468
原创 cmake连接自己封装的库时报接口找不到定义问题
如果自己的库引用了其他库,需要把自己的库在target_link_libraries中放在被引用的库前面。自己编译好库后在cmake中引用,链接时报接口未定义的错误。
2023-09-18 19:30:42
256
原创 ubuntu下使用yaml cpp报和YAML::detail::node_data::convert_to_map和empty_scalar未定义的错误
和undefined reference to `YAML::detail::node_data::convert_to_map(std::shared_ptr<YAML::detail::memory_holder> const&)'link_directories(/usr/local/lib)或者link_directories(libyaml-cpp.a文件所在的目录)最终解决方法,改为使用yaml cpp静态库,不使用动态库,即编译成功。
2023-09-18 15:44:45
1776
原创 git撤销已经push到远程仓库的commit
对已经提交到远程仓库的commit,想要撤销可以通过reset或者revert来撤销,使用reset撤销时会把撤销的commit信息一同删除,revert撤销时保留commit信息生成一个新的撤销的commit。git reset --hard commit_id回退到指定commit,或者git。git push origin HEAD --force或者。--hard HEAD^回退到上一个commit;
2023-09-04 14:02:58
2762
原创 无法解析的外部符号 “void __cdecl boost::throw_exception(class std::exception const &)”解决方法
1.boost库默认定义了BOOST_NO_EXCEPTIONS宏,需要用户自定义throw_exception函数,在报错的那个cpp中重新定义throw_exception函数。2.在项目属性中添加/EHsc。
2023-08-30 20:11:51
780
原创 opencv使用aruco模块
直接使用opencv.exe安装的opencv依赖库使用aruco模块时编译会报错无法解析的符号,原因是aruco模块未编译没有aruco的lib和dll,要使用aruco需要自己重新编译opencv加上opencv_contrib模块。找到对应的.cmake文件,通过修改下载地址添加使用代理加速下载服务网址。3.cmake过程中下载缓慢或者下载失败解决。github无法访问或者下载速度慢时可以在。
2023-08-28 17:51:00
496
原创 PCL使用自定义的点类型,滤波过程相关中出现无法解析符号问题
2.在自定义的点云类型头文件最前面要加上#define PCL_NO_PRECOMPILE宏定义,一定要在最前面加。3.使用头文件的过程,也要把include头文件放在其他pcl头文件前面include。自定义了点云类型,滤波过程中pcl相关函数无法解析的符号。1.要确保自定义点云类型正确,可以参考官方文档。
2023-08-25 17:06:20
160
原创 使用PCL报random_shuffle找不到标识符的解决
std::random_shuffle 在 C++14 已经标记 Deprecated ,C++ 17 已经 Removed。将项目改成使用c++14或者c++11编译,set(CMAKE_CXX_FLAGS "-std=c++11")也可以修改pcl用 std::shuffle 代替。
2023-08-25 17:00:18
660
原创 ubuntu20使用velo2cam_gazebo
1)把gui设置为true,弹出gazebo的时候一直卡在preparing your word,这是因为在下载模型,直接去github手动下载模型即可。运行的是单目和雷达仿真,roslaunch velo2cam_gazebo mono_hdl64_p1_s1_real.launch。GetSimTime()错误,由于gazebo版本不同api改名导致,修改为SimTime()即可;中的issues#13,修改为#include
2023-08-23 14:35:42
441
2
原创 VS编译错误E0266“byte“不明确或者C2872“byte“不明确的符号
解决办法,注释掉using namespace std,在需要用std函数或类型前加上std::,或者数量太多每个都加太繁琐的话,可以直接在函数内前面加上using namespace std。由于使用了using namespace std导致出现byte重定义,不明确的符号。
2023-08-03 19:36:02
2568
原创 pcl::getMinMax3D获取点云坐标最大值最小值
输入点云数据,将所有x y z中最小的值和x y z中最大的值输出到pcl::Point中,因为本人使用只需要xyz值,对point其他数据比如intensity是否也有最大值最小值输出还不确定,有其他数据极值需求的,需要测试确认后使用。
2023-06-29 11:19:19
1921
原创 pcl::PointCloud Ptr 作为成员变量的初始化
pcl PointCloud Ptr非成员变量时可以直接在声明中初始化pcl::PointCloud::Ptr p(new pcl::PointCloud());作为类成员变量时,需要额外的初始化。可以在构造函数初始化列表中初始化或者构造函数内初始化。
2023-06-15 17:19:25
1166
原创 c++ ecal初始化 eCAL::Initialize()一直卡住不返回
在全局变量类对象的构造函数中调用ecal初始化函数 eCAL::Initialize()一直卡住不返回,具体原因不明,可能是跟对象是全局变量的构造前系统相关资源权限有关。把初始化的调用放在成员函数中,不在构造函数中没这个问题。
2023-05-31 17:09:51
172
1
原创 Windows下cmake引用ecal库构建报Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR
构建过程报错Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR。使用单独安装的protobuf作为protobuf 路径仍报错,只能使用ecal自带的protobuf。解决方法:在cmakelist中find_package(eCAL REQUIRED)前面添加。cmakelist.txt中引用ecal库。
2023-05-25 17:28:59
1252
原创 c++异步操作std::async
②.std::launch::deferred:函数只有在 std:async 所返回的期值的 get 或 wait 得到调用时才执行、并且调用方会阻塞至运行结束,否则不执行。//async有两种启动策略 一是马上异步执行 launch::async 一是延迟到调用get 函数才异步执行 launch::deferred。执行结果:会先打印hello word 再执行异步操作打印,等待异步操作结束后结束main函数。①.std::launch::async::函数必须以异步方式运行,即创建新的线程。
2023-05-25 11:51:26
286
Extrinsic Calibration Method for LiDAR and Camera Sensor
2023-10-13
NDT论文,Magnusson-2009-Doctoral-Thesis-3D-NDT.pdf
2023-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人