moveit+gazebo联合仿真问题总结

相应的配置文件和启动文件修改:
在进行配置的时候,考虑到以后可能有多个机械臂进行联合仿真,或者就是为了话题之间不会进行冲突,会利用命名空间进行区分,一般而言都是用 urdf 或者 xacro 文件中的模型名字 robot(这个可以根据自己的机械臂名字进行相应的修改,这里为了描述方便) 作为 命名空间的名字,
1、对自己的模型 robot 利用rosrun moveit_setup_assistatnt moveit_setup_assistatnt 生成 robot_moveit_config 文件。

2、在 robot_moveit_config 中的config 文件夹添加两个文件:controllers_gazebo.yaml 和 joint_names.yaml。
在launch 文件夹中添加文件:moveit_planning_execution.launch ;
并且修改文件robot_moveit_controller_manager.launch.xml。

3、添加 robotgazebo 文件夹,在该文件夹中新建 config 和 launch 两个文件夹。
config 文件夹中 添加文件:**robot
**gazebo_joint_states.yaml 和 robot_trajectory_control.yaml

launch 文件夹中添加文件:
robot_bringup_moveit.launch、
robot_gazebo_states.launch、
robot_gazebo_world.launch、
robot_trajectory_controller.launch

相关问题总结:

一、Action client not connected: PositionJointInterface_trajectory_controller/follow_joint_trajectory
或者Action client not connected: ×××/arm_joint_controller/follow_joint_trajectory
1、可能是一些安装包没有安装:
这里贴上两种解决方法:第一种 。第二种。

这两种方法总结为下面两条语句:
sudo apt-get install ros-kinetic-gazebo-ros-pkgs ros-kinetic-gazebo-ros-control
sudo apt-get install ros-kinetic-ros-control ros-kinetic-ros-controllers

我在这里补充一些:
sudo apt-get install ros-kinetic-joint-trajectory-controller
下面的这三个命令就是相当于把相关的插件全部安装上。
sudo apt-get install ros-kinetic-control*
sudo apt-get install ros-kinetic-gazebo-ros*
sudo apt-get install ros-kinetic-joint-trajectory*

2、可能是你的关节名字没有写对
比如你直接复制别人的包,然后别人的关节名字是 joint_1,而你的是 joint1
虽然你其他地方都弄好了,但是还是会报错。

3、其他的一些问题:配置文件和启动文件没有配置好,命名工作区间冲突了等等。

二、可能会在运行过程中碰到这个问题: Unable to identify any set of controllers that can actuate the specified joints: [ joint1 joint2 joint3…]。
当时我上网查了一下,有人是这样解决的。我看了一下发现我的并不是这个问题,后来发现是我的 配置moveit生成的 launch中的文件中的 ×××××_moveit_controller_manager.launch.xml 文件中没有添加相应的文件导致的。

三、运行 moveit 的时候,机械臂末端没有出现可以拖动交互的小球和三个箭头
1、在左侧栏目中的 MotionPlanning 中 Planning Request 的 Query Goal State 打勾就可以;
2、在左侧栏目中的 MotionPlanning 中 Planning Request 的 Planning Group 选择相应的规划组;
3、最后一种可能就是机械臂末端的最后一个连杆设置的尺寸大小了,导致那个拖动交互球太小看不见了。(说出来都是泪呀)
经过测试之后,发现尺寸设置在0.005还能看见,但是就是比较小,正常0.02左右差不多就可以了。

你可能感兴趣的:(ROS)