- 博客(20)
- 收藏
- 关注
原创 实现时间最优轨迹生成/轨迹规划方法(TOTG),不使用moveit,可用于ROS驱动机械臂FollowJointTrajectoryGoal()
在我的这篇文章:https://blog.youkuaiyun.com/weixin_45702459/article/details/139293391?spm=1011.2415.3001.5331中,写了不使用moveit来ros驱动机械臂的方法,也就是用FollowJointTrajectoryGoal()来进行一系列点的关节运动,其实这个就是moveit做机械臂控制的内部方法,只是moveit把规划和控制集成到了一起罢了。
2025-04-16 18:02:20
572
原创 双目相机标定以及生成视差图、深度图和点云
相比普通相机,双目相机通过模拟人眼视差的原理,可以同时获取两张略有偏差的图像,从而计算出物体到相机的距离。为了让双目系统具备准确的测距能力,首先需要对相机进行标定,确定其内外参数。完成标定后,我们就可以利用视差计算深度图,进一步生成真实世界的三维点云,实现空间结构的可视化和感知。
2025-04-15 09:47:36
415
原创 C++包管理工具vcpkg的安装使用教程
使用vcpkg可以更方便地安装各种库,省去配置的时间和配置失败的风险,类似python中的anaconda,懒人必备。
2025-04-01 11:06:49
643
原创 ROS下调用奥比中光dabai相机
其实这篇教程本可以不写的,但是介于手上这台相机的特殊性,还是写一下。教程本身就是官方git说明的前一部分,几乎没什么改动,安装起来比realsense还方便些。这款相机是从松灵limo上拆下来的,但是在松灵的宣传册中只看到了d435,很显然这个不是rs中的任何一款。机身本体没有任何文字表明这个是什么相机,在ubuntu中调用lsusb才知道是奥比中光。但是翻遍奥比中光官网的产品列表没有发现这款,购物软件识图也没用,全网都没有外形是梯形的深度相机。
2025-03-15 00:32:00
521
2
原创 双Kinectv2相机调用教程与ros点云数据合并(多个Kinectv2也适用)
这个就是相机,每个相机有两行,最后一定要是5000M而不是480M,前者是usb3.0而后者是2.0,至于在同一个root_hub有没有问题,经过我的测试对比,结果是没影响,因为就算换台电脑使得相机接在不同的3.0的root_hub上,后续还是会报错,所以排除是接口的问题。值得记录下来,让后来人少踩坑。,即可同时看到两个点云,只推荐sd的点云,其他的数据吞吐量实在太大了,就算是sd,我这个老笔记本的i7-8550U也只能跑到个位数帧率(launch中,每个相机的worker_threads默认为4)
2025-03-05 17:45:34
956
原创 ros2下回调函数不调用的解决方法(相关经验ros1也适用)
在跑通这个代码的过程遇到了诸多问题,值得记录下来(事后总结,图片较少):这个ros节点主要订阅两个话题:一个是深度图,image类型,一个是pose,pose类型之后我也确实发布了这两个话题,但是发现该节点的回调函数没有被调用,也就是说这个节点的启动了但是没用。
2024-08-23 14:55:46
580
原创 ros2下使用kinectv2
这里教大家如何在ros2下使用kinectv2,我的ros2版本是foxy,ubuntu20。其中有些坑值得记录下来。
2024-08-21 20:18:43
955
原创 github基础使用及代码上传
100m以上的单个文件会导致整体上传失败,如果误上传大文件导致失败,最快的补救措施是删掉git文件夹重新git clone 因为git里面已经记录相关文件,就算已经删掉大文件,git还是会请求上传,最后被github拒绝从而导致失败。可以把别人的项目一键转到自己的仓库,只要点击fork(上图),即可为自己创建一个相同的项目,别人的项目可能有多个分支,可以选取消勾选下面这个选项来复制所有分支。建议先为自己创建,因为自己有所有权,可以变更项目的设置细节,特别注意Description写的明白一点,可以用中文。
2024-08-21 19:27:42
892
原创 C++开发-matio库安装(VS2022)(附读取矩阵,cell和struct的mat文件代码)
主要参考:https://blog.youkuaiyun.com/weixin_73535565/article/details/140566000matio库主要用于在cpp中读取在matlab保存的mat文件,我这里用于读取mat中的矩阵和cell。
2024-08-21 18:56:08
2213
5
原创 【UR5机械臂Moveit避障】【番外】驱动ur5机械臂时controller is not running解决办法
这个时候需要在面板上点击那个方块停止程序,然后再开。不能像刚才那样关掉bringup却不关external control。也不可以点击暂停,重开终端后再开,这样也是无效的。(external control可以反复关掉再开)在使用external control控制ur5机械臂的时候,一开始使用三终端。是可以驱动机器人的,但是在关掉终端后再重复相同命令时候显示执行failed。
2024-05-29 14:17:57
496
原创 【UR5机械臂Moveit避障】【6】过滤点云中UR5机械臂的部分(包围盒/滤波)【完结】
第二行active可以修改开启关闭,第三行negative可以选保留盒外还是盒里的点云,如下图就是negative开启时候的机械臂点云。这个robot_body_filter包确实可以根据urdf模型和坐标系过滤掉特定形状的点云,但是经过实测和作者视频中的展示,发现实时性不够,所以还是转头使用pcl的各种简单滤波吧,尝试解决过,但是摸索了一上午,放弃了。这个launch中,主要是把input改为相机的点云话题,output理论上可以自己定,我这里改为原points/filtered。
2024-05-29 14:16:22
2056
13
原创 【UR5机械臂Moveit避障】【5】在可以用moveit驱动机械臂的基础上添加octomap
我这里是眼在手外,也就是相机在固定位置,如下图所示。把frame改为base,添加点云话题,就可以看见标定成功,至于说有点偏差,那是正常的,因为这种传统的手眼标定会有一系列的多种误差累积,觉得差的可以寻找新式的标定方法(本帖末尾会给出我找到的方法),现在有点偏差,到时候建包围盒建大一点就行。reference_frame和camera_frame,填相机rgb的frame,一般在rviz测试相机的时候可以看到除了xxx_link以外还有其他frame,填带有rgb,color的关于彩色的frame。
2024-05-29 14:07:31
1715
7
原创 【UR5机械臂Moveit避障】【4】UR5和kinectv2/realsense手眼标定(眼在手外)
我这里是眼在手外,也就是相机在固定位置,如下图所示。把frame改为base,添加点云话题,就可以看见标定成功,至于说有点偏差,那是正常的,因为这种传统的手眼标定会有一系列的多种误差累积,觉得差的可以寻找新式的标定方法(本帖末尾会给出我找到的方法),现在有点偏差,到时候建包围盒建大一点就行。reference_frame和camera_frame,填相机rgb的frame,一般在rviz测试相机的时候可以看到除了xxx_link以外还有其他frame,填带有rgb,color的关于彩色的frame。
2024-05-29 14:02:45
2922
10
原创 【UR5机械臂Moveit避障】【3】使用ros驱动真实UR5机械臂(直接驱动或使用moveit)
这里注意,如果后续要在moveit的ompl中添加自己的算法,可以编译安装moveit,我这里不涉及修改,所以moveit就使用二进制安装了(后续修改可以随时sudo apt-get remove moveit卸载并重新使用下载编译进行安装)。Plan()+execuate()和go()的功能差不多,只是后面我们要添加传感器部分,execuate()我试下来遇到障碍物好像不会中间停下来,所以我之后还是用go()。在示教器上,安装设置左边-程序-点击下面的播放(启动),这时应该不会有报错。
2024-05-29 13:48:28
3192
5
原创 【UR5机械臂Moveit避障】【番外】kinectv2内参标定depth时报错Input argument is not a valid matrix in function ‘cvRodrigue
在kinect2_calibration.cpp的1096行添加一段。保存后再把自己的工作空间编译一下。
2024-05-29 13:31:45
336
原创 【UR5机械臂Moveit避障】【2-3】kinectv2相机消除畸变
计算好之后能看见当前目录下会有cail_color.yaml,里面也有data(运行record节点的时候里面也会有这个yaml文件,但是全是0)注意打印后的大小,具体的图片在iai_kinect2/kinect2_calibration/patterns。我打印的是5x7的棋盘格。由于kinect2是红外获得深度点云的,之前ir已经获得了,所以这里只需要计算就可以了。差不多记录20张后ctrl c 退出,再运行计算畸变的节点。在保存的地方,先运行第一个记录图像的节点。一样,会有cail_ir.yaml。
2024-05-29 13:28:58
469
原创 【UR5机械臂Moveit避障】【2-2】kinect v2驱动以及ros包简易安装+cuda简易安装
在usb3.0的问题上卡了我整整一天,除了重装usb驱动等软件层面的尝试,我甚至买了pciex1带4口usb3.0的扩展板,但是主板不行就是不行,所以小伙伴如果发现自己的usb有蓝色口,lsusb也有root_hub3.0,但是插上去就变成2.0的情况,请换其他电脑试试,不要想着装啥usb驱动或者改bios设置或者物理外接usb3.0,我都试过了,没用(小概率事件,我是因为主板太老,之后也是还一个新主板解决的)。消除畸变参考我的另一篇文章,链接(我做了消除畸变之后对相机标定的效果改善不明显)。
2024-05-29 13:21:28
1523
2
原创 【UR5机械臂Moveit避障】【2-1】realsense d435i驱动以及ros包简易安装
由于我只用了点云,所以消除畸变啥的没做,问就是懒(后续tips:内参标定做了之后该歪还是歪,白搞)。之后就是准备相机标定了。安装librealsense2库。Apt安装的ros包在系统中位置。还是懒人版apt安装。
2024-05-29 11:33:46
1179
2
原创 【UR5机械臂Moveit避障】【1】准备工作/任务介绍
正所谓无用之用,方为大用,我写这个专栏最大的目的就是想让后来人看了我的教程之后不需要再反复看不同帖子试错(免费那是当然的),可以节约时间下来做自己的研究,这不是很好嘛。所以我这个教程虽然会在本帖子最下面附上我的ros包,但是在教程中我会只下载源码然后手把手的修改,这样小伙伴们在使用不同的硬件,比如在使用ur5e,ur3,ur10或者不同的深度相机的时候也会同样的修改方式从而清楚地解决问题。前者优点是快,简单,不易出错,缺点是后续无法修改其中的内容,而后者在修改之后可以再编译一次从而完成修改。
2024-05-29 11:23:22
2096
原创 [解决报错]编译ros项目时显示:fatal error: tf2_geometry_msgs/tf2_geometry_msgs.hpp: 没有那个文件或目录
这个的意思就是具体的节点文件ros2_ws/src/azure-kinect-driver-ros2-humble/src/k4a_calibration_transform_data.cpp中include头文件的时候找不到相关文件。对于tf2_geometry_msgs这个库,没有可能是因为下载ros2及其环境的时候没有一并下载tf2_geometry_msgs这个相关库,这时候就可以用apt下载,注意把xxx换成自己的ros版本。重点来了,我的是.h不是.hpp,但是这两个后缀功能上是一样的。
2023-12-26 16:49:51
4223
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人