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.pswp.cn/news/273054.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273054.shtml
英文地址,請注明出處:http://en.pswp.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-…