首页 > 其他分享 >Franka Robot franka_hw 与franka_control 是什么关系

Franka Robot franka_hw 与franka_control 是什么关系

时间:2024-07-12 17:08:02浏览次数:13  
标签:control franka libfranka 机器人 Robot hw Panda

franka_hw 和 franka_control 是 ROS 中两个不同但相关的软件包,它们共同为 Franka Emika 的 Panda 机器人提供控制功能。

franka_hw:

  • 这个软件包负责与 Panda 机器人的硬件进行底层接口。
  • 它提供了 franka_hw_node 节点,用于建立与 Panda 机器人的通信,并发布机器人的状态信息。
  • franka_hw 处理原始的硬件交互,如读取传感器数据、发送控制命令等。

franka_control:

  • 这个软件包提供了更高层次的机器人控制功能。
  • 它建立在 franka_hw 之上,提供了诸如关节控制、力控制、卡尔曼滤波等功能。
  • franka_control 包含了 franka_control_node,负责接收来自上层应用的控制指令,并将其转换为发送给 franka_hw 的低级命令。

franka_hw 负责与 Panda 机器人硬件的直接交互,而 franka_control 则构建在此基础之上,提供更高级别的控制功能。

在使用 Panda 机器人时,通常需要同时启动 franka_hw_node 和 franka_control_node,以便上层应用程序可以利用完整的控制栈。这种分层设计使得开发和使用 Panda 机器人控制更加灵活和可扩展。

具体而言:

与 libfranka 库进行交互的是 franka_hw 软件包。

  1. libfranka 是 Franka Emika 提供的一个 C++ 库,用于与 Panda 机器人进行底层通信和控制。

  2. franka_hw 软件包内部使用了 libfranka 库,并在其之上提供了一个 ROS 接口。

  3. franka_hw_node 就是通过调用 libfranka 库,与 Panda 机器人的硬件进行交互的 ROS 节点。它负责:

    • 建立与 Panda 机器人的网络连接
    • 读取机器人的状态信息
    • 向机器人发送控制命令
  4. 其他需要访问 Panda 机器人的 ROS 节点,比如 franka_control 中的 franka_control_node,都会通过 franka_hw 软件包间接调用 libfranka 库的功能。

总之,franka_hw 软件包充当了 libfranka 库与 ROS 环境之间的桥梁,为上层 ROS 应用程序提供了一个标准化的接口来访问 Panda 机器人的底层硬件。这种分层设计有利于提高代码的可重用性和可维护性。

 

上位机指令下发后, 具体会经过哪些节点,详细交互过程:

franka_msgs::SetJointImpedance 指令下发后,会经过以下几个节点,最终影响 Panda 机器人的关节阻抗控制:

  1. 上层应用节点:

    • 这个节点发送 franka_msgs::SetJointImpedance 服务请求,设置期望的关节�impedance参数。
  2. franka_control_node:

    • 这个节点接收来自上层应用的 franka_msgs::SetJointImpedance 服务请求。
    • 它会解析请求中的关节阻抗参数,并将其转换为 libfranka 库能够理解的格式。
    • 然后,它会调用 franka_hw 提供的服务接口,将这些参数设置到 Panda 机器人上。
  3. franka_hw_node:

    • 这个节点实现了 franka_hw 中的服务接口,用于设置 Panda 机器人的关节阻抗参数。
    • 当接收到 franka_control_node 的服务请求时,它会调用 libfranka 库中的相应函数,将阻抗参数下发到 Panda 机器人的底层驱动器。
  4. libfranka 库:

    • franka_hw_node 内部会使用 libfranka 库提供的 API,向 Panda 机器人发送控制命令,包括设置关节阻抗参数。
    • libfranka 库会负责构造正确格式的网络数据包,并通过网络协议将其发送到 Panda 机器人的驱动器上。
  5. Panda 机器人驱动器:

    • Panda 机器人的底层驱动器会接收来自 libfranka 库的数据包,并将关节阻抗参数应用到实际的关节控制中。
    • 驱动器会根据这些阻抗参数,调整关节电机的扭矩输出,从而影响关节的刚度和阻尼特性。

