实习记录
文章平均质量分 57
Raine_Yang
这个作者很懒,什么都没留下…
展开
-
实现langchain-ChatGLM API调用客户端(及未解决的问题)
langchain-ChatGLM是一个基于本地知识库的LLM对话库。其基于text2vec-large-Chinese为Embedding模型,ChatGLM-6B为对话大模型。原项目地址:https://github.com/chatchat-space/langchain-ChatGLM对于如何本地部署ChatGLM模型,可以参考我之前的文章http://t.csdn.cn/16STJ在本项目中,我们编写了langchai-ChatGLM API调用的客户端代码。经过测试虽然客户端可以正常调用服务器的原创 2023-07-28 20:51:33 · 8326 阅读 · 5 评论 -
Langchain-ChatGLM配置文件参数测试
其中可能对读取知识库影响较大的变量有CHUNK_SIZE(单段参考上下文的长度),VECTOR_SEARCH_TOP_K(知识库参考文段数量),和VECTOR_SEARCH_SCORE_THRESHOLD(知识库匹配内容需要达到的最小相关度)。值得注意的是对于内容型问题,四个模型见差距较大,并且模型1和模型2,模型和模型3有较大的组间差距。另外值得注意的是,在第2,3组实验中,较高的CHUNK_SIZE和VECTOR_SEARCH_TOP_K使得模型回复内容明显较长,使得模型对服务器显存消耗明显增大。原创 2023-07-13 17:34:56 · 3390 阅读 · 0 评论 -
EPSON机械臂控制记录
在打开电机后,在示教界面就可以手动控制机器人各轴的运动。我使用的机器人型号为EPSON LS3-4013,在本文中记录了机械臂控制器和电脑连接,及电脑程序控制机械臂的完整流程。在示例中我们保存了点P0, P1, P2,在下面程序中我们实现了机器人在各点间做JUMP运动(在移动过程中抬起Z轴)3 机器人第三关节(Z)位于机器人地盘上方75mm处,误差在2mm左右内可以。机器人示教即为手动设置机器人要移动的目标点,在机器人管理器->步进示教可以打开示教界面。在机器人管理器中,启动电机,并解除所有轴的锁定。原创 2023-07-08 18:01:10 · 1043 阅读 · 0 评论 -
ubuntu22.04CPU部署ChatGLM笔记
尽管官方文档上说明ChatGLM int4模型只需要6G的运行内存,但是在运行上一步的模型时我电脑8G的内存依然跑满导致进程被终止。另外在我尝试英文对话时,模型出现了官方说明过的“英文中出现中文问题”。在我们下载好模型文件后,将里面的"THUDM/chatglm-6b"改为本地模型的地址。另外官方建议指定运行的模型版本。在我自己情况下,ChatGLM只有在加载参数文件过程中会占用大量的内存(差不多10G以上),在模型加载完成后占用内存会稳定在6G,但是根据官方文档介绍随着对话增加内存占用也会逐步增加。原创 2023-06-19 19:01:12 · 1027 阅读 · 0 评论 -
系统启动问题error: no such partition Entering rescue node
今天为了安装新的ubuntu系统,把电脑中原有的ubuntu系统硬盘分区删除了。结果在用u盘重装好新系统后,拔出u盘重启时显示如下错误。出现该问题的原因我猜测时因为linux找不到安装的ubuntu系统在硬盘中对应分区位置。如果显示找不到文件系统,说明系统没有安装在该分区,如没有报错,输入normal即可成功进入系统。但该方法只能保证成功进入一次,下一次启动时依然会出现同样问题。set prefix=(分区名)/boot/grub。set boot=(分区名)对每一个分区,输出一下代码。原创 2023-06-06 18:36:10 · 1666 阅读 · 0 评论 -
ROS小车研究笔记:ROS TF坐标系管理
由于该行在Pose回调函数里,我们使用Pose话题中得到的(x, y, 0) (由于海龟程序为平面不存在z轴)作为广播的位置坐标。Pose中theta作为角度坐标,时间戳(当前时间rospy.Time.now()),和要广播的两个坐标系。使用listener监听trutle2和turtle1在当前时间(rospy.Time(0))的tf变换。各个节点的坐标构成TF树用以保存节点间坐标变换。通过TF,我们可以得到10秒之内任何机器人两个坐标系间的位置关系。创建tf坐标广播器以广播tf坐标。原创 2023-04-22 16:59:03 · 747 阅读 · 0 评论 -
ROS订阅激光雷达话题
在每一次检测中,激光发射器发射一道激光,遇到障碍物时反射被接收器接收到。通过发生和接收的时间间隔除以光速即可达到雷达和障碍物的距离。激光雷达每完成一次检测会旋转一定角度继续检测,直到转完360度即可得到雷达周围障碍物的分布。数组中每一个元素代表激光雷达从起始角度到终止角度每一次扫描得到的测距。在RViz中,激光雷达数据通过添加LaserScan进行可视化。在lidar_pkg下创建目录script,在scripts里创建lidar_node.py。激光雷达强度,代表数据的精准度,由厂商设置。原创 2023-04-10 20:37:01 · 1613 阅读 · 0 评论 -
ROS小车研究笔记4/1/2023:研究文章Detecting Glass in Simultaneous Localisation and Mapping
基于镜面反射和漫反射的不同性质,我们可以推断出如果入射激光在物体上发生漫反射,激光雷达在不同角度上接受到的光强会较为稳定。而入射激光在物体上发生镜面反射,激光雷达在大部分角度上接受到的光强会低于漫反射的值,但在和入射光线垂直的角度上接受的较强值。由于激光雷达的原理依靠发射激光并通过反射光线判断物体,在面对透明度高的物体,如玻璃时,检测精度会受到很大影响。如图,发生镜面反射的物体(玻璃和镜子)在scan range接近0度时接受到光强明显高于漫反射物体,而在其他角度上光强一般低于漫反射物体。原创 2023-04-01 17:03:09 · 636 阅读 · 0 评论 -
ROS小车研究笔记2/11/2023:使用ssh远程登录小车
此处ROS_MASTER_URI的值为小车的IP地址。公钥的数据只有私钥可以解锁,而私钥的数据只有公钥可以解锁。-p 表示选择端口,默认端口为22(-p 22),小车和虚拟机在同一通信端口才能通信。对称加密:使用同一密钥对信息进行加密和解密,但是一旦该密钥被窃取就会威胁通信安全。虚拟网络编辑器中要选择正确的adaptor,否则虚拟机中无法使用wifi连接。(此处IP地址和小车IP保持一致,可以使用ifconfig查看IP地址)小车又玩没电了,后面激光雷达建图的部分没有截图。1 小车开机,连接Wifi。原创 2023-02-11 17:25:12 · 1368 阅读 · 0 评论 -
ROS小车研究笔记2/2/2023 激光雷达建图
我在测试中还出现启动mapping.launch后持续显示无法启动IMU。这里保存的地图默认路径为/home/wheeltec/wheeltec_robot/src/turn_on_wheeltec_robot/map。控制小车在场地上移动建图。在rviz中灰色代表已扫描区域,黑色代表扫描到的障碍物,红色(或彩色?黑色代表障碍物,白色代表空间。可以使用编辑软件在图片中添加或去除黑色部分,修改会反应在导航上。在rviz中如果出现小车坐标错误,如小车坐标倾斜,可以按单片机上的RESET键使里程计复位。原创 2023-02-02 18:08:12 · 1116 阅读 · 0 评论 -
ROS小车研究笔记1/31/2023 小车硬件结构及键盘移动控制节点
这里可以看到方向键只会立刻改变target_speed和target_turn。而真实速度和方向control_speed和control_turn会在每一轮循环中向目标速度改变0.1,实现平滑变速。移动键和速度控制键对应的值。最终速度为 (speed X 方向)和(turn X 方向)。在修改速度时为(speed X 修改幅度)和(turn X 修改幅度)方向控制指令只会直接影响目标速度target_turn和target_speed。下方为树莓派,安装了ROS系统和Ubuntu系统,用于整个小车控制。原创 2023-01-31 18:20:31 · 2352 阅读 · 1 评论 -
ROS小车研究笔记01/30/2023 小车启动,里程计,IMU消息类型(遗留问题)
geometry_msgs/Quaternion类型:float64 x, y, z, w 四元数表示X, Y, Z姿态(可以用tf_transformations里对应方法进行四元数和高斯角表示法切换)geometry_msgs/Vector3类型: float64 x, y, z (x, y, z线速度)geometry_msgs/Vector3类型:float64 x, y, z (x, y, z角速度)IMU里搭载了MPU6050陀螺仪模块,,可以侦测x,y,z方向上小车姿态,角速度,和加速度。原创 2023-01-30 20:05:50 · 1374 阅读 · 0 评论 -
ROS2文件命名,配置通信接口部分问题记录
在CMakeLists.txt中rosidl_generate_interfaces中加上(DEPENDENCIES 使用的库),并且加入语句find_package(使用的库, REQUIRED)自定义消息,服务,动作的 .msg .srv .action文件名称必须首字母大写,并且中间不能有 “_” 符号。在接口文件中指出使用的库,如这里使用了sensor_msgs库的Image就要把sensor_msgs路径也加上。package.xml和setup.py文件中出现的功能包名称。原创 2023-01-14 17:49:31 · 592 阅读 · 1 评论 -
深度学习笔记:神经网络(2)
输出层实现和之前的实现基本相同,不过最后得出的激活函数和之前隐藏层不同。一般使用h(x)代表隐藏层激活函数,而使用σ(x)代表输出层激活函数。输出层激活函数选取和问题性质相关,一般来说回归问题使用恒等函数,二分类问题可以使用sigmoid,多元分类可以使用softmax。对于全连接网络,连接权重的个数为(前一层神经元总数 * 后一次神经元总数),偏置量(即图中的1)连接权重个数为后一次神经元个数。这里我们使用identity_function,称为恒等函数,作为输出层的激活函数。原创 2023-01-06 21:55:28 · 375 阅读 · 1 评论 -
深度学习笔记:神经网络(1)
该函数定义域为全体实数,值域为(0, 1),在输入很小时,输出趋近于0,在输入很大时,输出趋近于1,这一点和阶梯函数类似。对于感知机,我们将输入和权重乘积相加并和阈值比较,阈值又可以表示为偏置b,及比较 x1w1 + x2w2 + b = 0 我们可以用一个函数表示以下式子,即。函数h的定义为当x 0时h(x) = 1。感知机使用一个阶梯函数,当输入达到某一阈值时输出1,否则输出0。如图,新矩阵1行1列为A第1行和B第1列相乘,1行2列为A第1行和B第2列相乘。原创 2022-12-28 21:24:31 · 402 阅读 · 0 评论 -
深度学习笔记:感知机
在如图的或门中,(0,0)位于直线下方取值1,而(1,0),(0,1),(1,1)取值1。神经元计算传来信号综合,当总和超过某一阈值时输出1,否则输出0。感知机计算输入信号和偏置和,如果和大于0输出1,否则输出0。但是,对于异或门,我们无法通过一条直接将(0,0),(1,1)和(1,0)(0,1)分开,只能使用如下图的曲线。通过组合与门,与非门,或门即可实现异或门。与门只有在输入都为1时才输出1。或门只要有一个输入为1即输出1,在两个输入都为0是返回0。与非门和与门相反,在输入都为1时输出0,否则输出1。原创 2022-12-28 15:39:09 · 552 阅读 · 0 评论 -
深度学习笔记:python的numpy和matplotlib库
在numpy里面形状不同的数组也可以计算,数组和常数也可以计算,这依靠numpy里自动的广播功能将数组扩充实现。a > 3 对数组进行比较运算会对每个元素依次进行比较,返回一个boolean数组,其中True和False代表各个元素比较结果。数学上一步将一维数组称为向量,二维数组称为矩阵,三维及以上数组称为张量(tensor)numpy为python数学计算库,里面的数组类提供大量便捷的数组和矩阵运算方法。a[np.array([0, 2, 4])]获取a第0, 2, 4位置的元素。原创 2022-12-27 20:34:20 · 829 阅读 · 0 评论 -
项目笔记:Arduino读取SD卡
读取方式分为FILE_READ和FILE_WRITE,如果该参数不填默认为FILE_READ。在FILE_READ为只读状态,而FILE_WRITE允许修改文件。打开文件,参数为(文件名,读取方式)。注意文件名采用8.3格式,即文件名最多8字符,文件拓展名最多3字符,不区分大小写。该方法返回值为一个文件(File类型),代表打开的文件。File类型支持被作为boolean,true代表存在文件,false代表不存在文件。启动SD类,chipSelect为SD读卡器CS引脚连接的Arduino引脚。原创 2022-12-08 23:05:19 · 2837 阅读 · 0 评论 -
Arduino操作MPU6050模块
setFilterBandwidth():设置滤波器带宽,参数有MPU6050_BAND_260_HZ,MPU6050_BAND_184_HZ,MPU6050_BAND_94_HZ,MPU6050_BAND_44_HZ,MPU6050_BAND_21_HZ,MPU6050_BAND_10_HZ,MPU6050_BAND_5_HZ。Adfruit_MPU6050库里还包括设置中断,停止测量某一数值等功能,详细见官方说明文档。调用以上库, 创建Adafruit_MPU6050对象mpu。原创 2022-11-22 22:58:49 · 7483 阅读 · 2 评论 -
(项目笔记)OpenCV目标检测程序
接下来更新第id物体中心点坐标,并把更新后坐标和id添加到objects_bbs_ids,该二维列表保存每个物体的x,y坐标及长宽。objects_bbs_ids里面为存在在本次函数调用时这一帧的所有已有和新添加的物体。在上一步中,如果没有任何一个已标记的物体和被检测物体坐标相近,及判断该物体为新物体。在这一步我们通过新物体相当于之前标记过各个物体的位置,判断新检测到的一个物体是否为以前标记的物体。本程序只能区分物体和背景,无法对物体特征进行记录,因此如果一个物体离开画面后再次进入,会被赋予新的id。原创 2022-11-13 18:26:49 · 2299 阅读 · 2 评论 -
ROS自学笔记:创建工作空间和功能包
在功能包里,src用来存储源码,include用于存储头文件(如C++的h文件),CMakeList.txt和package.xml为功能包里重要说明文件。依赖说明:roscpp用于应用C++文件,rospy用于应用python文件,std_msgs为ROS里标准话题类型。功能包是ROS代码存储最小单位,ROS里源码必须存成功能包才能放在src里,不可以直接放在src里面。src:代码空间,存储编写的源码,配置文件,launch文件等。build:编译空间,存储编译中间文件,一般用不上。原创 2022-10-13 18:43:03 · 924 阅读 · 0 评论 -
ROS自学笔记:命令行工具使用
注:我这里使用无图形界面树莓派作为主机,电脑使用putty连接树莓派。可以使用putty开多个终端,一个在上面跑roscore,其他的用于ros操作。rostopic pub -r frequency name type “message” 以特定频率发布话题发布话题,频率单位Hz。rosbag record -a -O 存储文件名 存储当前各节点数据至一个压缩文件。rosnode info 显示节点信息,包括其相关话题发布,订阅,和服务。注:-a 存储全部 -O 存储为压缩文件。原创 2022-10-12 18:37:59 · 417 阅读 · 0 评论 -
ROS自学笔记:基本概念
2 节点可以访问ROS Master获取参数,参数最好用于存储静态数据而非动态数据,因为一个节点修改参数后,其他节点在访问该参数之前不会跟着更新。注:ROS里通信使用广播模型,因此包含ROS Master这样一个总管理服务器。2 使用客户端/服务器模型,客户端发送服务请求,服务器端进行应答。1 功能包(package):完成特定功能的基本单元,包含节点源码,配置文件,数据定义等。2 不同节点可分布式运行在不同设备上,可以使用不同编程语言。2 记录话题和服务通信,辅助节点相互查找,连接。原创 2022-10-12 17:26:54 · 363 阅读 · 0 评论 -
树莓派buster安装ROS完整记录
我今天在安装ROS时查了各方教程:官方Wiki,Google,CSDN都各查了不下10篇,终于综合各教程内容花了大半天下好了。3 修改/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py文件,还是改路径。同时系统源也要换一下,位置: /etc/apt/sources.list.d/raspi.list。我试过该程序里的一键安装ROS,结果不但安装失败,还把我本来的软件源删了。这里把文件路径改为///home/用户名/rosdistro/…原创 2022-10-07 18:08:20 · 1582 阅读 · 0 评论 -
(项目笔记)opencv人脸识别
该程序参数路径为标记好的图片的xml文件,关于人脸图片的xml文件可以自己标记创建,也可以直接下载opencv官方库(https://github.com/opencv/opencv/tree/master/data/haarcascades)。os.path.join(String*):接受多个字符串为参数,将字符串连接为文件路径,如果出现以 / 开头的参数,路径从最后一个以 / 开头参数开始。这些特征组合为特征模板,特征模板里有白色和黑色矩形,模板特征即为白色矩形像素和减去黑色矩形像素和。.......原创 2022-08-29 18:09:15 · 4108 阅读 · 0 评论 -
linux查找外接摄像头端口
我这里有一个玄学情况:在USB第一次插入时选择虚拟机可以连接成功,但是如果先连接主机再改为连接虚拟机就无法成功。以前获取图像都是直接使用电脑摄像头,电脑摄像头一般默认端口/dev/ttyUSB0。但是这一次需要外接摄像头,因此以前的方法找不到端口。有些时候,一个摄像头可能对应多个端口(如上图)。python串口通信时要在创建串口对象时设置端口,因此我们把刚才得到的端口地址填上去。在这里面一个一个试,迟早可以找到摄像头对于串口。以上就是我的解决方法,虽然是一个不是办法的办法,但是亲测有用。原创 2022-08-24 15:46:25 · 1592 阅读 · 0 评论 -
Arduino学习笔记:基本直流电机驱动
使用arduino uno设备,这里有pwm的引脚有5和6。(标有~符号代表pwm)。通电即可使电机旋转。注意Arduino自带的电压不够驱动电机,需要外接一个9V电源。这里通过串口输入速度(值的范围在0和255之间)。使用analogWrite把模拟电压写入pwm即可控制速度。0为静止,255为最大速度。我这里引脚2可以用于控制方向(uno上还有引脚4可用)。使用digitalWrite控制该方向引脚。高低压和低电压分别对应不同方向。...原创 2022-08-16 14:51:43 · 2734 阅读 · 2 评论 -
camshift实现目标跟踪
camshift 利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大 小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置。点击左键时把x,y保存在变量drag_start作为鼠标初始位置,在鼠标移动中会随时把新的x,y传入回调函数,更新selection的值。track_box不存在时把track_box重置为detect_box(即划定的跟踪区域),并计算detect_box里颜色概率直方图,这一部分用于初始化。...原创 2022-08-09 19:13:49 · 1329 阅读 · 0 评论 -
linux系统向github传文件
生成的公钥信息会存在/home/XXX/.ssh/id_rsa.pub文件里,打开该文件,复制公钥信息。打开GitHub,进入个人主页->settings->SSH and GPG keys->New SSH key。(之后的操作要回到文件夹目录,不要在.git文件夹下面操作,不然会报错)公钥名称可以自己设置,公钥信息即为刚才复制的文件全部内容。git remote add 仓库名称 仓库的SSH链接。git push 远程仓库名称 远程仓库文件夹。把本地仓库内容上传至远程仓库。查看已关联的远程仓库列表。.原创 2022-08-02 17:32:02 · 1489 阅读 · 0 评论 -
ROS2自学笔记:机器视觉基础
一般分为采集图像,分析图像,和输出结果。采集过程即为把光信号转换为数字信号,一般依靠光源和相机。分析过程即为特征提取,标记等操作,最后转化为输出的机器人动作或可视化显示。安装ros2相机标准节点,该节点读取摄像头信息并发布图像,支持各种类型的usb相机。image_raw代表原图,原图一般数据量较大,如果要通过无线传输会较慢。image_raw_compressed为压缩后图片,一般可以压缩70%-s代表plugin,即RQT要显示的数据类型。注要在RQT界面里选择要订阅的话题才能显示图片。...原创 2022-08-02 16:04:02 · 2182 阅读 · 0 评论 -
ROS2自学笔记:launch文件完整编写流程
launch文件可以放在任何文件夹下。对于一个对应节点的launch文件可以放在该节点功能包下,但是如果一个launch文件对应多个节点,最好在工作空间里新建一个功能包(ament_cmake和ament_python都可以,只是之后配置会有一点不同)在功能包initiator下创建文件夹launch,launch文件夹下创建launch文件,同时删除功能包里原有src和include文件夹。在launch文件功能包的package.xml文件下对launch文件要启动的节点所对应功能包进行声明。...原创 2022-08-01 18:44:33 · 2276 阅读 · 1 评论 -
WMware Tools安装失败segmentation fault解决方法
没截图,不过安装程序运行到一半后会弹出这个错误,然后后面的安装程序都会显示跳过安装。最后虽然结尾显示还是enjoy,但复制粘贴,拉伸屏幕功能完全没有实现。在使用常规方法安装WMwareTools时(即加载WMwareTools光盘,解压安装包,然后安装程序),会出现以下错误;我查了一下,这个问题是安装的WMwareTools和ubuntu版本不兼容造成的。这个工具实现和主机复制粘贴,拖拽文件。这个工具实现显示驱动,屏幕自适应。安装完成后重启虚拟机即可。......原创 2022-07-30 11:16:26 · 3475 阅读 · 4 评论 -
solidworkd学习笔记:草图几何关系及编辑
同时选择多条直线,点击工具栏里“平行”,可以使这几条线变为平行关系。按右键(或选中后按Del)可以删除创建的几何关系。将直线作为构造线,选择构造线和两个圆可以实现对称几何关系。对称的两个圆大小始终相等,如果一个大小变化另一个会跟着变化。solidworks除了可以在基准面上绘制草图,在任意选中的面上也可以绘制草图。里面强劲裁剪可以裁剪鼠标划到的所有线段至其顶点。点击转换实体引用,再选择圆柱一个面,会发现该面边线显示为黑色。选择一个圆和一条直线可以实现相切几何关系。按住ctrl可以同时选中多个线段。...原创 2022-07-23 15:13:58 · 1482 阅读 · 0 评论 -
ROS2自学笔记:RQT可视化工具
severity代表日志级别,分为debuginfowarnerrorfatal,越往右等级越高,点击一个栏目可以取消显示该等级信息。RQT还可以请求服务,选择Plugins->services->servicecaller。点加号新建话题,话题选turtle1/cmd_vel,消息类型会自动识别为Twist。可以在界面里点击修改参数,勾选该话题会实现发布,修改Freq可以改变发布频率。运行海龟模拟器,让海龟撞墙,可以显示RQT显示打印的日志信息。RQT可以快捷发布,修改话题。...原创 2022-07-23 10:56:32 · 1435 阅读 · 0 评论 -
ROS2自学笔记:Rviz可视化工具
rviz订阅其他节点话题,得到数据,并将数据渲染为图像。调用相机驱动libgazebo_ros_camera.so,可以重定向话题名称改为自己要取的名字。rviz为显示平台,可以显示获得的二维或三维信息,数据来源可以为gazebo也可为其他方式。gazebo为仿真平台,在没有实体机器人时可以使用gazebo模拟机器人环境。宏定义相机模块,名称usb_camera,参数prefix(用于补全名称)设置相机画面宽1280,高720,颜色空间类型R8G8B8。设置相机外观与位置,盒型,黑色。...原创 2022-07-23 10:14:00 · 2045 阅读 · 0 评论 -
ROS2自学笔记:Gazebo物理仿真平台
4对于之后可能多次使用的link和joint也使用宏定义封装,这里对轮子的宏定义包括了link,和车底座的joint,颜色,驱动装置。找到mbotlaunch文件路径,learning_gazebo功能包,launch文件夹,mbot.launch.py文件。创建node_robot_state_publisher节点,设置功能包,可执行文件,输出,参数。在文件开头把所有用到的常数,如机器人尺寸,进行宏定义,这样在之后修改时只需要修改常数,而不用在程序里找每一处数据。prefix参数用于补全车轮名称(...原创 2022-07-22 16:42:38 · 1911 阅读 · 1 评论 -
ROS2自学笔记:URDF机器人建模
childlink为连接并在parentlink上运动的link,此处为left_wheel_link。2包含link和joint,link为刚体部分,joint为连杆,驱动部分。一般机器人可以分为以下四个部件硬件系统,驱动系统,传感系统,控制系统。parentlink为被连接的link,此处为base_link。描述机器人外观,物理属性,碰撞体积,每个link会成为一个坐标系。该机器人有一个圆柱底座,两个驱动轮,两个支撑万向轮。设置形状为圆柱,高0.16m,半径0.20m。...原创 2022-07-22 09:46:16 · 815 阅读 · 0 评论 -
ROS2学习笔记:DDS
DDS里所有节点可以在DataBus发布和订阅消息,不过DataBus有许多并行通路,各个节点互不干扰。这里QoS设为reliable,和前者不符。会发现订阅者尽管订阅的话题名称和发布者一致,但由于QoS不同无法通信。在创建发布者对象时,第三个参数之前讲是消息队列长度,也可以为qos原则。还是利用helloworld话题通信程序作为例子,不过在这里我们为发布者和订阅者都配置QoS设置。创建订阅者对象,在这个第四个参数确定了订阅者使用的QoS标准。定义QoS原则,这里要和发布者保持一致,否则无法通信。...原创 2022-07-18 16:17:16 · 907 阅读 · 0 评论 -
ROS2自学笔记:参数
参数为ROS2系统中的全局字典,类似于编程语言里的全局变量,具有以下特点:1 全局共享字典2 由键和值构成3 可以动态监控,在一个程序里对参数的修改在其他程序里也会生效在终端操作参数:1 查询参数列表2 获取参数描述3 获取参数4 修改参数5 保存参数保存一个节点全部参数如果要保存参数到另一个文件,可以使用重定向将终端信息保存到一个yaml文件里(参数文件类型为yaml)6 读取参数将一个节点所有参数设为保存的参数文件里的值示例1在程序中创建,读取,修改参数1 self.timer原创 2022-07-05 16:27:12 · 2016 阅读 · 0 评论 -
ROS2自学笔记:动作
动作是ROS2中一个通信机制,一般分为发送指令,汇报进度,汇报任务完成的步骤。动作有以下特定:1 客户端,服务器模型:双向通信机制2 服务器端唯一,客户端不唯一3 同步通信:因为要定期反馈信息,所以需要同步通信4 消息接口类型.action动作为应用层通信机制,其底层为话题和服务。发送开始和结束任务利用服务,而定期反馈利用话题监测动作信息显示动作列表显示一个动作详细信息发送动作请求:发送动作请求并接受反馈示例:模拟旋转机器人发送动作请求旋转360度,程序每旋转30度会进行一次反馈,最终显示是否原创 2022-06-25 16:37:31 · 613 阅读 · 0 评论