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

Dump Trucks following GPS waypoints at varying speeds

asked 2020-01-23 05:42:12 -0500

njal gravatar image

updated 2020-01-23 07:05:09 -0500

Hi ROS people

I am looking at using ROS for making dump trucks drive a predefined (recorded) route (GPS/GNSS).

The general idea is that an operator will manually drive the truck from A to B - while we record the route (and speed) using GNSS. Later - the truck should drive the route itself. At some positions the truck will need to apply brakes and at other positions it will need to apply gas.

Our company has solved most of the hardware part of this challenge - the dump trucks are already remote controlled. I can easily control all aspects of the truck (steering, throttle, breaks, handbrake, gears, raising the bed etc.) by sending UDP packages to it. Some of the dump trucks are articulated (e.g. Volvo A30) while other dump trucks have Ackerman steering (e.g.Caterpillar 775).

Articulated Dump Truck

Articulated Dump Truck

We are probably going to use 2 x UBlox ZED-F9P on each dump truck - in order to get the Pose. A local base station will be set up in order to provide RTCM corrections.

The trucks will only be used in a closed area without people - but we will still equip them with Lidar in order to detect obstacles when driving the route. If an object is detected in the way the truck will stop - and a supervisor will manually remote control the dump truck around the obstacle - or simply press "RESUME" when the obstacle is gone/cleared.

I am experienced with C++, but relatively new to ROS.

So - my question is: What ROS Packages / strategies would you recommend that I use as the building blocks for the initial recording and also for the navigation?

For Recording:

  • Subscribe to GNSS messages and log these into a file when driving the truck

    /// Latitude | Longitude | Heading | Speed
    42.424124 | 42.24234 | 253.5223 | 30
    41.424125 | 42.24222 | 253.2211 | 29

For Playback (following the path)

  1. Write my own simple controller - simple math to control heading and speed. Subscribe to Lidar messagges - and stop when a obstacle is detected in the way. Seems like the simplest/easiest approach?
  2. Use navigation/move_base (and Ackermann) - where I implement the pure pursuit algorithm as a local planner plugin? This will give me localization/maps - but not sure I really need this...
  3. Use teb_local_planner ?
  4. Use move_base_flex in order to have a pre-defined global path ?
  5. Not using ROS at all - just stick to good old math & C++
  6. ...?

Would love to hear some thoughts from people with more ROS experience ๐Ÿ˜Š

A pic of our remote control setup

A pic of our remote control setup

edit retag flag offensive close merge delete

Comments

1

I have a feeling this may be more akin to autonomous/intelligent vehicles than what the nav stack is typically used for (ie: AGVs in indoor-ish settings with known maps and semi-structured environments).

Perhaps Autoware would be better suited. It's still ROS (ROS 2 actually for the new versions), but focused on the typical self-driving car scenario. Be sure to visit the Discourse category as well, and be aware that Autoware is in a transition phase (from ROS 1 to ROS 2).

There are other projects similar to Autoware. In fact, it's an entire scene.

That's not to say nav stack cannot be used for these kinds of things: especially when adding a pure pursuit controller it starts to become much more feasible, but I would still recommend reaching out to the Autoware community as I feel it has many building blocks you could use.

Perhaps @Geoff ...(more)

gvdhoorn gravatar image gvdhoorn  ( 2020-01-23 06:37:58 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2020-01-28 21:07:22 -0500

Geoff gravatar image

As @gvdhoorn said, Autoware is more directly targetted at this sort of use case than the navigation stack. In particular Autoware.AI already contains functionality for recording and playing back trajectories, driving car-model robots, and a pure pursuit controller (although it is shifting to prefer an MPC controller when using one is possible). However be aware that it is built around an assumption of LiDAR-based localisation (using NDT), which is less robust in open environments.

edit flag offensive delete link more

Comments

If they have a base station giving coordinates though, that should be a pretty easy hot-swap though, shouldn't it?

stevemacenski gravatar image stevemacenski  ( 2020-01-29 02:18:31 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2020-01-23 05:42:12 -0500

Seen: 419 times

Last updated: Jan 28 '20