总之,franka_msgs::SetJointImpedance 指令会经过上层应用、franka_control_nodefranka_hw_nodelibfranka 库,最终影响到 Panda 机器人驱动器中的关节阻抗控制。这个过程体现了 ROS 中分层控制的设计思想。

标签:control,franka,libfranka,机器人,Robot,hw,Panda
From: https://www.cnblogs.com/ai-ldj/p/18298966

相关文章

  • 全网最全AI绘画 StablDiffusion系列进阶篇-ControlNet插件介绍
    大家好,我是设计师阿威之前,我已经分享了众多AI绘画方面的学习教程文章,对于想自娱自乐的小伙伴们来说,这些内容应该已经足够使用了。但如果你的工作需要更精细的控制,想要达到更专业的水准,那就得进一步使用一些插件工具了。今天,就让我们来简单聊聊StablDiffusion的高级用法-C......
  • 演示:【Avalonia-Controls】Avalonia皮肤,主题,自定义控件,数据库,系统模块资源库
    一、目的:分享一个Avalonia皮肤,主题,自定义控件,数据库,系统模块资源库开源地址:GitHub-HeBianGu/Avalonia-Controls:Avalonia控件库Nuget包地址:NuGetGallery|PackagesmatchingHeBianGu.AvaloniaUI.演示视频地址:【Avalonia-Controls】Avalonia工具组件皮肤库v1.0.0_......
  • Franka Ros1 简介
    FrankaRos暂时在Windows上不受支持。 封装的示意图franka_ros元包franka_ros集成libfranka到ROS和ROS控件中。这里我们介绍它的包,并简要介绍如何编写控制器。本节中传递给启动文件的所有参数都带有默认值,因此如果使用默认网络地址和ROS命名空间,则可以省略这些参数。......
  • ComfyUI进阶篇:ControlNet核心节点
    前言:ControlNet_aux库包含大量的图片预处理节点,功能丰富,适用于图像分割、边缘检测、姿势检测、深度图处理等多种预处理方式。掌握这些节点的使用是利用ControlNet的关键,本篇文章将帮助您理解和学会使用这些节点。目录一、安装方法二、模型下载三、Segmentor节点四、Lines节......
  • Franka Robot demo 关节阻抗控制(joint_impedance_control.cpp)
    //Copyright(c)2023FrankaRoboticsGmbH//UseofthissourcecodeisgovernedbytheApache-2.0license,seeLICENSE#include<array>#include<atomic>#include<cmath>#include<functional>#include<iostream>#include&......
  • ComfyUI进阶篇:ControlNet核心节点
    前言:ControlNet_aux库包含大量的图片预处理节点,功能丰富,适用于图像分割、边缘检测、姿势检测、深度图处理等多种预处理方式。掌握这些节点的使用是利用ControlNet的关键,本篇文章将帮助您理解和学会使用这些节点。目录一、安装方法二、模型下载三、Segmentor节点四、Lines......
  • Franka Robot demo 真空夹抓控制示例(vacuum_object.cpp)
    //Copyright(c)2019FrankaRoboticsGmbH//UseofthissourcecodeisgovernedbytheApache-2.0license,seeLICENSE#include<iostream>#include<thread>#include<franka/exception.h>#include<franka/vacuum_gripper.h>/**......
  • Franka Robot 打印机器人关节位姿(print_joint_poses.cpp)
    //Copyright(c)2023FrankaRoboticsGmbH//UseofthissourcecodeisgovernedbytheApache-2.0license,seeLICENSE#include<iostream>#include<iterator>#include<franka/exception.h>#include<franka/model.h>/***@exam......
  • Franka Robot 夹爪控制示例(grasp_object.cpp)
    //Copyright(c)2023FrankaRoboticsGmbH//UseofthissourcecodeisgovernedbytheApache-2.0license,seeLICENSE#include<iostream>#include<sstream>#include<string>#include<thread>#include<franka/exception.h>......
  • Franka Robot demo 力控 force_control.cpp
    //Copyright(c)2023FrankaRoboticsGmbH//UseofthissourcecodeisgovernedbytheApache-2.0license,seeLICENSE#include<array>#include<iostream>#include<Eigen/Core>#include<franka/duration.h>#include<franka/......