UR机械臂仿真

  • 1 安装编译功能包
  • 2 功能包文件
  • 3 启动仿真
  • 4 实现简单的仿真运动
  • 5 Motion Planning



最近的学习思路有些不清晰,拿到kinova机械臂功能包后,官网资料都是关于链接实际机械臂开发的,有些不知所措,不知道如何去利用这个包来完成自己想要完成的仿真场景,比如实现物体的抓取,网上关于kinova开发的资源很少,于我而言有些难上手,有一种越学越不会的感觉,所以打算看看其它机械臂—UR系列,掌握机械臂仿真的思路和编程,再举一反三到其他机械臂的开发。

1 安装编译功能包

其中包含UR3、UR5、UR10三款机器人的功能。

mkdir -p ~/ur_ws/src
cd ~/ur_ws/src
git clone https://github.com/ros-industrial/universal_robot
cd ..
catkin_make

2 功能包文件

unity数字孪生机械臂 教程_bash

unity数字孪生机械臂 教程_bash_02

3 启动仿真

在Gazebo中显示UR5机器人:

cd ur_ws
source devel/setup.bash
roslaunch ur_gazebo ur5.launch

unity数字孪生机械臂 教程_github_03

查看话题列表:

unity数字孪生机械臂 教程_bash_04


打开新的终端,运行moveit相关,运行UR5的路径规划节点:

cd ur_ws
source devel/setup.bash
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true

此时moveit启动,命令行显示许多启动消息,但此时还未启动rviz。

打开新的终端,运行rviz相关:

cd ur_ws
source devel/setup.bash
roslaunch ur5_moveit_config moveit_rviz.launch config:=true

unity数字孪生机械臂 教程_机械臂_05

此时,rviz启动,显示ur5在gazebo下的姿态。

终端查看规划的轨迹命令:

rostopic echo /arm_controller/follow_joint_trajectory/goal

4 实现简单的仿真运动

在rviz中拖动机器人的末端执行器到目标姿态:

unity数字孪生机械臂 教程_unity数字孪生机械臂 教程_06

规划并执行,rviz和gazebo中的机械臂都运动

unity数字孪生机械臂 教程_bash_07

5 Motion Planning

unity数字孪生机械臂 教程_github_08

unity数字孪生机械臂 教程_github_09


unity数字孪生机械臂 教程_机械臂_10

planning scene可以为机器人创建一个具体的工作环境,加入一些障碍物。这一功能主要由move group节点中的planning scene monitor来实现,主要监听:

State Information: joint_states topic

Sensor Information: the world geometry monitor为上面的运动规划环境中施加一些障碍物(创建一个.scene文件)

然后SceneObjects->ImportFromText,选择刚刚创建的demo_obstacle.scene文件,一个简单的桌面环境就被导入进了rviz。

unity数字孪生机械臂 教程_unity数字孪生机械臂 教程_11

回到Context子模块,点击Publish Current Scene,将当前的环境发布出去。然后再次点击Plan,会看到一条不同的轨迹,这轨迹应该绕过所有障碍物并且达到目标位姿。

参考资源:
ros_ur的wiki教程universal robot githubROS驱动UR机械臂