自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

彐雨

一任阶前,点滴到天明

  • 博客(75)
  • 资源 (8)
  • 收藏
  • 关注

原创 ROS-UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 7654-7656: ordinal not in

在根目录下:/opt/ros/melodic/lib/python2.7/dist-packages。新建一个sitecustomize.py文件。

2024-01-08 16:51:44 517

原创 ROS-Error [Converter.cc:151] Unable to convert from SDF version 1.7 to 1.6

这个错误好像不影响正常显示,但看着怪扎眼的。

2024-01-08 16:13:31 533

原创 ROS-urdf集成gazebo

文章目录一、URDF与Gazebo基本集成流程二、URDF集成Gazebo相关设置三、URDF集成Gazebo实操四、Gazebo仿真环境搭建一、URDF与Gazebo基本集成流程1.创建功能包创建新功能包,导入依赖包: urdf、xacro、gazebo_ros、gazebo_ros_control、gazebo_plugins2.编写URDF文件<!-- 创建一个机器人模型(盒状即可),显示在 Gazebo 中 --><robot name="mycar"&g

2024-01-08 11:05:24 833

原创 ROS-Gazebo颜色列表

中有Gazebo颜色列表。

2024-01-08 10:11:01 410

原创 ROS-arbotix安装

先从 github 下载源码,然后调用 catkin_make 编译。如果ROS为其他版本,可将melodic替换为对应版本。

2024-01-06 21:05:23 574

原创 ROS-机器人仿真urdf-rviz、xacro

文章目录一、urdf集成rviz1.1 基本流程1.2 优化 rviz 启动二、urdf语法详解2.1 robot2.2 link2.3 joint2.4 urdf练习2.5 urdf工具三、URDF优化_xacro3-1 Xacro_语法详解3-2 Xacro_完整使用流程示例3- Xacro_实操一、urdf集成rviz1.1 基本流程需求描述:在 Rviz 中显示一个盒状机器人实现流程:1.创建功能包,导入依赖创建一个新的功能包,名称自定义,导入依赖包:urdf与xacro在当前功能包

2024-01-06 20:26:43 600

原创 ROS-[ERROR] [1704543158.960463911]: length [stent_height] is not a valid float

原因:未能正确调用,忘记加。

2024-01-06 20:23:12 328

原创 ROS-[ERROR] [1704365215.958623480]: Error reading end tag.

原因:launch或urdf文件有问题。尤其是子标签,需注意!

2024-01-04 18:58:00 447

原创 ROS-ERROR: cannot launch node of type [joint_state_publisher/joint_state_publisher]: joint_state_pub

如为其他版本可将melodic替换为相应版本。出现上述报错,原因为缺少依赖包。

2024-01-04 18:50:32 727

原创 ROS-安装xacro

如果没有报错,并且进入了xacro软件包的目录,则表示安装成功。运行下列命令进行安装,xxxxxx处更改为自己的版本。

2024-01-03 19:27:39 591

原创 ROS-rqt工具箱

可以方便的实现 ROS 可视化调试,并且在同一窗口中打开多个部件,提高开发效率,优化用户体验。ROS基于 QT 框架,针对机器人开发提供了一系列可视化的工具,这些工具的集合就是rqt。rqt_robot_plugins——运行中和机器人交互的插件(比如: rviz)启动:可以在 rqt 的 plugins 中添加,或者使用rqt_bag启动。简介:rqt_console 是 ROS 中用于显示和过滤日志的图形化插件。rqt_common_plugins——rqt 中常用的工具套件。简介:可视化显示计算图。

2023-12-28 15:07:00 496

原创 ROS-rosbag

机器人导航实现中,可能需要绘制导航所需的全局地图,地图绘制实现,有两种方式,方式1:可以控制机器人运动,将机器人传感器感知到的数据时时处理,生成地图信息。方式2:同样是控制机器人运动,将机器人传感器感知到的数据留存,事后,再重新读取数据,生成地图信息。rosbag本质也是ros的节点,当录制时,rosbag是一个订阅节点,可以订阅话题消息并将订阅到的数据写入磁盘文件;当重放时,rosbag是一个发布节点,可以读取磁盘文件,发布文件中的话题消息。重启乌龟节点,会发现,乌龟按照录制时的轨迹运动。

2023-12-27 21:13:58 865

原创 ROS-TF坐标变换

