ROS 控制实际工业机器人(Staubli tx90)(三)

通过提供的staubli_tx90_support包建立moveit包

运行moveit配置助手

roslaunch moveit_setup_assistant setup_assistant.launch

在这里插入图片描述
选择support包里官方提供的urdf文件
至于为什么一定要使用ros官方提供的staubli包中的文件,因为官方包命名更为准确,同时包含了关节速度限制,后面会介绍。
在这里插入图片描述
点击生成碰撞矩阵,这样做的好处是可以防止乡邻关节的误碰撞提示,同时不会让机器人其他关节相互碰撞。
在这里插入图片描述
添加虚拟Joint
在这里插入图片描述
添加planning group
在这里插入图片描述
点Add Kin.Chain,并选择baselink和toplink,这里没有添加末端工具,所以直接选择六关节
在这里插入图片描述
添加一个点位,因为实验室机器人初始关节角为(0,0,90,0,45,0)
在这里插入图片描述
把作者信息填一下,然后选择生成包的位置就可以生存moveit包啦
在这里插入图片描述

更改moveit包配置文件,使之连接上真实机器人

1.demo.launch文件中参数fake_execution的值改为false

<!--此段代码来自moveit配置文件demo.launch-->
<!-- Run the main MoveIt executable without trajectory execution (we do not have controllers configured by default) -->
  <include file="$(find aubo_i5_moveit_config)/launch/move_group.launch">
    <arg name="allow_trajectory_execution" value="true"/>
    <arg name="fake_execution" value="false"/> 
    <arg name="info" value="true"/>
    <arg name="debug" value="$(arg debug)"/>
  </include>

2.move_group.launch文件中的moveit_controller_manager参数。
move_group.launch文件中,moveit_controller_manager在选择参数值时,“unless”前面那个velue值要修改,写一个自己机器人名称作为前缀,实验室机器人叫“staubli tx90“

<!-- Trajectory Execution Functionality -->
  <include ns="move_group" file="$(find aubo_i5_moveit_config)/launch/trajectory_execution.launch.xml" if="$(arg allow_trajectory_execution)">
    <arg name="moveit_manage_controllers" value="true" />
    <arg name="moveit_controller_manager" value="staubli_tx90" unless="$(arg fake_execution)"/> 
    <arg name="moveit_controller_manager" value="fake" if="$(arg fake_execution)"/>
  </include>

3.接下来,这个参数会传递给trajectory_execution.launch.xml文件,该文件中有下面这句话

<include file="$(find staubli_tx90_moveit)/launch/$(arg moveit_controller_manager)_moveit_controller_manager.launch.xml" />

4.修改staubli_tx90_moveit_controller_manager.launch.xml文件

这是一个空文件,填写如下参数

<launch>
<!-- Set the param that trajectory_execution_manager needs to find the controller plugin -->
<arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
<param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/>
<!-- load controller_list -->
<rosparam file="$(find staubli_tx90_moveit)/config/controllers.yaml"/>
</launch>

5.创建controllers.yaml配置文件
上一步的代码最后一句指向了config目录下一个叫做controllers.yaml的文件,config目录中只有fake_controllers.yaml,所以,现在要做的就是复制一份这个文件,然后将名字改为controllers.yaml,打开这个新文件,将文件修改成如下形式:

controller_list:
  - name: ""
    action_ns: joint_trajectory_action
    type: FollowJointTrajectory
    joints:
      - joint_1
      - joint_2
      - joint_3
      - joint_4
      - joint_5
      - joint_6

name和action_ns参数为什么这样填,是因为运行rqt_graph,查看到的动作消息名称为/joint_trajectory_action。
运行rqt_graph

rosrun rqt_graph rqt_graph

控制

运行launch文件夹中的demo.launch。
使用moveit自带的拖拽器控制机器人 ,plan和execute就可以开始控制啦

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值