- 博客(35)
- 收藏
- 关注
原创 ROS学习笔记15——Xacro
xacro 提供了可编程接口,类似于计算机语言,包括变量声明调用、函数声明与调用等语法实现。在使用 xacro 生成 urdf 时,根标签robot1、属性和算术运算用于封装 URDF 中的一些字段,比如: PAI 值,小车的尺寸,轮子半径 ....1.1 属性定义1.2 属性调用${属性名称}1.3 算术运算${数学表达式}2、宏类似于函数实现,提高代码复用率,优化代码结构,提高安全性2.1 宏定义2.2 宏调用3、文件包含。
2024-11-20 13:13:13
282
原创 OpenCV C++霍夫圆查找
OpenCV 中的霍夫圆检测基于,它是一种从边缘图像中识别几何形状的算法。霍夫圆检测是专门用于检测图像中的圆形形状的。它通过将图像中的每个像素映射到可能的圆参数空间,来确定哪些像素符合圆形状。
2024-09-29 10:30:44
1452
原创 Codesys trace工具右键菜单框呼出异常的问题解决
这个问题困扰了好久,添加trace工具之后,一但在模型图位置右键后,整个codesys界面都无法呼出右键菜单,甚至会出现键盘输入失效的问题。2、在Installer中,选择“更新”选项,找到关于trace的更新项。选择需要的版本然后安装。3、勾选接受许可 ——> 继续(接下来需要关闭codesys应用)1、工具 —> CODESYS Installer。或者搜索CODESYS Installer。
2024-09-28 12:13:12
469
原创 ROS学习笔记14——URDF语法
URDF 文件是一个标准的 XML 文件,在 ROS 中预定义了一系列的标签用于描述机器人模型,机器人模型可能较为复杂,但是在URDF中主要简化为两个部分:连杆(link标签) 与 关节(joint标签)。关于gazebo标签,后期在使用 gazebo 仿真时,才需要使用到,用于配置仿真环境所需参数,比如: 机器人材料属性、gazebo插件等,该标签不是机器人模型必须的,只有在仿真时才需设置。1、urdf 中为了保证 xml 语法的完整性,使用了robot。
2024-09-26 23:35:35
1273
原创 static类型成员函数与变量的调用方法
静态成员函数不能访问类的非静态成员(变量或函数),因为它们不依赖于类的任何特定实例。静态成员函数通常用于实现与类相关的工具性函数,这些函数不需要访问类的非静态成员。静态成员变量在类的所有对象之间共享。它们被初始化一次,并且其值对类的所有对象都是可见的。
2024-09-26 10:32:51
323
原创 ROS学习笔记13——rosbag功能包的简单使用
rosbag是用于录制和回放 ROS 主题的一个工具集,实现了数据的复用,方便调试和测试。rosbag本质也是ros的节点,当录制时,rosbag是一个订阅节点,可以订阅话题消息并将订阅到的数据写入磁盘文件;当重放时,rosbag是一个发布节点,可以读取磁盘文件,发布文件中的话题消息。
2024-09-18 00:52:50
992
原创 codesys将自定义的功能块或者函数保存到本地库
从描述文件中选择,路径为*:\安装地址\CODESYS\Templates\Library_Template选择需要的位置即可。
2024-09-14 14:26:16
1119
原创 关于codesys循环结束,循环内累加值仍不停止累加问题
2. 继续执行FOR循环语言,而此时,由于idx的值未被清零,会在之前的循环结果上继续累加。这样就造成了这段代码中val的值出现一直累加的现象。遇到的问题:在codesys写ST代码的时候,运行会出错,单步运行,知道最有一次循环数据可以正常存入数组,但在运行一步,就会出错。1. 主要原因是因为程序执行到END_FOR语句时,这时候PROGRAM PLC_PRG程序不会退出,会继续从头开始执行。疑问:但是idx继续累加是跳变到五百多,然后开始不停累加,不知道为啥!解决方法:在循环外将累加值清零,即可解决。
2024-09-14 14:01:19
358
原创 ROS学习笔记12——tf坐标变换
以ros自带的小乌龟作为案例的载体,完成通信方式、坐标变换等的练习,实现程序启动之初 产生两只乌龟,中间的乌龟(turtle1) 和 左下乌龟(turtle2),turtle2 会自动运行至turtle1的位置,并且键盘控制时,只是控制turtle1 的运动,但是turtle2 可以跟随turtle1 运行。1、创建功能包创建项目功能包依赖于roscpp、rospy、std_msgs、 tf2、tf2_ros、tf2_geometry_msgs、geometry_msgs、turtlesim
2024-04-29 14:12:19
619
原创 linux通过使用bash脚本同时运行多个命令
bin/bash出现在脚本的第一行,意思是告诉操作系统使用bash解释器来执行该脚本。|| -> "或",一条命令执行成功,则后面命令不执行。&& -> "与",一条命令执行出错,则后面命令不执行。-> 无论执行成功与否,一路执行下去。1、使用&&或||或;(根据需要选择连接符号)等来连接多条命令。以一个简单的小代码举例,新建一个文本命名为“bash.sh”。
2024-04-29 14:11:02
889
原创 ROS学习笔记11——ROS中的重名问题
设置参数时,首先需要创建 NodeHandle 对象,然后调用该对象的 setParam 函数,该函数参数1为参数名,参数2为要设置的参数值,如果参数名以 / 开头,那么就是全局参数,如果参数名不以 / 开头,如果NodeHandle 对象创那么,该参数是相对参数还是私有参数与NodeHandle 对象有关,建时如果是调用的默认的无参构造,那么该参数是相对参数,如果NodeHandle 对象创建时是使用ros::NodeHandle nh("~"),那么该参数就是私有参数。
2024-01-29 23:23:17
1360
原创 ROS学习笔记9——ROS三种通信机制的比较
三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信与服务通信是在不同的节点之间传递数据的,三者是ROS中最基础也是应用最为广泛的通信机制。可以概括为: 两个节点通过话题关联到一起,并使用某种类型的数据载体实现数据传输。二者的实现流程是比较。
2024-01-17 22:18:59
1047
原创 ROS学习笔记8——实现ROS通信时的常用命令
机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?ROS 提供了一些实用的命令行工具,可以用于获取不同节点的各类信息。
2024-01-17 16:23:09
512
原创 ROS学习笔记7——ROS通信机制3(参数服务器)
参数服务器是以实现的,参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点也可以往其中存储数据。参数服务器,一般适用于存在数据共享的一些应用场景。参数服务器不是为高性能而设计的,因此最好用于存储静态的非二进制的简单数据。
2024-01-17 13:23:42
771
原创 ROS学习笔记6——ROS通信机制2(服务通信)
服务通信中,客户端提交两个整数至服务端,服务端求和并响应结果到客户端,请创建服务器与客户端通信的数据载体。在功能包下创建srv目录,添加文件AddInts.srv.
2024-01-14 22:40:24
1327
1
原创 ROS学习笔记5——话题通信自定义msg
在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty.... 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 相机的信息... std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型。
2024-01-14 18:26:18
1969
1
原创 ROS学习笔记4——ROS通信机制(话题通信)
ROS Master 负责保管 Talker 和 Listener 注册的信息,并匹配话题相同的 Talker 与 Listener,帮助 Talker 与 Listener 建立连接,连接建立后,Talker 可以发布消息,且发布的消息会被 Listener 订阅。ROS Master 会根据注册表中的信息匹配Talker 和 Listener,如果Talker和Listener的话题一致,就会 Listener 发送 Talker 的 RPC 地址信息。4、上述实现流程是做好封装的,可以直接调用。
2024-01-14 15:07:10
2099
1
原创 ROS学习笔记3——ROS文件系统相关命令
rospack find 包名 //查找某个功能包是否存在,如果存在返回安装路径。catkin_create_pkg 自定义包名 依赖包 //创建新的ROS功能包。sudo apt install xxx //安装 ROS功能包。rosed 包名 文件名 //修改功能包文件。rosls 包名 //列出某个包下的文件。roscd 包名 //进入某个功能包。//运行指定的ROS节点。rosout 日志节点。
2024-01-13 23:08:25
346
1
原创 ROS学习笔记2——launch文件
一个程序中可能需要启动多个节点,比如ROS内置的小乌龟程序,实现这个案例需要开启roscore节点、小乌龟可视化节点、键盘控制节点,显然是一个很繁琐的方法。launch文件的根标签,每个launch文件都需要有这样一个根标签,并且文件的所有内容必须包含在这个标签内,只要i有这样一个根标签,运行launch文件时,就会开启roscore。launch中的标签远不止这些,并且launch文件在ros工程中使用非常频繁,在后续的学习中,慢慢完善更新标签及其作用。pkg、type、name是三个最主要的参数。
2024-01-13 22:31:43
2152
1
原创 ROS学习笔记1——用ros输出helloworld
add_executable(节点名称 src/可执行cpp文件在功能包下的路径.cpp)1、选定 src 右击 ---> create catkin package。2、可以在vscode中新建终端,目录会自动定位在该代码的工作空间下。此时可以用ctrl + shift + B 测试能否成功编译。在功能包的src下创建cpp文件,注意cpp文件命名规范。快捷键 ctrl + shift + B 调用编译,点击。1、ctrl + shift + B 快捷键进行编译。4、开一个新终端,刷新环境变量。
2024-01-13 17:01:09
1074
2
原创 机器人运动学——阿克曼小车
机器人运动学是从几何角度描述和研究机器人的位置、速度和加速度随时间的变化规律的科学,它不涉及机器人本体的物理性质和加在其上的力。这里分享一下在学习阿克曼小车过程中,对运动学的正逆解的理解。正解:已知机器人各个关节的运动,求解机器人本体x,y,z轴的运动。逆解:已知机器人本体x,y,z轴方向的运动,求解各个关节的运动。
2024-01-12 17:42:41
5645
1
原创 ubuntu20.04下载pytharm 没有快捷图标
此时可能会报错:No JRE found. Please make sure $PYCHARM_JDK, $JDK_HOME, or $JAVA_HOME point to valid JRE installatio,所以我们需要安装配置JAVA环境。opt有可选(optional)的意思,/opt目录一般是用来安装附加软件包的,是用户级的程序目录,可以理解为windows系统中的D:/Software。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。右击,选择“允许启动”。
2024-01-09 17:34:58
1867
原创 ubuntu20.04下 NVIDIA驱动安装
首先进入英伟达驱动下载官网,输入你的显卡型号等信息,点击搜索,确定合适的驱动。关闭图形图形界面,可能会faild,可能本身就没有,不用管。在下载目录下,打开终端,此时.run文件是没有可执行权限的。
2024-01-08 17:31:40
2613
原创 使用ThinLinc远程工作站
for administrators,在服务器上需要下载Thinlinc server。填写信息,可以免费下载。和远程通信的安全,任何网络服务都可以用这个协议来加密。for user,以windows为例,下载想要的版本即可。输入服务器的IP,以及用户的用户名密码,Connect就好。,用于加密两台计算机之间的通信,并且支持各种身份验证机制。SSH(Secure Shell 的缩写)是一种。然后按部就班安装就好。
2024-01-08 14:29:24
1507
原创 Ubuntu20.04 python2和python3共存,并且优先使用python2
在 Ubuntu 20.04 中,Python 2 和 Python 3 可以共存。通常情况下,Python 3 是默认的 Python 版本。我先下的python3,后面有程序是用的python2,又下了python2,但是系统已经系统py3作为默认。可以通过以下方式在系统上安装并配置 Python 2,并使其优先使用 Python 2。这里会显示一个选项列表,您可以选择要使用的 Python 版本。选择 Python 2 的编号,通常是 1。此时,yp的默认版本已经变为2.7。
2023-10-25 21:16:19
2067
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人