开源项目最佳实践教程:utiasDSL Upright
1. 项目介绍
utiasDSL/upright
是一个开源项目,旨在解决非抓握物体在移动操作臂上的平衡运输问题,即所谓的"服务员问题"。该项目提供了一种基于模型预测控制(MPC)和轨迹优化的方法,可以在移动操作臂上进行快速的非抓握物体运输,并具备避障能力。项目代码及相关资源可用于研究和实际硬件实验,以帮助研究人员和开发者在移动操作臂领域实现更高效的物体平衡和控制。
2. 项目快速启动
环境搭建
- 确保你的系统为 Ubuntu 20.04,并安装了 ROS Noetic。
- 克隆项目依赖的
mobile_manipulation_central
仓库到你的catkin
工作空间。 - 克隆项目自定义的
OCS2
仓库分支:git clone -b upright https://github.com/utiasDSL/ocs2
- 安装
OCS2
的依赖项。 - 将
upright
项目克隆到你的catkin
工作空间:git clone https://github.com/utiasDSL/upright catkin_ws/src/upright
- 安装 Python 依赖项:
python3 -m pip install -r catkin_ws/src/upright/requirements.txt
- 使用
catkin
配置文件(如果需要)并构建工作空间:catkin build
运行研究
- 切换到
upright_cmd
脚本目录:cd upright_cmd/scripts/simulations
- 运行研究,指定 YAML 配置文件路径:
例如:./mpc_sim --config <path to yaml file>
./mpc_sim --config $(rospack find upright_cmd)/config/demos/thing_demo.yaml
运行硬件实验
- 连接到机器人,并运行:
roslaunch mobile_manipulation_central thing.launch
- 在另一个终端中运行:
roslaunch upright_ros_interface mpc_mrt.launch config:=<path to yaml file>
3. 应用案例和最佳实践
案例一:动态环境下的反应
- 使用项目提供的研究脚本,可以测试机器人对突然环境变化的反应能力。
- 例如,通过修改配置文件中的参数,研究动态障碍物,并观察机器人的避障行为。
案例二:避障能力
- 在研究环境中,可以通过添加动态障碍物(如抛出的球)来测试机器人的避障能力。
- 调整控制参数,以优化机器人在复杂环境中的运动轨迹。
4. 典型生态项目
mobile_manipulation_central
:该项目提供了与upright
项目相配套的移动操作臂核心功能。OCS2
:一个用于优化和控制的开源框架,为upright
项目提供了模型预测控制的核心算法实现。utiasDSL
组织下的其他项目:这些项目通常与移动操作臂和机器人控制相关,提供了丰富的资源和工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考