自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(71)
  • 资源 (13)
  • 问答 (1)
  • 收藏
  • 关注

原创 递归——汉诺塔

印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。也就是说,步骤(1)将1~63个盘子需要借助C移到B上,步骤(3)将B上的63个盘子借助A移动到C上。问题二:将B上的63个盘子借助A移动到C上。(3)将B上的63个盘子移动到C上。(3)将C上的62个盘子移动到B上。(3)将A上的62个盘子移动到C上。

2024-04-20 00:05:08 306

原创 Arduino串口控制舵机机械臂

Arduino nano作为主控板,控制由四个SG90舵机组成的机械臂,原先想着用四个电位计控制舵机转动,结果舵机一直抖动,索性就使用串口类似at指令控制舵机转动。使用的串口中断,通信的数据也是 字母+数字 的格式,字母代表舵机的编号,目前只控制三个舵机,对应的字母分别是 a,s,d,数字代表需要转动到的角度。

2024-03-05 20:32:40 371

原创 Nano 33 BLE Sense Rev2学习第二节——手机蓝牙接收数据

Nano 33 BLE Sense Rev2需要下载的程序。操作如图,最后一张就是接受到的数据。

2024-03-05 16:24:46 407

原创 Arduino与processing之间的通信——进阶版

本次需要实现Arduino获取板子的偏转角度并通过串口发送给processing,processing部分根据传输过来的各个轴的偏转角度建立对应偏转角度的3D模型。这就涉及了两个轴正负方向的偏转,我的实现思路是使用串口传输 字母+数字 格式的信息,字母用来判断是哪个轴发生偏转,偏转的角度是正是负,数字就用来表示偏转的角度。此次是Z轴和X轴这两个。

2024-03-04 18:08:40 772

原创 Nano 33 BLE Sense Rev2学习第一节——环境配置

连接开发板到电脑,自动识别开发板端口,选择端口。打开Arduino ide安装开发板。

2024-03-04 18:08:15 434

原创 第一节——单片机概述

体系结构分为几类:(1)嵌入式微处理器(microprocessor unit,MPU):其诞生和基本原理与计算机的 CPU 有很大的关系,支持 32 位精简指令集。正是微处理器的诞生,使得嵌入式系统发生了巨大变化。其中以 ARM 嵌入式处理器为代表,被广泛应用在各个电子领域。它的优势是更能适应系统,更能稳定、高效的控制和运行嵌入式系统,并且抗干扰能力以及其他方面的性能都得到了提升。

2024-01-23 12:28:31 1205 1

原创 ROS第四十四节——路径规划

该文件是move_base 在全局路径规划与本地路径规划时调用的通用参数,包括:机器人的尺寸、距离障碍物的安全距离、传感器信息等。(为了省事,我把Gazebo仿真环境的launch文件也集成在这里了,没有按照教程说的单独启动,目前没有出现问题)基本的局部规划器参数配置,这个配置文件设定了机器人的最大和最小速度限制值,也设定了加速度的阈值。运行集大成的launch文件,在rviz里面添加需要的组件,保存rviz文件到工程文件夹里面。要注意的是在设置路径规划的组件的时候,全局路径规划的组件要选择。

2023-04-26 13:27:12 1929

原创 ROS第四十三节——定位

在启动的 rviz 中,添加RobotModel、Map组件,分别显示机器人模型与地图,添加 posearray 插件,设置topic为particlecloud来显示 amcl 预估的当前机器人的位姿,箭头越是密集,说明当前机器人处于此位置的概率越高;上一步中集成地图服务、amcl 与 rviz 的 launch 文件;通过键盘控制机器人运动,会发现 posearray 也随之而改变。3.3启动test_amcl.launch。3.1先启动 Gazebo 仿真环境。3.4添加组件,显示效果。

2023-04-26 13:26:55 674

原创 ROS学习第四十二节——地图服务

