ROS仿真环境的搭建,Moveit与gazebo的联动

ros_control是ROS为开发者提供的机器人控制插件。

ROS仿真环境的搭建,Moveit与gazebo的联动_第1张图片

控制器(Controllers):

        joint_stase_controller --- 监控机器人的状态

        joint_effort_controller --- 力控制

        joint_position_controller --- 位置控制

        joint_velocity_controller --- 速度控制

Moveit!和gazebo联动:

ROS仿真环境的搭建,Moveit与gazebo的联动_第2张图片

Moveit_config文件中找到config文件夹打开ros_controller.yaml,其中arm_controller 和 gripper将Moveit 生成的轨迹封装成 follow_joint_trajectory 类型的数据(这是一个数据结构,里边包含各个关节的轨迹点),在gazebo端,控制器arm_controller和gripper一定要Moveit严格一致,否则无法实现两者的联合仿真。

# Simulation settings for using moveit_sim_controllers
moveit_sim_hw_interface:
  joint_model_group: arm
  joint_model_group_pose: home
# Settings for ros_control_boilerplate 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
    - gripper_finger1_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
controller_list:
  - name: arm_controller
    action_ns: follow_joint_trajectory
    default: True
    type: FollowJointTrajectory
    joints:
      - shoulder_pan_joint
      - shoulder_lift_joint
      - elbow_joint
      - wrist_1_joint
      - wrist_2_joint
      - wrist_3_joint
  - name: gripper
    action_ns: follow_joint_trajectory
    default: True
    type: FollowJointTrajectory
    joints:
      - gripper_finger1_joint

然后修改launch文件中的ros_controlers.launch,并且将joint_state_controller arm_controller gripper添加进来就可以了。




  
  

  
  


最后启动demo_gazebo.launch。

Moveit!编程接口

MoveIt!主要给用户提供了两种编程接口,一种Python的接口,另一种是C++的接口,这两种接口的使用非常类似,API基本上保持一致。

机械臂是通过关节空间来描述它的位姿状态。

机械臂的姿态是由它自身的电机的位置决定的,只要知道各个电机的位置就可以将整个机械臂的位姿求出来。

大致步骤:

                1、连接控制需要的规划组;

                2、设置目标位姿(笛卡尔空间);

                3、设置运动约束;

                4、使用Moveit!规划出一条到达目标的轨迹

                5、修改轨迹

                6、执行规划出的轨迹

Moveit!编程API网址:http://moveit.ros.org/code-api/

后面补充有关Moveit编程的相关知识

你可能感兴趣的:(Moveit,机器人,人工智能)