差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| 机器人:franka:libfranka:libfranka的捕获和重放:1.libfranka的捕获和重放的技术路线 [2025/11/10 09:36] – [Cartesian Pose] ctbots | 机器人:franka:libfranka:libfranka的捕获和重放:1.libfranka的捕获和重放的技术路线 [2025/11/10 11:33] (当前版本) – [别人的项目是如何完成libfranka的位姿读取和重放控制的?] ctbots | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | {{htmlmetatags> | ||
| + | metatag-keywords=(libfranka, | ||
| + | metatag-description=(了解如何使用libfranka进行机器人控制数据的捕获和重放,包括不同类型的Motion Model和Control Model,及其应用场景和技术细节。) | ||
| + | metatag-media-og: | ||
| + | metatag-og: | ||
| + | metatag-og: | ||
| + | }} | ||
| ====== 1.libfranka的捕获和重放的技术路线 ====== | ====== 1.libfranka的捕获和重放的技术路线 ====== | ||
| 行 43: | 行 50: | ||
| 镜像地址: | 镜像地址: | ||
| https:// | https:// | ||
| + | |||
| + | 其中,franka_interface/ | ||
| + | |||
| https:// | https:// | ||
| 镜像地址: | 镜像地址: | ||
| https:// | https:// | ||
| + | |||
| + | 一个franka的fci 跟 ros 中间的桥接项目; | ||
| https:// | https:// | ||
| 镜像地址: | 镜像地址: | ||
| https:// | https:// | ||
| + | |||
| + | * experiments/ | ||
| + | * experiments/ | ||
| + | |||
| + | ^ 命令 ^ 功能描述 ^ 参数 ^ | ||
| + | | connect | 连接到Franka机器人,建立与指定IP地址Franka机器人的连接,并加载机器人模型 | 机器人IP地址 | | ||
| + | | disconnect | 断开机器人连接,重置机器人连接指针,释放资源 | 无 | | ||
| + | | error_recovery | 尝试从机器人错误状态中恢复 | 无 | | ||
| + | | set_knife | 设置末端执行器(刀具)属性,根据配置文件设置不同刀具的末端执行器属性 | 刀具类型(" | ||
| + | | get_knife | 获取当前选中的刀具,返回当前已设置的刀具类型 | 无 | | ||
| + | | set_joint_impedance | 配置机器人各关节的阻抗控制参数 | 7个关节的阻抗值数组 | | ||
| + | | set_collision_behavior | 配置机器人在碰撞情况下的响应行为 | 扭矩阈值和力阈值数组 | | ||
| + | | record | 以指定间隔记录指定数量的机器人状态数据,保存为JSON文件 | 步数、采样间隔(毫秒) | | ||
| + | | retrieve | 读取指定路径的JSON日志文件内容并返回 | 日志文件路径 | | ||
| + | | move_to_q | 控制机器人在指定时间内平滑移动到目标关节位置,可选记录运动过程 | 目标关节角度数组、移动时长、确认标志、记录标志、记录频率 | | ||
| + | | interpolate | 对给定的关节位置点进行插值,生成新的更密集或更稀疏的路点序列 | 路点数、关节角度数据、源时间步长、目标时间步长 | | ||
| + | | follow_qs | 根据给定的关节位置点序列和时间步长,控制机器人按照插值后的平滑轨迹运动 | 路点数、关节角度数据、源时间步长、记录频率 | | ||
| + | | follow_cartesian_vel | 根据给定的笛卡尔速度序列和时间步长,控制机器人执行相应的笛卡尔空间运动 | 路点数、笛卡尔速度数据、源时间步长、记录频率 | | ||
| + | |||
| + | |||
| + | |||
| https:// | https:// | ||
| 行 56: | 行 89: | ||
| https:// | https:// | ||
| + | * 依赖于https:// | ||
| + | * launch/ | ||
| + | * launch/ | ||
| ===== Motion的类型和具体源代码 ===== | ===== Motion的类型和具体源代码 ===== | ||
| - | ^ Motion Generator类型 ^ 文件位置 | + | 我们后续,可能会主要考虑 使用 Joint Velocity 和 Cartesian Velocity 的方式进行录制和回放 |
| - | | Joint Position | + | |
| - | | Joint Velocity | + | 但是考虑到使用openvla进行配置,那么应该最推荐 |
| - | | Cartesian Pose | include/ | + | |
| - | | Cartesian Velocity | + | ^ Motion Generator类型 |
| + | | Joint Position | ||
| + | | Joint Velocity | ||
| + | | Cartesian Pose | include/ | ||
| + | | Cartesian Velocity | ||
| ==== Joint Position ==== | ==== Joint Position ==== | ||
| 行 137: | 行 177: | ||
| ++++ | ++++ | ||
| ==== Cartesian Pose ==== | ==== Cartesian Pose ==== | ||
| - | std:: | + | std:: |
| std:: | std:: | ||
| 行 206: | 行 246: | ||
| ++++ | ++++ | ||
| ==== Cartesian Velocity ==== | ==== Cartesian Velocity ==== | ||
| + | |||
| + | std:: | ||
| + | |||
| + | std:: | ||
| + | |||
| + | ++++ 折叠代码| | ||
| + | <code cpp cv.cpp> | ||
| + | /** | ||
| + | * 存储用于笛卡尔速度运动生成的值。 | ||
| + | */ | ||
| + | class CartesianVelocities : public Finishable { | ||
| + | | ||
| + | /** | ||
| + | * 创建一个新的CartesianVelocities实例。 | ||
| + | * | ||
| + | * @param[in] cartesian_velocities 基于基座坐标系O的期望笛卡尔速度,包含(v_x, | ||
| + | */ | ||
| + | CartesianVelocities(const std:: | ||
| + | |||
| + | /** | ||
| + | * 创建一个新的CartesianVelocities实例。 | ||
| + | * | ||
| + | * @param[in] cartesian_velocities 期望的笛卡尔速度。 | ||
| + | * @param[in] elbow 肘部配置(详见@ref elbow成员以获取更多细节)。 | ||
| + | */ | ||
| + | CartesianVelocities(const std:: | ||
| + | const std:: | ||
| + | |||
| + | /** | ||
| + | * 创建一个新的CartesianVelocities实例。 | ||
| + | * | ||
| + | * @param[in] cartesian_velocities 期望的笛卡尔速度。 | ||
| + | * | ||
| + | * @throw std:: | ||
| + | */ | ||
| + | CartesianVelocities(std:: | ||
| + | |||
| + | /** | ||
| + | * 创建一个新的CartesianVelocities实例。 | ||
| + | * | ||
| + | * @param[in] cartesian_velocities 期望的笛卡尔速度。 | ||
| + | * @param[in] elbow 肘部配置。 | ||
| + | * | ||
| + | * @throw std:: | ||
| + | */ | ||
| + | CartesianVelocities(std:: | ||
| + | std:: | ||
| + | |||
| + | /** | ||
| + | * 基于基座坐标系O的笛卡尔速度,包含(v_x, | ||
| + | */ | ||
| + | std:: | ||
| + | |||
| + | /** | ||
| + | * 肘部配置。 | ||
| + | */ | ||
| + | std:: | ||
| + | |||
| + | /** | ||
| + | * 检查是否指定了肘部配置。 | ||
| + | */ | ||
| + | bool hasElbow() const noexcept; | ||
| + | }; | ||
| + | </ | ||
| + | ++++ | ||