1、机械臂控制

官网:http://docs.ros.org/en/melodic/api/moveit_tutorials/html/index.html

单目MoveIt:~/software/transbot_library/src/transbot_config_camera

Astra_MoveIt:~/software/transbot_library/src/transbot_config_astra

机械臂控制功能包:~/software/transbot_library/src/transbot_description

玩此功能前需将大程序和所有打开的功能关闭,MoveIT建议在虚拟机运行。(电脑须有独立显卡!!!)

1.1、启动

本节课主要是将真机与MoveIT仿真实现同步操作。以树莓派、单目相机配置为例,Astra配置类似。建议将虚拟机设置为主机,MoveIT启动会比较慢,在虚拟机里启动后,再将树莓派设置为从机。

虚拟机端(主机)

树莓派端(从机)

MoveIt仿真环境启动比较慢,耐心等待,观察终端,出现如下图所示错误,解决方法如图所示,如果终端报错且运动规划库未加载,点击左下角【Reset】,重新加载即可。起初是在加载的过程中,不要着急点击【Reset】,如果还没加载完就点击,系统就会重新加载,这样子就启动不了啦。

7101

如下图所示,终端出现【Replanning:yes】,且Planning Library下方出现绿色【OMPL】,则启动成功。

7102

示例图片

7103

待启动成功后,如上图所示,滑动【joint_state_publisher_gui】的滑动条,机械臂和云台舵机会做出相应的动作,操作过程中,不可滑动太快,以免出现事故。

【camera_joint1】:云台舵机左右旋转,左正右负。

【camera_joint2】:云台舵机上下旋转,上正下负。

【arm_joint1】:靠近车身的关节,数据越小越往下。

【arm_joint2】:机械臂第二关节,数据越小越往下。

【Jaws_joint】:夹爪,数据越小越张开。

【Randomize】:随机产生动作,在没有安全防护措施下,不可点击,很危险!!!

【Center】:一键归中,刚打开时,默认处于归中位置,此时点击,看不出什么反应。

1.2、源码解析

demo.launch

启动时,GUI控制器和rviz的设置。

py文件:03_machine_move.py

订阅MoveIt发布出来的【/joint_states】话题,获取MoveIt中机器人的当前位置。

回调函数【JointTopic】

以单目相机为例,打印【msg.name】、【msg.position】消息如下:

【msg.name】的内容与【joint_state_publisher_gui】相对应,['camera_joint1', 'camera_joint2', 'arm_joint1', 'arm_joint2', 'Jaws_joint']是我们所需要关注的。