0
$\begingroup$

Rosanswers logo

Hello everyone!

I am working on a ROS Indigo project where we are going to be reading all of our sensor information from an Ubuntu Trusty install on a BeagleBone Black Rev C and sending that information over the appropriate topics (odometry, laser scan topics, etc) to an external computer over the network (also Ubuntu Trusty running ROS Indigo), which will then send back the appropriate twist messages to the base controller node that exists within the workspace on the BeagleBone Black. So, the only nodes that should be running on the BeagleBone are the IMU Node, the SICK LMS wrapper node, and the tf_configuration nodes (We still haven't figured out how to get those set up exactly, so insight on that is also appreciated).

I had been following the tutorial here: http://wiki.ros.org/navigation/Tutorials/RobotSetup

My only concern is that the only way for me to get my_robot_name_2dnav package to compile correctly with the 'move_base' dependency that is apparently required was for me to install 'ros-indigo-navigation' on the BeagleBone. My concern with this is that we don't want the BeagleBone to be computing any of this information as it is at almost 80% CPU usage just to read and send the LaserScan message from the LIDAR.

Am I doing this correctly? Or am I missing something to connect the navigation stack to the external computer that will be able to handle all of the processing necessary?

Thanks for all input


Originally posted by ronaldh12 on ROS Answers with karma: 23 on 2015-04-03

Post score: 1


Original comments

Comment by l0g1x on 2015-04-03:
Do you not want move_base installed on the beaglebone due to storage limitations on beaglebone? or do you just not want move_base running on the beaglebone?

Comment by ronaldh12 on 2015-04-03:
I just do not want move_base running on the beaglebone. It's going to require too much processing power, when we have an external computer to do that.

Comment by l0g1x on 2015-04-03:
so if you dont care about it being installed, then you can still install move_base on the beaglebone, but just dont run the move_base node on it. instead run it on your external computer. Did you properly setup your ros network ?

Comment by ronaldh12 on 2015-04-03:
So, what you're saying is that it won't matter that it's on there or not. So, I can technically take that dependency off? Or would that screw something up? And from there I should just run 'roslaunch move_base move_base_0.3_to_0.2.launch' from the external computer?

Comment by ronaldh12 on 2015-04-03:
Yes, we got that working last week! It's amazing how fast it sends LIDAR information over the network. It's only ~1 sec delay, which is way better than we expected.

Comment by ronaldh12 on 2015-04-03:
Ah, I just found where it shows to create the move_base.launch file. I think it's finally starting to make a little sense!

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Continuing off the comments, I dont know how your system/packaging is setup, so its hard to say if you want to take the dependency off or not. For example, if you have say 1 github repo that you clone to both the beaglebone and the external computer so that they both have the same files, then you probably wouldnt want to remove move_base as a dependency since it will also affect your external computer.

Ideally, I think you may want to setup your system in a way similar to how Clearpath organizes there github repo for their jackal robot . You would basically divide the different parts related to the robot into separate repos. For example you could have say two repo's:

  • robot_control (this repo could contain any driver/sensor related items)
  • robot_navigation (this repo would have your move_base related items)

That way you could only clone the robot_control repo to your beaglebone (and not even have to install/have move_base on the beaglebone) and clone the robot_navigation repo to your external computer (where you would have move_base listed as a dependency just like they tell you to in the setting up the navigation stack tutorials)

If you setup your network correctly, then just run the sensors and robot driving related stuff on your beaglebone, and run move_base on your external computer. You can also look at the roslaunch machine examples to launch nodes on different machines, from a single computer (all on same network)

EDIT 1: My understanding of it (may be wrong) is that "jackal" is a common package used amongst all the different types of jackal setups (simulation or real world). Things like the URDF of the robot, and custom messages the robot sends. Jackal_robot is specific to the physical robot itself (boot up/onstart procedures). If you spend some time looking through clearpath's repo's you will learn ALOT. It just takes time and curiosity :)


Originally posted by l0g1x with karma: 1526 on 2015-04-03

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by ronaldh12 on 2015-04-04:
Brilliant. Absolutely brilliant. Will update if I run into problems. Thank you so much!

Comment by ronaldh12 on 2015-04-04:
Could you help distinguish the difference the "jackal_robot" packages and the "jackal" packages?

Comment by l0g1x on 2015-10-20:
@ronaldh12 The jackal_robot package/repo contains things that are completely specific to the real world jackal robot (i.e. scripts for network setup, robot_upstart, etc..). The jackal package contains common info that can be used across any testing platform (simulation, or real world)

$\endgroup$

Your Answer

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