map_server功能包中提供了两个节点: map_saver 和 map_server,前者用于将栅格地图保存到磁盘,后者读取磁盘的栅格地图并以服务的方式提供出去。sudo apt install ros--map-server。

2023-04-25 09:22:25 2577

原创 ROS学习第四十一节——SLAM建图

该移动机器人可以发布里程计消息机器人需要发布雷达消息(该消息可以通过水平固定安装的雷达发布,或者也可以将深度相机消息转换成雷达消息)关于里程计与雷达数据,仿真环境中可以正常获取的,不再赘述,栅格地图如案例所示。

2023-04-25 09:21:51 1734

原创 ROS学习第三十五节——URDF集成Gazebo实操

注意: 如果机器人模型在 Gazebo 中产生了抖动,滑动,缓慢位移 .... 诸如此类情况,请查看。车轮翻转需要依赖于 PI 值,如果 PI 值精度偏低,也可能导致上述情况产生。惯性矩阵是否设置了,且设置是否正确合理。

2023-04-24 07:31:15 488

原创 ROS学习第四十节——kinect信息仿真以及显示

这里注意没有单独为了深度相机设置的连杆,我们采用激光雷达的连杆,先暂时用一下。运行lanuch文件,这里不需要重新编写launch,用上一节的就可以。打开rviz以后,新建一个摄像头的显示插件。运行一个键盘控制程序。

2023-04-23 20:53:18 201

原创 ROS学习第三十九节——摄像头信息仿真以及显示

运行lanuch文件,这里不需要重新编写launch,用上一节的就可以。打开rviz以后,新建一个摄像头的显示插件。运行一个键盘控制程序。

2023-04-23 20:52:35 202

原创 ROS学习第三十八节——雷达信息仿真以及显示

运行lanuch文件,这里不需要重新编写launch,用上一节的就可以。打开rviz以后,新建一个雷达的显示插件。

2023-04-23 20:52:13 268

原创 ROS学习第三十七节——机器人运动控制以及里程计信息显示

同一套 ROS 程序,如何部署在不同的机器人系统上,比如:开发阶段为了提高效率是在仿真平台上测试的,部署时又有不同的实体机器人平台,不同平台的实现是有差异的,如何保证 ROS 程序的可移植性?ROS 内置的解决方式是 ros_control。是一组软件包,它包含了控制器接口,控制器管理器,传输和硬件接口。

2023-04-23 20:50:54 1426

原创 ROS学习第三十六节——Gazebo仿真环境搭建

在工程文件中创建worlds文件夹,并把之前下载的box_house.world文件放入deamo03_car_world.launch2.添加内置组件创建仿真环境2.1启动 Gazebo 并添加组件2.2保存仿真环境添加完毕后,选择 file ---> Save World as 选择保存路径(功能包下: worlds 目录),文件名自定义,后缀名设置为 .world核心代码: 启动 empty_world 后,再根据加载自定义的仿真环境3.自定义仿真环境3.1 启动 gaz

2023-04-23 20:50:32 1490

原创 ROS学习第三十四节——URDF与Gazebo基本集成流程

较之于 rviz,gazebo在集成 URDF 时,需要做些许修改,比如:必须添加 collision 碰撞属性相关参数、必须添加 inertial 惯性矩阵相关参数,另外,如果直接移植 Rviz 中机器人的颜色设置是没有显示的,颜色设置也必须做相应的变更。需要注意的是,原则上,除了 base_footprint 外,机器人的每个刚体部分都需要设置惯性矩阵,且惯性矩阵必须经计算得出,如果随意定义刚体部分的惯性矩阵,那么可能会导致机器人在 Gazebo 中出现抖动,移动等现象。

2023-04-23 20:50:13 601

原创 ROS学习第三十三节——Arbotix使用