机器人系统上,有多个传感器,如激光雷达、摄像头等,有的传感器是可以感知机器人周边的物体方位(或者称之为:坐标,横向、纵向、高度的距离信息)的,以协助机器人定位障碍物,可以直接将物体相对该传感器的方位信息,等价于物体相对于机器人系统或机器人其它组件的方位信息吗?显示是不行的,这中间需要一个转换过程。更具体描述如下:场景1:雷达与小车。

2023-12-24 15:05:34 900

原创 visio绘制封闭图形并填充颜色

3.选中该图形,选择开发工具->操作->修剪。选择开发工具-操作选项,并分别依次点击。2.使用圆形和直线绘制如图所示图形。1.文件->选项->开发工具。,最后选要填充的颜色即可。

2023-12-21 10:42:10 2385 1

原创 ROS-安装Rviz

运行下列命令进行安装,xxxxxx处更改为自己的版本。先打开roscore。

2023-12-19 17:25:59 652

原创 ROS-tf2功能包安装

注:_cpp表示为文件是C++编写的,若运行下面命令,则为Python编写的。查看是否安装了 tf2_tools,如果没有则安装。是无法安装成功的,会显示。

2023-12-18 15:05:46 742

原创 ROS-分布式通信

=一个运行中的ROS系统可以包含分布在多台计算机上多个节点。==根据系统的配置方式,任何节点可能随时需要与任何其他节点进行通信。先要保证不同计算机处于同一网络中,最好分别设置固定IP,如果为虚拟机,需要将网络适配器改为桥接模式;[3]胡春旭.ROS机器人开发实践[M].机械工业出版社,2018.3.反向测试,主机启动发布节点,从机启动订阅节点,测试通信是否正常。设置完毕,可以通过 ping 命令测试网络通信是否正常。2.主机启动订阅节点,从机启动发布节点,测试通信是否正常。安装一下net-tools。

2023-12-18 14:22:43 1174

原创 遗传算法应用-- 栅格法机器人路径规划

文章目录一、遗传算法1.1 编码与解码1.2 选择算子-轮盘赌法1.3 交叉算子1.4 变异算子1.5 遗传算法流程1.6 基于遗传算法的栅格法机器人路径规划二、采用模拟退火算法改善适应度函数一、遗传算法遗传算法 (Genetic AIgorithm, 简称 GA)起源于对生物系统所进行的计算机模拟研究,是一种随机全局搜索优化方法,它模拟了自然选择和遗传中发生的复制、交叉 (crossover) 和变异 (mutation)现象,从任一初始种群 (PopuIation) 出发,通过随机选择、交叉和变异

2023-12-17 21:07:50 586

原创 ROS-ROS运行管理-工作空间覆盖;节点、话题、参数名称重名

在ROS的网络拓扑中,是不可以出现重名的节点的,因为假设可以重名存在,那么调用时会产生混淆,这也就意味着,不可以启动重名节点或者同一个节点启动多次,的确,在ROS中如果启动重名节点的话,之前已经存在的节点会被直接关闭,但是如果有这种需求的话,怎么优化呢?设置参数调用API是ros::param::set,该函数中,参数1传入参数名称,参数2是传入参数值,参数1中参数名称设置时,如果以 / 开头,那么就是全局参数,如果以 ~ 开头,那么就是私有参数,既不以 / 也不以 ~ 开头,那么就是相对参数。

2023-12-16 20:08:59 199

原创 ROS-ROS运行管理-launch文件

概念launch 文件是一个 XML 格式的文件,可以启动本地和远程的多个节点,还可以在参数服务器中设置参数。作用简化节点的配置与启动,提高ROS程序的启动效率。使用以 turtlesim 为例演示1.新建launch文件在功能包下添加 launch目录, 目录下新建 xxxx.launch 文件,编辑 launch 文件</2.调用 launch 文件roslaunch 包名 xxx.launch。

2023-12-14 10:36:40 157

原创 ROS-melodic版本键盘控制安装

【代码】ROS-melodic版本键盘控制安装。

2023-12-14 09:15:52 282

原创 ROS-ROS运行管理-ROS元功能包

是ROS中的一个虚包,里面没有实质性的内容,但是它依赖了其他的软件包,通过这种方法可以把其他包组合起来,我们可以认为它是一本书的目录索引,告诉我们这个包集合中有哪些子包,并且该去哪里下载。显而易见的,逐一安装功能包的效率低下,在ROS中,提供了一种方式可以将不同的功能包打包成一个功能包,当安装某个功能模块时,直接调用打包后的功能包即可,该包又称之为元功能包(metapackage)。场景:完成ROS中一个系统性的功能,可能涉及到多个功能包,比如实现了机器人导航模块,该模块下有地图、定位、路径规划…

