1.利用MoveIt setup assistant自动生成的文件
config文件


    config文件夹里包含如下文件:
fake_controllers.yaml
这是虚拟控制器配置文件,方便我们在没有实体机器人,甚至没有任何模拟器(如gazebo)开启的情况下也能运行MoveIt。


joint_limits.yaml
这里记录了机器人各个关节的位置速度加速度的极限,这些都会被用于以后的规划中。


kinematics.yaml
用于初始化运动学求解库。


ompl_planning.yaml
这里是配置OMPL各种算法的各种参数。


robot_name.srdf
这是一个重要的MoveIt配置文件,配合URDF使用。我 们可以看到这是一个xml格式的配置文件,根是robot,并有一个属性值name=’robot_name’。下面各个项目应该很明显,就是我们在Setup Assistant里面所设置的东西,包含了组群,位姿,终端控制器,虚拟关节,以及碰撞免测矩阵ACM的定义。理论上,只要有了srdf和urdf,我们就可以完全定义一个机器人moveit信息。


launch文件
     launch文件夹中的几个重要文件:


demo.launch
demo是运行的总结点,打开我们可以看到他include了其他的launch文件。其中第14行说,如果有需要,发布静态的tf。比如说,你的机器人基座不在世界坐标的原点,你可以发布一个静态tf来描述机器人在世界坐标中的位置。第17-21行,就是我们发布虚拟机器人状态的地方了,当然,如果你有实体机器人或者有gazebo之类的模拟器,你需要去掉这一部分,有其他相应的节点来发布机器人状态。26-32 行运行了另一个moveit重要的节点,move group。


move_group.launch
顾名思义,move group的功能是让一个规划组群动起来。怎么动,那就要做运动规划了,在move_group.launch第24-26行定义了运动规划库的使用,我们可以看到,默认的是使用ompl运动规划库。其他的都是设置一些基本参数,暂时可以略过。


planning_context.launch
这里我们可以看到,定义了所使用的urdf和srdf文件,以及运动学求解库。不建议手动更改这些,但是如果你需要使用不同的urdf,srdf,可以在这里更改。


2.修改MoveIt配置文件与launch文件
        因为前面生成的文件都是针对虚拟机器人的,如果需要连接实际机器人,需要修改一些配置文件,我可能记不太清具体要修改几个文件了,请以官方教程为主:

config文件
controllers.yaml
这个就是要根据你的ROS驱动中的action来修改,MoveIt可以根据这个配置文件发布出与机器人驱动相匹配的action。简单地说,就是action的名字、类型、关节名字几个信息。

sensors.yaml
这个需要额外增加,它主要定义了点云的消息名称、OctoMap属性等。 

launch文件
robot_moveit_controller_manager.launch
初始为空文件,需要修改,作用就是在不适用fake controller的时候能找到上述controller.yaml文件,发布出正确的action类型。


moveit_sensor_manager.launch
同样的,增加传感器配置文件后,我们也需要在launch文件中增加对配置文件的读取。
其他(可选)
industrial_robot_simulator、warehouse、joystick、规划器、规划算法库…… 

机器人启动文件(必须)