项目简介
基于ROS的全身机器人控制框架是一个高级机器人控制项目,运用操作空间层次任务分解技术,为以人为中心的机器人和移动操作赋予先进控制能力,尤其适用于PR2和Meka机器人。
项目的主要特性和功能
- 多任务控制:支持末端执行器位置控制、关节空间姿态控制等多种操作空间任务。
- 动态一致性:采用动态一致的零空间投影技术,提升控制器表达能力。
- 实时配置:具备运行时配置和参数反射功能,可在启动和运行时修改任务与技能。
- URDF支持:包含将URDF描述转换为stanford_wbc使用表示形式的代码。
- PR2和Meka支持:为PR2和Meka机器人提供控制插件和相关工具。
安装使用步骤
安装依赖
- 安装ROS(推荐使用PR2特定的堆栈,包括PR2模拟器)。
- 复制项目仓库到
ROS_PACKAGE_PATH
,例如~/ros/stacks
。 - 使用
rosmake
构建项目。
运行示例
-
启动PR2在Gazebo中的模拟:
bash roscd wbc_pr2_ctrl/launch roslaunch pr2_gazebo.launch
-
启动WBC泵插件:
bash roscd wbc_pr2_ctrl/launch roslaunch pr2_pump_plugin.launch
-
启动WBC操作空间控制器:
bash roscd wbc_pr2_ctrl/launch roslaunch pr2_opspace.launch
-
列出服务和消息:
bash rostopic list | fgrep opspace rosservice list | fgrep opspace
-
获取和设置末端执行器轨迹目标:
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] } }'
-
通过消息设置末端执行器轨迹目标:
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】