Ubuntu18.04 ROS+Gazebo的UR5虚拟仿真

如果成功按照以下网址把ROS和ROS功能包按照好,那么运行仿真将会非常顺利。

(61条消息) Ubuntu18.04 ROS手眼标定UR5之安装篇(亲测有效)_weixin_45613039的博客-CSDN博客_ros手眼标定

 注意!如果以下命令出现仿真失败,rviz能动,但是gazebo不能动的情况,要么就是ros安装出了问题,要么就是Universal_Robots_ROS_Driver.git和fmauch/universal_robot.git这两个包安装出了问题。答主就是出现后者的情况,不断去查找包内的问题浪费大量时间,但是没必要,如果ros没问题,只需尝试重装这两个包,注意这两个包需要翻墙下载,不然很容易出现问题。

首先运行以下命令。

roslaunch ur_gazebo ur5_bringup.launch

运行成功会进入这个界面,机械臂底座抬高是正常的,加载的模型为了防止与地面碰撞,把z增加了。

以下报错暂时不用管,不影响仿真。

接着分别运行以下命令:

roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

roslaunch ur5_moveit_config moveit_rviz.launch config:=true

成功后会弹出rviz界面。

但是此时rviz界面什么都没有,没有模型。

接着我们先把左边Fixed Frame改成base_link,然后点左下角的Add,把以下模块加进来。

 然后就可以看到UR5模型出来了。

 点击左边Plannning中的Planning Group修改成manipulator,然后可以看到小球出现了,就可以拖动小球进行轨迹规划。拖动小球后,点击Plan,然后点Execute。可以看到rviz和gazebo中的UR5模型都同时移动了,仿真成功!

最后为了方便每次启动仿真,可以先在路径~/catkin_ws/src/fmauch_universal_robot/ur5_moveit_config/launch下创建一个myrobot_fake_moveit_rviz.launch文件,编写内容如下:

<launch>

  <!-- Run Rviz and and moveit_planning -->
  <include file="$(find ur5_moveit_config)/launch/moveit_rviz.launch">
    <arg name="rviz_config" value="$(find ur5_moveit_config)/launch/moveit.rviz"/>
  </include>
    
  <include file="$(find ur5_moveit_config)/launch/ur5_moveit_planning_execution.launch">
    <arg name="sim" value="true"/>
  </include>

</launch>

用以下脚本启动上述的launch文件。

#!/bin/bash

gnome-terminal -t "start_gazebo" -x bash -c "roslaunch ur_gazebo ur5_bringup.launch;exec bash" & sleep 3s

gnome-terminal -t "start_moveit_rviz" -x bash -c "roslaunch ur5_moveit_config myrobot_fake_moveit_rviz.launch;exec bash"

该脚本参考以下网址写的:

.sh脚本启动多个程序(对应多个终端)之ROS篇_多年以后ls的博客-CSDN博客_sh打开多个终端

  • 3
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你可以使用ROS(Robot Operating System)和Python来操纵UR5机械臂。首先,确保已经安装了ROSUR开发包。接下来,你需要创建一个ROS工作空间,并下载UR5机械臂的ROS包。然后,你可以使用Python编写控制程序来操纵机械臂。 以下是一个简单的操纵UR5机械臂的示例代码: ```python #!/usr/bin/env python import rospy from std_msgs.msg import String from sensor_msgs.msg import JointState from math import pi def move_ur5(): rospy.init_node('move_ur5', anonymous=True) pub = rospy.Publisher('/ur_driver/URScript', String, queue_size=10) # 设置机械臂关节角度 joint_angles = [0, -pi/2, pi/2, -pi/2, -pi/2, 0] joint_angles_str = '[{}]'.format(', '.join(map(str, joint_angles))) command = 'movej({}, a=1.0, v=0.1)'.format(joint_angles_str) # 发布控制指令 rospy.loginfo('Moving UR5 to joint angles: {}'.format(joint_angles_str)) pub.publish(command) rospy.sleep(5) if __name__ == '__main__': try: move_ur5() except rospy.ROSInterruptException: pass ``` 这个示例代码中,我们使用ROS的Python库rospy来发布控制指令到UR5机械臂。首先,我们初始化ROS节点并创建一个Publisher来发布URScript指令。然后,我们设置机械臂的目标关节角度,并将其转换为字符串格式。最后,我们发布控制指令并等待5秒钟。 请确保你的ROS环境正确设置,并且已经连接上UR5机械臂。你可以运行上述代码来测试操纵UR5机械臂。 希望这对你有帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值