- 博客(69)
- 资源 (6)
- 收藏
- 关注

原创 ubuntu18,ros-melodic环境下,编译opencv3.2支持cuda10.0及opengl
https://www.kanzhun.com/jiaocheng/187764.html
2021-02-03 11:20:11
592

原创 卡尔曼滤波理解
卡尔曼计算步骤分为预测和修正两个阶段一,预测阶段X_pred = A * X_evlt + B * uX_pred_p = A * X_evlt_p * A.transpose() + Q矩阵中的数据为各维度的分量,如二维噪声矩阵中的值是每个维度的噪声分量。u为系统控制量,A和B为系统参数 X_evlt表示上一时刻的最优估计结果 X_pred为当前时刻预测结果 A.transpose()表示矩阵转置 X_pred_p为预测结果的协方差,表示预测的误差(不确定性) X_...
2021-01-15 00:47:42
287

原创 windows使用cmake构建Qt5项目
1,清华镜像源下载qt-opensource-windows-x86-5.12.9.exe2,项目src目录文件有如下:这些文件可以通过QtCreator新建一个Qt项目,然后把文件拷贝到cmake项目里面去3,最关键的还是CMakeLists.txt,最简单的内容如下:cmake_minimum_required(VERSION 3.5.1)project(qui)set(Qt5_DIR "D:/qt5/5.12.9/msvc2017_64/lib/cmake/Qt5")set(CMA
2020-12-19 15:08:08
4591
2

原创 DCMTK解析DICOM汇总
(0002,0000) Group Length VR: UL Length: 4 Value: 184 (0002,0001) File Meta Information Version VR: OB Length: 2 Value: 0(0002,0002) Media Storage SOP Class UID .
2020-12-05 13:14:21
2132

原创 ubuntu18编译安装opencv3.4以及模块opencv_contrib3.4且支持CUDA
要编译opencv3版本的but_velodyne_lib1,在github上下载opencv和opencv_contrib,master为opencv4,选择3.4版本2,安装依赖sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install p
2020-11-30 14:04:25
386

原创 windows10安装ROS2
官网安装说明:https://index.ros.org/doc/ros2/Installation/Foxy/Windows-Install-Binary/以下是我安装成功的步骤1,以管理员模式打卡CMD2,安装Chocolatey,CMD中执行如下内容@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Co
2020-11-28 00:02:22
2433

原创 Ubuntu18安装auoware1.12.0
安装参照官网示例:https://github.com/Autoware-AI/autoware.ai/wiki/Source-Buildhttps://zhuanlan.zhihu.com/p/123347321安装过程中,执行rosdep update会出现timeout错误将/usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_list.py、gbpdistro_support.py、rep3.py中的DOWNLOAD_TIM.
2020-11-23 13:04:52
259

原创 卡尔曼滤波理解
根据实际情况确定预测公式及预测矩阵。 把上一时刻最优估计值作为预测公式的输入得到当前时刻的预测值(这里提到的值并非数值,而是状态矩阵) 根据上一时刻最优估计值的协方差矩阵和预测矩阵再加上预测噪声(协方差,因为系统预测不是完全准确)计算当前时刻预测值的协方差矩阵 已知当前时刻的测量值和测量值的协方差矩阵 根据当前时刻的预测值,预测值协方差矩阵,测量值,测量值协方差矩阵,根据两者的高斯分布相乘公式求得当前时刻的最优估计值及其协方差矩阵 当前时刻最优估计值的协方差矩阵是根据当前时刻的预测值协方差矩阵和测
2020-10-27 12:56:30
169

原创 UCOS配置SysTick的LOAD值
UCOSIII中OS_CFG_TICK_RATE_HZ即UCOS是UCOS的时钟节拍频率,值为1000u,即一个节拍1ms。要通过设置SysTick的LOAD值来达到1ms产生一次中断。以ms为单位,设UCOS频率为每毫秒X个节拍,以HCLK_Div8作为SysTick的时钟源,设HCLK的频率为YMHZ/s换成毫秒为Y*10^3/ms,即SysTick频率为每毫秒Y*10^3个节拍。SysTick运行LOAD个节拍产生一次中断即是UCOS的一个节拍,那么LOAD*X = Y*10^3,得到LO
2020-10-27 12:55:16
1049

原创 Ubuntu18.04上安装ROS Melodic
第一步要做的就是替换系统默认的源为aliyun镜像源:编辑/etc/apt/sources.list文件,将里面的内容替换为(替换之前建议先备份原始文件): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ -
2020-10-24 12:58:48
248
1
原创 卡尔曼滤波增益推导
思路是通过构建最优估计误差方程,将K引入误差方程,然后求误差方程的协方差矩阵,对协方差矩阵求K的偏导,偏导等于0时即表示误差最小,此时导数方程含有K值,即可求得最优K值。其等于后验估计状态变量的各个元素方程的和,所以它的值就表示了后验估计的准确性,其值越小表示后验估计误差越小。H矩阵是将预测向量与测量向量的转换矩阵,这个式子代表的意思是将当前时刻的测量值转成状态空间的状态向量。6)后验估计:根据先验估计,当前时刻的测量值,卡尔曼增益计算当前最优估计值。类比上面叙述的数据融合的思想将预测值和测量值表示出来。
2024-01-20 16:46:37
1560
原创 ubuntu20安装ros foxy和ros noetic以及turtlebot3
ubuntu20镜像制作U盘启动用UUI,用UltraISO一直没有成功1,安装两个版本的ROS,均可以先添加源,然后安装desktop版的方式安装2,其他依赖安装常规说明安装3,cartographer安装1)cartographer官网提供的是ros1上的安装教程,对于ros2已经可以很方便得用apt-get的方式安装参考:https://ubuntu.com/blog/simulate-the-turtlebot32)ubuntu20上可以同时安装ros foxy和ros n.
2021-04-07 14:25:15
1156
1
原创 Chocolatey安装ROS2依赖问题
在windows上安装ros-foxy,需要通过Chocolatey安装以下依赖 asio.1.12.1.nupkg bullet.2.89.0.nupkg cunit.2.1.3.nupkg eigen-3.3.4.nupkg tinyxml-usestl.2.6.2.nupkg tinyxml2.6.0.0.nupkg log4cxx.0.10.0.nupkg 如果安装过一次然后卸载了,再次安装这些依赖的时候会报错:The ru
2021-03-16 23:08:34
533
1
原创 ubuntu18系统引导修复
问题:修改了/etc/default/grub中的GRUB_DEFAULT,导致电脑开机自动进入BIOS无法进入系统1,以U盘作为启动盘,在引导页按e进入grub界面2,注意grub与grub2的区别,本机是grub23,输入命令 ls 查看分区,其中有(hd1,gpt2)4,输入命令 ls(hd1,gpt2)/ 可以看到该分区下的目录结构,据此判断该分区是否为跟分区5,声明根分区set root=(hd1,2) 等同于set root=(hd1,gpt2)6,加载内核...
2021-03-03 12:55:45
989
原创 ubuntu内核升级导致Nvidia显卡未启动
sudo vim /etc/default/grub注释GRUB_TIMEOUT_STYLE=hidden,并将GRUB_TIMEOUT的值设为大于10,其表示grub界面停留的时间,执行如下,然后重启sudo update-grub选择ubuntu高级选项,选择一个老的内核
2021-03-03 09:51:59
789
原创 kitti2bag使用
以2011_09_29_drive_0026为例,从Kitti上下载如下文件并解压2011_09_29_calib.zip2011_09_29_drive_0026_sync.zipkitti2bag是一个python脚本文件,可自定义一个kitti2bag.py文件,将下载的kitti2bag里的内容拷贝进去。在kitti2bag.py所在目录执行如下:python kitti2bag.py -t 2011_09_29 -r 0026 raw_synced /home/reiko/K
2020-12-27 11:45:17
895
原创 CUDA与OpenCV关于CUDA_nppi_LIBRARY问题
ros-melodic默认需要OpenCV3.2,下载OpenCV3.2源码后,编译支持CUDA,会报错缺少CUDA_nppi_LIBRARY定义,系统CUDA是10.0。这是由于CUDA9以后就去掉了nppi。在CUDA的lib目录下查找nppi,没有nppi.so。CUDA10中的nppi库为:find_cuda_helper_libs(nppial)find_cuda_helper_libs(nppicc)find_cuda_helper_libs(nppicom)find_cud
2020-12-15 11:44:39
2628
1
原创 windows使用cmake开发C++注意事项记录
一,库引用如引用OpenCV,最快捷的方式是在官网下载如opencv-3.4.10-vc14_vc15.exe的exe程序,运行后即可获得编译后的opencv。在CMakeLists.txt中配置opencv的头文件目录和lib文件即include_directories和target_link_libraries即可完成引用。include_directories和target_link_libraries可都使用绝对路径,避免出错。用OpenCV_DIR,${OpenCV_LIBRARIES
2020-12-14 21:34:09
636
原创 Cygwin+CMake+OpneCv
1,在cygwin官网下载setup-x86_64.exe,安装之后如果再需要安装其他包,仍然是运行该exe2,在"Select Packages"界面,在Search框输入要安装的包名查找3,选择cmake,make,gcc-core,gcc-g++包,在Skip列选择版本,然后点击下一步安装4,找到cygwin根目录的bin目录,将路径添加到环境变量5,打开Cygwin64 Terminal终端,可以用cd命令定位到windows的目录6,cd定位到自己的cmake项目的build目
2020-12-12 12:38:41
1007
2
原创 Ubuntu18安装Caffe
官网:http://caffe.berkeleyvision.org/installation.html优快云:https://blog.youkuaiyun.com/u011511601/article/details/80109122系统环境ubuntu18.4cuda10.0opencv3.4python2.7+python3.61,安装依赖sudo apt-get install libleveldb-devsudo apt-get install libhdf..
2020-12-10 19:02:59
331
2
原创 autoware使用lidar_apollo_cnn_seg_detect
https://github.com/Autoware-AI/core_perception/tree/master/lidar_apollo_cnn_seg_detecthttps://github.com/ApolloAuto/apollo/tree/v5.5.0/modules/perception/production/data/perception/lidar/models/cnnseg
2020-12-10 16:46:42
1658
1
原创 AVOD
一,安装依赖avod需要使用python3,所以要使用pip3安装依赖库<span style="color:#000000">pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple sklearnpip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlibpip3 install -i https://pypi.tuna.tsinghua.edu.c
2020-12-08 18:45:36
1789
原创 python指定依赖库路径
将python库源码下载到本地之后,会看到一个setup.py的文件。在命令行进入其所在的目录,执行以下命令:python setup.py install --prefix=/path/to/install默认情况是安装到python的安装路径中的site-packages或dist-packages。可选项[–prefix == ‘your_path’]指定安装的路径。安装到自定义路径时,前提是所指定的路径已经添加到了环境变量中,即.bashrc文件中应有export PYTHONPATH
2020-12-08 16:42:22
6807
原创 catkin_make自定义依赖包
比如自定义包名为base,在catkin_package命令中,LIBRARIES表示该包要生成的库的名字,可多个catkin_package(INCLUDE_DIRS includeLIBRARIES ${PROJECT_NAME}CATKIN_DEPENDS...)这里LIBRARIES指定的库与add_library是对应的,add_library的作用是生成so文件,catkin_package的LIBRARIES是为包设置相关变量可在项目的这个目录下devel/s..
2020-12-08 11:23:30
1573
原创 cv_bridge与OpenCV版本关联
ros-melodic中通过apt-get安装cv_bridge,其pc文件中依赖的opencv版本为3.2,如果系统安装其他的opencv版本,需要把cv_bridge源码下载到系统本地编译。下载地址为https://gitee.com/bingobinlw/cv_bridge,目录结构为:cv_bridge_lib/src/cv_bridge在cv_bridge的cmakelists.txt中设置OpenCV_DIR,然后在cv_bridge_lib目录下执行catkin_make然后在
2020-12-08 09:41:10
1444
原创 linux动态库查找问题
Linux系统上有两类可执行程序,一类是静态链接的可执行程序,其包含执行所需的所有函数,所以运行不依赖任何外部库;一类是动态链接的可执行程序。动态库设置问题通过源码安装程序时,主要有三步策略:configure,make,make install。在configure阶段,为了检测安装安装环境是否满足,通常情况下都是通过pkg-config来检测其依赖的动态库是否存在,这一过程pkg-config会去寻找相应库的pc文件。当我们完某个程序后,如果其提供了动态库,在源码中会有一个或者多个pc文件,当执
2020-12-07 16:55:35
1104
原创 GPIO复用设置理解
举例GD芯片上USART2的RX引脚为PB10,TX引脚为PB11,PB10和PB11是IO口,复用的意思是这些IO口还可以作为其他外设的引脚,比如PB11可以作为3个外设的引脚,那么PB11的复用功能就有三个,USART2的TX引脚只是PB11的复用功能的一种。所以在串口USART2初始化的时候,即要设置IO口的上拉下拉模式等,也要设置这个IO口现在是复用哪个功能,通过gpio_af_set(GPIOB,GPIO_AF_7,GPIO_PIN_11)来设置,表示此时PB11是复用串口功能,这个GPIO_AF
2020-12-05 14:20:08
6445
1
原创 windows下ros2运行launch文件
新建一个py文件,如start.py,其中内容是:fromlaunchimportLaunchDescriptionfromlaunch_ros.actionsimportNodedefgenerate_launch_description():returnLaunchDescription([Node(package='calibration',node_namespace='turtlesim2...
2020-11-28 19:06:38
457
1
原创 windows10开发ROS2项目
官网说明:https://index.ros.org/doc/ros2/Tutorials/Colcon-Tutorial/pip install -U colcon-common-extensions
2020-11-28 12:48:28
983
1
原创 cmake查找库问题
cmake寻找库的路径有1,<CMAKE_ROOT>/share/cmake-x.y/Modules/2,CMAKE_MODULE_PATH3,/usr/local/lib/cmake/<LibraryName>/在哪个文件报错找不到库的相关错误,就在该文件的查库命令的上面用message把相关变量打印出来message("CMAKE_ROOT is ${CMAKE_ROOT}")message("CMAKE_MODULE_PATH is ${CMAKE_MODU
2020-11-25 14:51:48
429
原创 Ubuntu18进入Recovry模式修改sudo权限
总结:问题原因主要是修改了sudo相关的权限,要进入ubuntu的Recovry模式以root身份对sudo做权限修改问题产生:执行了如下命令后sudo chmod -R 777 /再次执行sudo会报错sudo:/usr/bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位环境为Ubuntu18,安装时没有更改root密码,root初始密码不知道,按照网上的说法是进入recovery模式,修改sudo的权限,我的解决流程如下1,重开机,连续按shift.
2020-11-19 14:31:41
941
原创 Ubuntu18使用CUDA库
问题:在使用cuda的时候会出现 usr/bin/ld:找不到 -lcudart分析:程序在链接动态库的时候分为2步,编译时链接和运行时链接。1,编译时链接这个过程是由ld程序来执行的,这个过程严格意义上来说不能说是链接,在这里ld程序没有真正的把库里面的函数的执行代码写到可执行文件里面,只是把一些符号还有其他的必要信息写道了可执行文件里面,供可执行文件运行时查找。总的来说,ld在这一步里面就是做了两个事情: 1. 查找动态库中是否含有我们需要的符号(函数和全局变量),如果都能找到,则
2020-11-12 10:43:19
414
原创 CMake命令使用记录
一,包引用1,add_subdirectory是添加子目录,当项目有多个模块,添加模块作为子目录,在编译时子目录里的CMakeLists.txt也会一起编译,所以可以把一个模块当作库,编译时生成lib文件,供外部调用。2,find_package是查找依赖包,目标包是独立的已编译的。其过程是首先根据CMAKE_MODULE_PATH里的路径寻找并编译Findxxx.cmake文件,这里xxx就是依赖包的包名,该Findxxx.cmake文件的作用就是让别人找到它,其内容中至少要包含lib文件路径和头
2020-10-23 16:17:51
435
原创 C语言理论
一,数组与指针问题数组名是一个指向数组首元素的指针常量,一经定义,不可更改,其内容是数组的地址即数组首元素地址,其地址是自身在内存中的地址;指针是指针变量,定义之后仍可更改,其类型在定义时确定,其内容是所指元素的地址,其地址是自身地址。 对指针使用*操作符时,结果是指针所指元素的值,如*a,要求a存储的数据是另一个存储单元的地址,*a得到的值所指元素的数据而不是a的数据,a的数据是地址。 当对数组名使用sizeof 和 & 操作符时,数组名不再当成指向一个元素的指针常量来使用,sizeof.
2020-10-21 13:03:08
457
原创 STM32中断向量偏移问题
芯片是STM32F429,用户程序中断偏移量设置的代码为SCB->VTOR = FLASH_BASE | 0x10000;表示中断向量表的起始地址为0X08010000,STM32的IROM1起始地址一般为0X08000000,这里的0x10000(64K)为Bootloader所占空间大小。STM32中flash 的大小为1M,则剩余空间为0X100000-0X10000=0XF0000(960K字节)。那么用户程序中,Target栏中的IROM1要做如下设置:如没有设置正确程
2020-08-24 17:15:08
1655
原创 Docker安装Autoware
1,Docker用户权限问题sudo groupadd dockersudo gpasswd -a $USER dockernewgrp dockerdocker ps
2020-06-30 11:41:56
1715
原创 Ubuntu ROS环境搭建
https://blog.youkuaiyun.com/weixin_40038847/article/details/82020565# 添加ROS软件源1,sudo sh -c 'echo ''deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main''> /etc/apt/sources.list.d/ros-latest.list'# 安装ROS软件需要授权密钥,获取授权密钥时会报拒绝连接,所以先把域名映射加到hosts文件2
2020-05-31 11:09:35
628
原创 windows下,cmake添加opencv依赖
CMakeLists.txt文件内容如下,红色为opencv相关部分:cmake_minimum_required (VERSION 3.8)project ("CameraAi")if(CMAKE_COMPILER_IS_GNUCC) message("COMPILER IS GNUCC") ADD_DEFINITIONS (-std=c++11)endif(CMAKE_COMPILER_IS_GNUCC)# OpenCV_DIR目录下要有OpenCVConfig...
2020-05-23 18:56:59
3399
原创 django ajax传对象数组
request.POST的值是querydict,如ajax传递普通数组可用request.POST.getlist("key[]")接受,但是如果ajax传递的是对象数组,则不可用getlist,这时前端要把数组转出json字符串,然后后端解析json,如下:list = json.loads(request.POST.get('list'))for item in list: ...
2018-12-13 01:06:05
857
原创 PDO调用Oracle存储过程
$tns = "(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 'ip')(PORT = '端口')) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 'ORCL') ))";try { $conn = new \PDO("oci:dbname=" . $tns . ";ch...
2018-12-06 17:25:52
750
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人