ROS2 Control hardware_interface说明

本文详细介绍了ROS2Control中各种硬件接口,如JointCommandInterface、JointStateInterfaces、ActuatorStateInterfaces和ActuatorCommandInterfaces,以及Force-torquesensorInterface和IMUsensorInterface的作用和用途,为开发者提供了硬件交互的统一指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ROS2 Control hardware_interface说明

前言

hardware_interface是ROS control控制使用的硬件接口,用来向硬件发送 ( write() ) 命令并从其接收 ( read() ) 各轴的状态。

hardware_interface说明

当前可用的硬件接口(通过Hardware Resource Manager)的列表如下所示:

Joint Command Interface(机器人关节轴)

关节命令接口-支持命令关节阵列的硬件接口。这些命令可以具有任何语义含义,只要它们每个都由单个double表示,它们不一定是工作量命令。若要指定此命令的含义,具体派生类如下:

  • Effort Joint Interface 用于做依赖扭矩为底层数据的轴控制
  • Velocity Joint Interface 用于做依赖速度为底层数据的轴控制
  • Position Joint Interface 用于做依赖位置为底层数据的轴控制

Joint State Interfaces(机器人关节轴)

支持读取一个列表关节名的关节状态的硬件接口,每个关节都有位置、速度和作用力 (压力或扭矩)。

Actuator State Interfaces(外接夹爪、吸盘、运动底座等)

支持读取一个列表执行器名的执行器状态的硬件接口,每个执行器都有一定的位置,速度和作用力 (力或扭矩)。

Actuator Command Interfaces(外接夹爪、吸盘、运动底座等)

  • Effort Actuator Interface 用于做依赖扭矩为底层数据的执行器控制
  • Velocity Actuator Interface 用于做依赖速度为底层数据的执行器控制
  • Position Actuator Interface 用于做依赖位置为底层数据的执行器控制

Force-torque sensor Interface(一般在关节最末端)

用于检测反馈末端夹具/轴的压力、力矩。

IMU sensor Interface

MU 是惯性测量单元(Inertial Measurement Unit)的缩写。它是一种电子设备,用于测量和报告物体的三个基本线性运动(加速度)和三个基本角运动(角速度)。

IMU 的主要组件包括:

  • 加速度计(Accelerometer):用于测量物体的加速度。 加速度是速度随时间的变化率,因此通过对加速度的积分可以得到速度,再积分一次得到位移。
  • 陀螺仪(Gyroscope):用于测量物体的角速度,即物体绕其轴旋转的速率。通过对角速度的积分可以得到角度。
  • 磁力计(Magnetometer):用于测量物体周围的磁场。 这对于确定物体的朝向在地球坐标系中的方向很有帮助。

总结

本文主要对ROS control常用的hardware_interface做了整理汇总统一说明,方便后续查阅了解使用。

分析colcon build报错 --- stderr: gazebo_ros2_control In file included from /opt/ros/foxy/include/hardware_interface/resource_manager.hpp:25, from /home/ileumbbb/ros2_ws/src/gazebo_ros2_control/gazebo_ros2_control/src/gazebo_ros2_control_plugin.cpp:49: /opt/ros/foxy/include/hardware_interface/loaned_command_interface.hpp: In member function ‘const string hardware_interface::LoanedCommandInterface::get_full_name() const’: /opt/ros/foxy/include/hardware_interface/loaned_command_interface.hpp:57:71: error: ‘class hardware_interface::CommandInterface’ has no member named ‘get_full_name’; did you mean ‘get_name’? 57 | td::string get_full_name() const { return command_interface_.get_full_name(); } | ^~~~~~~~~~~~~ | get_name In file included from /opt/ros/foxy/include/hardware_interface/resource_manager.hpp:26, from /home/ileumbbb/ros2_ws/src/gazebo_ros2_control/gazebo_ros2_control/src/gazebo_ros2_control_plugin.cpp:49: /opt/ros/foxy/include/hardware_interface/loaned_state_interface.hpp: In member function ‘const string hardware_interface::LoanedStateInterface::get_full_name() const’: /opt/ros/foxy/include/hardware_interface/loaned_state_interface.hpp:57:69: error: ‘class hardware_interface::StateInterface’ has no member named ‘get_full_name’; did you mean ‘get_name’? 57 | std::string get_full_name() const { return state_interface_.get_full_name(); } | ^~~~~~~~~~~~~ | get_name /home/ileumbbb/ros2_ws/src/gazebo_ros2_control/gazebo_ros2_control/src/gazebo_ros2_control_plugin.cpp: In member function ‘virtual void gazebo_ros2_control::GazeboRosControlPlugin::Load(gazebo::physics::ModelPtr, sdf::v9::ElementPtr)’: /home/ileumbbb/ros2_ws/src/gazebo_
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人梦想家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值