View Full Version : Thuật toán điều khiển robot tự động
phamduypro
16-01-2011, 08:00 AM
Hi các bậc tiền bối!Em đang nghiên cứu về thuật toán điều khiển cho robot tự động.Câu hỏi của em là làm thế nào để robot bám vạch tốt và chuyển động với độ ổn định cao.Mong các bác đã từng làm robot chia sẻ kinh nghiệm.Thank các pác
hanguyenhuy
30-06-2011, 11:45 PM
Hi các bậc tiền bối!Em đang nghiên cứu về thuật toán điều khiển cho robot tự động.Câu hỏi của em là làm thế nào để robot bám vạch tốt và chuyển động với độ ổn định cao.Mong các bác đã từng làm robot chia sẻ kinh nghiệm.Thank các pác
Bạn nên nghiên cứu và áp dụng giải thuật PID.
hongmta
03-07-2011, 03:49 PM
Hi các bậc tiền bối!Em đang nghiên cứu về thuật toán điều khiển cho robot tự động.Câu hỏi của em là làm thế nào để robot bám vạch tốt và chuyển động với độ ổn định cao.Mong các bác đã từng làm robot chia sẻ kinh nghiệm.Thank các pác
phần cứng: trước hết phải có 1 mạch led dò đường ngon
phần mềm: áp dụng giải thuật PID
thanhtrunghh
31-07-2011, 03:56 AM
đúng vấn đề là PID.
em cũng đang tìm hiểu về PID cho robot
bác nào có tai liệu thì post lên nhé. kinh nghiệm của bác nào từng làm càng đáng quý.
mạch + giải thuật với PID
mắt tinh: cảm biến tốt
chân khỏe: động cơ ngon
1 cái đầu thông minh: code tốt
1 cái đầu thông minh sẽ đỡ 1 phần cho cái mắt kém, và 1 cái chân yếu
Em viết dò đường hay viết theo kiểu máy trạng thái đơn giản
void read_sensor()
{
}
void direct(int mode)
{
//set up direct for motor controller
}
void speed(unsigned int motor1,unsigned int motor2)
{
//justify speed of left and right motor
}
main()
{
direct(forward);
speed(100,100);
while(1)
{
switch(partern)
{
case wait:
//waiting user press any button
case straight:
switch(read_sensor())
case 0000 0000:
partern = straight;
break;
case xxx0 0xxx:
//A little inclined to the left
case 0000 xxxx:
partern = turn_left;
break;
case xxxx xxxx:
partern = out_road;
case turn_left:
direct(forward);
toc_do(20,100);
partern = straight;
break;
case turn_right:
break;
case check_crossline:
break;
case out_road:
direct(back);
speed(100,100);
break;
}
}
}
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.