[UR3/5/10机械臂+gazebo+rviz+OMPL] UR机械臂的路径规划仿真
1 安装编译功能包
2 启动gazebo+rviz
3 使UR动起来
4 Motion Planning(OMPL)
废话不多说,直接开始!!!
1.安装编译功能包
mkdir -p ~/ur_ws/src
cd ~/ur_ws/src
git clone https://github.com/ros-industrial/universal_robot
cd ..
catkin_make
功能包文件列表
2.启动gazebo+rviz
此处需要开启三个终端,分别是“启动gazebo的终端”、“启动rviz的终端”、“启动运动规划的终端”
2-1.启动gazebo
cd [ros工作空间]
source devel/setup.bash
roslaunch ur_gazebo ur5.launch
注意!!!
笔者在ubuntu16.04与ubuntu18.04上分别试了一遍发现ubuntu18.04上会出现类似下图的错误,这个错误可以忽略,而在16.04上就没有这种错误。
在ubuntu16.04版本上的问题就比较多
错误1
解决方法:
找到当前目录下的lanch文件,然后找到此gazebo的后缀文件。例如在UR机器人里是ur_description,就进到文件目录下
roscd ur_description
cd urdf
sudo gedit common.gazebo.xacro//找到.gazebo.urdf/xacro类似文件(urdf或者xacro后缀)文件,打开
然后就可以像下面一样加上这句话就可以啦
<legacyModeNS>true</legacyModeNS>
错误2
解决方法:
解决这个问题,需要根据ROS版本安装机器人各个位置的controller驱动,命令如下:
错误里面缺什么就安装什么
$ sudo apt-get install ros-$rosversion$-joint-state-controller
$ sudo apt-get install ros-$rosversion$-effort-controllers
$ sudo apt-get install ros-$rosversion$-position-controllers
用kinetic或者melodic等ROS版本号替代$rosversion$即可。
2.
假如依然有问题,提示找不到相应的controller,那么:
(1)先用roslaunch启动相应的gazebo程序,例如 roslaunch ur_gazebo ur3.launch
(2)使用rosservice call /controller_manager/list_controller_types 查看可用的controller类型
(3)由于版本问题,有时候一些配置文件里的名字可能不准确;找到相应的.yaml文件,去里面把不合适的controller类型
改成/controller_manager/list_controller_types里面提供的类型,看名字的意思就该知道如何改;
例如,把未提供的JointTrajectoryController改成JointGroupPositionController
2-2.启动OMPL+RVIZ
打开OMPL节点
cd ur_ws
source devel/setup.bash
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
打开RVIZ
cd ur_ws
source devel/setup.bash
roslaunch ur5_moveit_config moveit_rviz.launch config:=true
rostopic echo /arm_controller/follow_joint_trajectory/goal //终端查看规划的轨迹命令
3 使UR动起来
在RVIZ 中可以看到视图机械臂末端有一个方向球,鼠标左键按住拖动就可以让机械臂随着末端移动。
4 Motion Planning(OMPL)
在RVIZ窗口的左下角有一个MotionPlaning的窗口。
content中的
OMPL
选项可以选择运动规划的算法。
在Planing窗口下可以由RVIZ向gazebo发送运动规划的信息。
在rviz中拖动机械臂改变机械臂的位置,然后点击plan就可以轨迹规划,再点击execute,机械臂就可以运动到目标位置,并且gazebo中可以观察到仿真结果。