自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 ROS1、ROS2如何把预编译好的二进制文件封装成功能包?

当我们编译一个第三方功能包的时候,会通过cmake指令,将源码编译好,并通过make install安装到系统目录下。如果希望预编译好的二进制文件,封装成一个ros的功能包,该怎么做呢?本文要求你掌握Cmake和ROS1、ROS2的基础,涉及到的细节操作这里不做介绍,只介绍核心操作步骤。

2025-04-25 12:26:43 190

原创 C++调试方法(Vscode)(二) ——本地调试(ROS版)

本文讲解了如何用vscode的插件,gdb本地调试ROS相关的C++程序。主要方法包括简便启动版,通过launch启动版,通过attach方式启动程序。

2024-10-12 12:50:05 1567

原创 C++调试方法(Vscode)(一) ——本地调试

初学者在调试一段代码的时候,经常出于不明原因,写出bug,导致程序崩溃。但是定位崩溃的地方时,往往采用简单而朴素的方法:即采用cout或者printf进行输出。这种方式既原始,又低效。一个合格的工程师应该是通过打断点的方式进行调试,而非加入各种print。但是,采用gdb调试,则需要熟悉gdb的各种指令,往往不能快速入手。好在vscode 提供了比较便捷的调试方法,本文就对vscode进行C++本地调试的方法,做一个简单的介绍和实践。

2024-10-12 11:27:33 1539

原创 【现代机器人学】学习笔记十四:中文版印刷/翻译勘误

首先声明,这个印刷/勘误并非经过官方的认可,只是我个人的粗浅的理解。如果内容有误,恳请大家谅解指正。其实有的并不算错,只是我个人认为不太准确,在我学习过程中产生了一些小疑惑和误解。都是一些小毛病,瑕不掩瑜,本文的目的并非挑刺。在我心目中这本书是经典中的经典,中文版的翻译也是难得的精品。

2023-10-04 23:37:46 1355

原创 GDB排查死锁问题

gdb排查死锁问题

2023-08-23 17:04:06 1959

原创 【现代机器人学】学习笔记十三:配套代码解析

最近一直忙于工作,每天都在写一些业务代码。而目前工程中的技术栈并没有使用旋量这一套机器人理论系统,因此时间长了自己都忘记了。于是决定把这本书配套的代码内容也过一遍,查漏补缺,把这本书的笔记内容完结一下。其中Python部分,相关的函数一共有47个,其实也不是很多。

2023-08-20 20:29:14 4196

原创 【现代机器人学】学习笔记十二:轮式移动机器人

这一章讲移动机器人相关的内容。许久没有更新了,有人私聊我是不是烂尾了。写的这几篇屁文我本来是拿来当自己的笔记本的,不以为有人会认真看。没想到居然还有人追,真是受宠若惊。一直没更新其实是因为年后的工作实在是太忙了,连休息的时间都没有,更何谈写这些博客。另外我还看到之前写的一些内容甚至我自己都没有印象了,看来还得抽时间再回顾一遍。话不多说,开始吧:开篇放了一个这样的公式:意为讲固定系s下的角速度、沿xy方向的线速度变换到body系下并用旋量表示。

2023-05-07 21:31:46 9786 3

原创 roslaunch 中的条件语句(字符串与bool类型)

工作原因,在配置机器人系统的时候为了统一管理,在roslaunch的启动脚本中经常需要根据不同的传入参数启动不同的launch文件。但是写法总是不记得,临时到处找以前的文件复制粘贴。如果是bool类型,就使用表示当xxx是false的时候执行,或表示xxx是true的时候执行。如果是字符串类型,就使用 表示mode

2023-03-23 10:38:26 2527

原创 【现代机器人学】学习笔记十一:抓握与操作

本章是比较独特的一章,相对于前面的内容,内容较为独立,主要描述的是力学相关的一些理论。主要内容有,接触运动学,接触类型分析,一阶形封闭分析,接触力与摩擦力,力封闭分析等内容。

