ROS Package to control motor from Beagle Bone Blue

I have Ubuntu Xenial and ROS Kinetic loaded on my BeagleBone Blue.
I have the WiFi Access Point configured on the Blue.
I also have the GPS, battery and BBB installed in my “Wifi Robot Car Chassis UniHobby 4WD Robot Car Kit” and I’m ready to move about the world.

I’m working through some of the examples in the O’Reilly book on ROS. It seems to only want to work with the emulator. That’s all good and dandy but I want to explore the real world. Actually, once I have a controller that subscribe to the cmd_vel and translate to my motors, the rest of the book is very useful.

I have two choices I can build my own or find one. Before I build one, I have learned its always worth the look, then ask. So I’m here to ask, before I write one.

I found ones that control custom controllers, joints, most manage 2 wheels.

I have four motors. I feel like there should already be something for the Blue.

Thanks in advance.
-Michael

I think you might need to build it, though it shouldn’t look very different than many examples. The main Blue ROS example I know about is https://dscl.lcsr.jhu.edu/edumip-ros/, but it is for a specific robot configuration. ArduPilot also has a ROS interface, again for specific configurations. For motor-level interfaces, I think you’d need to create something, and it might make some sense to put it into the standard distro or deed.

Hi Michael,

I have Ubuntu Xenial and ROS Kinetic loaded on my BeagleBone Blue.
I have the WiFi Access Point configured on the Blue.
I also have the GPS, battery and BBB installed in my “Wifi Robot Car Chassis UniHobby 4WD Robot Car Kit” and I’m ready to move about the world.

I’m working through some of the examples in the O’Reilly book on ROS. It seems to only want to work with the emulator. That’s all good and dandy but I want to explore the real world. Actually, once I have a controller that subscribe to the cmd_vel and translate to my motors, the rest of the book is very useful.

I have done some work for connecting to ROS for controlling motors from Machinekit ( https://youtu.be/IljDRPuKq_E and https://youtu.be/6Mzok9r9k88 ), subscribing to (a) ROS node(s). I’m not familiair (yet) with the Beaglebone Blue (I have one still in the box due to time constraints).
Machinekit can do real time motion control and runs already on the Beaglebone (Black, Green). So when somebody can get Machinekit running on the Beaglebone Blue, and motors can be controlled with Machinekit, it’s a small thing to listen to a ROS node, and/or publish values from Machinekit to a ROS node.

Hope this helps,
Bas

Michael,

I just got a BBBlue and would like to install Ubuntu Xenial (16.04) since ROS Kinetic seems to support pre-built armhf libraries for it and I want to try out some specific ROS examples without having to build ROS from source. I’ve tried using the Ubuntu images from eewiki(dot)net (https://eewiki.net/display/linuxonarm/BeagleBone+Blue), but when I boot the Blue with one of them I cannot connect to it over the USB-to-Ethernet connection like I can with the standard pre-loaded Debian image. Was there anything special you had to do to make Ubuntu work on your board? Any pointers/lessons learned would be greatly appreciated.

Thanks!
John

That’s expected, it’s up to YOU to configure the eewiki images.

Use my other image for more it of box…

http://elinux.org/BeagleBoardUbuntu#All_BeagleBone_Varients

Regards,

Robert,

Thanks for the quick response and info. I tried out the following image by writing it to a micro-SD card using Etcher.io: “https://rcn-ee.com/rootfs/2017-08-11/microsd/bone-ubuntu-16.04.3-console-armhf-2017-08-11-2gb.img.xz

The Blue seems to boot but the USB storage drive does not appear in Windows like it does with the Debian image (http://debian.beagleboard.org/images/bone-debian-9.1-iot-armhf-2017-08-31-4gb.img.xz).

Also, when I perform an ipconfig command (I’m using Windows 7), I get the following.

Ethernet adapter Local Area Connection 3:
Connection-specific DNS Suffix . :

Link-local IPv6 Address . . . . . : fe80::a4e3:d1be:5ae7:f23d%27
Autoconfiguration IPv4 Address. . : 169.254.242.61
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . :

When I use the Debian image, the ipconfig command returns the same info as shown above at first, but after 20 seconds or so it changes to the expected IP address (192.168.7.1) and subnet mask shown below:

Ethernet adapter Local Area Connection 3:
Connection-specific DNS Suffix . :

Link-local IPv6 Address . . . . . : fe80::a4e3:d1be:5ae7:f23d%27
IPv4 Address. . . . . . . . . . . : 192.168.7.1
Subnet Mask . . . . . . . . . . . : 255.255.255.252
Default Gateway . . . . . . . . . :

While running the Ubuntu image I tried manually configuring the network adapter settings in Windows to use a static IP address of 192.168.7.1 and was able to SSH to the Blue running Ubuntu. On the Blue I did an ifconfig and it showed interfaces for usb0 (IP: 192.168.7.2) and usb1 (IP: 192.168.6.2) but none for the wireless adapter built-into the Blue (which does show up and is usable when I use the Debian image).

Are there more configuration steps I need to do to the Ubuntu image to enable all of the functions supported automatically in the Debian image (i.e. USB storage drive, DHCP server running on the usb0 interface, enabling wireless adapter, etc.)? Your help is greatly appreciated!

Thanks,
John