littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于ROS的全身控制框架

项目简介

基于ROS的全身机器人控制框架是一个高级机器人控制项目,运用操作空间层次任务分解技术,为以人为中心的机器人和移动操作赋予先进控制能力,尤其适用于PR2和Meka机器人。

项目的主要特性和功能

  1. 多任务控制:支持末端执行器位置控制、关节空间姿态控制等多种操作空间任务。
  2. 动态一致性:采用动态一致的零空间投影技术,提升控制器表达能力。
  3. 实时配置:具备运行时配置和参数反射功能,可在启动和运行时修改任务与技能。
  4. URDF支持:包含将URDF描述转换为stanford_wbc使用表示形式的代码。
  5. PR2和Meka支持:为PR2和Meka机器人提供控制插件和相关工具。

安装使用步骤

安装依赖

  1. 安装ROS(推荐使用PR2特定的堆栈,包括PR2模拟器)。
  2. 复制项目仓库到ROS_PACKAGE_PATH,例如~/ros/stacks
  3. 使用rosmake构建项目。

运行示例

  1. 启动PR2在Gazebo中的模拟bash roscd wbc_pr2_ctrl/launch roslaunch pr2_gazebo.launch

  2. 启动WBC泵插件bash roscd wbc_pr2_ctrl/launch roslaunch pr2_pump_plugin.launch

  3. 启动WBC操作空间控制器bash roscd wbc_pr2_ctrl/launch roslaunch pr2_opspace.launch

  4. 列出服务和消息bash rostopic list | fgrep opspace rosservice list | fgrep opspace

  5. 获取和设置末端执行器轨迹目标bash rosservice call /opspace_servo/get_param '{ com_type: task, com_name: eepos, param_name: trjgoal }' rosservice call /opspace_servo/set_param '{ com_type: task, com_name: eepos, param: { name: trjgoal, type: 4, realval: [0.6, 0.1, 1.0] } }' rosservice call /opspace_servo/set_param '{ com_type: task, com_name: eepos, param: { name: trjgoal, type: 4, realval: [0.7, -0.1, 0.8] } }'

  6. 通过消息设置末端执行器轨迹目标bash rosservice call /opspace_servo/open_channel '{ com_type: task, com_name: eepos, param_name: trjgoal }' rostopic pub -1 /opspace_servo/vector_channel wbc_msgs/VectorChannel '{ channel_id: 0, value: [0.5, -0.1, 0.8] }' rostopic pub -1 /opspace_servo/vector_channel wbc_msgs/VectorChannel '{ channel_id: 0, value: [0.5, 0.1, 0.8] }'

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】