对于利用moveit控制真实的机械臂的流程

一、首先假设你的底层的硬件控制是完成了的

这里的假设,就是说你现在能够得到关节的jointstate,同时你需要的也是jointstate。前一个jointstate指的是你自己获取到的机械臂的实时的关节状态,而后一个指的就是我们最终在文章结束后得到的一系列的路点。

二、保证你的moveit_setup_assistant已经做好

具体可以看看这个网站:链接: http://docs.ros.org/en/melodic/api/moveit_tutorials/html/doc/setup_assistant/setup_assistant_tutorial.html.
但是你发现这些都是仿真的,然而仿真中用的控制器是fake_controller,要用到实际中,需要改动一些文件参数。不多BB,直接上我查到的博客,感谢这些先行者。
这里我就用一个比较典型的博客着手,链接: https://blog.csdn.net/qq_34935373/article/details/95916111l.
如果你仔细看完,你就会对moveit生成的那个config和launch文件夹的内容有个大概的了解。
但是,注意,当你按照他的步骤来时,然后改自己的,会发现出现一些各种错误。我认为这应该是版本的更迭,还有moveit_setup_assistant的时候和原作者有些差别。所以我主要就是说一下更改的内容。

三、更改内容

要注意的是,我们若按照在那个教程网站中,他的控制器设置为position_controllers/JointPositionController,但是我们在后边需要的是FollowJointTrajectory,。在上面的链接2中是直接在controller.yaml(他好像是自己新建,但是现在好像自动生成了一个ros_controller.yaml文件和fake_controller.yaml对应)中 重写控制器的参数。但是我发现我好像用了就出现一些错误。所以我想到,在moveit_setup_assistant设置时,不就设置了ros_controller么,我直接设不就行了,所以我返回去,将控制器的type选的FollowJointTrajectory,然后保存。你会发现在ros_controller.yaml中就有type为FollowJointTrajectory的控制器,这时候就不需要更改,直接用就行。

四、解决follow_joint_trajectory的server端的问题

这里就如链接2所说,缺少一各action_server端,自己写一个就是,我用python写的,代码太丑了,就不拿上来了。

五、重点来了

当你一切弄完,重新运行demo文件,再运行action_server文件时,当点击 planandexecute时,就出现Unable to identify any set of controllers that can actuate the specified joints: [ joint1 joint2…,
反正我找半天不知道具体的解释和原因。
最后我发现先运行action_server文件,再运行demo文件,再操作,就没问题了。
运行$ rostopic echo /redwall_arm(自己设置的名称)/follow_joint_trajectory/goal,就会出现内容了。这时候,用FollowJointTrajestory,就可以去规划自己的机械的关节运动了

第二次写博客,希望有大佬指正有误的地方,谢谢。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值