ROS与UR机器人的通信及注意事项

建立通信

基本操作按照参考链接进行即可

注意事项

  • 保护性停止
    在使用ROS控制机器人运行时,有多个参数对机器人最大运行速度进行限制。其中在运动规划阶段,由joint_limit.yaml对其限制,再对ur_driven下的max_joint参数进行比对,若超过则触发保护性停止。
    同时,在实际使用时,示教器上的速度百分比也是一个参考点。当实际运行速度,超过示教器上的值时,也将触发保护性停止。

  • 运动规划的随机性
    在使用MoveGroup类使机器人发生运动时,在指定末端target pose后,对应多种构型,不同构型将产生不同的运动过程,要时刻注意是否发生碰撞。

  • 晃动与偏差
    在使用moveit_msgs::ExecuteTrajectoryAction控制UR机器人运动时,需要先将机器人运行到初始点,再运行该轨迹。但在初始点处机器人运行会中断。考虑如下原因:
    在使用MoveGroup类使机器人发生运动时,机器人运动到目标点位置时抱闸停止,产生晃动或由于设置有Tolerence产生偏差。
    因此,为了使机器人运动更流畅,应该尽量使用轨迹规划再使机器人运动。

typedef actionlib::SimpleActionClient::ExecuteTrajectoryAction> moveit_client;
moveit_client ac("execute_trajectory",true);
moveit_msgs::ExecuteTrajectoryGoal goal;
goal.trajectory = trajectory;
ac.sendGoal(goal);


typedef boost::shared_ptr::planning_interface::MoveGroupInterface> MoveGroupPtr;
MoveGroupPtr move_group_ptr;
move_group_ptr->move;

参考

http://wiki.ros.org/universal_robot/Tutorials/Getting%20Started%20with%20a%20Universal%20Robot%20and%20ROS-Industrial
https://blog.csdn.net/wxflamy/article/details/79102661

interface_hardware -> type
https://github.com/iron-ox/ur_modern_driver/commit/883070d0b6c0c32b78bb1ca7155b8f3a1ead416c#diff-a47d7e047d071bd32ab01539fc9e4c10R181

你可能感兴趣的:(ROS)