• 2024-07-02ros2 - slam - 直流电机-编码器脉冲测量与校准
    这一节我们编写代码来尝试下是否能够读取到电机上编码器的脉冲数,并通过实验测试出小车的输出轴转速和编码器脉冲的比值。一、新建工程并导入开源库新建example25_encoder添加依赖[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=esp
  • 2024-07-02ros2 - slam - 使用编码器测量轮子最大速度
    新建example26_max_speed_measurement 添加依赖[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=espressif32;指定了使用的平台为Espressif32board=featheresp32;指定使用的硬件板为FeatherESP32framework=arduino;
  • 2024-07-02ros2 - slam - 编码器测速原理
    上节做完小车,遥控时小车前进时你应该会发现,小车很难走一条直线,但明明我们给到两个电机的PWM占空比都是相同的,原因在于每一个电机的硬件参数并不能完全的保证一致,所以当我们采用开环控制时,即使我们给到每个电机相同的电压,也不能让两个电机保持相同的转速。要解决这个问题我们就要
  • 2024-07-02ros2 slam - 订阅ROS2 Twist
    本节我们结合上一节电机控制以及前面章节的MicroROS话题订阅部分知识点,来实现一个可以用键盘遥控的小车。新建工程example24_ros2_car 修改配置[env:featheresp32];这是一个环境配置标签,指定了代码将运行的硬件平台和框架platform=espressif32;指定了使用的平台为E
  • 2024-07-01ros2 - microros - 雷达 -可视化点云
    上一节完成了指定角度距离的测量这一节我们将其合成ROS的laserscan消息,并将其通过microros发布到上位机,最终实现rviz2的可视化。 一、雷达消息介绍使用指令ros2interfaceshowsensor_msgs/msg/LaserScan,可以看到ROS2对雷达数据接口的定义。#Singlescanfromaplanarlas
  • 2024-07-01ROS2创建简单的C++功能包
    1.创建功能包终端下,进入ws00_helloworld/src目录,使用如下指令创建一个C++功能包:ros2pkgcreatepkg01_helloworld_cpp--build-typeament_cmake--dependenciesrclcpp--node-namehelloworld执行完毕,在src目录下将生成一个名为pkg01_helloworld_cpp的目录,且目录中已经
  • 2024-07-01使用 ROS2的多机器人探索
    原文链接:https://www.youtube.com/watch?v=J0RZP_xJ3XA ThisvideoshowsademonstrationoftheSOSproject,dedicatedtoforestfiredetectionusingafleetofrobots.Severalimportantissuesareaddressed.这段视频展示了SOS项目的演示,该项目致力于使用机器人
  • 2024-06-22ros2bag_convert 使用记录 | ros2 bag 转csv格式
    fishrosyyds:GitHub-fishros/ros2bag_convert:ConvertROS2bagfilestoCSV,JSON,etc.需要把ros2bag记录的机械臂关节信息读出来,再发送给机械臂重复记录的动作。现在要先转换成csv格式,记录一下。1.转到你的工作环境里,在该环境安装(我没有用sudo,因为只想装在某个cond
  • 2024-06-18ROS1迁移到ROS2
    在将ROS1迁移到ROS2的过程中,需要考虑以下几个重要的注意事项:1.**先决条件**:在开始迁移之前,请确保ROS1包的所有依赖项在ROS2中都是可用的。2.**包规范格式**:ROS2不支持ROS1的包规范格式1,只支持较新的格式版本(2及更高版本)。如果`package.xml`文件使用的是格式1,需要至少
  • 2024-05-27ROS2入门21讲__第21讲__ROS2应用与进阶攻略
    资源汇总常用框架自主导航比如移动机器人基本都会具备的自主导航功能,ROS2提供了完整的自主导航系统框架和各种实现好的算法,即便我们不开发任何代码,也可以在自己的机器人上,使用这套系统,快速实现自主导航的基本功能。大家如果要进行相关的应用开发,可以参考这个链接中的内容:
  • 2024-05-17ubuntu20.04安装ros2 Galactic
    注意:ros2galactic(2021.5~2022.11)和ros2foxy(2020.5~2023-5)对于基础系统库的版本需求几乎没有变化,主要是最低c++版本由c++14升级为c++17。同时autoware.universe官方教程中,在20.04上推荐的也是ros2galactic,因为autoware.universe用到了c++17的语法。上图为foxy,下图为galac
  • 2024-05-12ROS2:报错:package 'turtle_tf2_py' not found
    在学习tf坐标变换的乌龟小实验中,运行乌龟仿真程序出现的报错问题分析:原因还是没有先source一下解决:首先source/opt/ros/galactic/setup.bash然后再运行乌龟ros2launchturtle_tf2_pyturtle_tf2_demo.launch.py  参考:github上的一个老哥的回答   顺带
  • 2024-05-12ROS2速记
    工作空间进行ROS2相关代码的开发,首先需要一个工作空间任意创建文件夹,一般是以dev_workspace类似的命名方法。工作空间数量不唯一常见的结构应该是四个文件夹:buildinstalllogsrcsrc,代码空间,未来编写的代码、脚本,都需要人为的放置到这里;build,编译空间,保存编译过程中产生的
  • 2024-05-01ROS2官方文档阅读笔记:Managed nodes
    原文目录ManagednodesstatetransitionManagednodes这篇文章讲解了节点的生命周期蓝色方块里的被称为PrimaryState,即基本状态黄色方块里的被称为transition,即转换state在这里总结一下的节点的各个状态:1.一旦节点被实例化,则到达unconfigured的状态2.经过转换(transitio
  • 2024-04-29编写ROS2的组件(Component)
    0介绍0.1ROS1的Node和Nodelet在ROS1中,你可以将你的代码编写成Node或者Nodelet。Node被编译成可执行文件,Nodelet被编译成一个共享库,然后由一个container进程在运行时加载。0.2ROS2的统一API-组件在ROS2中,推荐使用组件(Component)来编写代码,类似于ROS1中的Nodelet。使用组件可
  • 2024-04-27ROS2学习-节点名随记
    1.节点名定义:主函数中的node=WriterNode("he")定义了该节点的名称defmain(args=None):"""ros2运行该节点的入口函数,可配置函数名称"""rclpy.init(args=args)#初始化rclpynode=WriterNode("he")#新建一个节点rclpy.spin(nod
  • 2024-04-20Ubuntu22.04版本安装对应版本ROS教程 (小白2024年)
    参考资料:(我是开了加速器,毕竟中间使用了github访问网址,国内免费加速器Steam++,开个github网站加速即可,不开我不知道行不行可以自己一试)ubuntu22.04安装ROS2详细教程-CSDN博客ROS安装详细教程——Ubuntu22.0.4LTS安装-CSDN博客我的虚拟机刚开始设置的是简体中文,此前已经通过
  • 2024-04-19ROS2笔记4--服务通讯
    ROS2中话题通讯可以实现多个ROS节点之间数据的单向传输,不过话题通讯是一种异步通信机制,发布者无法准确知道订阅者是否收到消息。而服务通信是一种基于请求响应的通信模型,在通信双方中客户端发送请求数据到服务端,服务端响应结果给客户端。 从服务实现机制看这种形式是CS模型,客
  • 2024-04-18ROS2笔记3--话题通讯
    一、话题(Topic)通讯简介话题通讯是ROS2使用频率最高的一种通信方式,有发布者发布指定话题的数据,订阅者只要订阅了该话题的数据,就可以接收到数据。话题通讯是基于发布/订阅模型,话题数据传输的特性是从一个节点到另一个节点,发送数据的对象称为发布者,接收数据的对象称为订阅者,每个话题
  • 2024-04-18ROS2笔记2--工作空间、功能包、节点
    一、工作空间(Workspace)ROS工作空间是用于存放ros功能包的一个文件夹,通常以ws结尾。用于存放工程开发相关的所有文件,包括源代码、编译生成的文件以及配置我呢见等。在ROS中工作空间是使用Catkin编译系统来组织和管理代码的基础单元。每个工作空间通常包含一个或多个功能包,这些功能
  • 2024-04-17编写ROS2(C++语言)软件包的步骤
    0简介介绍编写ROS2(C++语言)软件包的步骤;0.1前置条件参考x.1,和x.2,安装ROS2和编译工具;1创建ROS2软件包以下的指令,创建一个名为mtuav-sns-radar-ros2的ROS2软件包,使用ament_cmake作为构建系统,许可证类型为Apache-2.0,并包含一个名为radar_node的节点;mkdir-p~/ros2_ws/srccd
  • 2024-04-17ROS2笔记1--简介及开发环境搭建
    一、ROS2简介1.1、ROS2概述ROS2是第二代的RobotOperatingSystem,ROS1的升级版本,解决了ROS1存在的一些问题。与ROS1相比,Linux版本与ROS2版本的选择也有关系,对应关系如下:ROS2版本Ubuntu版本FoxyUbuntu20.04GalacticUbuntu20.04HumbleUbuntu
  • 2024-04-071、ros2的安装
    本文安装ros2系统,以ubuntu20.04为例,不同的ubuntu版本安装方法略有不同1、确定虚拟机中是否设置了支持UTF-8使用locale命令查看, 如上图所示,本虚拟机已经支持UTF-8,因此无需设置。如果不支持UTF-8格式,则需要配置支持UTF-8,配置命令如下:sudoaptupdate&&sudoaptinstallloca
  • 2024-04-05Solidworks导出urdf,在ros2中使用gazebo仿真教程
    1.前言本人目前初学ros2,最近在实践ros2中的gazebo仿真,入门跟着鱼香ros老师和古月居老师来学习相关的知识,在gazebo仿真环节,发现教程里基本都是采用自写urdf来生成几何图像(圆柱、立方体)来组成简单的机器人,因此在后期仿真的真实性带来了一定的局限性,因此我最近在研究如何在ros2中
  • 2024-04-03中间件_ROS2和CyberRT
    中间件中间件的主要任务,是负责各类应用软件模块之间的通信以及对系统资源的调度。进程间通信的机制(IPC:inter-processcommuniction)内容都是与具体应用逻辑无关的,包括数据通信、通信安全、系统资源调度等1.Ros2.iceoryx「冰羚」RouDi的名称由来是’‘Rou’‘ting和