Ask Your Question
0

How to simulate a Stewart Platform with ROS?

asked 2016-10-03 12:17:17 -0500

zakizadeh gravatar image

How to simulate a Stewart Platform with ROS?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2016-10-03 14:02:50 -0500

lucasw gravatar image

updated 2016-10-14 08:19:42 -0500

update

I've made a ros node https://github.com/lucasw/simple_sim_ros that is a light wrapper around the bullet physics simulator, and it can create a stewart platform:

image description

image description

It is lacking important features like closed loop actuator control, currently it can only take impulses rather than actuator extension commands, but I'll add that later.

Old answer

Also http://answers.ros.org/question/21610... and http://answers.gazebosim.org/question...

https://en.wikipedia.org/wiki/Stewart... looks like the platform would involve a tf frame with six parents, but multiple parents aren't allowed in urdf.

Perhaps it is allowed in Gazebo with SDF? In that case you would need to have gazebo-only code/scripts/launch files that launches the platform, then some bridging code that gets transform info from gazebo and publishes it into ros. This could evolve involve a ros-gazebo plugin later, and within urdf the user would specify the general parameters of the platform.

You could do something with Gazebo very hacky and cpu intensive and possibly unstable simulation-wise involving a platform that isn't actually parented to the actuators but is physically constrained by mostly interlocking collision objects.

You could make or perhaps find some off the shelf stewart platform code that solves forward kinematics for the orientation of the platform and the actuators given how much the actuators are extended and run it in a ros node, and that would publish those transforms for the actuators and the platform. (And you already need inverse kinematics solved to make the system useful, though perhaps you were hoping the forward kinematics from a generic simulation would validate your special case inverse kinematics...)

edit flag offensive delete link more

Comments

thanks a lot . but when i run this command: roslaunch bullet_server bullet_server.launch

i have this error : ERROR: cannot launch node of type [bullet_server/bullet_server]: can't locate node [bullet_server] in package [bullet_server]

zakizadeh gravatar imagezakizadeh ( 2016-10-15 11:30:39 -0500 )edit

git clone https://github.com/lucasw/simple_sim_ros.git into your catkin_ws/src and build it first.

lucasw gravatar imagelucasw ( 2016-10-16 08:21:22 -0500 )edit

thanks a lot . but when i run this command: roslaunch bullet_server bullet_server.launch

i have empty space .

zakizadeh gravatar imagezakizadeh ( 2016-10-16 21:20:09 -0500 )edit

That's just the server, rosrun bullet_server stewart_platform.py in another terminal will create the stewart platform.

lucasw gravatar imagelucasw ( 2016-10-17 06:59:26 -0500 )edit

thanks a lot

zakizadeh gravatar imagezakizadeh ( 2016-10-17 13:22:28 -0500 )edit

how can i controlling this platform ?

zakizadeh gravatar imagezakizadeh ( 2016-10-17 13:27:30 -0500 )edit

You'll have to git pull to the latest, there are currently only Float32 velocity control topics for the six actuators, publish to /prismatic_0/target_lin_motor_vel and subscribe to /prismatic_0/linear_pos to get position feedback, you'd have to write your own position controller...

lucasw gravatar imagelucasw ( 2016-10-17 15:02:45 -0500 )edit

...but I'll probably have one working in a few days. There is also a bug where the simulation self-deactivates I should have fixed soon. (using the add_impulse interface ought to re-activate it though)

lucasw gravatar imagelucasw ( 2016-10-17 15:05:00 -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

2 followers

Stats

Asked: 2016-10-03 12:17:17 -0500

Seen: 693 times

Last updated: Oct 14 '16