FrankaStateInterface
这是一个 机器人专用 接口,因此与普通硬件接口略有不同。为了能够从控制器访问 franka 状态接口,请在 URDF 中声明以下带有所有七个关节的传动标签:
<transmission name="${arm_id}_franka_state">
<type>franka_hw/FrankaStateInterface</type>
<joint name="${arm_id}_joint1"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></joint>
<joint name="${arm_id}_joint2"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></joint>
<joint name="${arm_id}_joint3"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></joint>
<joint name="${arm_id}_joint4"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></joint>
<joint name="${arm_id}_joint5"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></joint>
<joint name="${arm_id}_joint6"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></joint>
<joint name="${arm_id}_joint7"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></joint>
<actuator name="${arm_id}_motor1"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></actuator>
<actuator name="${arm_id}_motor2"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></actuator>
<actuator name="${arm_id}_motor3"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></actuator>
<actuator name="${arm_id}_motor4"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></actuator>
<actuator name="${arm_id}_motor5"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></actuator>
<actuator name="${arm_id}_motor6"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></actuator>
<actuator name="${arm_id}_motor7"><hardwareInterface>franka_hw/FrankaStateInterface</hardwareInterface></actuator>
</transmission>当您的控制器通过 FrankaStateInterface 访问 机器人状态 RobotState 时,它可以期望仿真出以下值:
区域 | 注释 | |
|---|---|---|
✔ |
| |
✘ |
| 尚不支持运动生成,字段将仅包含零 |
✔ |
| 可以通过参数 |
✔ |
| 可以通过参数 |
✔ |
| 可以通过参数 |
✔ |
| 如果可以找到抓手,将可以从 URDF 惯性标签中的质量来设置,否则为零。可以被参数 |
✔ |
| 如果可以找到抓手,将可以从 URDF 惯性标签中的惯量来设置,否则为零。可以被参数 |
✔ |
| 如果可以找到抓手,将可以从 URDF 的惯性标签中的原点来设置,否则为零。可以被参数 |
✔ |
| 可以通过参数 |
✔ |
| 可以通过参数 |
✔ |
| 可以通过参数 |
✔ |
| |
✔ |
| |
✔ |
| |
✘ |
| |
✘ |
| |
✘ |
| |
✘ |
| |
✘ |
| |
✔ |
| 直接来自 Gazebo |
✔ |
| 扭矩控制器发送的值,否则为0 |
✔ |
|
|
✔ |
| 直接来自 Gazebo |
✔ |
| 使用位置接口时的最后一个命令关节位置。当使用速度接口时与 |
✔ |
| 直接来自 Gazebo |
✔ |
| 使用速度接口时的最后命令关节速度。当使用位置接口时与 |
✔ |
| 使用位置或速度接口时的当前加速度。但是,当使用扭矩接口时,该值将为零。 |
✔ |
|
|
✔ |
|
|
✔ |
|
|
✔ |
|
|
✔ |
| |
✔ |
| |
✔ |
| |
✘ |
| |
✔ |
| 将与 |
✘ |
| |
✘ |
| |
✘ |
| |
✔ |
| 与 |
✔ |
| 与 |
✘ |
| 完全是假的,反射系统尚未实现 |
✘ |
| 完全是假的,反射系统尚未实现 |
✔ |
| 总是 1.0 |
✘ |
| 机器人模式切换和反射系统尚未实现 |
✔ |
| 仿真中的当前 ROS 时间,来自 Gazebo |