【前言】本篇文章旨在实现,在gazebo中对ur5e机械臂进行仿真,并通过moveit实现机械臂的控制。

一、仿真前准备

1.1 Gazebo安装

Ubuntu18.04 + ROS melodic,安装gazebo9:自用参考链接

1.2 UR机械臂软件包安装

 步骤:

1)创建工作空间

2)安装UR臂软件包 universal_robot

cd catkin_ws/src
git clone -b melodic-devel https://github.com/ros-industrial/universal_robot.git
cd ..
rosdep install --from-paths src --ignore-src --rosdistro melodic // 安装插件
catkin build
source devel/setup.bash

1.3 本文工作空间catkin_ws文件结构

|--catkin_ws

|----src

|------universal_robot

|------robot_gazebo

|----------robot_description

|----------ur5e_moveit_config

git地址:GitHub - Aya-nuomi/marker_track

二、在gazebo中显示ur5e机械臂

参考链接:UR5 Gazebo仿真配置(不使用MoveIt)

 步骤:

1)创建一个工作空间(使用上一步创建的catkin_ws工作空间)

2)创建一个ROS包,并创建urdf、meshes、launch文件夹

·创建ROS包 ->  robot_description

cd catkin_ws/src
mkdir -p robot_gazebo
cd robot_gazebo
catkin_create_pkg robot_description rospy roscpp

·创建urdf、meshes、launch文件夹

cd robot_description
mkdir urdf
mkdir meshes
mkdir launch

3)把ur5e的urdf、mesh文件(ur5e_moveit_config中)拷贝进来,并修改文件中的模型地址

·修改ur5e_robot.urdf.xacro文件,把xacro文件地址中包名 ur_e_description 修改为自己的包名,这里是 robot_description

<?xml version="1.0"?>
<robot name="ur5e" xmlns:xacro="http://ros.org/wiki/xacro" ><!-- common stuff --><xacro:include filename="$(find robot_description)/urdf/common.gazebo.xacro" /><!-- ur5e --><xacro:include filename="$(find robot_description)/urdf/ur5e.urdf.xacro" /><!-- my_arm --><xacro:ur5e_robot prefix="" joint_limited="false"/><link name="world" /><joint name="world_joint" type="fixed"><parent link="world" /><child link = "base_link" /><origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" /></joint></robot>

·修改ur5e.urdf.xacro文件,操作类似上一步

4)创建ur_gazebo.launch文件,在gazebo中显示机械臂模型

·这里运行"spawn_model"节点时,参数z取0.1,使机械臂初始状态下与地面有一定的间隙,防止机械臂与地面产生干涉

<?xml version="1.0"?>
<!-- ur_gazebo.launch  load Gazebo world and ur5e model -->
<launch><!-- Gazebo world --><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="world_name" default="worlds/empty.world"/></include><!-- parse xacro file into urdf and upload urdf to parameter server --><param name="robot_description" command="$(find xacro)/xacro --inorder '$(find robot_description)/urdf/ur5e_robot.urdf.xacro'" /><!-- spawn robot in gazebo --><node name="spawn_gazebo_model" pkg="gazebo_ros" type="spawn_model" args="-urdf -param robot_description -model robot -z 0.1" respawn="false" output="screen" />
</launch>

5)修改urdf.xacro文件, 调整机械臂初始位姿

·把第二个关节shoulder_lift_joint的初始关节角旋转−π/2,修改ur5.urdf.xacro文件,调整对应<joint>的<origin>值,改完后机械臂初始状态变成竖直的姿态

<joint name="${prefix}shoulder_lift_joint" type="revolute"><parent link="${prefix}shoulder_link" /><child link = "${prefix}upper_arm_link" /><origin xyz="0.0 ${shoulder_offset} 0.0" rpy="0.0 0.0 0.0" />   <!--<origin xyz="0.0 ${shoulder_offset} 0.0" rpy="0.0 ${pi / 2.0} 0.0" />-->><axis xyz="0 1 0" />......
</joint>