通过 URDF 结合 rviz 可以创建并显示机器人模型,不过,当前实现的只是静态模型,如何控制模型的运动呢?在此,可以调用 Arbotix 实现此功能。Arbotix 是一款控制电机、舵机的控制板,并提供相应的 ros 功能包,这个功能包的功能不仅可以驱动真实的 Arbotix 控制板,它还提供一个差速控制器,通过接受速度控制指令更新机器人的 joint 状态,从而帮助我们实现机器人在 rviz 中的运动。

2023-04-23 20:49:59 1260

原创 ROS学习第三十二节——xacro构建激光雷达小车

在前面小车底盘基础之上,添加摄像头和雷达传感器。

2023-04-23 20:49:48 1040 3

原创 ROS学习第三十一节——xacro

使用xacro优化上一节案例中驱动轮实现,需要使用变量封装底盘的半径、高度,使用数学公式动态计算底盘的关节点坐标,使用 Xacro 宏封装轮子重复的代码并调用宏创建两个轮子(注意: 在此,演示 Xacro 的基本使用,不必要生成合法的 URDF )。编写 Xacro 文件,以变量的方式封装属性(常量半径、高度、车轮半径...),以函数的方式封装重复实现(车轮的添加)。会将 xacro 文件解析为 urdf 文件。

2023-04-23 20:42:42 182

原创 ROS学习第三十节——URDF练习

创建一个四轮圆柱状机器人模型,机器人参数如下,底盘为圆柱状,半径 10cm,高 8cm,四轮由两个驱动轮和两个万向支撑轮组成,两个驱动轮半径为 3.25cm,轮胎宽度1.5cm,两个万向轮为球状,半径 0.75cm,底盘离地间距为 1.5cm(与万向轮直径一致)

2023-04-23 20:42:07 217

原创 ROS学习第二十九节——URDF之joint

urdf 中的 joint 标签用于描述机器人关节的运动学和动力学属性,还可以指定关节运动的安全极限,机器人的两个部件(分别称之为 parent link 与 child link)以"关节"的形式相连接,不同的关节有不同的运动形式: 旋转、滑动、固定、旋转速度、旋转角度限制....,比如:安装在底座上的轮子可以360度旋转,而摄像头则可能是完全固定在底座上。joint标签对应的数据在模型中是不可见的。

2023-04-22 23:16:00 1287 2

原创 ROS学习第二十八节——URDF之robot link

robot 根标签,类似于 launch文件中的launch标签link 连杆标签joint 关节标签gazebo 集成gazebo需要使用的标签关于gazebo标签,后期在使用 gazebo 仿真时,才需要使用到,用于配置仿真环境所需参数,比如: 机器人材料属性、gazebo插件等,但是该标签不是机器人模型必须的,只有在仿真时才需设置。

2023-04-22 23:15:45 745

原创 ROS学习第二十六节——机器人仿真相关组件

例如:可以显示机器人模型,可以无需编程就能表达激光测距仪(LRF)传感器中的传感 器到障碍物的距离,RealSense、Kinect或Xtion等三维距离传感器的点云数据(PCD, Point Cloud Data),从相机获取的图像值等。,可以以一种 XML 的方式描述机器人的部分结构,比如底盘、摄像头、激光雷达、机械臂以及不同关节的自由度.....,该文件可以被 C++ 内置的解释器转换成可视化的机器人模型,是 ROS 中实现机器人仿真的重要组件。打开主目录,打开终端,输入以下命令。

2023-04-22 23:15:12 477

原创 ROS学习第二十七节——URDF集成Rviz基本流程

前面介绍过,URDF 不能单独使用,需要结合 Rviz 或 Gazebo,URDF 只是一个文件,需要在 Rviz 或 Gazebo 中渲染成图形化的机器人模型,当前,首先演示URDF与Rviz的集成使用,因为URDF与Rviz的集成较之于URDF与Gazebo的集成更为简单,后期,基于Rviz的集成实现,我们再进一步介绍URDF语法。在 Rviz 中显示一个盒状机器人准备:新建功能包,导入依赖核心:编写 urdf 文件核心:在 launch 文件集成 URDF 与 Rviz。

2023-04-22 23:15:12 1515

