Torque control
New in release 1.2.0
扭矩控制变得更加容易。现在您可以像关节/笛卡尔速度一样发布扭矩/力命令。为此,您需要:
- 1、可选 - 设置扭矩参数
通常默认参数应该适用于大多数应用程序。但是如果你需要改变一些扭矩参数,你可以设置参数(在页尾列出)然后调用服务——SetTorqueControlParameters${kinova_robotType}_driver/in/set_torque_control_parameters
- 2、从位置控制切换到转矩控制
您可以使用该服务执行此操作 - SetTorqueControlMode${kinova_robotType}_driver'/in/set_torque_control_mode
- 3、发布扭矩命令
rostopic pub -r 100 /j2n6s300_driver/in/joint_torque kinova_msgs/JointTorque "{joint1: 0.0, joint2: 0.0, joint3: 0.0, joint4: 0.0, joint5: 0.0, joint6: 1.0}"
Gravity compensation(重力补偿)
默认情况下,重力补偿在机器人底座中完成。这意味着,如果机器人被命令为零扭矩,则机器人不会在重力作用下下落。这种情况(零指令扭矩)可以称为gravity compensated mode
。机器人可以通过手动推动其关节自由移动。您可以使用以下命令尝试此模式(对于 j2n6s300)
rosrun kinova_demo gravity_compensated_mode.py j2n6s300
此命令将机器人移动到类似蜡烛的姿势,将扭矩设置为零,然后启动扭矩控制模式。它将扭矩命令发布为 [0,0,0,0,0,0]
,因此可以通过推动单个关节来移动机器人。
可以通过设置参数来发布带或不带重力补偿的扭矩 - publish_torque_with_gravity_compensation: false
Torque inactivity
如果在给定的时间(默认为 250ms)后未发送扭矩命令,控制器将采取以下措施: (0):机器人将返回位置模式 (1):扭矩命令将设置为零。默认情况下,选项 (1) 设置为 Kinova 经典机器人(Jaco2 和 Mico),而选项 (0) 设置为通用模式。