ROS與UR機器人的通信及注意事項

建立通信

基本操作按照參考鏈接進行即可

注意事項

  • 保護性停止
    在使用ROS控制機器人運行時,有多個參數對機器人最大運行速度進行限制。其中在運動規劃階段,由joint_limit.yaml對其限制,再對ur_driven下的max_joint參數進行比對,若超過則觸發保護性停止。
    同時,在實際使用時,示教器上的速度百分比也是一個參考點。當實際運行速度,超過示教器上的值時,也將觸發保護性停止。

  • 運動規劃的隨機性
    在使用MoveGroup類使機器人發生運動時,在指定末端target pose後,對應多種構型,不同構型將產生不同的運動過程,要時刻注意是否發生碰撞。

  • 晃動與偏差
    在使用moveit_msgs::ExecuteTrajectoryAction控制UR機器人運動時,需要先將機器人運行到初始點,再運行該軌跡。但在初始點處機器人運行會中斷。考慮如下原因:
    在使用MoveGroup類使機器人發生運動時,機器人運動到目標點位置時抱閘停止,產生晃動或由於設置有Tolerence產生偏差。
    因此,爲了使機器人運動更流暢,應該儘量使用軌跡規劃再使機器人運動。

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


typedef boost::shared_ptr<moveit::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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章