2023-03-11 00:23:08 5083

原创 【现代机器人学】学习笔记十:机器人控制

这节的内容主要讲述在关节空间和任务空间中的运动控制中的反馈控制,力控制,运动-力混合控制以及阻抗控制、导纳控制,pid控制等内容。在之前的内容当中,往往不涉及到实际对机器人的操纵,即我们计算出一个结果,就默认机器人可以执行这个期望的指令,而没有考虑到机器实际上是存在误差的,它实际执行的结果很可能不是我们所期望的命令,因此引入了本章的控制部分内容。为了避免简单的抄书,本节我只整理一些我认为的重点内容。这节的内容也是较多的,但也是日常机器人工程中非常经典的一些理论内容。

2023-01-16 23:58:12 9341

原创 【现代机器人学】学习笔记九:运动规划

本节讲述运动规划,内容包括:位形空间障碍,到障碍物的距离与碰撞检测,A*算法,RRT算法,PRM算法,移动机器人网格规划,机械臂网格规划,虚拟势场法,非线性优化,平滑等内容。

2023-01-05 23:41:54 3763

原创 【现代机器人学】学习笔记八:轨迹生成

本节主要讲述机器人学中的轨迹生成,内容包括:定义,多项式插值,三次多项式与五次多项式,梯形运动,S曲线时间标度,Waypoint规划,时间最优的时间标度,时间标度算法算法。

2022-12-29 22:56:08 4981

原创 【现代机器人学】学习笔记七:开链动力学(前向动力学Forward dynamics 与逆动力学Inverse dynamics)

这节的内容主要讲述机器人动力学的内容。包括:拉格朗日方程,通用方程,质量矩阵的解释,牛顿欧拉动力学,单刚体动力学,运动旋量-力旋量方程,机械臂动力学,牛顿欧拉逆动力学算法,封闭形式的动力学,开链机器人的正向动力学:任务空间中的动力学:受约束动力学:硬件部分内容等。

2022-12-25 21:43:49 10364 5

原创 【现代机器人学】学习笔记六:闭链运动学

这一章的内容主要讲并联机器人的相关算法,内容在全书中属于比较少,仅仅介绍概念的章节。恰好部门中有一位同事就是专门做并联机器人出身的博士,也请他帮忙看了一下内容,但他觉得写书的这个人可能也不是非常懂并联机器人,他认为书里的一些内容表述的不是非常恰当。好在这节的内容偏向科普性质,而我司目前也并没有用到并联机器人,所以这节草草记录一下概念重点,等工作中如果遇到的时候再去深入,到时补充在这章。

2022-12-14 23:05:14 5767

原创 【现代机器人学】学习笔记五:逆运动学(Inverse kinematics)

这节的内容是根据末端位姿,计算关节角度,也就是所谓的IK。IK其实是一个比较复杂的问题,远不止本节内容所述的这么简单。这节个人觉得还是偏向基本的概念了。

2022-12-13 00:23:11 14387 1

原创 【现代机器人学】学习笔记四:一阶运动学与静力学

这节课的内容主要讲速度的正向运动学(也就是位置的一阶导数,所以叫一阶运动学)和静力学,这也是本书首次出现动力学相关的内容(刚体运动那节提到的力旋量算是一个概念的介绍)。个人结合平时的工程项目看,觉得这节课的内容是一个内容和难度上的一个跨越,因此适合反复的去研读这节课的内容。

2022-12-11 23:49:48 6511 4

原创 【现代机器人学】学习笔记三:前向运动学(Forward Kinematics)

这节的内容比较简单,主要配合习题来看。在掌握方法以后,对常规的有许多移动副或转动副结构组成的机械臂,计算正向运动学则非常简单。

2022-12-09 00:58:31 6280 2

原创 【现代机器人学】学习笔记二:刚体运动

