2个不稳定版本
0.2.0 | 2022年9月5日 |
---|---|
0.1.0 | 2021年6月18日 |
#124 in 机器人
64KB
1K SLoC
franka-interface
franka-interface 允许开发在仿真中控制Franka Emika Panda机器人的软件,然后将其运行在真实硬件上。
这是通过在 libfranka-rs 和 RuBullet 上提供抽象来实现的。
示例
use franka_interface::experiment::{Experiment, Mode, RealSetup, SimulationSetup};
use franka_interface::RobotArguments;
use std::f64::consts::PI;
use std::path::PathBuf;
struct MySimSetup {}
impl SimulationSetup for MySimSetup {
fn set_franka_urdf_path(&self) -> PathBuf {
"path/to/panda.urdf".into()
}
}
struct MyRealSetup {}
impl RealSetup for MyRealSetup {}
fn main() {
let mode = Mode::Simulation;
let mut experiment = Experiment::new(mode, MySimSetup {}, MyRealSetup {});
let mut robot = experiment.new_robot(RobotArguments {
name: "franka-ip".to_string(), // IP-Address or hostname of the real Panda (Not needed for the simulation)
base_pose: None,
initial_config: None,
});
robot.joint_motion(
0.1,
[1., PI / 4., 0., -2. * PI / 4., 0., PI / 2., -PI / 4.].into(),
);
}
此示例将在RuBullet中创建panda机器人并执行关节运动。要在真实机器人上运行程序,必须将模式设置为 Mode::Real
。另外,您必须以 Release
模式或使用 opt-level = 3
构建程序,以便在真实机器人上运行。
panda的URDF可以从 bullet3 仓库下载。请确保还下载网格文件。
功能
franka-interface中的机器人允许以下控制模式
- 关节位置控制
- 笛卡尔姿态控制
- 扭矩控制
- 通过指定目标配置来控制关节运动(见上述示例)
机器人可以访问以下属性
- 关节位置
- 关节速度
- 笛卡尔姿态
- 雅可比矩阵
- 质量矩阵
- 科里奥利扭矩
- 重力扭矩
此外,库非常灵活,因为用户可以为与仿真或真实机器人交互定义自定义机制。例如,可以创建相机并从仿真中获取图像,或在仿真内添加可视化标记。请参阅示例文件夹中的示例。
限制
虽然可以创建/连接到多个机器人,但无法同时控制多个机器人。
许可
此库版权所有 © 2021 Marco Boneberger
根据EUPL,版本1.2或——一旦它们获得欧盟委员会的批准——后续版本的EUPL(“许可证”)许可;
您只能按照许可协议使用此作品。您可以在以下位置获取许可协议的副本:
https://joinup.ec.europa.eu/software/page/eupl
除非适用法律要求或书面同意,否则在许可下分发的软件按照“原样”基础分发,不提供任何类型的保证或条件,无论是明示的还是默示的。
请参阅许可协议,了解对许可下的权限和限制的具体语言规定。
依赖项
~39MB
~1M SLoC