ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Can ROS fulfill my needs?

asked 2016-04-15 14:10:34 -0500

soronemus gravatar image

I keep hearing great things about ROS, but I have a very specific (I think simple compares to some things) function I need it to perform. Industrial robots like Fanucs have controllers that allow you to jog the robot to different locations and 'teach' them the points. You can then write a program for the robot to loop through using these different taught points. You can use logical statements, registers, different moves, and inputs/outputs. My question is if ROS can do this?

I want to make a small scale manufacturing operation in my garage and I want to write a program for a robotic arm to loop through to do useful work. I want to make sure this is something ROS can do before I invest a ton of time researching and learning about ROS.

Two additional questions I have: 1- Does ROS support stepper motors? What hardware does it require in order to control them? How does it send the signals to the stepper motor drivers? (phidgets? a microcontroller?)

2- What type of trajectory generation does ROS use for its actuators? Trapezoidal velocity profiles? Third order polynomials? Is it customize-able?

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2016-04-16 05:50:45 -0500

Bas gravatar image

I have a similar case. To the answer of your first question: Yes, you can write a program that loops thru different points. And although you can do path planning and execution from ros (programming) I ended up to not do that entirely with ROS. The main reason was that for my testing of my robot I wanted to cycle thru a set of moves, time and time again. Duration testing.So I had no use for replanning. Seemed a bit silly to continuously calculate the same points.

Although there are a lot off packages, I could not get a real example of how such an application could be made. It can be done, but I did not have time for a big learning curve (I'm not a native programmer) to write such an application.

I planned the points in moveit, executed the movement, and then recorded the path with rosbag. I wrote a python script which reads in various inputs (push buttons) from hardware and depending on the state in the script (which part of the cycle the robot is in) I execute a particular rosbag. As if you were to play an mp3.

I'm involved in the Machinekit project, and we wrote a minimal "listener" node which listens to the trajectory path, and puts these points in a ringbuffer in Machinekit. An interpolator reads from the ringbuffer and interpolates the (coarse) points into positions that can be updated each 1ms (the realtime part) for playout from the step generator.

This is all more of a "proof of concept" style of Machinekit working with ROS trajectories. Next to the communication thru the ringbuffer you can easily read/set values inside Machinekit with the Cython bindings. So reading out physical signals can also be brought back from Machinekit into ROS. This thread might interest you . It's pretty long, but it will give you some idea on what happens. In the end we hope to get the connection with ros_control (see this issue )

Why Machinekit? Because it is the realtime part for hardware playout of motors. So if you are in need of closed loop control, you'd probably want a Mesa FPGA card with a PC, but since Machinekit can run on multiple platforms, Charles Steinkuehler his CRAMPS cape for a BeagleBone Black would maybe be a better combination if you think about steppers. So you're not hardware dependant since it runs on multiple platforms, and if you later decide to use a closed loop control, you only have to change hardware and configure Machinekit in a bit different setup. Configuring, no programming needed.

Have a look at this demo we recently made of a ROS trajectory being played out on a set of stepper motors. If you've go additional questions, don't hesitate to ask.

Hope this helps a bit.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-04-15 14:10:34 -0500

Seen: 367 times

Last updated: Apr 16 '16