![]() |
|
Tài trợ cho PIC Vietnam |
Thực hành Bắt đầu làm một robot như thế nào? Mẹo vặt? Kỹ thuật? Công nghệ?... Hãy bắt tay vào việc... |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Sep 2006
Bài gửi: 24
: |
Em làm 1 cái, nhưng mà bằng C# dc ko
![]() ![]() Hiện giờ thì mới chỉ có các phép tính cơ bản cho ma trận, phép xoay ma trận và giải hệ phi tuyến bằng Newton Raphson, giải hệ tuyến tính bằng nhân tử LU. Đây là toàn bộ source và file dll đã biên dịch sẵn http://haminhtranhanh.googlepages.co...aMathTools.zip Em làm cái này cùng với lv, nhưng cảm thấy lv chưa hoàn chỉnh nên đưa cái này lên thôi vậy ![]() Đoạn code ví dụ sử dụng: Code:
using HaMTHaMathTools; Matrix R, PB1, y; ... PB1 = Matrix.Normalize(ParallelRobot.B1 - ParallelRobot.P); //B1 và P của lớp ParallelRobot //cũng là các ma trận PB1[2, 0] = 0; //truy xuất từng phần tử của ma trận y = Matrix.Normalize(PB1 & ParallelRobot.N); //& là phép tính hữu hướng 2 vectơ (xem vectơ //là ma trận có số hàng hoặc số cột = 1 R = Transform.Rotation(u,PB1) * Transform.Rotation(v,y); //Tìm ma trận quay quanh vectơ //PB1 một góc u và quanh vectơ y 1 góc v ... X = new Matrix(6, 1); //tạo mới một ma trận có 6 hàng và 1 cột X[0, 0] = ParallelRobot.B1[0, 0]; X[1, 0] = ParallelRobot.B1[1, 0]; X[2, 0] = ParallelRobot.B2[0, 0]; X[3, 0] = ParallelRobot.B2[1, 0]; X[4, 0] = ParallelRobot.B3[0, 0]; X[5, 0] = ParallelRobot.B3[1, 0]; X = Numerics.NewtonRaphson(HeFtinhDonghocnghich, JacobiDonghocnghich, X, 5000, Math.Pow(10, -12)); //giải hệ phi tuyến với nghiệm ban đầu là X, số lần lặp tối đa là 5000, //sai số là 10^(-12) ... ![]() Các lớp Matrix, Transform, Numerics nằm trong HaMTHaMathTools ![]() Các bác xem qua, nếu có thể phát triển dc cho hoàn chỉnh thì ta làm luôn dc ko |
![]() |
![]() |
|
|