Idea

At our Robotics Lab in Leuven we have a large variety of sensors and actuators. This project tries to unify the middleware needed to connect these sensors/actuators by adding a embedded board to each of those devices and give each of them network access. Currently working (on ROS):
  • Sick LMS200
  • Hokuyo laser scanner
  • Ethercat Master Wrapper
  • Blender Virtual Camera
  • Prosilica GC Camera
Up next:
  • Beckhoff Ethercat stack
  • Low level ("logic") input (door open/closed, ...)
  • Directed Perception PTU
  • Blender
  • ...

Platform

We currently use these platforms:
  • The BeagleBoard (BeagleBoard): this is a USB-powered embedded board based on a Texas Instruments OMAP3520 processor featuring a ARM Cortex-A8 core. It has an very active community and a large user base. It is available from Digikey and only costs $149. We have both revision B6 as C4 available for testing.
    Hardware details:
    • OMAP3530 processor delivers laptop-like performance at handheld power levels
    • Over 1,200 Dhrystone MIPS using the superscalar ARM Cortex-A8
    • OpenGL ES 2.0 capable 2D/3D graphics accelerator
    • HD video capable TMS320C64x+ DSP
    • USB power
  • A custom designed board based on a NXP LPC2148 ARM7TDMI processor. Schematics and PCB layout will be available later on. We use this board to interface our sensors and actuators of our Quadrotor research project.
  • An Intel D945GSEJT Atom Board: This is used to interface our JR3 force sensors with the PCI interface.
We have currently no direct intention of trying it on other embedded platforms also.

Installation Instructions

For the beagle board ROS installation you'll need at least a 2GB Secure Digital memory card. This needs two partitions (first FAT32, second Ext3) with the first partition as small as possible (32Mb in my case). Copy the files from the download to the correct partition and boot from it.
I've not preconfigured the network connection, so add a network device (I used a Linksys USB200M) do 'ifconfig eth0 up' and 'dhclient eth0'. You should be able to ping to the PC running the roscore service. Adjust the setup.sh shell script to you include the correct IP for the device and the correct IP for the PC running roscore. Do 'source setup.sh' and start your rospackage.
More elaborate details will follow later.

Downloads

Beagleboard downloads:
  • BeagleBoard_ROS: RootFS for beagleboard including the ROS stack with drivers for the Sick LMS200 (on /dev/ttyUSB0)
  • BeagleBoard_ROS_Installscript: A shell script for building the ROS stack for the Beagleboard, based on the gumros package
Blender downloads: LPC2148 board downloads:
  • Will be available soon (schematic and pcb)

Links


Projects