您现在的位置是:首页 > 诗句大全

UR5机械臂仿真实例(二)moveit运动规划与gazebo仿真 [ubuntu20.04+ROSnoetic+gazebo11]

作者:璐璐时间:2024-05-07 18:00:54分类:诗句大全

简介  文章浏览阅读1.7k次,点赞2次,收藏28次。UR5机械臂moveit运动规划与gazebo仿真_ur5三次样条插值轨迹规划

点击全文阅读

【UR5机械臂moveit运动规划与gazebo仿真】

1. 安装moveit

sudo apt install ros-noetic-moveit

2. 安装ur机器人的驱动

mkdir -p ~/catkin_ws/srccd ~/catkin_ws/catkin_makesource devel/setup.bash

3. 进入工作空间进行下载驱动

注意:ur5官方没有出noetic版本,而noetic不再包含ur_msgs包,需要单独下载。

cd ~/catkin_ws/git clone https://github.com/UniversalRobots/Universal_Robots_ROS_Driver.git src/Universal_Robots_ROS_Drivergit clone -b calibration_devel https://github.com/fmauch/universal_robot.git src/fmauch_universal_robotgit clone https://github.com/ros-industrial/ur_msgs.git src/ur_msgsrosdep updaterosdep install --from-paths src --ignore-src -ycatkin_make

下载后,打开src/fmauch_universal_robot/ur5_moveit_config/launch/moveit_rviz.launch,添加:

<node pkg="tf" type="static_transform_publisher" name="link_name" args="0 0 0 0 0 0 map odom 0" />

如果不添加tf状态广播,rviz启动后会在fixed frame栏中出现unknown frame map错误。

添加后moveit_rviz.launch的内容为:

<launch>  <arg name="debug" default="false" />  <arg unless="$(arg debug)" name="launch_prefix" value="" />  <arg     if="$(arg debug)" name="launch_prefix" value="gdb --ex run --args" />  <arg name="rviz_config" default="" />  <arg     if="$(eval rviz_config=='')" name="command_args" value="" />  <arg unless="$(eval rviz_config=='')" name="command_args" value="-d $(arg rviz_config)" />  <node name="$(anon rviz)" launch-prefix="$(arg launch_prefix)" pkg="rviz" type="rviz" respawn="false"        args="$(arg command_args)" output="screen">  </node>  <node pkg="tf" type="static_transform_publisher" name="link_name" args="0 0 0 0 0 0 map odom 0" /></launch>

4. 启动gazebo仿真和moveit

打开终端测试,Alt+T可以在同一个窗口打开多个终端,打开终端记得source devel/setup.bash。

roslaunch ur_gazebo ur5_bringup.launchroslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=trueroslaunch ur5_moveit_config moveit_rviz.launch config:=true

(1) ur5_bringup.launch:加载机器人参数、发布机器人状态、加载空白gazbeo世界、将model加载在gazbeo中、加载gazbeo中的控制器,并通过节点发布出来;

gazebo服务器在国外,使用起来可能会有些卡顿。

(2) ur5_moveit_planning_execution.launch:映射了控制器的命名空间,与gazebo_controller连接、启动move_group;

其中,“sim:=true”对应ur5_moveit_config/ur5_moveit_planning_execution.launch中下面这句代码。目的是将“/scaled_pos_joint_traj_controller/follow_joint_trajectory"重映射(remap)到"/pos_joint_traj_controller/follow_joint_trajectory",保持gazebo和moveit控制器的命名空间一致,实现两者的连接控制。"sim"即simulation,“sim:=true”即为启动仿真环境,若“sim:=false”(default)则为real robot。

<remap if="$(arg sim)" from="/scaled_pos_joint_traj_controller/follow_joint_trajectory" to="/pos_joint_traj_controller/follow_joint_trajectory"/>

(3) moveit_rviz.launch:启动rviz。

5. rviz设置

打开rviz后,将坐标系(Fixed Frame)改为base,点击Add添加RobotModel和MotionPlanning,将规划组(Planning Group)改为manipulator

拖动rviz中ur5机械臂末端的规划球至目标位置,或者在Joints里拖动关节角度(如果规划球拖不动机械臂,把Approx IK Solutions打勾)

点击plan进行运动轨迹规划,点击execute看到gazebo中机械臂按照轨迹运动

点击全文阅读

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句