ROS node support for BeagleBoard Blue

I’d like to run a ROS node on the BeagleBoard Blue to publish ping sensor data, subscribe to servo control commands etc… I’m pretty new to ROS. FWIW I do have Linux and Linux SBCs experience. I’m familiar with MQTT.

I’m hoping to find up to the minute knowledge from folks like Jason Kridner / RobertCNelson before I head down a a path I’m new to and unfamiliar with.

This past Memorial day weekend I installed Debian 9 stretch on an old HP tx2000 and installed a full desktop version of ROS Lunar from packages. Pretty much easy peasy following these directions. Debian install of ROS Lunar I like that it was a package install rather than a preconfigured linux image as I’ve seen in a previous ROS dive a year or so ago. If I’m reading that documentation correctly they also have arm64 packages for Debian 9 stretch. Is there support, a boot image, for Debian stretch on the BeagleBoard Blue?

What other paths might I take on my quest to have ROS on the BeagleBoard Blue? Sure would be nice to do it in Debian rather than Ubuntu. And from packages would be ++

Here is some documentation I’ve found that might be useful, or raised more questions.

Recap

Is Debian Stretch available for BeagleBoards?
What might be the best starting point to installing a node on a BeagleBoard Blue?

I'd like to run a ROS node on the BeagleBoard Blue to publish ping sensor
data, subscribe to servo control commands etc... I'm pretty new to ROS. FWIW
I do have Linux and Linux SBCs experience. I'm familiar with MQTT.

I'm hoping to find up to the minute knowledge from folks like Jason Kridner
/ RobertCNelson before I head down a a path I'm new to and unfamiliar with.

This past Memorial day weekend I installed Debian 9 stretch on an old HP
tx2000 and installed a full desktop version of ROS Lunar from packages.
Pretty much easy peasy following these directions. Debian install of ROS
Lunar I like that it was a package install rather than a preconfigured linux
image as I've seen in a previous ROS dive a year or so ago. If I'm reading
that documentation correctly they also have arm64 packages for Debian 9
stretch. Is there support, a boot image, for Debian stretch on the
BeagleBoard Blue?

What other paths might I take on my quest to have ROS on the BeagleBoard
Blue? Sure would be nice to do it in Debian rather than Ubuntu. And from
packages would be ++

Here is some documentation I've found that might be useful, or raised more
questions.

The EduMIP Mobile Robot: Running the EduMIP as a ROS Node see Notes on
Setting up the BeagleBone Black (BBB) and Beaglebone Black Wireles (BBBW)
with Debian and ROS
ROS Lunar installation instructions Seems to indicate stretch is available
for Arm64
Debian install of ROS Lunar Seems to indicate packages are available for
Arm64 on stretch
DebianScienceRoboticsROSPackages The current list of Debianised packages
(ordered by dependency) Looks like a bunch of packages built for Arm64
Debian Jessie. I don't know where to start.

Recap
Is Debian Stretch available for BeagleBoards?

Yes, weekly snapshots are available: (debian is targeting mid june for
actual release)

https://rcn-ee.com/rootfs/bb.org/testing/2017-05-28/

What might be the best starting point to installing a node on a BeagleBoard
Blue?

Grab the stretch-iot image

A good chunk of ROS is available in debian stretch:

https://packages.debian.org/source/stretch/ros-metapackages

Regards,

[…]

Thanks Bob!

I flashed a debian stretch iot image. FYI I’ m powering from LIPO, the battery power level LEDs are not indicating. A single green comes on when I plug it into the 12v barrel plug. rc_check_battery works.

I apt-get install’ed ‘ros-base-dev’ then

`

On the HP tx2000

jeffa@lunar$ roscore

and

jeffa@lunar:~$ rostopic echo /hello

[…]

Thanks Bob!

I flashed a debian stretch iot image. FYI I’ m powering from LIPO, the battery power level LEDs are not indicating. A single green comes on when I plug it into the 12v barrel plug. rc_check_battery works.

Can you provide the journalctl output?

I apt-get install’ed ‘ros-base-dev’ then

`

On the HP tx2000

jeffa@lunar$ roscore

and

jeffa@lunar:~$ rostopic echo /hello


data: I’m jeffa on bluemoon, roscore is on lunar

on the BB Blue

