最近想要用点云来识别物体位姿,然后订阅发布的位姿并利用moveit控制UR5机械臂的移动,但由于最近系统进行了重装,整个环境的搭建都重新开始,于是先复现了一下之前用AprilTag输出空间位姿,然后订阅位姿利用moveit控制UR5机械臂的移动。目前可以实现连续的路点移动,但是会出现超出某一个关节限制的警告,从而导致无法规划,执行的错误。
但是在复现过程控制UR5机械臂在gazebo仿真时相继出现了以下两个错误:
第一个主要问题
一,发生在
rosrun apriltags2_node apriltags2_client
在moveit启动节点下:
[ WARN] [1567497398.552827574]: Fail: ABORTED: No motion plan found. No execution attempted.
roslaunch ur5_moveit_config ur5_moveit_planning_execution.launch sim:=true
启动节点下
[ERROR] [1567673055.288638354]: RRTConnect: Unable to sample any valid states for goal tree
自己反复修改了几个方面后解决了,具体原因还不清楚
有以下几个修改思路:
1,首先要关闭虚拟关节运行
在demo.launch文件中参数fake_execution的值改为false
在这里插入代码片<!--此段代码来自moveit配置文件demo.launch-->
<!-- Run the main MoveIt executable without trajectory execution (we do not have controllers configured by default) -->
<include file="$(find aubo_i5_moveit_config)/launch/move_group.launch">
<arg name="allow_trajectory_execution" value="true"/>
<arg name="fake_execution" value="false"/> //请看这个参数
<arg name="info" value="true"/>
<arg name="debug" value="$(arg debug)"/>
</include>
2,在rviz下拖动改变当前机械臂的位置,换一下初始位置
如下:
3,如果用gazebo模拟我的controllers.yaml变成下面这样:
在/home/harry/catkin_ws/src/universal_robot/ur5_moveit_config/config/controllers.yaml
controller_list:
# - name: ""
# action_ns: follow_joint_trajectory
# type: FollowJointTrajectory
# joints:
# - shoulder_pan_joint
# - shoulder_lift_joint
# - elbow_joint
# - wrist_1_joint
# - wrist_2_joint
# - wrist_3_joint
#-------------for gazebo UR5--------------------