0
$\begingroup$

Rosanswers logo

Hello,

PLEASE NOTE THIS IS NOT MY HOMEWORK, I AM JUST ASKING FOR DIRECTIONS

I am quite new to ROS. I'm working on a research project where we have to move a mid-sized vehicle (1m^2) from point A to point B, along a curved track (outdoors), ROS Kinetic, Ubuntu 16.04 LTS.

I considered using OpenCV for edge detection/line detection, but the track is very wide so there aren't many reference points, and no lanes either.

I have looked recently looking into ROS navigation stack as well as SLAM. It looked very promising until I realized it's probably suited better for indoor use (correct me if I am wrong)?

My sensor payload is this:

  1. Doppler sensor (50m range, noise resistant)
  2. GPS INS (up to 2cm position accuracy)
  3. LEDDAR VU8 unit (20 degrees beam, up to 185m range, not a 360 LIDAR)
  4. Many ultrasonic proximity detectors (~50 degrees beam, 7m range)
  5. Stereoscopic cameras

So that's my sensor payload, I have them all integrated into ROS. I am, however, slightly confused where to go from here. I understand how SLAM and then navigation stack do it, but they use a 360 degree LSD for mapping/localisation, plus, all the examples I have seen are done indoors.

The only current idea I've is to use GPS INS sensor to follow pre-recorded set of waypoints, however that wouldn't account for any changes on the map (like obstacle avoidance in SLAM/navigation stack).

I am not exactly sure where to start looking. Can it be done with the ROS navigation stack? Are there any other navigation packages that I can research?

Again, I am not asking for a solution, I would extremely be grateful if any of you could provide any links, sources, books, suggestions or directions.

Thanks!


Originally posted by Hypomania on ROS Answers with karma: 120 on 2018-07-06

Post score: 3

$\endgroup$

3 Answers 3

0
$\begingroup$

Rosanswers logo

To answer your direct question: Yes. There are other packages to use for navigation, but the Navigation Stack is still a good way to start even if you will need to move to a few different nodes to finish your project. I think you'll be frustrated if you start off trying to create a custom solution to your specific use. I really think it better you gain some experience with a configuration that is known to work. Use the Navigation Stack as your "hello world" app. Get the robot working and tune to give good results. This you could be done indoors with a temporary 360 lidar if needed, but you could also use the stereo cameras to get a laser scan message with some effort.

The GPS is good enough that you could use the robot localization package instead of AMCL for locating. I make an assumption that you have encoders on the drive motors, and that you are using wheels. But even if you don't, it may be OK. http://wiki.ros.org/robot_localization

For obstacle detection, there really is no substitute for 360 Lidar but you have enough sensors that it could be made to work. You'll use costmaps to integrate the different sensor data into a form that Navigation Stack/Move Base can use for obstacle detection and avoidance.
http://wiki.ros.org/costmap_2d/Tutorials/Configuring%20Layered%20Costmaps


Originally posted by billy with karma: 1850 on 2018-07-06

This answer was ACCEPTED on the original site

Post score: 3


Original comments

Comment by Hypomania on 2018-07-06:
Thank you for your answer! Sadly I do not have a 360 LIDAR unit. I can't really gather much mapping data with a stationary LIDAR, can I (same goes for cameras)? The way I understand navigation stack is that it always needs a map, which I can't get without a 360 LIDAR, or can I?

Comment by Hypomania on 2018-07-06:
And yes, I am using wheels, it's a 4 wheel vehicle with it's own vehicle control system controlled via CAN bus, so controlling the actuators, motors and servos is as easy as sending a single command.

Comment by billy on 2018-07-06:
You don't have to do SLAM. You could simply draw a map if the environment is simple. It actually may be required anyways as it sounds like the path you need to follow doesn't contain any landmarks the lidar will see. ...continued...

Comment by billy on 2018-07-06:
The map.yaml file you'll learn about in the tutorials sets resolution of map and you can draw the map in GIMP. I would probably use maps.google to get overhead view of area and trace over it to make map.

Comment by Hypomania on 2018-07-06:
So as far as I understand I do the mapping by drawing it manually, do the localisation with the GPS sensor and obstacle avoidance with ultrasonics/LIDAR? Drawing the map is a part of costmap_2d package, am I correct?

Comment by billy on 2018-07-06:
#1 - yes

#2 - Not really. Costmap will use the map you provide, in conjunction with sensor data, to build a cost map that move-base will use for planning.

$\endgroup$
0
$\begingroup$

Rosanswers logo

Okay, you've got a really nice GPS that'll make your life a lot easier, do you have a compass and IMU? One of these sensors could easily give you a heading and body tilt information effectively solving the localisation part of the problem.

You should be able to build a very accurate localisation estimate from the above sensors which means you don't necessarily have to perform full SLAM. if your route is approximate defined using GPS waypoints then you could use a reactive route planning approach using just the stereo cameras. Here you would process the two images to get a point cloud. Then use that could to produce a DEM (digital elevation map), which can then be used to fairly easily determine which areas can be safely driven. This will give you a path foot the robot to follow.

You're remaining lower resolution sensors can be used for reactive collision avoidance.

Hope this gets you started.


Originally posted by PeteBlackerThe3rd with karma: 9529 on 2018-07-06

This answer was NOT ACCEPTED on the original site

Post score: 2


Original comments

Comment by Hypomania on 2018-07-06:
£2600 for the GPS sensor :) The IMU is integrated into the GPS sensor, I am able to read everything that IMU senses. Could you elaborate slightly further on how GPS and stereo cameras are supposed to cooperate together? Also, why do I need an elevation map if I can just measure tilt with the IMU?

Comment by Hypomania on 2018-07-06:
P.S, really appreciate your answer, thank you!

Comment by Hypomania on 2018-07-06:
Also, is there any way to create a GPS map for an area? For example, take a square snapshot of London from Google Maps and convert it into a grid of GPS coordinates with x/y dimensions, something like 10000x10000 as an example?

Comment by PeteBlackerThe3rd on 2018-07-07:\

  1. The elevation map records the height of the terrain at a grid of points. It's a simple form of 3d map. Your tilt sensor simply measures the tilt of the vehicle at the current time. I don't see why you wouldn't need both.

Comment by PeteBlackerThe3rd on 2018-07-07:
2. You don't need to store all the gps coordinstes ( I assume you mean latitude and longitude angles ) for a grid. There is a fairly simple mathematical function to do this conversion from local coordinates (x y in meters) to lat long and vice versa.

$\endgroup$
0
$\begingroup$

Rosanswers logo

Have a look at this repo: https://github.com/nickcharron/waypoint_nav. It's specifically for doing outdoor GPS waypoint navigation with a Clearpath Husky robot, but it's a nice, generic example of using the robot_localization package (ekf_localization_node, navsat_transform_node) to fuse GPS, IMU, and wheel odometry. You can run the whole thing in simulation, just to get a feel for how the whole thing hangs together. With all of this stuff, the devil is in the (configuration) details, and that repo has a nice, working set of config files for outdoor waypoint navigation. Makes a great jumping-off point.


Originally posted by Rick Armstrong with karma: 567 on 2018-07-07

This answer was NOT ACCEPTED on the original site

Post score: 5


Original comments

Comment by Hypomania on 2018-07-09:
Appreciate your answer!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.