jeffa@bluemoon$ export ROS_MASTER_URI=http://lunar:11311
jeffa@bluemoon$ rostopic pub /hello std_msgs/String “I’m jeffa on bluemoon, roscore is on lunar”
`

Waggin’ my tail.

Super!

Pastebin https://pastebin.com/aGMq9P7S

[…]

Recap
Is Debian Stretch available for BeagleBoards?

Yes, weekly snapshots are available: (debian is targeting mid june for
actual release)

https://rcn-ee.com/rootfs/bb.org/testing/2017-05-28/

What might be the best starting point to installing a node on a BeagleBoard
Blue?

Grab the stretch-iot image

A good chunk of ROS is available in debian stretch:

https://packages.debian.org/source/stretch/ros-metapackages

Do you guys want my continued input on my experience getting ROS going on the 'blue? Remember I’m a ROS newbie.

Some of this might be good to capture and put in a ROS section of the FAQ?? :slight_smile: There’s probably a lot of folks that may want to run ROS on the BBBlue. I feel it would be helpful to capture the errata for the ROS experience on the Beagle bone(s). As an experienced linux and linux sbc user I’m still finding the initial learning curve for ROS to be a bit of a FIRE HOSE! I’m glad I put it on hold a ~year ago and learned about MQTT first.

All the tutorials I’ve been reading from ros.org and other sites referred to /opt/ros/ ie /opt/ros/lunar. All the packages I installed seem to be in /usr/share/ros They don’t implement the ros distribution directory structure either.
When attempting to setup my catkin environment I got this;

jeffa@bluemoon:~/catkin_ws$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp usage: catkin_create_pkg [-h] [--meta] [-s [SYS_DEPS [SYS_DEPS ...]]] [-b [BOOST_COMPS [BOOST_COMPS ...]]] [-V PKG_VERSION] [-D DESCRIPTION] [-l LICENSE] [-a AUTHOR] [-m MAINTAINER] --rosdistro ROSDISTRO name [dependencies [dependencies ...]] catkin_create_pkg: error: argument --rosdistro is required jeffa@bluemoon:~/catkin_ws$

So I did this;

`
jeffa@bluemoon:~/catkin_ws$ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp --rosdistro lunar
Created file beginner_tutorials/CMakeLists.txt
Created file beginner_tutorials/package.xml
Created folder beginner_tutorials/include/beginner_tutorials
Created folder beginner_tutorials/src
Successfully created files in /home/jeffa/catkin_ws/beginner_tutorials. Please adjust the values in package.xml.
jeffa@bluemoon:~/catkin_ws$ ll
total 4
drwxr-xr-x 4 jeffa jeffa 4096 Jun 1 00:58 beginner_tutorials
jeffa@bluemoon:~/catkin_ws$ ll be*
total 20
-rw-r–r-- 1 jeffa jeffa 6253 Jun 1 00:58 CMakeLists.txt
drwxr-xr-x 3 jeffa jeffa 4096 Jun 1 00:58 include
-rw-r–r-- 1 jeffa jeffa 2134 Jun 1 00:58 package.xml
drwxr-xr-x 2 jeffa jeffa 4096 Jun 1 00:58 src
jeffa@bluemoon:~/catkin_ws$ ll be*/src
total 0
jeffa@bluemoon:~/catkin_ws$

`

yakin’ in irc #beagle zmatt pointed me to UpstreamPackages that shed a little light on the packaging differences. I’m still trying to remember what created /opt/ros/lunar/setup.bash on lunar the desktop machine. I did find setup.bash.in template on the BBBlue

root@bluemoon:/# find / -name setup.bash* -print /usr/share/catkin/cmake/templates/setup.bash.in root@bluemoon:/#

I feel that I’m getting close. It is working, just want to get it to a nice clean install and the build environment working. Still waggin’ my tail!

Hopefully not TMI but this old robot of mine that I built on a Parallax stingray chassis and a Parallax controller has been collecting dust for awhile. I’m planing to re-implement it with the BBBLue and ROS. My dogs name is Sampson, this robot is named SAMI for Semi Automated Mobile Instigator. It has ?had? an out of band camera so I could ROV it using a standard hobby transmitter. a ping sensor on an x/y servo sent range and angle data via Xbee to a wpf xaml app that included a Radar screen, gps, debug and the camera output. Check it out on uTube sami and SamiUpdateLaborDay

c ya… - jeffa @jhalbrecht

Left off the most important part! the laser that was the instigator in SAMI semi autonomous mobile instigator. Even after eight years Sampson loves him some Laser pointer! Every evening after his dinner he comes to the coffee table in the living room and starts looking between me and the laser until I pick it up and let him chase it for awhile.

Can you provide the journalctl output?

Pastebin https://pastebin.com/aGMq9P7S

I didn’t see any mention of ‘rc_battery_monitor’. Looks like there might be an issue with that service being enabled in the new Stretch images.

Can you try ‘sudo systemctl enable rc_battery_monitor; sudo systemctl start rc_battery_monitor’?

That worked. LED battery level display working now.

  • jeffa

Sorry for a late response, but I did a project using a Pololu Romi drive system with several ROS nodes and a BeagleBone Blue running everything, from roscore to all of the other nodes. It is certainly a work in progress, and I plan to eventually get it to work with an Intel RealSense Camera or the Intel Euclid camera (TBD). You can see my progress here: https://github.com/alextac98/TurtleBotMini