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

Simulating a track driven robot

asked 2011-06-27 08:33:56 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I'm trying simulate the movement of a robot with a rubber track similar to iRobot's LANdroid. Ideally I would like to represent the robot with URDF and use Gazebo as the simulation environment. I am particularly interested in tasks such as climbing over stairs; the way these robots climb over stairs is dependent on some approximation of a track being present.

Does anyone have any advice or pointers on how I can model a track driven robot, preferably with Gazebo & URDF?

Currently I am using ODE and some OpenGL visualizations I wrote myself. The tread is modeled as a series of overlapping non-colliding wheels. While this works, it is a very rough approximation and there are un-addressed issues such as determining the torque to apply on each wheel joint based upon the signal sent to the drive motor and the friction each wheel is encountering.

I have also considered modelling the track as a chain of rigid links being driven by the drive wheel. This would be a more accurate model of the tread but I'm concerned with the stability and performance of ODE if I take this approach.

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
1

answered 2020-04-24 18:49:03 -0600

peci1 gravatar image

Now there is official support for tracked robots in Gazebo 9 and 11 using ODE. Check out https://github.com/osrf/gazebo/blob/g... for usage example.

edit flag offensive delete link more
4

answered 2011-06-29 20:26:16 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

I agree that simulating contacts between the tread's rigid body links, the drive wheels and the ground might be computationally very expensive to simulate stably and correctly (i.e. small time step size + high inner iteration count).

If near real-time performance is needed, one possible "cheat" I can think of is to break the track into a few sections:

  1. front drive wheel with tread around the drive wheel modeled as a single rigid body.
  2. back drive wheel with tread around the drive wheel modeled as a single rigid body.
  3. simulate the straight part of the track between front and back drive wheel by a single piece tread section constrained by a slider. Allow some overlap between the track section and the drive wheels, so the track section can slide "one tick length". As the track section moves from one drive wheel to the other during its travel, simulate the periodic boundary condition by "snapping" the track section back to the opposite drive wheel so it can continue its motion in the same direction.

The simulated track will not be flexible, but will be much cheaper to simulate computationally.

Hope this makes sense?

edit flag offensive delete link more

Comments

can you please show a diagram/picture of your idea?

ChickenSoup gravatar image ChickenSoup  ( 2014-04-08 15:49:29 -0600 )edit
2

answered 2011-07-18 11:01:43 -0600

this post is marked as community wiki

This post is a wiki. Anyone with karma >75 is welcome to improve it.

Have you seen these videos?
ODE Tank Tracks 1
ODE Tank Tracks 2
ODE Tank Tracks 3
I have not seen the code, but it appears that with some tricks (see video comments) it is feasible to model tracks as rigid body links in real-time... new track constraints anyone? :)

edit flag offensive delete link more

Comments

1

Looks like these links are dead.

lucasw gravatar image lucasw  ( 2018-08-07 08:20:26 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2011-06-27 08:33:56 -0600

Seen: 5,573 times

Last updated: Apr 24 '20