ROS moveit+gazebo+rviz配置

本文详细描述了如何使用Rosmoveit进行机器人配置,包括加入模型、设置碰撞检测、planninggroups、控制器参数和Gazebo接口的配置,以及注意事项,旨在帮助用户顺利实现仿真和控制。
摘要由CSDN通过智能技术生成

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

# 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 

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

  • 31
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
本文介绍了如何使用ROS和MoveIt实现机械臂的自主避障和抓取。具体来说,我们使用深度相机获取环境中的点云数据,并使用YOLO算法识别目标物体。然后,我们使用MoveIt规划机械臂的运动轨迹,以便能够避开障碍物并抓取目标物体。最后,我们使用Gazebo仿真平台对系统进行测试。 1. 环境搭建 首先,我们需要安装ROS和MoveIt。在安装完成后,我们需要安装以下软件包: - pcl_ros:用于处理点云数据 - depthimage_to_laserscan:将深度图像转换为激光扫描数据 - yolo_ros:使用YOLO算法识别目标物体 - gazebo_ros_pkgs:使用Gazebo仿真平台进行测试 2. 点云数据处理 我们使用深度相机获取环境中的点云数据。然后,我们使用pcl_ros软件包将点云数据转换为ROS消息。接下来,我们使用depthimage_to_laserscan软件包将深度图像转换为激光扫描数据。这些步骤将使我们能够在ROS中使用点云数据和激光扫描数据。 3. 目标物体识别 我们使用yolo_ros软件包使用YOLO算法识别目标物体。该软件包将摄像机图像作为输入,并输出包含检测到的物体的ROS消息。我们可以使用这些消息来确定目标物体的位置和方向。 4. 机械臂运动规划 我们使用MoveIt规划机械臂的运动轨迹。我们需要定义机械臂的运动范围和运动约束。我们可以使用MoveIt的可视化工具来定义这些约束。然后,我们可以使用MoveIt提供的API来规划机械臂的运动轨迹。 5. 自主避障和抓取 我们将目标物体的位置和方向与机械臂的运动轨迹相结合,以便机械臂能够避开障碍物并抓取目标物体。我们可以使用MoveIt提供的运动规划和执行API来控制机械臂的运动。 6. 系统测试 最后,我们使用Gazebo仿真平台对系统进行测试。我们可以将机械臂和目标物体模型添加到Gazebo中,并使用ROS消息来控制它们的运动。我们可以使用Gazebo的可视化工具来查看机械臂的运动和目标物体的位置。 通过使用ROS和MoveIt,我们可以轻松地实现机械臂的自主避障和抓取功能。这种技术可以应用于许多领域,如自动化生产和无人机抓取。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值