2023-12-13 20:19:12 47

原创 ROS-C++头文件源文件、Python模块导入

设计头文件,可执行文件本身作为源文件。编写头文件;编写可执行文件(同时也是源文件);编辑配置文件并执行。1.头文件public:void run();#endif在 VScode 中,为了后续包含头文件时不抛出异常,请配置 .vscode 下 c_cpp_properties.json 的 includepath属性"/home/用户/工作空间/src/功能包/include/**"2.可执行文件ROS_INFO("自定义头文件的使用....");return 0;

2023-12-13 18:20:09 130

原创 ROS-ROS通信机制-常用API

在ROS程序中,频繁的使用了 ros::spin() 和 ros::spinOnce() 两个回旋函数,可以用于处理回调函数。ROS中时间相关的API是极其常用,比如:获取当前时刻、持续时间的设置、执行频率、休眠、定时器…NodeHandle有一个重要作用是可以用于设置命名空间,这是后期的重点,但是本章暂不介绍。在 roscpp 中,话题和服务的相关对象一般由 NodeHandle 创建。[3]胡春旭.ROS机器人开发实践[M].机械工业出版社,2018.3.持续时间与时刻运算。3.持续时间与时刻运算。

2023-12-12 20:21:24 58

原创 ROS-ROS通信机制-小乌龟

尝试了好几次,也没有发现哪里错了,最后新建了功能包,重新写,并且把原来的功能包删除才能编译通过。三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信与服务通信是在不同的节点之间传递数据的,三者是ROS中最基础也是应用最为广泛的通信机制。已知turtlesim中的乌龟显示节点,会发布当前乌龟的位姿(窗体中乌龟的坐标以及朝向),要求控制乌龟运动,并时时打印当前乌龟的位姿。尤其是话题与服务通信,需要结合具体的应用场景与二者的差异,选择合适的通信机制。而不是选中小乌龟窗口。

2023-12-12 15:37:28 216

原创 C++ c_str()用法

标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。上面的没有完全理解。本人是在学习ROS的过程中遇到的,好像是因为定义的时候用的std_msgs,所以需要用c_str()上述代码中,c最后指向的内容是垃圾,因为s对象被析构,其内容被处理,同时编译器将会报错。

2023-12-11 16:18:51 127

原创 C++ 指针常量和常量指针的区别

因为常量指针本质是指针,并且这个指针是一个指向常量的指针,指针指向的变量的值不可通过该指针修改,但是指针指向的值可以改变。因为声明了指针常量,说明指针变量不允许修改。如同次指针指向一个地址该地址不能被修改,但是该地址里的内容可以被修改。指针常量:顾名思义它就是一个常量,但是是指针修饰的。

2023-12-11 16:17:51 275

原创 C++ 格式化输出

目前常用%d,%s,%.2f。1.常规–格式化输出。2.特殊–格式化输出。

2023-12-11 14:28:42 1767

原创 C++-引用和指针区别

指针用于存放一个变量在内存中的地址,通过指针间接操作这个变量。指针变量本身也是一个变量,也有变量地址,变量名,变量值。int i = 12;int *p;//声明一个整型指针变量pp = &i;//将i的地址赋给指针变量p&为取地址符。等价于int *p;//声明一个整型指针变量pp = &i;//将i的地址赋给指针变量p指针变量p的变量值存放变量i的地址。*p指向变量i的值引用是某个变量的别名,相当于某个变量的第二个名字。对引用的操作,就相当于对变量的操作引用形式。

2023-12-09 16:49:46 79

原创 ROS-log功能区别

ROS使用rosout包来记录各个节点的log信息,通常这些log信息是一些可以读懂的字符串信息,这些信息一般用来记录节点的运行状态。ROS有五种不同类型的log信息,分别为:logdebug、loginfo、logwarn、logerr、logfatal。

2023-12-09 15:26:26 75

原创 C++ 的vector、array和数组的比较

vector和array提供了更好的数据访问机制,即可以使用front()和back()以及at()访问(at()可以避免a[-1]访问越界的问题)方式,使得访问更加安全。vector和array提供了size和判空Empty()的获取机制,而数组只能通过遍历或者通过额外的变量过sizeof()/strlen()记录数组的size。vector和array提供了两个容器对象的内容交换,即swap()的机制,而数组对于交换只能通过遍历的方式,逐个元素交换的方式使用。

