赞
踩
首先在创建文件的src目录下运行【事先要先source一下】
roslaunch moveit_setup_assistant setup_assistant.launch
之后配置setup assiatant
加入模型
碰撞检测,手动点一下就行
planning groups这个比较重要,后面很多操作都是对这个Group来进行的,【命名、求解器……】
这里我添加了link、joint、chain这些也可以后面再文件中配置
定义一个robot poses,这里我命名了一个叫Home的pose,在rviz中调试的时候,点一下就能回到Home
这个模型不用夹爪,end effectors可以不用设置
passive joints也可以不用设置
contrrollers需要设置,直接自动添加,然后修改controller type为postion_controllers
simulation就是生成Urdf文件用的,如果导入的模型配置得有gazebo的插件等,就不需要管
需要注意这里的Namespace,,我之前犯得错误就是这里
最后填写作者信息,然后生成就行了
文件创建格式最好命名为“机械臂人”+“_moveit_config”
然后编译一下,再source一下,运行一下demo.launch文件看能否正常控制
这里没问题,然后进行下一步
修改这两个文件,一个是ros moveit方的插头,一个是ros gazebo的接口
分别配置两个文件为
gazebo_controllers.yaml
# Publish joint_states joint_state_controller: type: joint_state_controller/JointStateController publish_rate: 50 arm_controller: type: position_controllers/JointTrajectoryController joints: - shoulder_pan_joint - shoulder_lift_joint - elbow_joint - wrist_1_joint - wrist_2_joint - wrist_3_joint gains: shoulder_pan_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0} shoulder_lift_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0} elbow_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0} wrist_1_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0} wrist_2_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0} wrist_3_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0} constraints: goal_time: 2.0 state_publish_rate: 25
ros_controllers.yaml
# MoveIt-specific simulation settings moveit_sim_hw_interface: joint_model_group: arm joint_model_group_pose: home # Settings for ros_control control loop generic_hw_control_loop: loop_hz: 300 cycle_time_error_threshold: 0.01 # Settings for ros_control hardware interface hardware_interface: joints: - shoulder_pan_joint - shoulder_lift_joint - elbow_joint - wrist_1_joint - wrist_2_joint - wrist_3_joint sim_control_mode: 1 # 0: position, 1: velocity # Publish all joint states # Creates the /joint_states topic necessary in ROS joint_state_controller: type: joint_state_controller/JointStateController publish_rate: 50 arm_controller: type: position_controllers/JointTrajectoryController joints: - shoulder_pan_joint - shoulder_lift_joint - elbow_joint - wrist_1_joint - wrist_2_joint - wrist_3_joint controller_list: - name: arm_controller action_ns: follow_joint_trajectory type: FollowJointTrajectory default: true joints: - shoulder_pan_joint - shoulder_lift_joint - elbow_joint - wrist_1_joint - wrist_2_joint - wrist_3_joint initial: # Define initial robot poses per group - group: arm pose: home
其中的gazebo_controllers.yaml其实就是arm_gazebo_joint_states.yaml和trajectory_control.yaml的合成,记录主要是gazebo接口的相关的控制器,
而ros_controllers可以参考moveit的教程的第六步里面提供的那个yaml文件或者moveit生成的fake_controllers.yaml格式
最后输入
roslaunch ur5_moveit_config demo_gazebo.launch
运行就可以看到已经可以联调了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。