Ask Your Question

how to control scara robot yamaha with ros?

asked 2017-10-12 02:05:05 -0500

updated 2017-10-12 04:29:36 -0500

gvdhoorn gravatar image

Hi all I want to know I can control SCARA ROBOT(YAMAHA YK350XC controller RCX 142) with ROS ? I need to use it in my thesis use robot with f/t sensor for exercise arm for rehabilitation . It is compatible with ROS? or not compatible What can I do? (software for robot is VIP+ work on windows) I am beginner. Thanks in advance.

edit retag flag offensive close merge delete


As a comment, as I don't want to discourage others from answering: a quick Google does not show any readily available pkgs for this robot. The controller looks rather old.

To use this with ROS, you'll have to create a driver component yourself. A driver transforms ROS 'motion commands' into ..

gvdhoorn gravatar image gvdhoorn  ( 2017-10-12 02:23:50 -0500 )edit

.. commands that the RCX142 understands. It also transforms position output (ie: joint states) of the robot controller into ROS sensor messages. You'll have to figure out if that is possible. Use serial port or ethernet port.

Alternative: write off-line program generator that transforms ..

gvdhoorn gravatar image gvdhoorn  ( 2017-10-12 02:25:02 -0500 )edit

.. ROS trajectories into programs for the robot. Then execute entire programs as a whole. You would not have robot joint states in RViz (for instance) that way, but you could control the robot.

gvdhoorn gravatar image gvdhoorn  ( 2017-10-12 02:25:44 -0500 )edit

thanks a lot

piyapat gravatar image piyapat  ( 2017-10-12 02:54:58 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-10-12 02:41:49 -0500

updated 2017-10-12 02:43:31 -0500

Well, I have programmed a SCARA using the controller, and then invoke the programs stored in the controller from my ros node using tcp communication

So basically if you are doing a pick and place action, you program your overall action and break into several programs like 1. Goto overhead position 1 (program1) 2. Pick from the table (program2) 3. Goto overhead position 1 (program3) 4. Got overhead position 2 (program4) 5. Place on the table (program5) 6. Retract to home (program6) and save these program in your controller with the respective name. Using TCP protocol and read the manual to find out which commands you want to use to send in signals from your computer to the Yamaha controller to invoke your programs.

Now write a state machine in your chose language which would invoke this programs. Run the state machine in the ROS. You can use actionlib for performing the same. Put the Yamaha into AUTO mode when you are sending a command from your ROS interface using your TCP socket bridge.

edit flag offensive delete link more


you think is possible? I just use robot with f/t sensor for exercise arm for rehabilitation

piyapat gravatar image piyapat  ( 2017-10-12 02:53:01 -0500 )edit

Worked on it already, many systems are running like this, so yes very much possible. You can do everything from your ROS node. You can even send programs from your ROS terminal to the YAMAHA controller using a TCP communication.

arunavanag gravatar image arunavanag  ( 2017-10-12 02:59:34 -0500 )edit

If you are building it from scratch it should take some time. But this is the way my controller was programmed. I was using ROS indigo, Ubuntu 14.

arunavanag gravatar image arunavanag  ( 2017-10-12 03:00:29 -0500 )edit

This is definitely one way to do this, but is not what I would consider 'integrating a robot with ROS'. Without joint states there is no direct control possible, only coordination (ie: starting/stopping programs running on the controller).

Any F/T based control will not be possible, as that ..

gvdhoorn gravatar image gvdhoorn  ( 2017-10-12 03:01:21 -0500 )edit

.. typically requires high bandwidth, low-latency connections, which does not seem to be what you are describing.

gvdhoorn gravatar image gvdhoorn  ( 2017-10-12 03:01:45 -0500 )edit

I had a vision to the arm as a feedback sending me coordinates, that I would use to calibrate and convert in to yamaha robot co-ordinates and have it move to he respective location. I think, @piyapat can establish a tcp connection take feedback from f/t sensor and send in commands to the controller.

arunavanag gravatar image arunavanag  ( 2017-10-12 03:08:58 -0500 )edit

"high bw" with industrial controllers this old is something like 10 to 20 Hz. Do you think that is possible with this controller? Sending a single Cartesian pose once in a while based on vision is almost always possible. Continuously updating robot pose based on sensor data is something else.

gvdhoorn gravatar image gvdhoorn  ( 2017-10-12 03:31:18 -0500 )edit

Yes I agree @gvdhoorn

arunavanag gravatar image arunavanag  ( 2017-10-12 03:34:22 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2017-10-12 02:05:05 -0500

Seen: 663 times

Last updated: Oct 12 '17