2023-12-07 14:52:48 222

原创 C++ - 函数重载和运算符重载

重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。函数重载的关键是函数的参数列表 (函数特征标)。如果两个函数的参数数目和类型相同,同时参数的排列顺序也相同,则它们的特征标相同,而与变量名无关。函数重载 (Overload)是 C++ 语言在C语言基础上新增的功能。函数重载能够在程序中使用多个同名的函数。C++允许定义名称相同的函数,条件是它们的特征标不同。通过函数重载来设计一系列的函数,它们完成相同或者相似的功能,但使用不同的参数列表。

2023-12-07 11:07:52 68

原创 ROS-ROS通信机制-常用命令

机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?和文件系统操作命令比较,文件操作命令是静态的,操作的是磁盘上的文件,而上述命令是动态的,在ROS程序启动后,可以动态的获取运行中的节点或参数的相关信息。

2023-12-07 09:16:17 50

原创 ROS-ROS通信机制-参数服务器

路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全局路径规划节点与局部路径规划节点都可以从参数服务器中调用这些参数。Talker 通过 RPC 向参数服务器发送参数(包括参数名与参数值),ROS Master 将参数保存到参数列表中。ROS Master 作为一个公共容器保存参数,Talker 可以向容器中设置参数,Listener 可以获取参数。注意:参数服务器不是为高性能而设计的(RPC通信协议的局限性),因此最好用于存储静态的非二进制的简单数据。实现参数增删改查操作。

2023-12-06 20:50:42 344

原创 ROS-ROS通信机制-服务通信

服务通信中,客户端提交两个整数至服务端,服务端求和并响应结果到客户端,请创建服务器与客户端通信的数据载体。按照固定格式创建srv文件编辑配置文件编译生成中间文件1.定义srv文件服务通信中,数据分成两部分,请求与响应,在 srv 文件中请求和响应使用—分割,具体实现如下:# 客户端请求时发送的两个数字 int32 num1int32 num2--- # 服务器响应发送的数据 int32 sum2.编辑配置文件package.xml中添加编译依赖与执行依赖--

2023-12-05 20:41:41 257

原创 ROS-ROS通信机制-话题通信

在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息… std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型。int8, int16, int32, int64 (或者无符号类型: uint*)string。

2023-12-04 11:06:50 124

原创 最小二乘法及参数辨识

1974年高斯提出的最小二乘法的基本原理是未知量的最可能值是使各项实际观测值和计算值之间差的平方乘以其精确度的数值以后的和为最小。zkykvkzkykvkzkz(k)zk为观测值,yky(k)yk为计算值,vkv(k)vk误差。最小二乘法为min∑k1mwk∣zk−yk∣2mink1∑m​wk∣zk−yk∣2w(k)为精确度。通过一个例子来理解最小二乘法。t(℃)t1t_1。

2023-11-14 18:50:03 3324 2

原创 Kalman滤波

卡尔曼滤波是一种最优化递归数据处理算法。Kalman滤波是时域滤波,采用状态空间描述系统,运用递推形式是计算简单,数据存储量小,应用广泛。广泛应用于惯性导航、制导系统、全球定位系统、目标跟踪、通信与信号处理、金融等。Kalman滤波器的广泛应用是因为我们的生活中存在大量不确定性。

2023-11-14 18:47:46 135

原创 范数-空间范数

范数(norm)是数学中的一种基本概念。在泛函分析中,它定义在赋范线性空间中,并满足一定的条件,即①非负性;②齐次性;③三角不等式。它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。

2023-11-06 16:07:59 187

原创 四、运算符

JAVA运算符

2022-10-28 14:33:22 990 1

新能源发电技术期末总结

新能源发电技术期末总结

2022-11-14

控制电机期末复习考点总结

控制电机期末复习考点总结

2022-06-20

电力系统分析期末考点总结

电力系统分析期末考点总结

2022-06-20

发电厂电气期末知识总结

发电厂电气期末知识总结

2022-06-20

电力系统继电保护期末复习总结

电力系统继电保护期末复习总结

2022-06-20

开关电源考点复习总结-彐雨

开关电源考点复习总结-彐雨

2022-05-14

工厂供电期末考点总结-彐雨

工厂供电期末考点总结-彐雨

2022-05-10

工程电磁场(1).pdf

工程电磁场(1).pdf

2021-07-05

用JK触发器设计三人抢答器.ms14

Multism仿真

2021-06-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除