这一节内容最开始在学之前是有些不屑的,这些坐标变换的内容天天都在玩,有什么复杂的?高翔博士的14讲貌似讲这些内容只用了几页。 不过认真一读才发现自己自大肤浅了。之前我在北大研究院的时候,有一个实验室双聘的浙农林的老师,讲机器人尤其是机械臂相关内容的时候,经常提到旋量这一概念。不过我当时主要做机器人导航,主要做一些避障规划定位的事情,讲实话他讲的内容我听不太懂。只知道这个内容基本就是slam里面的齐次变换的李代数,但为什么有旋量这个名字,又具体怎么用它,我自己不是很清楚。

2022-12-05 18:59:52 7385 5

原创 Log4j和ROS_INFO把中文显示为乱码问号的问题解决方案

最近在调试代码,需要自己编写一个进程,把日志写到文件中并统一管理。因为是机器人工程师,所以采用了和ros一样实现的log4j工具。但是意外发现,中文无法写入到日志中,显示出来的全是问号。之类的完全没有用,就不要尝试了。可以说基本上是没有屁用。

2022-11-28 17:27:38 3763 1

原创 【现代机器人学】学习笔记一:位形空间

由于工作的关系,一年前开始接触机械臂。与此同时也在学习【现代机器人学】与【机器人学导论】两本书,感觉【现代机器人学】写的更好一些。大致走马观花的看了一遍,确实有所收获。因此想再从头过一遍,做一些总结,写给自己,查漏补缺。这个系列我会很快把它更新完毕。生命在于学习,尤其学习这种能很快变现成人民币的知识,学起来尤有动力,哈哈。半路出家,才疏学浅,专业的人士读到,望不吝指正!

2022-11-24 22:22:26 8311 2

原创 Ubuntu无法开机报错you are in emergency mode解决方法

Ubuntu无法开机报错you are in emergency mode解决方法

2022-09-05 18:01:50 11880

原创 Intel NUC11 在ubuntu系统下不能正常使用外接麦克风的问题解决方法

Intel NUC11 在ubuntu系统下不能正常使用外接麦克风的问题解决方法

2022-08-31 14:26:39 3797

原创 TensorRT 报错(Python):Error Code 1: Cuda Runtime (invalid resource handle) 解决方法

TensorRT 报错(Python):Error Code 1: Cuda Runtime (invalid resource handle) 解决方法

2022-08-29 20:37:12 10561 9

原创 Ubuntu20.04系统安装anaconda时ros编译报错Unable to find either executable ‘empy‘ or Python module ‘em‘...

Unable to find either executable 'empy' or Python module 'em'... try installing the package 'python3-empy'报错解决方案即可。

2022-07-01 14:42:35 6346 3

原创 Typora 下载方法(windows/ linux)

typora免费版下载方法

2022-02-23 18:20:35 11101 6

原创 python2安装tensorflow报错class DescriptorBase(metaclass=DescriptorMetaclass),SyntaxError: invalid syntax

当python2安装tensorflow的时候,安装完成后,进行测试:import tensorflow as tf可能会提示:Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/zhaokai/.local/lib/python2.7/site-packages/tensorflow/__init__.py", line 28, in <..

2021-12-12 02:57:23 6015 1

原创 Realsense in Tx2/ Xavier: uvc streamer watchdog triggered on endpoint:132 报错解决方案

realsense相机通过ros启动,命令为:roslaunch realsense2_camera rs_camera.launch但是如果想在rviz中查看pointcloud2格式的点云,需要加一个这个参数:roslaunch realsense2_camera rs_camera.launch filters:=pointcloud这种情况下,既可以生成图片topic,也可以生成pointcloud2格式的点云topic:/camera/depth/color/points。

2021-12-08 19:12:21 2985 9

原创 SLAM学习笔记(二十一)3D雷达与相机的标定方法详细教程

