Plugging in a mobile platform to higher level navigation nodes

asked 2018-01-26 10:30:39 -0500

Cerin gravatar image

updated 2018-01-26 10:45:59 -0500

I've created a simple two-wheeled mobile platform with a Raspberry Pi running ROS Kinetic, and an Arduino that controls motors and relays sensor data via a rosserial node. I can reliably read sensor data via rostopic and move the platform by manually publishing a standard Twist message. I also have Tf running, which takes odometry data published by the Arduino, and updates the world position.

I'm now trying to plug this into the higher-level navigation nodes, with my ultimate goal being to using SLAM to dynamically map a room and navigate within it. What should be my general strategy be to accomplish this?

I've been trying to go through the navigation stack docs, but it's a pretty large project and a little overwhelming. Should I start with move_base or would this ultimately not be useful for SLAM or be superseded by something else? What interface does my "base controller" need to provide? Just a subscriber to a Twist message, or something else?

I'm having trouble conceptualizing, or even testing, just with the Twist message. I want to be able to instruct my robot to "move forward 1 meter", but Twist only represents velocity, not distance. I want to create my own motion message/action that extends Twist to also include distance or time, but I feel like I'd probably be reinventing the wheel. Are there any message or action types like that?

edit retag flag offensive close merge delete

Comments

Why don't you get the series ROS by Example? It's pretty comprehensive and will cover pretty much everything you're asking about and more. Otherwise, go through the navigation tutorials one-by-one.

jayess gravatar imagejayess ( 2018-01-26 16:34:31 -0500 )edit

ROS By Example is from 2013 and only covers up to Indgo. That's pretty ancient.

Cerin gravatar imageCerin ( 2018-02-21 18:33:08 -0500 )edit

Much of the material in that series is still applicable. I've used it with both Indigo and Kinetic without issue. Also, the listings for the Indigo version of the books show that they're from 2017 & 2016 for volumes 1 & 2, which is not ancient.

jayess gravatar imagejayess ( 2018-02-21 19:19:40 -0500 )edit

Fair enough.

Cerin gravatar imageCerin ( 2018-02-22 09:02:21 -0500 )edit