#panda #camera-image #franka #emika #libfranka

franka-interface

为Franka Emika Panda机器人开发仿真软件,并在真实机器人上运行

2个不稳定版本

0.2.0 2022年9月5日
0.1.0 2021年6月18日

#124 in 机器人

EUPL-1.2

64KB
1K SLoC

crates.io GitHub Workflow Status crates.io crates.io docs.rs

franka-interface

franka-interface 允许开发在仿真中控制Franka Emika Panda机器人的软件,然后将其运行在真实硬件上。

这是通过在 libfranka-rsRuBullet 上提供抽象来实现的。

示例

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