Rible.jl 入门
Rible.jl 是一个用于多体动力学和机器人仿真的 Julia 包。本页面将通过一个简单的倒立摆(Cartpole)示例,帮助你快速上手使用 Rible.jl。
1. 环境配置
在 Julia REPL 中输入以下命令,在一个临时环境中安装 Rible.jl 及相关的可视化与数学基础包:
julia
import Pkg
Pkg.activate(; temp=true)
Pkg.add("https://github.com/RibleOrg/Rible.jl.git")
Pkg.add(["StaticArrays", "Rotations", "TypeSortedCollections", "WGLMakie"])安装完成后,导入 Rible 及其所需的组件:
julia
using Rible
import Rible as RB
using LinearAlgebra
using StaticArrays
using Rotations
using TypeSortedCollections
using WGLMakie2. 机器人模型加载
Rible.jl 在源码示例中提供了一些常见的机器人模型。我们可以方便地包含自带的脚本来获取倒立摆(Cartpole)模型。
julia
include(joinpath(pathof(Rible), "../../examples/robots/cartpole.jl"))生成该机器人系统的一个实例,它包含了倒立摆的所有刚体与关节信息:
julia
bot = cart_pole()3. 动力学仿真设置
动力学仿真通常还需要定义系统所处的物理环境以及施加的控制策略。
构建包含标准重力的基本环境:
julia
env = RB.GravityEnv()采用"零策略"以得到观察倒立摆的被动运动特性(即在重力作用下的自由下落)
julia
policy = RB.NoPolicy()还需要定义仿真的时间跨度(
julia
tspan = (0.0, 1.0)
dt = 1e-2使用 Zhong06 数值积分器。
julia
integrator = RB.Zhong06()4. 运行仿真与结果获取
调用核心求解函数 dyn_solve!,它会在给定的时间区间内,基于你构建的机器人模型、物理环境与策略进行前向动力学演算,并返回包含轨迹信息的 sim_result 数据结构:
julia
sim_result = RB.dyn_solve!(bot, policy, env, integrator; tspan, dt)最后,借助基于 Makie 的可视化工具包,轻松将我们模拟的机器人运动轨迹渲染出来:
julia
vis(sim_result)5. 更多
至此,你已完成第一个多体动力学仿真流程! 你可以继续查看文档侧边栏,了解环境配置、逆运动学、碰撞接触等更多高级用法。如有遇到任何问题,欢迎在 GitHub 上提出issue。