MoveIt! 7自由度机械手

来源:互联网 发布:什么软件重装系统最好 编辑:程序博客网 时间:2024/06/12 01:44

http://www.guyuehome.com/435
MoveIt!由ROS中一系列移动操作的功能包组成,包含运动规划,操作控制,3D感知,运动学,碰撞检测等等,而且提供友好的GUI。
用以下命令安装MoveIt:

sudo apt-get install ros-indigo-moveit-full

使用MoveIt!的第一步是要使用 Setup Assistant工具完成一些配置工作。Setup Assistant会根据用户导入的机器人的urdf模型,生成SRDF( Semantic Robot Description Format)文件,从而生成一个MoveIt!的功能包,来完成机器人的互动、可视化和仿真。
首先,来运行setup assistant:

roscorerosrun moveit_setup_assistant moveit_setup_assistant
  1. 加载URDF
    这里有两个选择,一个是新建一个配置功能包,一个是使用已有的配置功能包,我们选择新建,在源码中找到urdf文件。如果已有配置功能包,那么新建后会覆盖原有的文件。
/home/kmxz/catkin_ws/src/mastering_ros_robot_description_pkg/urdf/seven_dof_arm.xacro

这里写图片描述
2. Self-Collision
点击左侧第二项Self-Collision,配置自碰撞矩阵,这里我们选择默认的采样点数量是10000个,按照这个默认值生成碰撞矩阵。
这里写图片描述
3. Virtual Joints
如果一个机械手固定在移动机器人上,我们需要定义一个虚拟关节,虚拟关节可以与移动基座关联,这里的机械手是固定不动的,所以可以不需要虚拟关节。
4. Planning Groups
在这个机械手的计划组中,为达到目标位姿我们需要建立joints、links两个规划组,一个是机械臂部分,一个是夹具部分。

在arm组中我们添加base_link作为grasping_frame第一环节
这里写图片描述

在gripper组中我们添加joints和links
这里写图片描述
这里写图片描述
建好之后
这里写图片描述
定义文件夹seven_dof_moveit_config:

roslaunch seven_dof_moveit_config setup_assistant.launchroslaunch seven_dof_moveit_config demo.launch

这里写图片描述

创建一个从MoveIt!到Gazebo的控制文件controllers.yaml,在seven_dof_arm_config/config文件夹下:

controller_manager_ns: controller_manager controller_list:•name: seven_dof_arm/seven_dof_arm_joint_controlleraction_ns: follow_joint_trajectorytype: FollowJointTrajectorydefault: true joints:shoulder_pan_jointshoulder_pitch_jointelbow_roll_jointelbow_pitch_jointwrist_roll_jointwrist_pitch_jointgripper_roll_joint•name: seven_dof_arm/gripper_controlleraction_ns: follow_joint_trajectorytype: FollowJointTrajectorydefault: true joints:finger_joint1finger_joint2

在launch文件夹下创建seven_dof_arm_moveit_controller_manager.launch文件:

<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 --><arg name="use_controller_manager" default="true" /><param name="use_controller_manager" value="$(arg use_controller_ manager)" /><!-- Load joint controller configurations from YAML file to parameter server --><rosparam file="$(find seven_dof_arm_config)/config/controllers. yaml"/></launch>

创建trajectory_control.yaml文件,在mastering_ros_robot_description_pkg/config文件夹下:

seven_dof_arm: seven_dof_arm_joint_controller:type: "position_controllers/JointTrajectoryController" joints:- shoulder_pan_joint- shoulder_pitch_joint - elbow_roll_joint- elbow_pitch_joint - wrist_roll_joint - wrist_pitch_joint - gripper_roll_jointgains:shoulder_pan_joint: {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}shoulder_pitch_joint: {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}elbow_roll_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}elbow_pitch_joint:  {p: 1000.0, i: 0.0, d: 0.1, i_clamp:0.0}wrist_roll_joint:   {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}wrist_pitch_joint:  {p: 1000.0, i: 0.0, d: 0.1, i_clamp:0.0}gripper_roll_joint: {p: 1000.0, i: 0.0, d: 0.1, i_clamp: 0.0}gripper_controller:type: "position_controllers/JointTrajectoryController" joints:•finger_joint1•finger_joint2 gains:finger_joint1:  {p: 50.0, d: 1.0, i: 0.01, i_clamp: 1.0}finger_joint2:  {p: 50.0, d: 1.0, i: 0.01, i_clamp: 1.0}

创建seven_dof_arm_bringup_moveit.launch文件:

<launch><!-- Launch Gazebo  --><include file="$(find mastering_ros_robot_description_pkg)/launch/seven_dof_arm_world.launch" /><!-- ros_control seven dof arm launch file --><include file="$(find mastering_ros_robot_description_pkg)/launch/seven_dof_arm_gazebo_states.launch" /><!-- ros_control position control dof arm launch file --> <!--<include file="$(find seven_dof_arm_gazebo)/launch/seven_dof_arm_gazebo_position.launch" />  --><!-- ros_control trajectory control dof arm launch file --> <include file="$(find seven_dof_arm_moveit_config)/launch/seven_dof_arm_trajectory_controller.launch" /><!-- moveit launch file --><include file="$(find seven_dof_arm_moveit_config)/launch/moveit_planning_execution.launch" /></launch>

运行:

roslaunch seven_dof_arm_moveit_config seven_dof_arm_bringup_moveit.launch
seven_dof_arm_gazeboapt-cache search seven_dof_arm_gazebo
0 0
原创粉丝点击