写在前面把3D雷达和相机进行外参标定使用的方法我们采取LiDAR-Camera Calibration using 3D-3D Point correspondences 方法。这里我使用的相机为realsense D435i 以及Velodyne16雷达。其实具体的细节github上面已经写过了,但是对于没有跑过的人来说,搞定这个东西还是有一定麻烦的。因此把细节记录在这里。希望涉及汇总方面的朋友们可以原文引用本链接,码字不易,谢谢!环境安装其实这块的内容原链接已经写的非常.

2021-11-15 15:16:01 5405 17

原创 如何可视化docker:以ROS环境为例(例如Gazebo,Rviz)

目录写在前面Windows系统准备工作使用样例Ubuntu系统准备工作使用样例总结写在前面这篇文章解决的重点是,如何通过windows,或者ubuntu,访问服务器,并且把服务器的docker容器里的内容远程可视化出来。(或者压根用的是自己的电脑上面装有docker)如果你不是这个目的,那就不需要往下看了。本身这个事情确实是比较麻烦,如果你的项目能不可视化,那最好。但如果非要可视化,可以参考一下我这篇文章的配置方法。当然,这只是其中一种配置方法,但并非唯一的配置方

2021-11-05 12:01:12 8378 7

原创 深度强化学习复习摘要

策略迭代:由于环境转移概率已知,所以先初始化一种策略,以此策略为基础,利用利用贝尔曼方程迭代求解,让V收敛。这个过程叫策略评估。(注意,贝尔曼方程里的pi(a|s)为固定值,因为策略已经更新了)。然后根据算好的V,P(s|s,a)[r+gamma*V]这样就计算得到了Q(s,a), 然后从中选取让Q最大的a,固定为策略。这个过程叫策略提升。反复来回,就叫策略迭代。N轮策略迭代的意思就是,在迭代过程中,不要求策略评估收敛,只让它迭代固定次数。甚至是1都可以。对于是1 的情况,策略在达到最优之前

2021-10-22 12:08:55 1096

原创 ffmpeg 常用指令记录

因为工作汇报原因总是需要ffmpeg来加减速视频,转换格式。但每次用的时候都记不住几个常用的指令,特此记录一下,方便下次再用:格式转换:(-i 输入)把2.wmv转换为exploration_2.mp4ffmpeg -i 2.wmv exploration_2.mp4时长截取:(-ss 开始时间,-t持续时长)把walk1.mp4从第二秒开始截取,向后截取8.5秒,输出为walk2.mp4ffmpeg -i walk1.mp4 -ss 00:00:02 -t 8.5 walk2

2021-09-29 11:05:41 578 1

原创 代码解析:DSVP: Dual-Stage Viewpoint Planner for Rapid Exploration by Dynamic Expansion

目录写在前面论文解析代码注释exploration_with_graph_planner.cppgraph_planner.cppdrrtp_node.cpp写在前面这篇论文是CMU发表在IROS2021上的工作,并随着其整套开源工作一起发布出来。作者是哈工大的Hongbiao Zhu博士,主页http://www.hongbiaoz.com/论文地址:http://www.hongbiaoz.com/files/paper7.pdfgithub地址:https

2021-07-19 15:00:30 5030 25

原创 SLAM学习笔记(二十)LIO-SAM流程及代码详解(最全)

这篇文章的主要目的是理清LIO-SAM的流程,对其中的数据处理的思路、变量的存储等各方面做一个总结。代码的注释有我自己写的内容,还有就是参考了一些网络博客的内容,总之站在别人的肩膀上才能看的更高。...

2021-06-17 11:07:07 71381 101

原创 arm架构版本下误删apt,apt-get的解决方案(例如tx2)

最近装东西装不上,误打误撞装了aptitute,结果装的时候把apt-get给卸载了。然后用aptitute装,发现也没解决问题。然后顺手就把懵逼啊。

2021-06-08 20:12:43 3750 9

原创 根据进程名获取pid号

我不是运维,这块不是很熟,简单记录一下吧:ps aux|grep ppo_stage1.py |grep -v grep|awk '{print$2}'其中,ps aux|grep ppo_stage1.py意为显示名为ppo_stage1.py的后台进程:zhaokai 3861 0.0 0.0 16180 1060 pts/18 S+ 16:13 0:00 grep --color=auto ppo_stage1.pyzhaokai 12978 3...

2021-05-12 16:29:05 898 2

原创 SLAM学习笔记(十九)开源3D激光SLAM总结大全——Cartographer3D,LOAM,Lego-LOAM,LIO-SAM,LVI-SAM,Livox-LOAM的原理解析及区别

本文为我在浙江省北大信研院-智能计算中心-情感智能机器人实验室-科技委员会所做的一个分享汇报,现在我把它搬运到博客中。由于参与分享汇报的同事有许多是做其他方向的机器人工程师(包括硬件、控制等各方面并不是专门做SLAM的工程师),加上汇报的内容较多,因此在分享中我尽量使用简介的口语,而不出现复杂的公式。所以本文面向的是3D-slam方向的初学者。内容在整理中参考了许多链接,将放在最后。在文章结束后,我会把原PPT放在上面,需要者自取。另外打个广告,在slam方向有实习意愿的,请发送简历至zkyy8

2021-04-26 19:16:52 37676 60

原创 SLAM学习笔记(十八)3D激光SLAM——Cartographer第一视角点云可视化配置与使用方法(最新)

写这一篇文章的原因是随着相关内容的不断维护,这部分网上的一些资料都已经比较老了,配置起来走了一些弯路。不过,想当年实习配置SLAM算法库的时候什么依赖的报错没有调好过?哈哈,在今天配置完以后,特意总结此文章,把过程记录一下。方便我之后再配,还有就是给大家提供一些方便,不要把精力都花在像这种乱七八糟的事情上。目录安装Cartographer下载3D包保存点云数据可视化点云数据编译point_cloud_viewer库生成OctreeStructureSdl_viewerWe

2021-04-13 15:35:41 3859 4

原创 Ubuntu开机自启动python程序中相关库导入失败,例如Tensorflow与rospy解决方案(rc.local)

Ubuntu开机自启动本身一个程序不是一个难事。本文要解决的不是这个问题,而是针对于python程序可以开机自启动,而其中的Tensorflow与rospy无法正常导入的问题。事情是这样的,机器人中有一个程序是基于Tensorflow的,为了避免每次都需要ssh进去远程打开程序,领导要求把它做成开机自启动的形式。于是我决定通过把脚本写进/etc/rc.local方式,让机器人开机自启动这个程序。然而,开机后通过ps|aux grep 指令却没能在后台发现我启动的程序进程号。于是测试了多台电脑,包

2020-12-18 10:53:22 2307 10

原创 Rplidar 报错提示:Error, operation time out. RESULT_OPERATION_TIMEOUT!

报错:报错:Error, operation time out. RESULT_OPERATION_TIMEOUT![rplidarNode-2] process has died [pid 22745, exit code 255, cmd /home/likeyu/catkin_ws/devel/lib/rplidar_ros/rplidarNode __name:=rplidarNode __log:=/home/zhaokai/.ros/log/2e561d84-4ae0-11e9-b7

2020-10-20 11:40:12 12330 8

原创 SLAM学习笔记(十七)激光SLAM——Cartographer配置文件参数解释及报错原因

运行 Cartographer的配置参数比较重要,稍微不注意就会报错,例如一个常见的错误类型:[ERROR] [1602741280.449037435, 153.231000000]: Ignoring transform from authority "unknown_publisher" with frame_id and child_frame_id "odom" because they are the same类似错误大多是因为配置文件设置的不正确。以turtlebot3配置文.

2020-10-15 15:11:02 4984

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除