日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

ubuntu16.04安装UR3/UR5/UR10机械臂的ROS驱动并实现gazebo下Moveit运动规划仿真以及真实UR3机械臂的运动控制(3)

發(fā)布時間:2025/3/19 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu16.04安装UR3/UR5/UR10机械臂的ROS驱动并实现gazebo下Moveit运动规划仿真以及真实UR3机械臂的运动控制(3) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在上一節(jié)已經(jīng)進(jìn)行了UR3機(jī)械臂的運動規(guī)劃仿真,這一節(jié)就進(jìn)行真實的UR3機(jī)械臂運動控制。

1. 電腦和UR3機(jī)械臂連接配置

在啟動UR3機(jī)械臂后,筆記本電腦通過網(wǎng)線連接UR3的控制箱,此時需要配置網(wǎng)絡(luò)連接,網(wǎng)絡(luò)名就取為ur3,具體配置如下圖所示。

配置后,電腦就和UR3機(jī)械臂處于同一網(wǎng)關(guān)了。

?

?2. 啟動真實UR3機(jī)械臂

執(zhí)行以下指令啟動UR3機(jī)械臂,但是會報錯:AttributeError: 'RobotStateRT' object has no attribute 'q_actual'以及Exception: Fatal error when unpacking RobotState packet

roslaunch ur_bringup ur3_bringup.launch robot_ip:=192.168.0.100 # 192.168.0.100 是UR3機(jī)械臂的IP地址

雖然最后提示Robot connected,但是如果此時我們打開另一個終端執(zhí)行如下指令啟動運動規(guī)劃的話,就會發(fā)現(xiàn)有問題:Waiting for /follow_joint_trajectory to come up,如下。

roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch

?所以UR3機(jī)械臂環(huán)境并沒有啟動成功。當(dāng)然,我們可以按照錯誤一步步修改程序,但是因為ur_driver包是舊版驅(qū)動,存在較多問題,因此我們直接使用新版驅(qū)動包,省去多次解決程序問題的麻煩,去該網(wǎng)頁下載,如下圖。

?下載后將壓縮包放在ur工作空間中的 src/universal_robot 目錄下,解壓提取并命名為 ur_modern_driver,如下。

?此時再執(zhí)行如下指令啟動UR3機(jī)械臂,報錯:const struct hardware_interface::ControllerInfo has no member named hardware_interface

?這個報錯只需要將 /src/universal_robot/ur_modern_driver/src/ur_hardware_interface.cpp 文件中相應(yīng)出錯的代碼hardware_interface成員改為type即可,如下。

?此時再啟動UR3機(jī)械臂就不會報錯了(我這邊沒有配置robot_ip,是因為直接配置了ur3_bringup.launch),如下圖。

?然后再執(zhí)行以下指令,即可成功啟動運動規(guī)劃,如下。

roslaunch ur3_moveit_config ur3_moveit_planning_execution.launch

?

3. 編程實現(xiàn)UR3機(jī)械臂的運動控制

運動規(guī)劃的python文件配置和運行還是和上一節(jié)一樣,只更換一下代碼就行(具體的關(guān)節(jié)值要和UR3機(jī)械臂初始值有關(guān),避免打到桌子或者人),代碼如下,最終效果如下。

#!/usr/bin/env pythonimport sys import time import math import rospy import moveit_commander from geometry_msgs.msg import Pose, PoseStamped from trajectory_msgs.msg import *def diaker_move(arm, path):fraction = 0attempt = 0while fraction < 1.0 and attempt < 5:(plan, fraction) = arm.compute_cartesian_path(path, 0.01, 0.00)attempt += 1if fraction < 0.8:rospy.loginfo("======= motion fail ======= " + str(fraction))arm.execute(plan, wait=True)if __name__ == '__main__': rospy.init_node('ur3_moveit')moveit_commander.roscpp_initialize(sys.argv)arm = moveit_commander.MoveGroupCommander('manipulator')position = [-0.84, -2.20, -1.02, -1.56, 1.49, 5.71]arm.set_joint_value_target(position)traj = arm.plan()arm.execute(traj)position = [-1.32, -2.69, -0.56, -1.56, 1.49, 5.71]arm.set_joint_value_target(position)traj = arm.plan()arm.execute(traj)moveit_commander.roscpp_shutdown()

?

總結(jié)

以上是生活随笔為你收集整理的ubuntu16.04安装UR3/UR5/UR10机械臂的ROS驱动并实现gazebo下Moveit运动规划仿真以及真实UR3机械臂的运动控制(3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。