Dofbot机械臂从零部署笔记(3)——ROS之Moveit下实现顺向运动学规划+实机同步运动

本文详细介绍了在ROS Melodic环境中使用Python2编程实现机械臂顺向运动学(随机目标点运动)和逆向运动学(目标定位通过坐标与朝向角)。涉及代码编译、Arm_Lib库安装、运动规划设置和实机同步运动的步骤。


上节借助moveit把机械臂动了起来,这节我们通过编程来实现Motion Planning,即运动规划。
先在 xiaok_ws/src/xiaok_moveit_config 文件夹下新建 scripts 文件夹存放Python代码。
我们利用出厂预置好的实例代码,代码位于( /home/jetson/dofbot_ws/src/dofbot_moveit/scripts)
我们将 01_set_move.py 复制到上面的scripts文件夹下。

编译代码

01_set_move.py 复制到上面的scripts文件夹后,检查一下是否开启运行权限(py文件右键properties→permission→Execute打勾)。
回工作空间目录catkin_make一下就可以待运行了(melodic版本下python程序的编译运行不需要其它步骤)。

关于ROS melodic的Python3兼容问题

这问题真卡了我好久,出厂系统和melodic的锅。

这里我们会回到ROS程序的普通的编译运行方式,在py代码头上加上#!/usr/bin/env python以指定python2环境,不使用上节的JupyterLab。这是因为当前melodic版本的ROS对Python3的支持还不完美,使用moveit_commander和tf等python2库时兼容不好,放在JupyterLab下运行有问题(比如报错:ImportError: dynamic module does not define module export function)。为了暂不修改出厂系统原生配置就暂不折腾别的方法了。

给Python2环境安装Arm_Lib库

Arm_Lib库默认装在Python3环境下,我们给Python2环境也装上。
打开库文件所在的目录:/home/jetson/Dofbot/0.py_install/ 打开终端输入:

sudo python2 setup.py install

1 设置目标移动

第一个小例子 01_set_move.py 是一个顺向运动学的例子
需要将源码中初始化机械臂时传入的“dofbot”改成我们在之前moveit规划时设置的规划组“xiaok”

代码和运行效果

#!/usr/bin/env python
# coding: utf-8
from time import sleep
import rospy
from moveit_commander.move_group import MoveGroupCommander

if __name__ == '__main__':
    # 初始化节点
    rospy.init_node("dofbot_set_move")
    # 初始化机械臂
    dofbot = MoveGroupCommander("xiaok")
    # 当运动规划失败后,允许重新规划
    dofbot.allow_replanning(True)
    dofbot.set_planning_time(5)
    # 尝试规划的次数
    dofbot.set_num_planning_attempts(10)
    # 设置允许目标位置误差
    dofbot.set_goal_position_tolerance(0.01)
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值