【前言】本篇文章旨在实现,在gazebo中对ur5e机械臂进行仿真,并通过moveit实现机械臂的控制。
Ubuntu18.04 + ROS melodic,安装gazebo9:自用参考链接
步骤:
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
|--catkin_ws
|----src
|------universal_robot
|------robot_gazebo
|----------robot_description
|----------ur5e_moveit_config
git地址:GitHub - Aya-nuomi/marker_track
参考链接: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
·修改ur5e.urdf.xacro文件,操作类似上一步
4)创建ur_gazebo.launch文件,在gazebo中显示机械臂模型
·这里运行"spawn_model"节点时,参数z取0.1,使机械臂初始状态下与地面有一定的间隙,防止机械臂与地面产生干涉
5)修改urdf.xacro文件, 调整机械臂初始位姿
·把第二个关节shoulder_lift_joint的初始关节角旋转−π/2,修改ur5.urdf.xacro文件,调整对应
>
......
6)测试
roslaunch robot_description ur_gazebo.launch
步骤:
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中。
第一次实现moveit控制gazebo仿真ur5机械臂
1)修改moveit配置文件中.../config/ros_controllers.yaml,在末尾添加
arm_controller:
type: position_controllers/JointTrajectoryController
joints:
- shoulder_pan_joint
- shoulder_lift_joint
- elbow_joint
- wrist_1_joint
- wrist_2_joint
- wrist_3_joint
constraints:
goal_time: 0.6
stopped_velocity_tolerance: 0.05
shoulder_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.5
state_publish_rate: 25
action_monitor_rate: 1
2)修改.../launch/ros_controllers.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文件。