qt ros 机械臂_ROS中机械臂笛卡尔空间规划姿态求解无效-Moveit!

在使用Moveit进行机械臂运动规划时,发现无论设定何种姿态,机械臂总是回到四元数[0 0 0 1]的状态。问题源于rviz中拖动机械臂获取的四元数数据只保留了三位小数,而非实际需要的八位小数。解决方案是通过rviz规划并执行后,获取精确的RPY数值,转换为四元数后用于姿态设定。

1 任务描述

在使用Moveit对机械臂运动进行规划时,我们定义Pose,然后规划,目标位姿Pose的定义代码如下:

target_pose = PoseStamped()
target_pose.header.frame_id = reference_frame
target_pose.header.stamp = rospy.Time.now()     
target_pose.pose.position.x = -0.545
target_pose.pose.position.y = 0.426
target_pose.pose.position.z = 0.267

target_pose.pose.orientation.x = -0.628
target_pose.pose.orientation.y = 0.226
target_pose.pose.orientation.z = 0.708
target_pose.pose.orientation.w = 0.230        

2 错误表现

这里面xyz的定义是没有问题的,但是姿态这么定义有问题,查看源代码这里的orientation是单位四元数的表示,然而规划也总是失败的。具体表现为无论你定义为多少姿态总是运动到四元数为[0 0 0 1]的姿态位置。就是下面这个姿态

e91e9c95759a5ad251f6380fa580dbd4.png

3 原因分析

经过查找原因是数据格式问题,我具体的操作方法是在rviz界面拖动机械臂到预定位置,然后使用 tf_echo 查看坐标变换数值,然后把这个Quaternion数值输入上面定义的位置,如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值