kinova_j2s6s300【Joint position control】

关节位置控制可以通过在自定义节点中调用KinovaComm::setJointAngles()来实现,也可以直接调用kinova_demo包中的节点joints_action_client.py
在这里插入图片描述

这个函数需要三个参数:kinova_robotType (eg. j2n6s300), unit {degree |radian}value(每个关节的角度)。该函数采用选项 -r 来告诉机器人角度值是相对的还是绝对的。它还具有用于更详细输出的选项 -v和用于帮助的 -h 选项。以下代码将驱动 6DOF Jaco2 机器人的第 6 个关节旋转 +10 度(不是 10 度),并打印有关关节位置的附加信息。

eg:rosrun kinova_demo joints_action_client.py -v -r j2n6s300 degree -- 0 0 0 0 0 10
回显两个话题可以观察关节位置:
/'${kinova_robotType}_driver'/out/joint_angles(以角度为单位)
/'${kinova_robotType}_driver'/out/joint_state(以弧度为单位,包括手指信息)

eg:rostopic echo -c /j2n6s300_driver/out/joint_state将打印出关节名称 (rad)、位置、速度 (rad/s) 和作用力 (Nm) 信息。

另一种控制关节位置的方法是在 Rviz 中使用交互式标记。请按照以下步骤激活交互控制:

  • 1、启动驱动程序:roslaunch kinova_bringup kinova_robot.launch kinova_robotType:=j2n6s300
  • 2、启动交互控制节点:rosrun kinova_driver kinova_interactive_control j2n6s300
  • 3、打开 Rviz:rosrun rviz rviz
  • 4、在 RViz 中(在显示部分)将 Global Options -> Fixed Frame 更改为world
  • 5、使用 Add -> RobotModel(在 rviz 文件夹中)添加机器人模型
  • 6、使用 Add -> InteractiveMarkers(在 rviz 文件夹中) 添加交互式标记
  • 7、将 InteractiveMarkers -> Updated Topic 更改为/j2n6s300_interactive_control_Cart/update
  • 每个关节周围应该出现一个环,您可以通过移动这些环来移动机器人。

阅读代码获取的信息
初始化 ros 节点:j2s6s300_gripper_workout

【获取当前机械臂各个 joint 关节角度】
在函数 getcurrentJointCommand() 中,Subscriber 接收机械臂发布的话题
话题名称:/j2s6s300_driver/out/joint_command
消息类型:kinova_msgs.msg.JointAngles
详细信息:

float32 joint1
float32 joint2
float32 joint3
float32 joint4
float32 joint5
float32 joint6
float32 joint7

【向机械臂发送关节角度目标指令】
注意:发送指令必然涉及到通信,这里选择的通信方式是 Action 通信
在这个场景中,pc 端机械臂端发送目标指令,机械臂端执行并返回结果,这乍一看好像应该采用服务通信实现,然而,机械臂由当前位姿运动到目标指令位姿是一个耗时操作,如果使用服务通信,那么只有在动作执行结束时才会产生响应结果,而在动作执行过程中,pc端节点是不会获取到任何反馈的,从而可能出现程序“假死”现象,过程的不可控意味着不良的用户体验,以及逻辑处理的缺陷。

显然,更加合理的解决方案应该是能够保证机械臂在动作执行过程中也可以连续反馈当前机器人的状态信息,当机械臂动作执行结束时,再返回最终执行的结果,也即 action 通信

在这里插入图片描述

在函数 joint_angle_client() 中,Client 发送关节角度指令并返回执行结果,即机械臂的姿态。
话题名称:/j2s6s300_driver/joints_action/joint_angles
消息类型:kinova_msgs.msg.ArmJointAnglesAction
详细信息:

# Goal
JointAngles angles
---
# Result
JointAngles angles
---
# Feedback
JointAngles angles
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值