PDA

View Full Version : [Question(s)] Programs/Software/tools that can control robots from data received in real time



Redding
03-08-2012, 10:48 PM
Hello,

I am a 4th year Mechatronics student currently doing my thesis. The topic of research I am doing is Real time robotic control using inertial motion capture suit. In other words I need to be able to control a robot from data that is being produced in real time. I am looking to spend about $400 on a robot that I can use for this project.

The main thing I'm after that I've been having trouble finding information about is that it needs to have suitable software/SDK that would allow me to send data to control the robot in real time. This data would be sent most likely from another program (e.g. MATLAB) and doesn't have to be wireless.

If anyone has any suggestions on certain programs or robots that has the ability to do this that would be fantastic.

Thanks

CyberPenguin
03-13-2012, 07:12 PM
Hey Redding,

From what I gather, you're reading in input from the body suit and processing it with Matlab. You then wish to send out the processed information to a robot of some kind.

One way to communicate with a robot in real time is with serial communication over a serial port (like USB). Matlab is capable of doing serial communication. The computer can calculate which movement it wants and then send different serial information to the robot accordingly. The robot's own microcontrolller then interprets and executes this command. Matlab could send out serial information like this:


% set up the serial connection:
% This connects your Matlab program with the serial port at COM1,
% for example, you may use a USB cable to connect your robot to the computer

serialOne=serial('COM1', 'BaudRate', 9600); % parameters will probably be different for you
fopen(serialOne);


% Next, determine which command to send to the robot

if(robot turn left)
fprintf(serialOne,'1'); % send the robot a '1' over the serial port

if(robot turn right)
fprintf(serialOne,'2'); % send the robot a '2' over the serial port


% Close the serial port at the end of the program

fclose(serialOne);


code source: http://en.wikibooks.org/wiki/MATLAB_Programming/Writing_and_Reading_to_A_Serial_Port


The robot then takes this serial data over the serial port, interprets it, and executes the command accordingly. How the robot hooks up to the serial port and reads serial data depends on the robot and microcontroller. I'm not sure what hardware you're using though. If you're looking for recommendations, read about the Arduino board or the Arbotix board (which is based off Arduino). It really depends on what you're doing with it. If you provide some more details, we can help you out.

I should also note you can do this with other programs, in addition to MATLAB. Just look up how they communicate via serial.

Hope this helps,
CyberPenguin


PS: I should note that I'm in no way an expert on this stuff and am still trying to understand it myself. In fact, I asked a similar question on this forum and have had some helpful posts from people much more experienced than I.

Link:
http://forums.trossenrobotics.com/showthread.php?5361-Controlling-AX-12-via-Keyboard

Redding
04-28-2012, 08:06 PM
Currently using USB2Dynamixel and its libraries to control a robotic arm so using the serial commands in MATLAB isn't needed, thanks for the reply!