How to use turtlebot on a custom build?

asked 2019-04-29 16:49:29 -0500

etorobot gravatar image

updated 2019-04-30 12:17:45 -0500

jayess gravatar image

Turtlebot is normally either with the Kobuki or Create base. With its relative simplicity, versatility, and beginner-friendliness, it's an efficient way to learn ROS and advance in its programming. Following the tutorial, things are smooth until the Turtlebot Bringup, where it starts to mention software.

The bot chassis is a custom build, a small netbook running ROS inside connected to a Kinect sensor and an Arduino with a motor controller. The question is; what does it take to run turtlebot (as is) on a bot with none of the iRobot bases or the turtlebot software programmed for them? What modifications have to be made to the code etc.?

All help appreciated

edit retag flag offensive close merge delete

Comments

2

At a high-level (and just as a quick comment): you'll need to replace everything related to the create or kobuki driver stacks (ie: the nodes that interface with the hw and convert incoming Twists into actual actuation commands for the base). Also replace the robot model (ie: description pkg) and you'll probably want to tweak things like the velocity smoother/filters to be more appropriate for your setup.

As long as your custom robot has a "base driver" that accepts geometry_msgs/Twist and exposes sufficient parts of the TB2 ROS API you should be able to reuse quite a bit of the stack(s).

gvdhoorn gravatar image gvdhoorn  ( 2019-04-30 02:20:49 -0500 )edit

so that would be editing each of the .py files in /opt/ros/kinetic/lib/create_node. not much of a programmer but simple enough in theory, so i'll try. could you suggest a more beginner-frienldy alternative however?

etorobot gravatar image etorobot  ( 2019-04-30 05:40:33 -0500 )edit
1

so that would be editing each of the .py files in /opt/ros/kinetic/lib/create_node.

No, never touch files in /opt/ros. Always create a Catkin workspace and use an overlay.

And the point is to not edit files for the Create. Integrate replacements into the TB tech stack.

could you suggest a more beginner-frienldy alternative however?

You asked how to remove the lower part of a vertically integrated and well thought out tech stack. Unfortunately that is going to require some work on your part. It's not very difficult, but I believe it would be good to first get some feeling for how the current stack works, how things communicate, which concepts are used and how they are specific to the TB.

Once you have that, you should be in a good position to see which parts (of the ROS API probably) are different for your custom ...(more)

gvdhoorn gravatar image gvdhoorn  ( 2019-04-30 05:48:40 -0500 )edit

.. The overlap you can probably use without changing anything. The rest will have to be implemented / changed, by you.

not much of a programmer

If you haven't yet, I would recommend first going through the introductory tutorials. If you're not comfortable programming (yet), it'd also be good to not try to learn ROS and programming at the same time. With my own students I've noticed that is not a good combination for most.

Even though the TB isn't the most complex robot in the world, the software stack contains quite a few components and without (at least a rudimentary) understanding what they do, replacing (some of) them with things specific to a new piece of hw can be difficult.

gvdhoorn gravatar image gvdhoorn  ( 2019-04-30 05:51:25 -0500 )edit