6)测试

roslaunch robot_description ur_gazebo.launch

三、使用moveit控制ur5e机械臂

3.1 生成moveit配置文件 -> moveit_setup_assistant

 步骤:

1)安装moveit_setup_assistant

sudo apt install ros-melodic-moveit

2)启动moveit_setup_assistant

cd catkin_ws        // 进到工作空间内启动配置助手,才能找到机器人模型xacro文件
source devel/setup.bash
roslaunch moveit_setup_assistant setup_assistant.launch

3)导入模型文件,配置,生成配置文件夹

详细操作:MoveIt入门之——使用MoveIt配置助手生成MoveIt配置文件, MoveIt Setup Assistant

tips:ROS control那一步很重要,需要点一下

本人生成的配置文件夹为:ur5e_moveit_config,放在catkin_ws/src/robot_gazebo中。

3.2 修改moveit包(刚才生成的配置文件夹)

第一次实现moveit控制gazebo仿真ur5机械臂

1)修改moveit配置文件中.../config/ros_controllers.yaml,在末尾添加

arm_controller:type: position_controllers/JointTrajectoryControllerjoints:- shoulder_pan_joint- shoulder_lift_joint- elbow_joint- wrist_1_joint- wrist_2_joint- wrist_3_jointconstraints:goal_time: 0.6stopped_velocity_tolerance: 0.05shoulder_pan_joint: {trajectory: 0.1, goal: 0.1}shoulder_lift_joint : {trajectory: 0.1, goal: 0.1}elbow_joint: {trajectory: 0.1, goal: 0.1}wrist_1_joint: {trajectory: 0.1, goal: 0.1}wrist_2_joint: {trajectory: 0.1, goal: 0.1}wrist_3_joint: {trajectory: 0.1, goal: 0.1}stop_trajectory_duration: 0.5state_publish_rate:  25action_monitor_rate: 1

2)修改.../launch/ros_controllers.launch

  <!-- Load the controllers --><!-- 注释的为原来的,需要改成下面那一行 --><!-- <node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false"output="screen" args=""/> --><node name="controller_spawner" pkg="controller_manager" type="controller_manager" respawn="false"output="screen" args="spawn joint_state_controller arm_controller"/>

3.3 运行launch文件

catkin build
source devel/setup.bash
roslaunch ur5e_moveit_config demo_gazebo.launch

注意:开始运行launch文件时,gazebo中一直不显示ur模型,后来发现有一个bug...

需要修改.../ur5e_moveit_config/launch/gazebo.launch,因为加载模型文件时,加载的是xacro文件,不是urdf文件。

  <!-- send robot urdf to param server --><!-- <param name="robot_description" textfile="$(arg urdf_path)" /> --><param name="robot_description" command="$(find xacro)/xacro $(arg urdf_path)" />

Next: 在gazebo中进行二维码识别与跟随仿真

