模版目录格式

模版作用:导入即可用,如默认的动作、io等信号

.urdf 模版-机器人描述文件

.rhai 模版-脚本描述文件

*.png 显示图

structure.png 结构图

circuit.png 电路图 io

手爪脚本示例

实现手爪开合,并能抓取工件
定义一个模拟传感器,检测工件进行抓取
IN2 控制手爪开合
OUT1 手爪开到位
OUT2 手爪关到位
控制模型的角度,实现开合效果

add_io(entity.index,8); // 添加io
add_paw(entity.index); // 标记手爪组件

// 调试使用
// add_io_power(entity.index); // 添加电源
// add_ray(entity.index,"body1","R",0.225,"",0.0,0.0,0.03,true); // 传感器

// 状态记录
let state = #{
    get: 0,  // 抓取标记
    open: 0,  // 开关标记
    open_ray: 0  // 传感器开关标记
};

fn update() {

    read_io(entity.index,0,2).then(|ok| {
        // 返回开到位、关到位的信号
        write_io(entity.index,1,0,ok);
          write_io(entity.index,1,1,!ok);

        if ok {
            // IN2等TRUE操作
            // 增加物料检测传感器
            add_ray(entity.index,"body1","R",1.225,"",0.1,0.03,0.03,true);
            state.open = 1;  // 开关标记
            state.open_ray = 1;  // 传感器开关标记
            // 手指旋转
            v_rz(entity.index,"body4",0.015,0.005);
            v_rz(entity.index,"body3",-0.015,-0.005);

            // 判断已抓取和手爪打开时、则放置工件到此位置
            if state.get==1 && state.open==1 {
              remove_ray(entity.index,"body1");
              // 放置
              put_work(entity.index,"body1").then(|ok1|{

              });
            }
        }else{
            // IN2等False操作
            // 移除物料检测传感器
            remove_ray(entity.index,"body1");
            // 手指旋转归位
            v_rz(entity.index,"body4",0.0,-0.005);
            v_rz(entity.index,"body3",0.0,0.005);
            state.open_ray=0;
            if state.get==0 && state.open==1 {
              // 抓取
              get_work(entity.index,"body1").then(|ok1|{
                state.open = 0;
                if ok1 {
                    state.get = 1; // 抓取标记
                }else{
                }
              });
            }else if state.get==1 && state.open==1 {
              // 放置
              put_work(entity.index,"body1").then(|ok1|{
                state.open = 0;
                state.get = 0; // 放置标记
              });
            }
        }
    });
}

打开传感器调试,正确感应到工件会显示一条射线

作者:力博特  创建时间:2025-11-11 19:11
最后编辑:力博特  更新时间:2025-11-18 09:07