原创 ROS学习第二十五节——rqt工具箱

rqt_console 是 ROS 中用于显示和过滤日志的图形化插件。

2023-04-22 11:12:36 317

原创 ROS学习第二十四节——rosbag

命令实现不够灵活,可以使用编码的方式,增强录制与回放的灵活性,本节将通过简单的读写实现演示rosbag的编码实现。ROS 内置的乌龟案例并操作,操作过程中使用 rosbag 录制,录制结束后,实现重放。操作小乌龟一段时间,结束录制使用 ctrl + c,在创建的目录中会生成bag文件。在test.bag文件所在文件夹打开终端,执行以下命令就可以查看详细信息。通过以下两种方式读取,一种是文档里面写的,另一种是上课讲的。重启乌龟节点,会发现,乌龟按照录制时的轨迹运动。创建目录保存录制的文件。

2023-04-22 10:29:34 1304

原创 ROS学习第二十三节——TF坐标变换实操

程序启动之初: 产生两只乌龟,中间的乌龟(A) 和 左下乌龟(B), B 会自动运行至A的位置,并且键盘控制时,只是控制 A 的运动,但是 B 可以跟随 A 运行。乌龟跟随实现的核心,是乌龟A和B都要发布相对世界坐标系的坐标信息,然后,订阅到该信息需要转换获取A相对于B坐标系的信息,最后,再生成速度信息,并控制B运动。键盘是无法控制第二只乌龟运动的,因为使用的话题: /第二只乌龟名称/cmd_vel,对应的要控制乌龟运动必须发布对应的话题消息。编写订阅方,订阅两只乌龟信息,生成速度信息并发布。

2023-04-22 10:29:12 1017

原创 ROS学习第二十二节——坐标系关系查看

在机器人系统中,涉及的坐标系有多个,为了方便查看,ros 提供了专门的工具,可以用于生成显示坐标系关系的 pdf 文件,该文件包含树形结构的坐标系图谱。

2023-04-22 10:28:51 336

原创 ROS学习第二十一节——多坐标变换

现有坐标系统,父级坐标系统 world,下有两子级系统 son1,son2,son1 相对于 world,以及 son2 相对于 world 的关系是已知的,求 son1原点在 son2中的坐标,又已知在 son1中一点的坐标,要求求出该点在 son2 中的坐标首先,需要发布 son1 相对于 world,以及 son2 相对于 world 的坐标消息然后,需要订阅坐标发布消息,并取出订阅的消息,借助于 tf2 实现 son1 和 son2 的转换最后,还要实现坐标点的转换新建功能包,添加依赖。

2023-04-22 10:28:47 164

原创 ROS学习第二十节——TF动态坐标变换

所谓动态坐标变换,是指两个坐标系之间的相对位置是变化的。需求描述:启动 turtlesim_node,该节点中窗体有一个世界坐标系(左下角为坐标系原点),乌龟是另一个坐标系,键盘控制乌龟运动,将两个坐标系的相对位置动态发布。实现分析:乌龟本身不但可以看作坐标系,也是世界坐标系中的一个坐标点订阅 turtle1/pose,可以获取乌龟在世界坐标系的 x坐标、y坐标、偏移量以及线速度和角速度将 pose 信息转换成 坐标系相对信息并发布。

2023-04-21 20:58:26 291

原创 ROS学习第十九节——TF静态坐标变换

现有一机器人模型,核心构成包含主体与雷达,各对应一坐标系,坐标系的原点分别位于主体与雷达的物理中心,已知雷达原点相对于主体原点位移关系如下: x 0.2 y0.0 z0.5。当前雷达检测到一障碍物,在雷达坐标系中障碍物的坐标为 (2.0 3.0 5.0),请问,该障碍物相对于主体的坐标是多少?前者用于传输坐标系相关位置信息,后者用于传输某个坐标系内坐标点的信息。在坐标变换中,频繁的需要使用到坐标系的相对关系以及坐标点信息。所谓静态坐标变换,是指两个坐标系之间的相对位置是固定的。