【Gazebo仿真·一】Gazebo + Moveit + ur5e机械臂仿真相关推荐

  1. Moveit搭建机械臂仿真平台记录

    官网tutorials学习过程 找到了官网的教程,教程链接:http://docs.ros.org/en/melodic/api/moveit_tutorials/html/doc/getting_s ...

  2. 用matlab实现机械臂的仿真,基于MATLAB的SCARA机械臂仿真与性能评估

    工业机器人以其代替人类单调繁重的体力劳动,便于实现自动化提高生产效率等优点,而被广泛应用于工程机械.汽车零部件.轨道交通.轻工造纸等行业,具有可观的经济效益.到2015年,中国机器人市场将成世界最大规 ...

  3. Udacity机器人软件工程师课程笔记(十六)-机械臂仿真控制实例(其一)-Gazebo、RViz和Moveit!

    机械臂仿真控制实例 目录 环境设置 项目工具介绍 Gazebo (1)Gazebo组件 (2)Gazebo界面 统一机器人描述格式(URDF) RViz Moveit! 1.环境设置 对于此项目,使用 ...

  4. UR5机械臂仿真环境搭建

    UR5机械臂仿真环境搭建 重要参考: ROS官网教程 前段时间,实验室采购了一台UR5机械臂,今天花了一下午,对照官网教程,完成了仿真环境搭建,期间遇到了一些问题,好在最后都解决了.机械臂的运动规划和 ...

  5. 【机器人操作系统(ROS)中的机械臂仿真】

    [机器人操作系统(ROS)中的机械臂仿真] 1. 前言 2. 什么是机械臂? 3. 设计机械臂 4. 模型设计 5. 了解启动文件 6. 了解自定义节点 7. 运行机械臂模拟 8. 结果和结论 1. ...

  6. Dynamic Movement Primitives与UR5机械臂仿真

    Dynamic Movement Primitives (DMP),中文译名为动态运动基元.动态运动原语等,最初是由南加州大学的Stefan Schaal教授团队在2002年提出来的,是一种用于轨迹模 ...

  7. UR机械臂仿真和用上位机编程控制

    UR机械臂仿真和用上位机编程控制 在没有实物UR机械臂时怎么办,优傲提供了仿真工具可以满足开发者需求,这样也减少了实际操作机械臂时的麻烦. 需要下载和安装的软件 虚拟机 使用VMware是不错的选择, ...

  8. Udacity机器人软件工程师课程笔记(十八)-机械臂仿真控制实例(其三)-KR210机械臂反向运动学

    机械臂仿真控制实例(其二)-KR210正向运动学 目录 反向运动学概述 为Kuka KR210创建IK解算器 1.反向运动学概述 KR210的最后三个关节是满足三个相邻的关节轴线在单点处相交的旋转关节 ...

  9. MATLAB机器人工具箱 机械臂仿真

    MATLAB机器人工具箱 机械臂仿真 学习自B站:Nino_FM 采用 Standard DH 建模法 旋转算子 R = rotx(pi/2) R = 1.0000 0 00 0.9996 -0.02 ...

最新文章

  1. oracle 和sybase比较,oracle和sybase的一些区别
  2. STL的一些基本概念
  3. 大批物联网设备扎堆CES 物联网产业化提速
  4. 接口设计的幂等性考虑
  5. 给玩得好的女朋友写了一份前端学习路线。
  6. Linux 命令(138)—— nc 命令
  7. 银行核心系统是什么?
  8. 实现Springboot整合UReport2
  9. hashMap底层原理
  10. 解决 IIS 部署网站引用 woff/woff2/svg 字体报 404 错误
  11. 给个华为服务器账号和密码忘了怎么办啊,华为帐号密码忘了怎么办?华为帐号找回密码教程...
  12. pip安装pytest,报错Defaulting to user installation because normal site-packages is not writeable
  13. 易班php,易班轻应用开发:PHP版
  14. 联诚发召开宝安区卓越绩效管理标准实施项目启动大会
  15. 敏捷个人-认识自我,管理自我 v0.8.pdf 下载
  16. 如何架设你自己的个人网站
  17. Arduino使用OLED显示汉字——For初学者
  18. 切蛋糕——正方形四等分问题
  19. 【JAVA今法修真】 第三章 关系非关系 redis法器
  20. cortex a9相当于骁龙_高通骁龙875处理器单价超250美元;戴尔XPS 17国行版开卖

热门文章

  1. 【去后厂村开游戏厅吧】基于pp-tinypose的体感飙车避障游戏
  2. census介绍与python实现
  3. 3D模型在线查看利器【多种格式】
  4. 集成Android 科大讯飞免费在线语音合成播报功能(附源码)
  5. python识别花草_荐 【python】TensorFlow框架下CNN神经网络的花卉识别系统
  6. Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测
  7. 小酷智慧地图3D导览v1.0.77打卡定位 地图打卡
  8. 记录一次Thymeleaf th:inline内联问题
  9. Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应...
  10. 如何看待毕业一年半,就能拿了年薪70W大厂OFFER的专科生!