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 功能包文件
3 启动仿真
在Gazebo中显示UR5机器人:
cd ur_ws
source devel/setup.bash
roslaunch ur_gazebo ur5.launch
查看话题列表:
打开新的终端,运行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
此时,rviz启动,显示ur5在gazebo下的姿态。
终端查看规划的轨迹命令:
rostopic echo /arm_controller/follow_joint_trajectory/goal
4 实现简单的仿真运动
在rviz中拖动机器人的末端执行器到目标姿态:
规划并执行,rviz和gazebo中的机械臂都运动
5 Motion Planning
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。
回到Context子模块,点击Publish Current Scene,将当前的环境发布出去。然后再次点击Plan,会看到一条不同的轨迹,这轨迹应该绕过所有障碍物并且达到目标位姿。
参考资源:
ros_ur的wiki教程universal robot githubROS驱动UR机械臂