当前位置:   article > 正文

ROS moveit+gazebo+rviz配置

moveit+gazebo

ros moveit配置

首先在创建文件的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文件看能否正常控制

这里没问题,然后进行下一步

rosmoveit+gazebo+rviz仿真

修改这两个文件,一个是ros moveit方的插头,一个是ros gazebo的接口

分别配置两个文件为

gazebo_controllers.yaml

  1. # Publish joint_states
  2. joint_state_controller:
  3. type: joint_state_controller/JointStateController
  4. publish_rate: 50
  5. arm_controller:
  6. type: position_controllers/JointTrajectoryController
  7. joints:
  8. - shoulder_pan_joint
  9. - shoulder_lift_joint
  10. - elbow_joint
  11. - wrist_1_joint
  12. - wrist_2_joint
  13. - wrist_3_joint
  14. gains:
  15. shoulder_pan_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0}
  16. shoulder_lift_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0}
  17. elbow_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0}
  18. wrist_1_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0}
  19. wrist_2_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0}
  20. wrist_3_joint: {p: 100.0, i: 0.0, d: 0.1, i_clamp: 0.0}
  21. constraints:
  22. goal_time: 2.0
  23. state_publish_rate: 25

ros_controllers.yaml

  1. # MoveIt-specific simulation settings
  2. moveit_sim_hw_interface:
  3. joint_model_group: arm
  4. joint_model_group_pose: home
  5. # Settings for ros_control control loop
  6. generic_hw_control_loop:
  7. loop_hz: 300
  8. cycle_time_error_threshold: 0.01
  9. # Settings for ros_control hardware interface
  10. hardware_interface:
  11. joints:
  12. - shoulder_pan_joint
  13. - shoulder_lift_joint
  14. - elbow_joint
  15. - wrist_1_joint
  16. - wrist_2_joint
  17. - wrist_3_joint
  18. sim_control_mode: 1 # 0: position, 1: velocity
  19. # Publish all joint states
  20. # Creates the /joint_states topic necessary in ROS
  21. joint_state_controller:
  22. type: joint_state_controller/JointStateController
  23. publish_rate: 50
  24. arm_controller:
  25. type: position_controllers/JointTrajectoryController
  26. joints:
  27. - shoulder_pan_joint
  28. - shoulder_lift_joint
  29. - elbow_joint
  30. - wrist_1_joint
  31. - wrist_2_joint
  32. - wrist_3_joint
  33. controller_list:
  34. - name: arm_controller
  35. action_ns: follow_joint_trajectory
  36. type: FollowJointTrajectory
  37. default: true
  38. joints:
  39. - shoulder_pan_joint
  40. - shoulder_lift_joint
  41. - elbow_joint
  42. - wrist_1_joint
  43. - wrist_2_joint
  44. - wrist_3_joint
  45. initial: # Define initial robot poses per group
  46. - group: arm
  47. 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 

运行就可以看到已经可以联调了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/703780
推荐阅读
相关标签
  

闽ICP备14008679号