- 博客(52)
- 收藏
- 关注
原创 ubantu给普通用户配置sudo指令
最后一行添加如下内容,其中yzh是用户名,这个文件默认可读,可能还需要加写权限。使用下面指令验证sudo。第一次可能要设置密码。
2025-05-26 11:16:00
198
原创 docker部署XTdrone
由于修改了PX4 sitl_gazebo中的gazebo_gimbal_controller_plugin.cpp(源代码不能控制多无人机的云台),要再编译一次。在第四部安装gazebo的时候,实际上需要将xtdrone的gazebo_ros_pkgs放到一个工作空间中。Gazebo启动后,在另一个终端运行(注意要等Gazebo完全启动完成,或者可能脚本会报错)Gazebo包括Gazebo本身和ROS的插件,需要分别安装。首先卸载之前的Gazebo。编译完成后,会弹出Gazebo界面,将其关闭即可。
2025-05-25 23:00:07
634
原创 机械师安装ubantu双系统:三、GPT分区安装Ubantu
插入磁盘,重启系统,狂按F7(具体我也忘了),进入u盘启动模式,之后选择第三个UERF OS。选中空闲分区,点击加号,开始进行磁盘分区。之后出现下面的这个菜单,选第一个。第一个选EFI,分配500MB。右击左边灰色区域,点击属性。之后点击现在安装,开始安装。剩下的可以全部给根挂载点。所有附带软件正常安装。
2025-05-25 22:29:17
564
原创 机械师安装ubantu双系统:二、磁盘分区
如果发现可用压缩空间远小于磁盘的空闲空间,可以将磁盘的所有内容转到u盘里面,之后再从u盘复制到磁盘里面,出现这种现象的原因是磁盘存储的东西不连续。swap表示交换分区,当内存爆了或者程序挂起,会把数据放在这里。efi表示ubantu系统的引导程序。右击要分区的磁盘,之后点击压缩卷。将home和/放在一起。在搜索栏中搜索磁盘分区。home储存个人数据。
2025-05-25 17:30:54
334
原创 机械师安装ubantu双系统:一、制作系统盘
映像文件选择刚刚下载的ubantu.iso文件,设备选择自己的u盘,之后写入,等待。下载完成后一路安装就可以了。准备一个空的u盘,插入电脑。
2025-05-25 17:11:39
195
原创 机械师安装ubantu双系统:四、在ubantu安装常用软件
重启后可以发现右上角有搜狗输入法了,或者按ctrl+空格。根据自己的电脑选择对应的版本,架构的查看方式上面已经给出。之后给这个添加可执行权限并运行时,会报下面的错误。如果可以使用键盘正常控制小乌龟,那么安装成功。这个会提示一堆东西,自己看英文翻译看着来。点击上述网址,下载我圈住的区域。选择.deb的下载解压便可。选择.deb的下载解压便可。输入自己买的链接,之后导入。
2025-05-25 16:37:00
224
原创 如何使用docker配置ros-noetic环境并使用rviz,gazebo
其实这个东西是相当必要的,因为我们有时候需要在一台电脑上跑好几个项目,每个项目都有不同的依赖,这些依赖冲突搞得人头皮发麻,与其整理乱糟糟的依赖关系,不如直接给每个项目一个环境。(3)一个启动roscore 一个启动rviz或者gazebo。2.允许本地机器上的用户或进程连接到 X server。不允许就是sudo xhost -local。4.显示rviz和gazebo。(1)打开两个终端,进入容器内。二、docker 相关指令。
2025-05-07 22:47:20
575
原创 python库文件查找详解
当激活一个conda环境的时候,会自动执行miniconda3/envs/当前环境/etc/conda/activate.d文件夹下创脚本,会自动执行这个脚本。对于PATH这个环境变量,这个环境变量存的是一些可执行文件的路径,使用which python的时候,搜索的就是PATH这个环境变量的路径。注意:在ros中,我有很多功能包,我编译好工作空间之后,刷新环境变量,就会将这些功能包的路径加入到PYTHONPATH中,这样这些功能包中的库文件就可以相互调用。前者是使用pip安装,后者是使用apt安装。
2025-05-01 15:43:37
672
原创 ubantu部署yolov5(第四集:模型加速)
recipe_type 这个是稀疏化的配置直接从官网下,weights这个稀疏化权重也是直接从官网下,你只需要把--data改成自己的数据集的配置文件就可以了。如果太卡,还要改--batchsize。经过我的测试onnx和openvino是最快的。模型导出后,将onnx的路径加到上述二的脚本文件里面,直接运行。但是确实效率没提升多少,onnx的规模确实是下降了。文档上介绍效率很高,但是我实际使用感觉除了模型变小了一点,其他没有什么太大区别。将model_path替换为自己的onnx模型所在的位置。
2025-04-30 11:41:41
620
原创 ubantu部署yolov5(第三集:训练自己的数据)
配置文件的路径是:/home/yzh/yolo_v5/yolov5/data/my_dataset_17.yaml,my_dataset_17.yaml是你自己新建的配置文件的名称。一次标注完成后,会在一个目录下生成标签文件和一个class.txt文件,如果想要第二次标注直接加载上一次标注的信息,那么选择。训练完成后,训练的结果保存在/home/yzh/yolo_v5/yolov5/runs/train,包括权重和一些评价指标。--weight:预训练权重的位置,这个写上去就算没有他应该会自己下。
2025-04-30 11:13:51
733
原创 ubantu部署yolov5(第二集:部署与使用yolov5)
将所检测的图片放在yolov5/data/images路径下,检测的结果被放在yolov5/runs/detect/exp。vid.mp4为视频的路径,检测的结果被放在yolov5/runs/detect/exp路径下。这个需要进入上一集创建的虚拟环境里面执行,把包都装在虚拟环境里面。
2025-04-27 11:55:55
628
原创 ubantu部署yolov5(第一集:环境的安装与配置)
默认路径为/home/您的用户名/miniconda3,直接按Enter即可,或输入自定义路径。不同虚拟环境的库文件不同。所以进入不同的虚拟环境,执行下面这个指令,回显不同。2.根据选型,下面有指令,直接复制指令在虚拟环境中执行。打开虚拟环境,之后进入python,之后执行下面代码。如果成功打印出torch的版本,那么下载成功。:按Enter键逐页阅读,或者按Q退出阅读。3.运行脚本,安装miniconda。一、miniconda的安装与使用。①:miniconda的安装。1.下载最新的安装脚本。
2025-04-27 11:45:32
392
原创 ROS机器人开发实践->机器人建模与仿真
点击: 左上角 file ---> Save (保存路径功能包下的: models)然后 file ---> Exit Building Editor。
2025-04-20 14:08:41
1216
原创 ROS::一个功能包调用另外一个功能包的函数以及自定义msg
有的时候会碰到这个问题,在同一个工作空间下,我的一个msg写在了功能包a,一个函数也写在了功能包a,在功能包b中需要调用这个函数和msg。这篇博客就是解决这个问题。
2025-04-01 21:51:29
687
原创 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
629
2
原创 rviz可视化(二、可视化八叉树地图)
先拿到点云数据,之后再把点云数据转化成可以使用rviz可视化八叉树地图的数据结构。2.安装rviz可视化八叉树地图的插件。主要是找到点云和八叉树地图相关的库。1.安装八叉树地图相关库。
2025-03-30 11:30:32
492
原创 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
1077
原创 windows远程连接ubantu
现在工位上有两台电脑,一台windows的,一台unbantu的,但是windows操作比较方便,而且屏幕比较大, 所以想在windows上操作ubantu,需要用的ssh。运行ifconfig之后结果为,如果你的ubantu系统是插网线的,就找enp这种开头的网卡,如果连接的wlan,就找wlan开头的。这个不用太解释,打开vscode找到扩展,之后搜索这个扩展,之后安装就可以了。打开终端,运行下面的指令,如果找不到这个指令,就。之后在弹出的窗口中输入密码(ubantu的密码)(4)选择连接文件夹。
2025-03-24 15:21:01
1015
原创 ros调试工具foxglove使用指南三:显示日志(Panel->Log)
【代码】ros调试工具foxglove使用指南三:显示日志(Panel->Log)
2025-03-23 22:23:08
269
原创 使用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
400
原创 高斯函数推导(一元和二元)
对于公式(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
563
原创 欧拉动力学方程的推导(持续更新)
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
569
原创 ros的节点名,话题名,参数名
通过 launch 文件设置参数的方式前面已经介绍过了,可以在 node 标签外,或 node 标签中通过 param 或 rosparam 来设置参数。在 node 标签外设置的参数是全局性质的,参考的是 / ,在 node 标签中设置的参数是私有性质的,参考的是 /命名空间/节点名称。开头的名称,参考命名空间(与节点名称平级)来确定话题名称(假设明明空间是xxx)语法: rosrun 包名 节点名 __name:=新名称。语法: rosrun 包名 节点名 __ns:=新名称。两个节点都可以正常运行。
2025-02-26 13:46:06
464
原创 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
1234
原创 ssh与服务器
之前是用ssh直接连接服务器,但是当服务器刷机之后,服务器就连不上了,之后发现吧ssh文件夹下的内容删除就可以了,但是不知道ssh具体是怎么运行的,所以学习了一下,这里记录一下。OpenSSH核心操作 | GitHub SSH连接_哔哩哔哩_bilibili使用ssh访问服务器大概的流程是,ssh带着私钥去访问服务器,服务器遍历所有公钥与ssh私钥进行配对,之后服务器确认连接服务器的电脑的身份。
2025-02-22 14:59:37
895
原创 ros的rqt工具箱的使用(持续更新)
在调节无人机的内环的pid的时候,需要查看对角速度的跟随的效果,所以需要可视化期望角速度和当前角速度,但是我又不想写一个结点来订阅ros的话题,之后实时绘图,所以想到使用rqt_plot的功能,最后实际上失败了。但是记录一下rqt_plot的用途。
2025-02-21 19:44:07
661
原创 四旋翼无人机PID相关知识(持续更新)
在了解欧拉角之前,需要先知道所谓的载体坐标系。欧拉角表示的旋转一直是基于载体坐标系的,如下图。下图描述的是,开始的时候,世界坐标系和载体坐标系重合,之后先绕着载体坐标系的z轴旋转Ψ,那么它的偏航角度就是Ψ,之后绕着自己载体坐标系的y轴旋转Θ度,那么它的俯仰角就是Θ,最后绕着它的z轴旋转Φ,那么它的翻滚角就是Φ。注意,欧拉角的每次旋转都是基于自己的载体坐标系,不要搞成世界坐标系了。四元数不存在万向环死锁的问题。
2025-02-17 23:42:03
1054
原创 docker的基本使用方法(ubantu)
在做美团的低空经济挑战赛,和在做robocup的时候,由于是线上仿真的形式,所以都用到了docker,包括docker镜像,容器,上传,网络等,但是一直不是特别理解,在过程中会出现很多问题,所以昨天学习了一下黑马的docker讲解,这里记录一下。02.Docker的安装_哔哩哔哩_bilibiliDocker 常用命令大全!!_docker常用命令-CSDN博客docker常用命令汇总-CSDN博客。
2025-02-15 23:34:29
983
原创 关于显卡,显卡驱动和CUDA
显卡驱动是一种软件程序,它允许操作系统与计算机的显卡进行通信和交互,从而实现图形处理和显示功能。显卡驱动由显卡商提供,需要和显卡配套使用。3. 什么是CUDACUDA是NVIDIA推出的一种并行计算平台和编程模型,用于在NVIDIA的GPU上进行通用计算,以加速计算密集型任务。我的理解是提升显卡性能的一个代码库,用户导入这个代码库,通过调用API来操作显卡。用户高级编程语言 ->cuda库调用-> 显卡驱动->调用显卡注意:显卡,显卡驱动,CUDA这三种东西都是配套的。不同厂商的一般不能互用。
2025-02-14 14:41:52
300
原创 ros工作空间编译常用方法
catkin build 和catkin_make 的区别在于,前者会单独编译每个功能包,如果在一个工作空间中,有package1和package2,其中package1依赖package2,这个时候使用catkin build编译可能会出错,此时就需要使用catkin_make,因为它是将工作空间里面所有功能包一起编译。运行这个指令之后,每次catkin_make 就会只编译上述指定的功能包了。运行这个指令之后,每次catkin_make就会恢复编译所有功能包。编译工作空间下所有的功能包。
2025-02-14 14:25:49
569
原创 ubantu20.04安装ros
详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)_ubuntu安装ros-CSDN博客。
2025-02-12 23:17:51
356
原创 ubantu软件包依赖冲突的类型以及如何解决依赖冲突
两个或多个软件包相互依赖,形成一个循环,使得包管理器无法确定正确的安装顺序。apt安装软件包的时候,如果软件包需要依赖,那么他就会安装依赖,如果遇到了依赖冲突,会提示用户手动解决。它会根据依赖包的名称和版本要求,查找对应的软件包源。:两个或多个软件包依赖于同一个软件包的不同版本,导致包管理器无法确定应该安装哪个版本。:一个软件包依赖于另一个软件包的某个版本范围,但系统中安装的版本不在该范围内。安装ROS软件包时,它首先会检查该软件包的依赖关系。:一个软件包依赖于另一个软件包,但该依赖包无法找到。
2025-02-05 23:09:12
856
原创 下列软件包有未满足的依赖关系: 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
376
原创 git基本使用方法记录
当建立一个git仓库的时候,我给两台电脑上添加公钥,这两台电脑都可以访问这个仓库,但是当这两台电脑向这个仓库推送代码的时候,可以通过公钥区别计算机,但是公钥是一系列复杂的字母,并不清楚到底是哪个具体的人提交的代码,所以还需要给每台计算机设置用户信息。
2025-02-02 21:42:19
1091
原创 操作系统(第三章:内存管理)
学习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
1020
原创 报错“Error loading mesh from “package://visiual_pkg/meshes/ardrone.dae“: Failed to load asset package:
注意:这个路径下都是一些功能包,其中存放.dae文件的功能包的文件树如下。
2025-01-22 00:41:23
266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人