matlab 棍,双足机器人行走棍图怎么用MATLAB画出来

匿名用户

1级

2016-05-25 回答

The following is a function I wrote to generate a stick diagram of robot motion. Hope it is helpful to you all.

function = stick(filename,user_frame_per_second,max_step)

global robot

foot2=;

mov_traj = load(filename);

dt = mov_traj(2,1) - mov_traj(1,1);

frame_per_second = fix(1/dt);

if user_frame_per_second == 0

show_frame_per_second = frame_per_second;

else

show_frame_per_second = user_frame_per_second;

end

capture_frame_per_second = 20;

color0 = ;

color1 = ;

color2 = ;

color3 = *0.5;

color4 = *0.5;

width = 2;

scrsz = get(0,'ScreenSize');

animation = figure;

%hold on

xxlim =

yylim =

set(animation,'name','2D walking','Position',);

h_axes = axes('Parent',animation,'Units','Pixels','Position',,'Ylim',yylim,'Xlim',xxlim);

%tx = text('Parent',h_axes,'Visible','off');

set(h_axes,'visible','on');

ground = line('Parent',h_axes,'Color',,'Visible','off','LineWidth',2);

set(ground, 'Parent',h_axes,'Xdata',xxlim,'Ydata', ,'visible','on');

idx =1

ss_flag = 0;

step_count = 0;

l_ankle_pos = zeros(2,1); l_knee_pos = zeros(2,1); l_hip_pos = zeros(2,1); head_pos = zeros(2,1);

r_knee_pos = zeros(2,1); r_ankle_pos = zeros(2,1);

r_ankle_pos_b_save = ';

base = ';

for i = 1:size(mov_traj,1)

tt = mov_traj(i,1);

l_ankle_abs = mov_traj(i,2);

l_knee_abs = l_ankle_abs + mov_traj(i,3);

l_hip_abs = l_knee_abs + mov_traj(i,4);

r_hip_abs = l_hip_abs + mov_traj(i,5);

r_knee_abs = r_hip_abs + mov_traj(i,6);

% r_knee_abs = r_knee_abs;

l_ankle_pos_b =';

l_knee_pos_b = ';

l_hip_pos_b = ';

head_pos_b = ';

r_knee_pos_b = ';

r_ankle_pos_b = ';

if (r_ankle_pos_b_save(1) > 0 && r_ankle_pos_b(1) < 0) % switch

step_count = step_count +1;

if step_count >= max_step

break

end

ss_flag = 1;

tmp = color0; color0 = color4; color4=tmp;

tmp = color1; color1 = color3; color3=tmp;

set(l_calf,'Color',color0,'Visible','off');

set(l_thigh,'Color',color1,'Visible','off');

set(torso,'Color',color2,'Visible','off')

set(r_thigh,'Color',color3,'Visible','off');

set(r_calf,'Color',color4,'Visible','off');

% hip_travel = hip_travel + r_ankle_pos_b_save(1);

% ground_height = ground_height + r_ankle_pos_b_save(2);

base = base + r_ankle_pos_b_save;

%ground_height =0 ;

%set(h_axes,'Ylim',);

base;

r_ankle_pos_b_save;

r_ankle_pos_b;

%pause

end

r_ankle_pos_b_save = r_ankle_pos_b;

% drift = l_hip_pos(1);

% l_ankle_pos(1) = l_ankle_pos(1) - drift;

% l_knee_pos(1) = l_knee_pos(1) - drift;

% l_hip_pos(1) = l_hip_pos(1) - drift;

% head_pos(1) = head_pos(1) - drift;

% r_knee_pos(1) = r_knee_pos(1) - drift;

% r_ankle_pos(1) = r_ankle_pos(1) - drift;

l_ankle_pos = l_ankle_pos_b + base;

l_knee_pos = l_knee_pos_b + base;

l_hip_pos = l_hip_pos_b + base;

head_pos = head_pos_b + base;

r_knee_pos = r_knee_pos_b + base;

r_ankle_pos = r_ankle_pos_b + base;

foot2 = ;

if (mod(i,fix(frame_per_second/show_frame_per_second)) == 1 )

torso = line('Parent',h_axes,'Color',color2,'Visible','off','LineWidth',width);

r_thigh = line('Parent',h_axes,'Color',color3,'Visible','off','LineWidth',width);

r_calf = line('Parent',h_axes,'Color',color4,'Visible','off','LineWidth',width);

