1、Velocity control for Joint space and Cartesian space
用户可以访问关节速度和笛卡尔速度(角速度和线速度)。
关节速度控制可以通过发布到主题/'${kinova_robotType}_driver'/in/joint_velocity
来实现,以下命令可以以大约 10 度/秒的速度移动 Jaco 机器人的第 6 个关节。请注意,发布速度确实会影响运动速度。
eg:rostopic pub -r 100 /j2n6s300_driver/in/joint_velocity kinova_msgs/JointVelocity "{joint1: 0.0, joint2: 0.0, joint3: 0.0, joint4: 0.0, joint5: 0.0, joint6: 10.0}"
对于笛卡尔线速度,单位是米/秒。角速度“Omega”的定义基于斜对称矩阵“S = R*R^(-1)”,其中“R”是旋转矩阵。角速度矢量“Omega = [S(3,2); S(1,3); S(2,1)]”。单位是弧度/秒。下面给出一个例子:
eg:rostopic pub -r 100 /j2n6s300_driver/in/cartesian_velocity kinova_msgs/PoseVelocity "{twist_linear_x: 0.0, twist_linear_y: 0.0, twist_linear_z: 0.0, twist_angular_x: 0.0, twist_angular_y: 0.0, twist_angular_z: 10.0}"
一旦该主题的发布完成,该运动将停止。使用速度控制时请小心,因为它是连续运动,除非您停止它。
关于发布频率的注意事项: 由于机器人内部的 DSP 每 10 毫秒循环一次,关节速度设置为以 100Hz 的频率发布。较高的频率不会对速度产生任何影响。但是,它会填满一个缓冲区(大小为 2000),即使机器人停止接收速度主题,它也可能会继续移动一点。对于低于 100Hz 的频率,机器人将无法达到要求的速度。
因此,100Hz 的发布速率不是一个可选参数,而是一个要求。
2、ROS service commands
用户可以使用以下命令将机器人归位。它不需要任何参数,并将机器人带到预先定义的起始位置。该命令支持自定义 home 位置,用户也可以使用 SDK 或 JacoSoft 定义。rosservice call /'${kinova_robotType}_driver'/in/home_arm
用户还可以使用这些 rosservices 启用和禁用 ROS 运动命令:
rosservice call /'${kinova_robotType}_driver'/in/start
rosservice call /'${kinova_robotType}_driver'/in/stop
当stop
被调用时,直到start
指令被调用前,来自 ROS 的机器人命令不会驱动机器人。但是,在此阶段,操纵杆仍具有控制权。
3、Cartesian Admittance mode
这让用户可以手动(用手)控制机器人。导纳力控制可以使用以下命令激活和停用:
rosservice call /'${kinova_robotType}_driver'/in/start_force_control
rosservice call /'${kinova_robotType}_driver'/in/stop_force_control
用户可以通过向末端执行器/关节施加力/扭矩来移动机器人。当有笛卡尔/关节位置命令时,结果运动将是力和位置命令的组合。
4、Re-calibrate torque sensors(重新校准扭矩传感器)
New in release 1.2.0
随着时间的推移,扭矩传感器可能会在报告绝对扭矩时产生偏差。为此,他们需要重新校准。校准过程非常简单
- 1、将机器人移动到像蜡烛一样的姿势(所有关节 180 度,机器人链接指向正上方)。这种配置确保了关节处的零扭矩。
- 2、调用服务
rosservice call /'${kinova_robotType}_driver'/in/set_zero_torques