- 博客(77)
- 收藏
- 关注
原创 ssh使用详解_ubuntu上安装ssh_window远程连接
Secure Shell (SSH) 是一种网络协议,允许用户通过加密的通道安全地访问另一台计算机。
2024-07-27 06:42:20 757
原创 C++编程语言中命名空间(namespace)介绍
首先讲讲为什么需要命名空间。假设这样一种情况:当一个班上有两个名叫liitdar的学生时,为了在点名的时候能够明确区分他们,让他们知道确实是需要他进行回答(而不是另外一个liitdar),我们在使用名字liitdar的同时,还需要使用一些额外的信息,比如他们的家庭住址,或者他们父母的名字等等(比如lianmeng的liitdar ,或者buluo的liitdar)。上述假设的情况同样也会出现在C++应用程序中。
2024-07-22 15:11:50 1002
原创 vscode 的常用快捷键
30、VueHelper Vue2代码段(包括Vue2 api、vue-router2、vuex2)b) 取消单行注释:[ctrl+k,ctrl+u] (按下ctrl不放,再按k + u)12、裁剪尾随空格(去掉一行的末尾那些没用的空格) : ctrl + shift + x。22、显示相关插件的命令(如:git log):ctrl + shift + p。32、多行同时添加内容(光标) :ctrl + alt + up/down。a) 单行注释:[ctrl+k,ctrl+c] 或 ctrl+/
2024-07-09 09:41:25 2408
原创 ROS常用消息类型
sensor_msgs是存储传感器常用消息数据message的包,提供各种消息数据message的转换方法并定义了常用传感器使用的消息类型message,如相机、激光扫描测距仪等;geometry_msgs提供关于常见几何元素的消息,例如点、向量、位姿等;这些元素可进一步设计为常见的数据类型;std_msgs/UInt8、UInt16、UInt32、UInt64:表示无符号的8、16、32和64位整数。std_msgs/Int8、Int16、Int32、Int64:表示有符号的8、16、32和64位整数。
2024-07-08 17:02:30 1076
原创 在ros1 noetic中,分开设计头文件,执行文件
在 VScode 中,为了后续包含头文件时不抛出异常,请配置 .vscode 下 c_cpp_properties.json 的 includepath属性。编写可执行文件(同时也是源文件);编辑配置文件并执行。
2024-07-03 20:49:10 290
原创 ros中teleop_twist_keyboard安装使用
t和b暂时没有试出来干什么用的,有知道的请告诉我?j逆时针转 k停止 l顺时针转。其中noetic替换成你自己的ros版本。u左前 i直行前进 o右前。m左后 ,直行后退 .右后。q/z:增加减少最大速度设定值。w/x:只增加减少线性速度值。e/c:只增加减少角速度。
2024-06-30 11:49:53 1187
原创 Ubuntu自适应VMware调整桌面大小
VMware中装好Ubuntu后,将VMware最大化之后,Ubuntu界面却还是一小块。解决办法: 打开终端,输入以下两条指令,安装完成后重启即可解决。
2024-06-19 10:00:00 421
原创 C++中的::运算符
例如:对象cout是标准函数库所提供的对象,而标准库在名字空间中被指定为std,所以在使用cout的时候要加上std::。声明一个类并且在类里声明了一个成员函数,但没有在类的声明里给出这个成员函数的定义,那么在类外定义成员函数时就要加上"::"符号,表示成员函数属于这个类。"::"符号前面一般是类的名称,后面一般是该类的成员名称。当然在main函数前面加上下面的代码,cout和endl前面也不需要加std::。,当我们要使用标准函数库中的函数或对象都要使用std限定。简单理解:"::"在C++中表示。
2024-06-18 13:18:41 1034
原创 C++文件读取的四种方式
第四种方法:利用ifs内部的get()函数一个个的将字符读出来,遇到EOF时返回False退出while循环,EOF 是 end of file的标志,不太建议使用这个,因为这个很慢,只能一个一个字符读取。3、打开文件:file.open("文件路径","打开方式"),打开文件后并判断文件是否打开成功,ifs.is_open()是用于判断文件是否打开的语句。getline()函数会在文件读完时返回False跳出while循环,getline可以一次读取一行文件,保持读出内容和文件内容一致。
2024-06-18 12:50:32 1475
原创 古月居《ROS入门21讲》课件及源码
链接:https://pan.baidu.com/s/1P0VZEfUJ9In2GJMsn5hAiQ。2. 码云:https://gitee.com/guyuehome/ros_21_tutorials。
2024-06-17 18:34:11 294
原创 在Ubuntu上配置和设置防火墙UFW
在本文我们学习如何在Ubuntu上配置和设置UFW(防火墙),UFW代表“不复杂的防火墙”,它充当IPTABLES的接口,从而简化了防火墙的配置过程,对于防火墙来说,这是非常困难的。初学者学习和配置防火墙规则,在这些规则中,我们将保护计算机免受未知用户的访问。UFW使用我们配置为规则的策略。
2024-06-14 12:35:38 1078
原创 C++ 首次超越 C,仅次榜首 Python | TIOBE 6 月榜单发布
在本月的 TIOBE 榜单中,出现了历史性一幕:C++ 史上首次超越 C,跃升至榜单第二,仅次于 Python——这是 C++ 在此榜单中的历史,亦是 C 语言的历史最低位。根据本月榜单数据可以看出,C++ 和 Python 是唯二市场占比超过 10% 的,而 C++ 与 C 语言相差 0.8%。虽然差距看似不大,但从 C 语言近一年来持续下滑的占比趋势来看,此次 C++ 登上榜二或许并不意外。
2024-06-13 21:20:31 844
原创 win11 默认程序中找不到typora 和设置typora为md的默认打开程序
2.在任意一个.md文件的上面右键,点击--》打开方式--》选择其他应用--》在电脑上选择应用--》(如果列表中没有,拉到最下面)在电脑上选择应用--》弹出文件浏览框。3.找到安装typora的时候的exe文件,选择打开--》选择仅一次。4.再次选择typora,选择始终,即完成。1.找到任意一个.md文件。
2024-06-12 06:34:39 520
原创 Terminator终端终结者安装教程
Ctrl+Shift+P or Ctrl+Shift+Tab //Crtl+Shift+Tab 移动到之前的一个终端。Ctrl+Shift+Right //在垂直分割的终端中将分割条向右移动。Ctrl+Shift+Left //在垂直分割的终端中将分割条向左移动。Ctrl+Shift+Up //在水平分割的终端中将分割条向上移动。
2024-06-06 12:03:27 781
原创 win11通过网线分享网络到Ubuntu工控机
2.4 在以太网上双击,查看详细信息,查看ipv4地址是否为192.168.137.1。2.3 在WLAN上右键,点击属性,然后进入共享,把两个都勾选,2.1 打开控制面板的网络和Internet。,一根网线,一台Ubuntu工控机,并且使用网线连接两者。2.2 进入网络和共享中心,在左侧进入 更改适配器设置。工控机右上角打开网络设置,点击小齿轮进行设置。1.条件:一个能无线联网的。修改成下面的IP和DNS。2.在win11电脑上。
2024-06-06 10:00:00 659
原创 ROS小车软件基础结构是怎么的?
在刚开始搭建ROS小车的时候,都会遇到这些问题。单片机底层PWM、测速、速度PID、激光、视频、IMU、里程计等等,而且还要与ROS层通信,ROS层还有其他控制部分WT!!!这么多?这么乱?是不是想想都脑大。所以,在搭建ROS小车的开始一个清晰合理的软件结构就显得尤为重要。本篇文章就是给大家的脑回路里构建一个清晰的软件结构。让大家清楚,日后我们需要一步步做些什么,以及我们每做的一步在整体的系统中起的什么作用。
2024-06-05 13:26:07 473
原创 Ubuntu中安装和配置SSH的完全指南
Secure Shell (SSH) 是一种网络协议,允许用户通过加密的通道安全地访问另一台计算机。SSH广泛用于远程登录系统、管理服务器和进行安全数据传输。在Ubuntu这样的Linux发行版中,安装和配置SSH服务是一项常见且相对简单的任务。以下是在Ubuntu系统上安装和配置SSH的步骤。
2024-06-03 13:06:10 6106 1
原创 ros2 launch 用法以及一些基础功能函数的示例
函数的作用是向test_group中设置组内的namespace,但是action_1中已经设置过了namespace,所以此时不会生效,该namespace只会在action_2中生效;节点本来就已经有了namespace了,后续会介绍将节点分组,整组节点可以设置统一的namespace,此时如果有个节点已经设置过namespace,则在此设置不会生效;传入的参数可以从节点启动时main函数中的argc参数获取到参数个数,argv参数获取到参数内容,详情参考c++的命令行参数获取;
2024-06-02 22:26:06 1388
原创 C++(只学这套就够了) 第3阶段核心编程04—类和对象- 对象的初始化和清理
总结:如果属性有在堆区开辟的,一定要自己提供拷贝构造函数,防止浅拷贝带来的问题。如果用户定义有参构造函数,c++不在提供默认无参构造,但是会提供默认拷贝构造。解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。 同样的使用完一个对象或变量,没有及时清理,也会造成一定的安全问题。C++类中的成员可以是另一个类的对象,我们称该成员为 对象成员。对象的初始化和清理工作是编译器强制要我们做的事情,因此如果。那么当创建B对象时,A与B的构造和析构的顺序是谁先谁后?
2024-06-01 22:19:23 473
原创 xacro:标准的球体、圆柱与立方体的惯性矩阵 的 xacro 封装实现
【代码】xacro:标准的球体、圆柱与立方体的惯性矩阵 的 xacro 封装实现。
2024-06-01 07:26:17 229
原创 ros2 launch gazebo_ros gazebo.launch.py无法启动
在运行命令之前刷新环境变量:source /usr/share/gazebo/setup.bash,或者将source /usr/share/gazebo/setup.bash这句命令添加到.bashrc中。直接在home文件夹按ctrl+h显示隐藏文件,打开.bashrc,在最后一行添加source /usr/share/gazebo/setup.bash。这样以后在运行gazebo仿真时就可以正常运行了。我的系统是ubuntu22.04,
2024-05-31 21:55:06 439
原创 ROS2_通信接口_详细解读
在ROS系统中,无论话题还是服务,或者我们后续将要学习的动作,都会用到一个重要的概念——通信接口。通信并不是一个人自言自语,而是两个甚至更多个人,你来我往的交流,交流的内容是什么呢?为了让大家都好理解,我们可以给传递的数据定义一个标准的结构,这就是通信接口。接口的定义接口的概念在各个领域随处可见,无论是硬件结构还是软件开发,都有广泛的应用。比如生活中最为常见的插头和插座,两者必须匹配才能使用,电脑和手机上的USB接口也是,什么Micro-USB、TypeC等等,都是关于接口的具体定义。
2024-05-29 10:43:18 587
原创 typora自动生成标题序号/左侧大纲区域无下拉箭头(修改V1.0)
2.如果没有base.user.css文件,新建一个。如果有直接用记事本打开,把下面代码拷贝进去。3.如果没有github.css文件,新建一个。如果有直接用记事本打开,把下面代码拷贝进去。1.进入文件夹:文件–>偏好设置–>外观–>主题–>打开主题文件夹。4.重新打开typora软件生,再新建标题就有序号了。
2024-05-28 07:02:58 385
原创 ROS2入门21讲__第20讲__RQT:模块化可视化工具
ROS中的Rviz功能已经很强大了,不过有些场景下,我们可能更需要一些简单的模块化的可视化工具,比如只显示一个摄像头的图像,使用Rviz的话,难免会觉得操作有点麻烦。此时,我们就会用到ROS提供的另外一种模块化可视化工具——rqt。rqt介绍正如RQT的命名,它和Rviz一样,也是基于QT可视化工具开发而来,在使用前,我们需要通过这样一句指令进行安装,然后就可以通过rqt这个命令启动使用了。$ rqt日志显示图像显示发布话题数据/调用服务请求绘制数据曲线数据包管理节点可视化。
2024-05-27 10:00:00 646
原创 ROS2入门21讲__第21讲__ROS2应用与进阶攻略
比如移动机器人基本都会具备的自主导航功能,ROS2提供了完整的自主导航系统框架和各种实现好的算法,即便我们不开发任何代码,也可以在自己的机器人上,使用这套系统,快速实现自主导航的基本功能。至于内功的修炼,就得学习机器人学相关的理论知识,比如《机器人学导论》,被称为机器人工程师人手必备的一本理论书籍,推荐大家仔细阅读。在ROS社区中,有一个著名的自动驾驶框架——Autoware,包含了自动驾驶中的感知、规划、控制等模块和实现,功能非常丰富,很多商业化的自动驾驶系统,也参考了这个框架。
2024-05-27 10:00:00 789
原创 ROS2入门21讲__第18讲__Gazebo:三维物理仿真平台
ROS机器人开发,机器人当然是主角,如果我们手边没有实物机器人,怎么办呢?没问题,机器人三维物理仿真平台Gazebo,了解一下。Gazebo仿真平台介绍Gazebo是ROS系统中最为常用的三维物理仿真平台,支持动力学引擎,可以实现高质量的图形渲染,不仅可以模拟机器人及周边环境,还可以加入摩擦力、弹性系数等物理属性。
2024-05-26 10:00:00 1396
原创 ROS2入门21讲__第19讲__Rviz:三维可视化显示平台
大家有没有畅想过一个问题,机器人眼中的世界是什么样的呢?如何能够看到机器人摄像头拍摄到的图像?这就涉及到可视化显示的范畴了,本讲我们介绍一位ROS中的重量级嘉宾——Rviz,一款三维可视化显示的神器。Rviz三维可视化平台机器人开发过程中,各种各样的功能,如果我们只是从数据层面去做分析,很难快速理解数据的效果,比如给你一堆0到255的数字,问这幅图像描述的内容是什么?你肯定一脸懵。但如果我们把这些数字通过颜色渲染出来,岂不就一目了然么?
2024-05-26 10:00:00 3979
原创 ROS2入门21讲__第11讲__动作:完整行为的流程管理
机器人是一个复杂的智能系统,并不仅仅是键盘遥控运动、识别某个目标这么简单,我们需要实现的是送餐、送货、分拣等满足具体场景需求的机器人。在这些应用功能的实现中,另外一种ROS通信机制也会被常常用到——那就是动作。从这个名字上就可以很好理解这个概念的含义,这种通信机制的目的就是便于对机器人某一完整行为的流程进行管理。通信模型。
2024-05-25 10:00:00 997
原创 ROS2入门21讲__第12讲__参数:机器人系统的全局字典
话题、服务、动作,不知道这三种通信机制大家是否已经了解清楚,本节我们再来介绍一种ROS系统中常用的数据传输方式——参数。类似C++编程中的全局变量,可以便于在多个程序中共享某些数据,参数是ROS机器人系统中的全局字典,可以运行多个节点中共享数据。通信模型比如在机器视觉识别的时候,有很多参数都会影响视觉识别的效果。在NodeA相机驱动节点中,就需要考虑很多问题,相机连接到哪个usb端口,使用的图像分辨率是多少,曝光度和编码格式分别是什么,这些都可以通过参数设置,我们可以通过配置文件或者程序进行设置。
2024-05-25 10:00:00 1037
原创 ROS2入门21讲__第09讲__服务:节点间的你问我答
话题通信可以实现多个ROS节点之间数据的单向传输,使用这种异步通信机制,发布者无法准确知道订阅者是否收到消息,本讲我们将一起学习ROS另外一种常用的通信方法——服务,可以实现类似你问我答的同步通信效果。通信模型在之前的课程中,我们通过一个节点驱动相机,发布图像话题,另外一个节点订阅图像话题,并实现对其中红色物体的识别,此时我们可以按照图像识别的频率,周期得到物体的位置。这个位置信息可以继续发给机器人的上层应用使用,比如可以跟随目标运动,或者运动到目标位置附近。
2024-05-24 10:00:00 1610
原创 ROS2入门21讲__第10讲__通信接口:数据传递的标准结构
在ROS系统中,无论话题还是服务,或者我们后续将要学习的动作,都会用到一个重要的概念——通信接口。通信并不是一个人自言自语,而是两个甚至更多个人,你来我往的交流,交流的内容是什么呢?为了让大家都好理解,我们可以给传递的数据定义一个标准的结构,这就是通信接口。接口的定义接口的概念在各个领域随处可见,无论是硬件结构还是软件开发,都有广泛的应用。比如生活中最为常见的插头和插座,两者必须匹配才能使用,电脑和手机上的USB接口也是,什么Micro-USB、TypeC等等,都是关于接口的具体定义。
2024-05-24 10:00:00 1920
原创 ROS2入门21讲__第08讲__话题:节点间传递数据的桥梁
节点实现了机器人各种各样的功能,但这些功能并不是独立的,之间会有千丝万缕的联系,其中最重要的一种联系方式就是话题,它是节点间传递数据的桥梁。通信模型以两个机器人节点为例。A节点的功能是驱动相机这个硬件设备,获取得到相机拍摄的图像信息,B节点的功能是视频监控,将相机拍摄到的图像实时显示给用户查看。大家可以想一下,这两个节点是不是必然存在某种关系?没错,节点A要将获取的图像数据传输给节点B,有了数据,节点B才能做这样可视化的渲染。此时从节点A到节点B传递图像数据的方式,在ROS中,我们就称之为话题。
2024-05-23 08:55:39 984
原创 ROS2入门21讲__第07讲__节点:机器人的工作细胞
机器人是各种功能的综合体,每一项功能就像机器人的一个工作细胞,众多细胞通过一些机制连接到一起,成为了一个机器人整体。在ROS中,我们给这些 “细胞”取了一个名字,那就是节点。通信模型完整的机器人系统可能并不是一个物理上的整体,比如这样一个的机器人:在机器人身体里搭载了一台计算机A,它可以通过机器人的眼睛——摄像头,获取外界环境的信息,也可以控制机器人的腿——轮子,让机器人移动到想要去的地方。
2024-05-23 08:29:13 1275
原创 ROS2入门21讲__第13讲__分布式通信:多计算平台的任务分配
智能机器人的功能繁多,全都放在一个计算机里,经常会遇到计算能力不够、处理出现卡顿等情况,如果可以将这些任务拆解,分配到多个计算机中运行岂不是可以减轻压力?这就是分布式系统,可以实现多计算平台上的任务分配。分布式通信什么叫分布式?之前我们也讲过,在ROS系统中,机器人功能是由各种节点组成的,这些节点可能位于不同的计算机中,这种结构可以将原本资源消耗较多的任务,分配到不同的平台上,减轻计算压力,这就是分布式通信框架的典型应用之一。比如这款机器人系统中,有两个计算平台。
2024-05-22 12:53:59 961
原创 ROS2入门21讲__第14讲__DDS:机器人的神经网络
但它的先进之处在于,通信中包含了很多并行的通路,每个节点可以只关心自己感兴趣的消息,忽略不感兴趣的消息,有点像是一个旋转火锅,各种好吃的都在这个DataBus传送,我们只需要拿自己想吃的就行,其他的和我们没有关系。具体而言,他们肯定都符合基本标准,但还是会有性能上的差别,ROS2的原则就是尽量兼容,让用户根据使用场景选择,比如个人开发,我们选择一个开源版本的DDS就行,如果是工业应用,那可能得选择一个商业授权的版本了。,也就是一个统一的标准,不管我们用那个DDS,保证上层编程使用的函数接口都是一样的。
2024-05-22 06:53:54 1342
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人