2023-04-21 18:43:17 899

原创 ROS学习第十八节——launch文件(详细介绍)

关于 launch 文件的使用已经不陌生了,之前就曾经介绍到:一个程序中可能需要启动多个节点,比如:ROS 内置的小乌龟案例,如果要控制乌龟运动,要启动多个窗口,分别启动 roscore、乌龟界面节点、键盘控制节点。如果每次都调用 rosrun 逐一启动,显然效率低下,如何优化?采用的优化策略便是使用roslaunch 命令集合 launch 文件启动管理节点,并且在后续教程中,也多次使用到了 launch 文件。概念。

2023-04-20 20:25:51 985

原创 ROS学习第十七节——元功能包

完成ROS中一个系统性的功能,可能涉及到多个功能包,比如实现了机器人导航模块,该模块下有地图、定位、路径规划...等不同的子级功能包。那么调用者安装该模块时,需要逐一的安装每一个功能包吗?显而易见的,逐一安装功能包的效率低下,在ROS中,提供了一种方式可以将不同的功能包打包成一个功能包,当安装某个功能模块时,直接调用打包后的功能包即可,该包又称之为元功能包(metapackage)。

2023-04-20 17:28:46 111

原创 ROS学习第十六节—— 头文件与源文件

新建功能包在该路径下创建头文件编写以下代码public:void run();#endif在 VScode 中,为了后续包含头文件时不抛出异常,请配置 .vscode 下 c_cpp_properties.json 的 includepath属性"/home/用户/工作空间/src/功能包/include/**"ROS_INFO("自定义头文件的使用....");return 0;include最后,编译并执行,控制台可以输出自定义的文本信息。1.头文件class My {

2023-04-20 16:42:20 248

原创 ROS学习第十五节——常用API(C++)

由于时间问题,从这一节开始只记录C++实现效果,加油以下附上这一节调试用的程序。

2023-04-20 15:43:38 305 3

原创 ROS学习第十四节——参数服务器控制小乌龟

修改相关参数后,重启 turtlesim_node 节点,背景色就会发生改变了。单独使用命令启动小乌龟节点,不是用lanuch文件,不启动键盘控制节点。新建编程文件,编辑配置文件,添加可执行权限。创建编程文件,编写代码,编辑配置文件。使用命令打印参数服务器参数列表。

2023-04-19 07:43:00 909

原创 ROS学习第十三节——服务通信控制小乌龟

新建编程文件,编辑配置文件,添加可执行权限。创建编程文件,编写代码,编辑配置文件。使用命令实现访问服务端创建小乌龟。获取服务话题以及服务的消息类型。产看该消息的具体信息。

2023-04-19 07:42:31 465 4

原创 ROS学习第十二节——话题通信控制小乌龟

因为这里要调用turtlesim功能包里面定义的消息类型,所以需要添加该功能包作为依赖。使用最开始helloworld功能包里的launch文件。创建编程文件并添加可执行权限,编辑配置文件。打开计算图查看具体是那个话题在起作用。这个其实可以通过终端实现,输入以下代码。从上图可以看到两个节点之间的话题是。创建编程文件,编写代码,编辑配置文件。打印出来乌龟键盘控制节点的话题。这里要实现一个小乌龟转圈圈的功能。添加可执行权限,运行查看效果。创建编程文件,修改配置文件。使用以下命令获取话题信息。

2023-04-19 07:41:55 2091 3

原创 ROS学习第十一节——常用命令

机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?rosnode : 操作节点rostopic : 操作话题rosservice : 操作服务rosmsg : 操作msg消息rossrv : 操作srv消息rosparam : 操作参数。

2023-04-19 07:41:32 1483

安卓软件lightblue

安卓软件用于蓝牙调试

2024-03-04

ROS学习教程304第四十三节

ROS学习教程304第四十三节

2023-04-25