l_calf = line('Parent',h_axes,'Color',color0,'Visible','off','LineWidth',width);

l_thigh = line('Parent',h_axes,'Color',color1,'Visible','off','LineWidth',width);

if mod(step_count,2) == 1

set(l_calf, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(l_thigh, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(torso, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(r_thigh, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(r_calf, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

else

set(torso, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(r_thigh, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(r_calf, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(l_calf, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

set(l_thigh, 'Parent',h_axes,'Xdata',,'Ydata', ,'visible','on');

end

stime=sprintf('time:%5.2f',tt);

%set(tx,'Parent',h_axes,'Position',,'String',stime,'visible','on');

%set(h_axes,'Xlim',);

drawnow;

end

if l_ankle_pos(1) > xxlim(2)

break

end

end

xlabel('(m)')

ylabel('(m)')

zbyoyicc (站内联系TA)

7楼: Originally posted by blackwave at 2015-01-15 11:38:18

The following is a function I wrote to generate a stick diagram of robot motion. Hope it is helpful to you all.

function = stick(filename,user_frame_per_second,max_step)

global robot

foot2= ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式学习笔记-观察者模式

1. 概述 有时被称作发布/订阅模式&#xff0c;观察者模式定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时&#xff0c;会通知所有观察者对象&#xff0c;使它们能够自动更新自己。 2. 解决的问题 将一个系统分割…

Handler与多线程

1、Handler介绍 在Android开发中&#xff0c;我们常会使用单独的线程来完成某些操作&#xff0c;比如用一个线程来完成从网络上下的图片&#xff0c;然后显示在一个ImageView上&#xff0c;在多线程操作时&#xff0c;Android中必须保证以下两点&#xff1a; &#xff08;1&…

oracle read only 事务,oracle set transaction read only与dbms_transaction实现事务transaction控制...

SQL> show userUser is "SYS"SQL> set transaction read only;Transaction setSQL> insert into t_table values(3);1 row insertedSQL> commit;Commit complete---sys用户 set transaction read only不生效SQL> select * from t_table;A------------…

oracle report builder 6i下载,oracle report builder 6i - 数据模型中的SQL查询代码

我是Vijetha&#xff0c;我正在研究报告6i&#xff0c;我很陌生 . 我有以下查询 .在front_end中&#xff0c;在Reports Parameter中&#xff0c;当用户单击“运行”按钮时&#xff0c;它将询问START_DATE和END_DATE输入 .如果用户提供START_DATE和END_DATE或者不提供输入&#…

HTML/CSS/JavaScript学习总结(转)

HTML 网站开发的主要原则是&#xff1a; – 用标签元素HTML描述网页的内容结构&#xff1b; – 用CSS描述网页的排版布局&#xff1b; – 用JavaScript描述网页的事件处理&#xff0c;即鼠标或键盘在网页元素上的动作后的程序 HTML&#xff08;Hyper Text Mark-up Language 超文…

oracle引用vs,VS2013中使用oracle,有关引用哪个.dll

Oracle、Microsoft 和第三方供应商都提供了针对 Oracle 产品进行了优化的数据供应程序。 Oracle 和 Microsoft 免费提供其 Oracle 数据供应程序。访问 Oracle 的操作有些类似于对 Sql Server 的操作。对Oracle 的访问有以下几种数据提供程序。 Microsoft.NET Oracle 提供程序 O…

贪心方法

1.背包问题 按效益值/重量 进行排序输入 2.带限期的作用排序 按效益值进行排序输入 3 最小生成树&#xff1a; 贪心方法&#xff1a;每次计入成本最小的边 原树T&#xff0c; 欲构造的最小生成树T Prim&#xff1a; 从T中选与T中结点相连的成本最小的边。 且&#xff1a;边之前…

oracle语法官方文档,Oracle官方文档必备语法知识

很多Oracle DBA虽然接触Oracle时间很长&#xff0c;但是一旦想不起语法或找不出相应参数时&#xff0c;习惯百度或谷歌。虽然已经下载了官方文档&#xff0c;但是Oracle官方文档必备语法知识[日期&#xff1a;2015-04-21]来源&#xff1a;Linux社区作者&#xff1a;kuqlan[字体…

新中大oracle实列名,新中大财务软件操作流程(完整版)

新中大财务软件最基本的三个模块&#xff1a;核算单位、财务处理系统、报表处理系统。简单地说&#xff0c;核算单位模块是用于建账&#xff0c;财务处理系统用于登账&#xff0c;报表处理系统用于出报表的。一、总账处理系统1、建账套双击财务软件图标 → 在登录界面选择用户编…

编写DLL所学所思(1)——导出函数

烛秋 http://www.cnblogs.com/cswuyg/archive/2011/09/30/dll.html 动态链接库的使用有两种方式&#xff0c;一种是显式调用。一种是隐式调用。 &#xff08;1&#xff09; 显式调用&#xff1a;使用LoadLibrary载入动态链接库、使用GetProcAddress获取某函数地址。 &am…

linux切换任务命令,Linux top详解之交互命令、命令行选项

top交互命令我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。2.1 ‘h’: 帮助首先&#xff0c;我们可以用’h’或者’?’显示交互命令的帮助菜单。2.2 “或者”: 刷新显示top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新&am…

linux 内核地址随机化,GNU/Linux内核的地址随机化

地址空间布局随机化(ASLR)是一项增加安全性的技术&#xff0c;***者发现漏洞之后开始编写exploit时如果要考虑绕过ASLR这会增加编写exploit的难度&#xff0c;最早是2001年Grsecurity社区(强悍的社区&#xff0c;直到今天还在为各种各样的加固为自由软件安全社区作出持续而杰出…

Yii2的一些问题

Yii2中删除能不能串着用 Yii2中find、findAll有什么区别 Yii2中User::findOne($id)和User::find->where([id>1])->one; 会员登录信息 是以什么样的形式存放在Yii::$app->user->identity 里面的&#xff1f; session的形式 http://www.cnblogs.com/kuyuecs/archi…

linux系统硬盘设置密码,LUKS:Linux下磁盘加密

Linux下磁盘加密LUKS(Linux Unified Key Setup)为Linux硬盘加密提供了一种标准&#xff0c;它不仅能通用于不同的Linux发行版本&#xff0c;还支持多用户/口令。因为它的加密密钥独立于口令&#xff0c;所以如果口令失密&#xff0c;我们可以迅速改变口令而无需重新加密真个硬盘…

Hibernate查询

9.1 Hibernate数据查询 数据查询与检索是Hibernate的一个亮点。Hibernate的数据查询方式主要有3种&#xff0c;它们是&#xff1a; l Hibernate Query Language&#xff08;HQL&#xff09; l Criteria Query l Native SQL 下面对这3种查询方式分别进…

linux x86 io端口映射,linux中的 IO端口映射和IO内存映射

下面是今天看到两篇关于linux中的 IO端口映射和IO内存映射的文章,时间关系,没来得及深入理解,有空好好看看CPU地址空间CPU地址空间(一)地址的概念1)物理地址&#xff1a;CPU地址总线传来的地址&#xff0c;由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存…

单例模式 创建对象

两种选择 1 使用pthread_once&#xff0c; once是类的成员变量 只执行一次Create create的作用是创建一个对象 2 使用 static lock 如下所示&#xff0c;注意lock必须是static的&#xff0c;否则是局部变量&#xff0c;每个线程都有自己的lock&#xff0c;无法保证只执行一次。…

Linux c编译库路径,【一点一点学Linux C】交叉编译时候如何配置连接库的搜索路径...

交叉编译的时候不能使用本地(i686机器&#xff0c;即PC机器&#xff0c;研发机器)机器上的库&#xff0c;但是在做编译链接的时候默认的是使用本地库&#xff0c;即/usr/lib,/lib两个目录。因此&#xff0c;在交叉编译的时候&#xff0c;要采取一些方法使得在编译链接的时候找到…

[NBUT 1458 Teemo]区间第k大问题,划分树

裸的区间第k大问题&#xff0c;划分树搞起。 #pragma comment(linker, "/STACK:10240000") #include <map> #include <set> #include <cmath> #include <ctime> #include <deque> #include <queue> #include <stack> #inc…

Linux的软件包封装格式有,linux软件安装包详解---全

详细介绍了常见的四种Linux应用软件安装包及其安装方法。一、解析Linux应用软件安装包&#xff0c;通常Linux应用软件的安装包有四种&#xff1a;1) tar包&#xff0c;如software-1.2.3-1.tar.gz。他是使用UNIX系统的打包工具tar打包的。2) rpm包&#xff0c;如software-1.2.3-…