- 博客(36)
- 收藏
- 关注
原创 ROS::一个功能包调用另外一个功能包的函数以及自定义msg
有的时候会碰到这个问题,在同一个工作空间下,我的一个msg写在了功能包a,一个函数也写在了功能包a,在功能包b中需要调用这个函数和msg。这篇博客就是解决这个问题。
2025-04-01 21:51:29
609
原创 ros调试工具foxglove使用指南三:在3d空间写写画画(Panel->3D ->Scene entity)
我想使用ros1在3d空间里面的某一个位置,显示一些文字。Scene entity的数据结构如下,显示一定的时间,我需要利用的是frame_id, life_time,texts。里面有两个属性,entities和deletions,其中entities是用来显示物体的,deletions使用来删除物体的。这里重点介绍entities,是一个SceneEntity的列表,代表。如果你想要在3d空间空间里面显示一些东西,比如文字,比如一些形状,而且想控制这些东西的显示时间,那么可以使用本文提到的方法。
2025-03-31 16:06:35
489
原创 rviz可视化(二、可视化八叉树地图)
先拿到点云数据,之后再把点云数据转化成可以使用rviz可视化八叉树地图的数据结构。2.安装rviz可视化八叉树地图的插件。主要是找到点云和八叉树地图相关的库。1.安装八叉树地图相关库。
2025-03-30 11:30:32
426
原创 mpc控制四旋翼无人机(使用acados,python)
包括四个文件,quadrotor_model.py, mpc_controller.py,mpc_solver.py,polynomial_trajectory_generator.py。激活虚拟环境成功后如下图,在最左边多了一个env,在这个虚拟环境下运行python文件,就是使用的这个虚拟环境下的python解释器和对应的库。如果不加上上面的代码,那么在运行下面的代码时,就会提示‘lbx‘的维度为0。这个库被装在虚拟环境下了,你在非虚拟环境下直接用透视找不到这个库。这个文件是数值分析仿真实验的内容。
2025-03-27 23:42:02
799
原创 windows远程连接ubantu
现在工位上有两台电脑,一台windows的,一台unbantu的,但是windows操作比较方便,而且屏幕比较大, 所以想在windows上操作ubantu,需要用的ssh。运行ifconfig之后结果为,如果你的ubantu系统是插网线的,就找enp这种开头的网卡,如果连接的wlan,就找wlan开头的。这个不用太解释,打开vscode找到扩展,之后搜索这个扩展,之后安装就可以了。打开终端,运行下面的指令,如果找不到这个指令,就。之后在弹出的窗口中输入密码(ubantu的密码)(4)选择连接文件夹。
2025-03-24 15:21:01
496
原创 ros调试工具foxglove使用指南三:显示日志(Panel->Log)
【代码】ros调试工具foxglove使用指南三:显示日志(Panel->Log)
2025-03-23 22:23:08
160
原创 使用ACADO自动生成四旋翼无人机MPC代码并使用(持续更新)
2.CMakeLists代码如下 最后一句表示将.cpp文件编译后的可执行文件生成在CMakeLists.txt同级下的bin文件夹下。3. 编译执行 执行下面的代码,就会在bin文件夹下生成一个名称为quadrotor_mpc_code_gen的可执行文件。之后执行这个文件,就会在bin文件夹下生成一个quadrotor_mpc_code_gen文件夹,这个文件夹里面就是自动生成的代码。二、如何使用?1. 将必要文件移动到功能包内
2025-03-07 22:47:43
331
原创 高斯函数推导(一元和二元)
对于公式(6)描述的也是一样的,当x为真是值的时候,似然函数取最大值。既然似然函数取最大值,那么在x为真实值的时候,那么似然函数对x的偏导数为0。考虑到X,Y都满足一元高斯分布,X,Y相互独立的条件下,可以得到XY的混合概率密度分布为。,这样我们假设误差服从我们要求解的正态分布,其对应的概率密度函数为。将x = xi-θ带入,可以得出,其中那个x表示xi,u表示θ。为真真实值的时候,上面的这个公式(3)等于0,表示X,Y的协方差矩阵,上述的式子等同与。为已知的,那么可以写出下面的似然函数。
2025-03-02 00:16:57
456
原创 欧拉动力学方程的推导(持续更新)
8.对于I这个矩阵,可以拆分成(I1, I2, I3),之后I×W就可以写成(I1×W) + (I2×W)+ (I3×W),之后会发现这个向量与W正交,所以和W的数量级为0,所以可以得到下面的式子。,这个公式,想一下很有道理,因为当角速度和这个单位向量很近的时候,那么这个单位向量就不转,这个容易直观的理解。“这篇论文的时候,他给出无人机的动力学模型,对于欧拉动力学方程我不是很理解,所以在网上搜索了相关资料,现在在这里记录一下。其中H代表角动量,I是一个3×3的惯性矩阵,w代表角速度,是一个三维列向量。
2025-02-27 22:30:59
458
原创 ros的节点名,话题名,参数名
通过 launch 文件设置参数的方式前面已经介绍过了,可以在 node 标签外,或 node 标签中通过 param 或 rosparam 来设置参数。在 node 标签外设置的参数是全局性质的,参考的是 / ,在 node 标签中设置的参数是私有性质的,参考的是 /命名空间/节点名称。开头的名称,参考命名空间(与节点名称平级)来确定话题名称(假设明明空间是xxx)语法: rosrun 包名 节点名 __name:=新名称。语法: rosrun 包名 节点名 __ns:=新名称。两个节点都可以正常运行。
2025-02-26 13:46:06
436
原创 ros的tf坐标变换(持续更新)
这个代码的大概逻辑是,首先订阅到“/eskf_odom”里程计的信息,之后就可以得到从world_frame-》temp_temp_frame的位置变换信息,之后也可以得到从temp_temp_frame-》temp_frame的姿态变换信息,之后temp_frame到new_odom_frame之间的坐标变换关系是固定的,所以说所有的静态坐标变换关系都清楚了。(4)其实对于里程计的坐标变换需要对速度进行坐标变换,速度坐标变换和位置坐标变换本质是一样的,所以还需要借助位置坐标变换。一、坐标之间的相对关系。
2025-02-26 13:05:14
1084
原创 ssh与服务器
之前是用ssh直接连接服务器,但是当服务器刷机之后,服务器就连不上了,之后发现吧ssh文件夹下的内容删除就可以了,但是不知道ssh具体是怎么运行的,所以学习了一下,这里记录一下。OpenSSH核心操作 | GitHub SSH连接_哔哩哔哩_bilibili使用ssh访问服务器大概的流程是,ssh带着私钥去访问服务器,服务器遍历所有公钥与ssh私钥进行配对,之后服务器确认连接服务器的电脑的身份。
2025-02-22 14:59:37
854
原创 ros的rqt工具箱的使用(持续更新)
在调节无人机的内环的pid的时候,需要查看对角速度的跟随的效果,所以需要可视化期望角速度和当前角速度,但是我又不想写一个结点来订阅ros的话题,之后实时绘图,所以想到使用rqt_plot的功能,最后实际上失败了。但是记录一下rqt_plot的用途。
2025-02-21 19:44:07
399
原创 四旋翼无人机PID相关知识(持续更新)
在了解欧拉角之前,需要先知道所谓的载体坐标系。欧拉角表示的旋转一直是基于载体坐标系的,如下图。下图描述的是,开始的时候,世界坐标系和载体坐标系重合,之后先绕着载体坐标系的z轴旋转Ψ,那么它的偏航角度就是Ψ,之后绕着自己载体坐标系的y轴旋转Θ度,那么它的俯仰角就是Θ,最后绕着它的z轴旋转Φ,那么它的翻滚角就是Φ。注意,欧拉角的每次旋转都是基于自己的载体坐标系,不要搞成世界坐标系了。四元数不存在万向环死锁的问题。
2025-02-17 23:42:03
960
原创 docker的基本使用方法(ubantu)
在做美团的低空经济挑战赛,和在做robocup的时候,由于是线上仿真的形式,所以都用到了docker,包括docker镜像,容器,上传,网络等,但是一直不是特别理解,在过程中会出现很多问题,所以昨天学习了一下黑马的docker讲解,这里记录一下。02.Docker的安装_哔哩哔哩_bilibiliDocker 常用命令大全!!_docker常用命令-优快云博客docker常用命令汇总-优快云博客。
2025-02-15 23:34:29
732
原创 关于显卡,显卡驱动和CUDA
显卡驱动是一种软件程序,它允许操作系统与计算机的显卡进行通信和交互,从而实现图形处理和显示功能。显卡驱动由显卡商提供,需要和显卡配套使用。3. 什么是CUDACUDA是NVIDIA推出的一种并行计算平台和编程模型,用于在NVIDIA的GPU上进行通用计算,以加速计算密集型任务。我的理解是提升显卡性能的一个代码库,用户导入这个代码库,通过调用API来操作显卡。用户高级编程语言 ->cuda库调用-> 显卡驱动->调用显卡注意:显卡,显卡驱动,CUDA这三种东西都是配套的。不同厂商的一般不能互用。
2025-02-14 14:41:52
218
原创 ros工作空间编译常用方法
catkin build 和catkin_make 的区别在于,前者会单独编译每个功能包,如果在一个工作空间中,有package1和package2,其中package1依赖package2,这个时候使用catkin build编译可能会出错,此时就需要使用catkin_make,因为它是将工作空间里面所有功能包一起编译。运行这个指令之后,每次catkin_make 就会只编译上述指定的功能包了。运行这个指令之后,每次catkin_make就会恢复编译所有功能包。编译工作空间下所有的功能包。
2025-02-14 14:25:49
419
原创 ubantu20.04安装ros
详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)_ubuntu安装ros-优快云博客。
2025-02-12 23:17:51
324
原创 ubantu软件包依赖冲突的类型以及如何解决依赖冲突
两个或多个软件包相互依赖,形成一个循环,使得包管理器无法确定正确的安装顺序。apt安装软件包的时候,如果软件包需要依赖,那么他就会安装依赖,如果遇到了依赖冲突,会提示用户手动解决。它会根据依赖包的名称和版本要求,查找对应的软件包源。:两个或多个软件包依赖于同一个软件包的不同版本,导致包管理器无法确定应该安装哪个版本。:一个软件包依赖于另一个软件包的某个版本范围,但系统中安装的版本不在该范围内。安装ROS软件包时,它首先会检查该软件包的依赖关系。:一个软件包依赖于另一个软件包,但该依赖包无法找到。
2025-02-05 23:09:12
689
原创 下列软件包有未满足的依赖关系: ros-noetic-libg2o : 依赖: libsuitesparse-dev 但是它将不会被安装E: 无法修正错误,因为您要求某些软件包保持现状。。。
在学习机器人工程师阿杰的ros课程中的ROS导航系统 | TEB规划器 | TEB Planner这一节课的时候,执行sudo apt install ros-noetic-teb-local-planner,安装teb规划器报错。下列软件包有未满足的依赖关系:ros-noetic-teb-local-planner : 依赖: ros-noetic-libg2o 但是它将不会被安装E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
2025-02-05 20:47:18
320
原创 git基本使用方法记录
当建立一个git仓库的时候,我给两台电脑上添加公钥,这两台电脑都可以访问这个仓库,但是当这两台电脑向这个仓库推送代码的时候,可以通过公钥区别计算机,但是公钥是一系列复杂的字母,并不清楚到底是哪个具体的人提交的代码,所以还需要给每台计算机设置用户信息。
2025-02-02 21:42:19
1056
原创 操作系统(第三章:内存管理)
学习linux的top指令的时候,看不太懂虚拟内存,共享内存,内存之间的区别,所以在bilibili上搜索了一下相关课程。第三章.内存管理_哔哩哔哩_bilibili目录第三章:内存管理3.1 内存管理的概念3.1.1 内存管理的基本原理和要求1. 储存器的多层结构3.1.2 内存扩充3.1.3 连续分配管理方式3.1.4 非连续分配与管理方式1.分页存储方式2.分段存储方式编辑3.2 虚拟内存管理3.2.1 虚拟内存的基本概念3.2.2 请求分页管理方式1.页表机制缺页中断3.2.3 页面置换算法。
2025-01-28 15:42:14
981
原创 报错“Error loading mesh from “package://visiual_pkg/meshes/ardrone.dae“: Failed to load asset package:
注意:这个路径下都是一些功能包,其中存放.dae文件的功能包的文件树如下。
2025-01-22 00:41:23
233
原创 安装Deskflow(在ubantu20.04)
有的时候,我们希望两台电脑公用一个鼠标和键盘,一台是ubantu的系统,一台是windows的系统。这个时候可以利用Deskflow这个工具。但是当我们直接从github上下载这个软件包的时候,安装软件包会报错找不到依赖,这是因为我的电脑的ubantu的版本太低了,他那个最低要求好像都是24年的ubantu。所以想要在20.04的版本下载Deskflow需要采取其他方法。参考连接:Ubuntu Flathub 设置 | Flathub在 Linux 上安装 Deskflow | Flathub。
2025-01-17 17:23:41
1167
2
原创 cmake使用方式
研一上学期的学习和ros打了很多交道,对于ros的功能包的cmakelist的文件感觉理解并不是很深刻,每次只知道应该这样改,但是并不知道为什么。这样当使用别人的功能包的时候就会报错,花很多时间解决,但是其实自己并不是特别理解为什么可以这样解决。所以,昨天大概系统学习了一下cmake,这里记录一下。
2025-01-17 14:52:17
556
原创 python的import用法(相对导入,在一个文件夹的python文件导入另外一个文件夹的python文件)
最近在写一个foxglove可视化的东西,使用python。但是遇到了需要再一个文件夹中的.py文件导入另外一个文件夹中的.py文件的问题,一直无法导入成功,这里记录一下。我的最初的需求是,我想在a.py中导入b.py的内容,并执行a.py的文件,使用相对导入的办法,但是这个实际上是无法做到的,他总是给我提示找不到父包。通过查阅资料得到,如果当前的文件作为一个执行的文件,那么他就是没有父包的,那么相对导入的..没有办法被解析,就会报错。
2025-01-16 11:45:32
548
原创 linux系统c++程序编译(g++ 和 cmake)
读研一个学期了,因为本科并非计算机专业的,跑别人的代码的时候,总是报一些编译相关的错误,今天集中记录一下。
2025-01-14 14:29:51
923
原创 ros调试工具foxglove使用指南一:可视化表格(Panel->Table)
该数组中的每个元素现在都将在表中显示为单独的行,并且每个元素中的每个字段都将显示为单独的列。也就是说,需要发布一个列表,列表中的每个元素都应该是一个对象。之后在定义个一个消息类型CompetitionTable.msg。之后给出发布这个自定义消息类型的python代码。之后在foxglove可视化,结果如下图。
2025-01-12 23:06:24
264
原创 ubantu安装casadi框架并使用ipopt求解器(包含一个c++的例子)
编译 test_casadi表示编译后输出的文件, test.cpp表示当前编译的cpp文件。之后我们尝试使用这个求解器,但是他老式提示找不到ipopt,这是因为在编译的时候,需要用。通过源码安装后的文件被放在了/usr/local/lib这个文件夹中。这个是确认包含ipopt这个求解器。一、源码安装cadasi。
2025-01-10 23:17:35
164
原创 ubantu安装cmake工具(更高版本cmake)
今天当我使用cmake编译osqp这个求解器源码的时候,他提示我的cmake版本太低,我通过sudo apt install cmake下载到的cmake版本还是不够高。如果想要下载更高版本的cmake,一个比较简单的方法就是在ubantu增加一个新的软加包仓库。
2025-01-10 23:02:05
210
原创 python中的matplotlib库运行出现“ImportError: DLL load failed while importing _cext: 找不到指定的模块。”的问题解决方法
pycharm版本:PyCharm Community Edition 2024.2.3python版本:3.8.2matplotlib版本:3.7.5。
2024-10-06 17:57:58
746
1
原创 qt designer添加背景图片
此时我们打开pycharm的终端,进入我们的项目文件夹,之后运行pyrcc5 -o image_rc.py image.qrc指令,便可以生成image_rc.py文件了。最近研究生导师让写了一个实验室管理系统,之后写完之后感觉颜色太单调了,在网上搜索了相关资料,为这个实验室管理系统添加了背景图片。3.右击List View控件,选择change styleSheet,之后在弹出的页面中选择boardimage。2.在QT designer中,找到List View,铺开,作为背景图的承载空间。
2024-02-04 22:30:09
4264
2
原创 ubantu系统中使用ros接受uwb串口数据(基于python)
这两条在搞基于ros的uwb定位系统,需要在ubantu系统中接受uwb装置的数据,所以写这篇文字记录一下。
2023-11-19 22:17:10
495
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人