当前位置: 首页 > article >正文

ethercat电机六自由度机械臂的ros2control+moveit2方案启动流程

零、启动过程

终端1

sudo /etc/init.d/ethercat start
  • 启动ethercat的主站服务,ethercat不向tcp那种常见的网络服务被写进了操作系统内部,所以需要单独启动这个服务。
ethercat slaves
  • 查看从机状态,确保硬件正常

终端2

ros2 launch moveit_test demo.launch.py
  • 启动ros2control和moveit2

一、ros2 launch moveit_test demo.launch.py

1.1 MoveItConfigsBuilder(“erobot”, package_name=“moveit_test”)

  • 这个函数定义机器人的名字是“erobot”,软件包是moveit_test。这个函数只是生成配置条件。
  • 这个函数主要是利用机器人相关的配置文件生成了"robot_description",包括:erobot.urdf.xacro和erobot.srdf、erobot.ros2_control.xacro

1.2 generate_demo_launch(moveit_config)

在这里插入图片描述

  • 这是一个python文件,通过脚本的形式启动需要的launch文件。所有launch文件也是通过py文件启动的,就是上面这个图中的py文件,都是围绕demo.launch.py建立的,其他的都是为了启动不通的部分、
  • 需要启动的包括以下文件:
    Includes
     * static_virtual_joint_tfs
     * robot_state_publisher
     * move_group
     * moveit_rviz
     * warehouse_db (optional)
     * ros2_control_node + controller spawners
    """

也就是需要的所有文件了,就是除了erobot.urdf.xacro和erobot.srdf、erobot.ros2_control.xacro以外下面这张图中的所有配置文件(以机器人名开头的文件)
在这里插入图片描述

  • 这两节的区别在于一个是生成机器人描述,一个是启动ros2control和moveit,之后将分别详述

二、机器人描述文件

在这里插入图片描述

1、erobot.urdf.xacro

这里值得一说的就是erobot.urdf.xacro这个文件,调用了erobot.ros2_control.xacro文件,这个文件所需的文件生成了名为FakeSystem的硬件接口,这里还叫FakeSystem的原因是控制器直接调用的moveit自带的,自带的那个是没有接实际硬件的,所以叫“虚假系统”
在这里插入图片描述

2、erobot.ros2_control.xacro

这个调用了硬件接口那个包的编译结果,连接了两个软件包

三、启动配置文件

配置文件中比较重要的就是moveit_contorllers.yaml和ros2_controllers.yaml,分别配置了moveit中控制器管理者和ros2control的控制器管理者,moveit中的管理者实际就是调用了ros2control的,只是增加了一部分内容。

# This config file is used by ros2_control
controller_manager:
  ros__parameters:
    update_rate: 100  # Hz

    p1_controller:   #定义控制器
      type: joint_trajectory_controller/JointTrajectoryController


    joint_state_broadcaster:  #定义广播类型
      type: joint_state_broadcaster/JointStateBroadcaster

p1_controller:      #给与参数
  ros__parameters:
    joints:
      - shoulder_joint
      - upperArm_joint
      - foreArm_joint
      - wrist1_joint
      - wrist2_joint
      - wrist3_joint
    command_interfaces:
      - position
    state_interfaces:
      - position
      - velocity


http://www.kler.cn/a/392039.html

相关文章:

  • MySQL技巧之跨服务器数据查询:进阶篇-从A数据库复制到B数据库的表中
  • Android中桌面小部件的开发流程及常见问题和解决方案
  • DNS面临的4大类共计11小类安全风险及防御措施
  • 九州未来再度入选2024边缘计算TOP100
  • 【2024最新】math-expression-evaluator 动态计算表达式的使用
  • CSS 自定义滚动条样式
  • 用Tokio掌握Rust异步编程
  • 【go从零单排】panic、recover、defer
  • 51c自动驾驶~合集10
  • python 京东api怎么写
  • 深入理解Java构造方法和接口:如何调用父类构造方法,接口能否包含方法实现?
  • MySQL缓存使用率超过80%的解决方法
  • 6.10 Queue接口/Deque接口 模拟栈与队列分析
  • 为什么谷歌SEO需要周期性维护?
  • 【excel】easy excel如何导出动态列
  • 离线安装GDAL与MapServer:在银河麒麟V10上的快速指南
  • [基础] 001 move的介绍
  • 机器学习:随机森林——基于决策树的模型
  • (蓝桥杯C/C++)——搜索
  • 036 RabbitMQ消息确认 死信队列 延时队列
  • 脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾
  • 接口测试框架+数据驱动
  • Fish Agent V0.13B:Fish Audio的语音处理新突破,AI语音助手的未来已来!
  • 集合类源码浅析のJDK1.8ConcurrentHashMap(上篇)
  • Go语言的并发安全与互斥锁
  • 使用cloudflare搭建私人docker镜像站