PDA

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

tahi
11-08-2011, 11:17 PM
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;
}
}
}