ROS教程学习300第四十一节

ROS教程学习300第四十一节

2023-04-24

ROS学习教程代码文件

ROS学习教程代码文件

2023-04-23

ROS学习教程相关代码281第三十七节

ROS学习教程相关代码281第三十七节

2023-04-23

ROS学习教程,208第三十七节

ROS学习教程,208第三十七节

2023-04-23

ROS学习教程有关代码277第三十六节

ROS学习教程有关代码277第三十六节

2023-04-23

ROS教程学习275第三十五节代码文件

ROS教程学习275第三十五节代码文件

2023-04-23

ROS教程学习271三十四节

ROS教程学习271三十四节

2023-04-23

268三十三节课程对应代码

268三十三节课程对应代码

2023-04-23

ROS学习 三十二节263个网课

ROS学习 三十二节265ff3个网课

2023-04-23

ROS学习248第三十节

ROS学习248第三十节

2023-04-23

ROS学习243-第二十九节

ROS学习243-第二十九节

2023-04-22

ROS学习236-二十八节

ROS学习236-二十八节

2023-04-22

ROS学习二十八节编程文件

ROS学习二十八节编程文件

2023-04-22

ROS学习编程相关课程代码

ROS学习编程相关课程代码

2023-04-22

ROS学习教程206节程序文件

ROS学习教程206节程序文件

2023-04-22

ROS学习教程199节程序

ROS学习教程199节程序

2023-04-21

ROS学习142节课程代码

ROS学习142节课程代码

2023-04-20

ROS学习130集课程程序

ROS学习130集课程程序

2023-04-20

ROS课程124节前半个程序

ROS课程124节前半个程序

2023-04-20

ROS各种方式修改参数服务器的参数控制小乌龟iu

ROS各种方式修改参数服务器的参数控制小乌龟iu

2023-04-18

ROS学习,使用话题通信,服务通信控制小乌龟

ROS学习,使用话题通信,服务通信控制小乌龟

2023-04-18

ROS学习第107节代码文件

ROS学习第107节代码文件

2023-04-18

ROS学习106节课程

ROS学习106节课程

2023-04-18

ROS学习使用Python实现参数服务器

ROS学习使用Python实现参数服务器

2023-04-17

ROS学习使用Python 实现客户端服务端

ROS学习使用Python 实现客户端服务端

2023-04-17

ROS服务通信C++实现服务端客户端程序

ROS服务通信C++实现服务端客户端程序

2023-04-17

ROS学习自定义msg C++ Python实现代码

ROS学习自定义msg C++ Python实现代码

2023-04-17

ROS学习-话题通信Python实现

ROS学习-话题通信Python实现

2023-04-16

ROS学习话题通信发布端程序 1

ROS学习话题通信发布端程序 1

2023-04-16

ROS学习话题通信发布端程序

ROS学习aaaaaa之pub

2023-04-16

proteus编程、仿真AVR单片机流水灯、共阴数码管,WINAVR编程软件

proteus编程、仿真AVR单片机流水灯、共阴数码管,WINAVR编程软件

2022-07-05

蓝桥杯嵌入式——LED工程文件

蓝桥杯嵌入式——LED工程文件

2022-06-04

蓝桥杯嵌入式——RTC 工程文件

蓝桥杯嵌入式——RTC 工程文件

2022-04-06

蓝桥杯嵌入式——TIM定时器

蓝桥杯嵌入式——TIM定时器

2022-04-05

蓝桥杯嵌入式——ADC工程文件

蓝桥杯嵌入式——ADC工程文件

2022-04-05

蓝桥杯嵌入式 mcp4017 iic

蓝桥杯嵌入式 mcp4017 iic

2022-04-04

蓝桥杯嵌入式IIC工程文件

蓝桥杯嵌入式IIC工程文件

2022-04-04

蓝桥杯嵌入式 外部中断工程文件

蓝桥杯嵌入式 外部中断工程文件

2022-04-03

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

TA关注的人

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