Robotics StackExchange | Archived questions

Plugging in a mobile platform to higher level navigation nodes

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?

Asked by Cerin on 2018-01-26 11:30:39 UTC

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.

Asked by jayess on 2018-01-26 17:34:31 UTC

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

Asked by Cerin on 2018-02-21 19:33:08 UTC

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.

Asked by jayess on 2018-02-21 20:19:40 UTC

Fair enough.

Asked by Cerin on 2018-02-22 10:02:21 UTC

Answers