⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plan.java

📁 一款机器人仿真软件,功能上与microsoft robotics studio有些相似,但基于Java平台.突出特点是给出了传感器仿真,如声纳,激光等.
💻 JAVA
字号:
/* author: Louis Hugues - created on 21 janv. 2005  */package simbad.sim;import java.util.ArrayList;/** *   */public class Plan {    Agent agent;    ArrayList actions;    int state, count;    private class Transition {        int nextState, steps;        Transition(int steps, int nextState) {            this.nextState = nextState;            this.steps = steps;        }        void doStep() { }    }    private class Movement extends Transition {        double rvel, tvel;        Movement(double t, double r, int steps, int nextState) {            super(steps, nextState);            tvel = t;            rvel = r;        }        void doStep() {            agent.setTranslationalVelocity(tvel);            agent.setRotationalVelocity(rvel);        }    }    public Plan(Agent agent) {        this.agent = agent;        actions = new ArrayList();        state = 0;        count = 0;    }    public void reset() {        state = 0;        Transition t = (Transition) actions.get(state);        count = t.steps;       }    public void turn(double angle, double duration) {        float fps=20; //TODO         actions.add(new Movement(0,angle/duration,(int)(duration*fps), actions.size()+1));    }    public void forward(double distance, double duration) {        float fps=20; //TODO         actions.add(new Movement(distance/duration,0,(int)(duration*fps), actions.size()+1));    }    public void loop() {        ((Transition) actions.get(actions.size()-1)).nextState = 0;    }    public void doStep() {        if ((state>=actions.size())|| (count <=0)) return;        Transition t = (Transition) actions.get(state);        t.doStep();        count--;        if (count == 0) {            state = t.nextState;            count = t.steps;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -