SlideShare a Scribd company logo
OSS in Amateur Robotics Mark Gross [email_address] OSCON-07 talk based on my on-going SRS robot Magellan development experience
SRS Robot Magellan contest Autonomous navigation to orange traffic cones in an urban park setting. grass, potholes, sidewalks curbs, trees… 1000’ approximate distance between farthest cone and start. robot < 50 pounds, fits in a 4’x4’x4’ cube. robot has fail save pause / stop mechanism. See  http://www.robothon.org/robothon/robo-magellan.php  for rules
My robot’s components 16f877 PIC micro controller base SBC. Linksys NSLU2 : IXP420 computer. servos, motor controller, encoder, ultrasonic range finders, digital compass, bump sensor, safety switch, USB camera, USB hub, USB serial dongle, USB memory stick. built on a radio shack RC toy truck
Architecture Dual SBC design PIC for low level device interface NSLU2 running Linux doing the high level control and vision processing.
Architecture cont. The PIC talks to all the devices except the USB.  motor controller, motor encoder, ultrasonic range finders, compass, servos, bump and safety switches. PIC implements RT control loop processing for speed, steering etc. PIC implements a command response protocol such that the NSLU2 can issue high level command and poll for completion over the serial port get status, track_heading, forward_turn, reverse_turn
Architecture cont. NSLU2 running a hacked version of Slugos from the Open Embedded distribution. Includes spca5xxx camera driver Python, python serial, python image library and pyv4l Runs my magellan.py python program from a init script in rc3.d
It’s all a Work in progress. PDXBot 2007 results : “Flash” took second place* Robot was barley ready in time and ran with some know problems. Details on robot its evolution, implementation patches and code are available at :  www.thegnar.org   Web site will be updated as I get ready for the Seattle robot event. There is a lot more to do   *out of 2 entrants ;)
Back to OSS in amateur robotics PIC was programmed using JALv2, a BSD licensed compiler with a Pascal like syntax and a mixture of BSD and GPL libraries. GPL and LGPL in PIC library code is problematic for production use of such compiled code.  I will not say more about this as that will be a non-amateur application. NSLU2 ran the SlugOs-image from Open Embedded. The high level logic of the robot was programmed in Python. The rest of this presentation drills down on JAL, Open embedded and python use for the application.
JAL (smells like Pascal) Language created by Wouter van Ooijen  http://www.voti.nl/jal/index_1.html   in 2003 was release as GPL and a source forge community project was started. JALv2 written by Kyle York, is a technically better compiler having 2 and 4 byte integers make is very compelling. I have used both versions and like them both, but if you want multi-byte math JALv2 is the only way to go. The JALv2 compiler author is resistant to starting a SF or other community project site.
Some Simple JAL code procedure ping is var byte temp _I2C_HW_startbit -- all sensors will respond to a ping request sent to i2c address zero _I2C_HW_put_byte(0x00) _I2C_HW_put_byte(0) -- get distance in cm....  (need to wait about 2ms/foot!) _I2C_HW_put_byte(0x51) _I2C_HW_stopbit end procedure
JALv0.4.xx JALv0.4.xx is a GPL compiler with GPL libraries  http:// sourceforge.net/projects/jal / Installation is the standard ./config, make , make install - build process.  builds and runs in Linux, cygwin, mac-osx, and OS/2 Includes a test suite JALv0.4xx is a better OSS project than Jal V2 with community and SF repository This version has become stagnate.
JALv2 (by Kyle York) http://www.casadeyork.com/jalv2/ JALv2 is BSD without library files bundled with the compiler. JALv2 is a technically better compiler smaller code supports multi-byte arithmetic Compiler is maintained by one guy, the libraries are maintained by others. No good point for users to contribute fixes to other than Yahoo group mailing list. bugs in some Library files have gone unfixed at times.
NSLU2 and Open Embedded http://www.nslu2-linux.org/ is a project of derivative of Open Embedded. Has a nice makefile base wrapper so you don’t need to understand Bit Bake. Its got a nice community and good for root file systems that maintain the NAS functions intended for the product. After using it initially I moved on to just using OE. http://www.openembedded.org/ its pretty cool. more suited to hacking than nslu2-linux.org. Has some usability warts.
Open Embedded Can be thought of as a bag-O-distributions. Automates tool chain build, target build and image packaging for many of the existing hackable hardware platforms available today, NSLU2, zarus, n800, x86 pc’s, iPaq’… Customizable build includes kernel and a wide assortment of components one can choose to include within a build. has a strong developer community and has good ties to the freedesktop.org, gnome, handles.org, and similar communities.
OE architecture OE consists of 2 components Bit Bake recipe repository Bit bake is maintained in a SVN repository. The recipes are maintained in a Monotone repository.
OE developer community Only a few key folks have check in access to the bit bake and recipe archives. bugs are identified and logged in the project bugzilla. patches and bug fixes are submitted via the bugzilla there is an active and responsive mailing list there is an active IRC channel. most OE developers are EU based Development is quite active, most of the kernels tool chains, and user mode components are current
OE implementation from a high level Bit bake is the build engine it is implemented in Python it parses the configuration and recipe tree recursively to build a dependency cloud. The seed point for traversing the dependency cloud is determined by the command line argument given to the bit bake command. Builds are executed under a non-privileged user account. uses a utility known as fakeroot to build root file systems and device nodes.
Recipes and Monotone developer boot straps recipe tree using a wget …OE.mnt to bring down a 100MB monotone database. then a recipe tree is checked out to bring down all the current recipes. Monotone has some of the CMS flavor of git and mercurial, but is relatively obscure and doesn’t work through proxies well Monotone also tends to need to be built from source, and depends on boost.  Once the recipes are pulled down you don’t need to use monotone again.  HOWTO’s exist on  http://www.openembedded.org/
Hacking OE isn’t trivial A good UI for target component and dependency browsing or customization is missing from OE. Sometimes components are available for down load temporarily. The BitBake has some implicit targets and behaviors that are hard to reverse engineer. Maintaining customizations across OE updates can is hard. Has a fair amount of wiki based documentation, but still can be a challenge for the new developer to wrap there heads around. The oe mailing list is very helpful. Helping to create better documentation for OE/BitBake is on my to do list
Hacking tips and tricks bitbake has a number of debug and trace command line options. nohup bitbake –DDD slugos-image If doing a new build and it breaks on getting source, try again in a few days.  Sometimes archives are not too reliable. Save your downloads in a up-leveled directory
example: my slugos-image hack removing slugos NAS related cruft adding python, python libraries and USB camera driver adding and fixing up the sca5xx camera driver wedging in pyv4l component into my OE build. Much of this is document in a patch on: http://www.thegnar.org/embedded_linux/SlugOsOpenEmbedded.html
removing NAS cruft from slugos edit conf/distro/slugos.conf remove kernel FS’s not needed remove ext2_progs remove lrzsz remove libata, pata-artop
Adding Python with selected addons to my slugos image edit slogos.conf SLUGOS_EXTRA_RDEPENDS = &quot;${SLUGOS_STANDARD_RDEPENDS} python python-serial python-imaging&quot;
adding sca5xx and v4l to slugos edit slugos.conf SLUGOS_STANDARD_RDEPENDS += &quot;\ +spca5xx \ +kernel-module-v4l2-common \ +kernel-module-v4l1-compat \ +kernel-module-videodev \ kernel.bbclass sca5xx driver needs to find config.h from kernel build.
Python image library and PyV4L inclusion to my OE tree PIL built easily but the installation needed trimming as PIL includes a lot of components I didn't need and took up space on the NSLU2's 8MB of flash. PyV4L was harder needed to create a new recipe  needed to hack the pyv4l tarball to build and integrate that into my down load note: pyv4l isn’t well maintained. My current implementation is a complete hack.
pyv4l / OE details added python-pyv4l to RDEPENDS created a new python-pyv4l BB file created my a new pyv4l.tar file build was painful See documentation of what I did on my web site. updates to my web page with information on this is coming soon :)
summary there are OSS tools to implement a wide range of robotics applications. I have only talked about what I used for my latest project.  There are more tools and projects out there with high coolness levels. I didn’t even talk about other MCUs and projects  The Arduino project is very cool,  www.arduino.cc   AVR’s are better supported by OSS tools than PIC’s.  ARM-7’s are also cool, (I’m playing with an NXP2124 using the gnuarm tool chain with newlib). Open Embedded and hackable COTS devices are effective platforms for robotic application development needing more than a control loop.
Ad

More Related Content

What's hot (20)

FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for Linux
Embarcadero Technologies
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
Charlie Gracie
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Embarcadero Technologies
 
Os Paesdosreistutorial
Os PaesdosreistutorialOs Paesdosreistutorial
Os Paesdosreistutorial
oscon2007
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimes
Mark Stoodley
 
Getting Started with Node.js
Getting Started with Node.jsGetting Started with Node.js
Getting Started with Node.js
Justin Reock
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
pundiramit
 
Getting started with the NDK
Getting started with the NDKGetting started with the NDK
Getting started with the NDK
Kirill Kounik
 
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
GlobalLogic Ukraine
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureA/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Leon Anavi
 
Google ART (Android RunTime)
Google ART (Android RunTime)Google ART (Android RunTime)
Google ART (Android RunTime)
Niraj Solanke
 
Linux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxLinux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for Linux
Embarcadero Technologies
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
NokiaAppForum
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscript
Bill Buchan
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
Peter R. Egli
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
Linaro
 
Nerves Project Intro to ErlangDC
Nerves Project Intro to ErlangDCNerves Project Intro to ErlangDC
Nerves Project Intro to ErlangDC
Frank Hunleth
 
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Fraser Chadburn
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++
Minko3D
 
FMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for LinuxFMXLinux Introduction - Delphi's FireMonkey for Linux
FMXLinux Introduction - Delphi's FireMonkey for Linux
Embarcadero Technologies
 
#JavaOne What's in an object?
#JavaOne What's in an object?#JavaOne What's in an object?
#JavaOne What's in an object?
Charlie Gracie
 
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework Python on Android with Delphi FMX - The Cross Platform GUI Framework
Python on Android with Delphi FMX - The Cross Platform GUI Framework
Embarcadero Technologies
 
Os Paesdosreistutorial
Os PaesdosreistutorialOs Paesdosreistutorial
Os Paesdosreistutorial
oscon2007
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimes
Mark Stoodley
 
Getting Started with Node.js
Getting Started with Node.jsGetting Started with Node.js
Getting Started with Node.js
Justin Reock
 
Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011Android porting for dummies @droidconin 2011
Android porting for dummies @droidconin 2011
pundiramit
 
Getting started with the NDK
Getting started with the NDKGetting started with the NDK
Getting started with the NDK
Kirill Kounik
 
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
Java Webinar #9: “Raspberry Pi Platform for Java Programmers”
GlobalLogic Ukraine
 
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the futureA/B Linux updates with RAUC and meta-rauc-community: now & in the future
A/B Linux updates with RAUC and meta-rauc-community: now & in the future
Leon Anavi
 
Google ART (Android RunTime)
Google ART (Android RunTime)Google ART (Android RunTime)
Google ART (Android RunTime)
Niraj Solanke
 
Linux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for LinuxLinux GUI Applications on Windows Subsystem for Linux
Linux GUI Applications on Windows Subsystem for Linux
Embarcadero Technologies
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
NokiaAppForum
 
Entwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscriptEntwicker camp2007 calling-the-c-api-from-lotusscript
Entwicker camp2007 calling-the-c-api-from-lotusscript
Bill Buchan
 
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?Automotive Grade Linux on Raspberry Pi: How Does It Work?
Automotive Grade Linux on Raspberry Pi: How Does It Work?
Leon Anavi
 
Android Native Development Kit
Android Native Development KitAndroid Native Development Kit
Android Native Development Kit
Peter R. Egli
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
Linaro
 
Nerves Project Intro to ErlangDC
Nerves Project Intro to ErlangDCNerves Project Intro to ErlangDC
Nerves Project Intro to ErlangDC
Frank Hunleth
 
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Sys ml helperprofile-rhapsody813-obtainandinstall-v1
Fraser Chadburn
 
Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++Minko - Scripting 3D apps with Lua and C++
Minko - Scripting 3D apps with Lua and C++
Minko3D
 

Viewers also liked (9)

Os Oram
Os OramOs Oram
Os Oram
oscon2007
 
Os Urner
Os UrnerOs Urner
Os Urner
oscon2007
 
Os Gottfrid
Os GottfridOs Gottfrid
Os Gottfrid
oscon2007
 
Os Tibbittstutorial
Os TibbittstutorialOs Tibbittstutorial
Os Tibbittstutorial
oscon2007
 
Os Krug
Os KrugOs Krug
Os Krug
oscon2007
 
Os Alrubaie Ruby
Os Alrubaie RubyOs Alrubaie Ruby
Os Alrubaie Ruby
oscon2007
 
Os Ramirez
Os RamirezOs Ramirez
Os Ramirez
oscon2007
 
Os Lavigne
Os LavigneOs Lavigne
Os Lavigne
oscon2007
 
Os Edwards
Os EdwardsOs Edwards
Os Edwards
oscon2007
 
Ad

Similar to Os Grossupdated (20)

Starting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 ProcessorsStarting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 Processors
Toradex
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
rossburton
 
LabDocumentation
LabDocumentationLabDocumentation
LabDocumentation
Yeshasvi Tirupachuri
 
eBPF — Divulging The Hidden Super Power.pdf
eBPF — Divulging The Hidden Super Power.pdfeBPF — Divulging The Hidden Super Power.pdf
eBPF — Divulging The Hidden Super Power.pdf
SGBSeo
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Nissan Dookeran
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
benDesigning
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
Linux internals v4
Linux internals v4Linux internals v4
Linux internals v4
Liran Ben Haim
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87
Max Kleiner
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Stéphanie Roger
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
Lee Calcote
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
Fn project quick installation guide
Fn project quick installation guideFn project quick installation guide
Fn project quick installation guide
Johan Louwers
 
Building static libraries for iOS with CocoaPods
Building static libraries for iOS with CocoaPodsBuilding static libraries for iOS with CocoaPods
Building static libraries for iOS with CocoaPods
Sigmapoint
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
linuxlab_conf
 
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
GlobalLogic Ukraine
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous android
Thierry Gayet
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
RuggedBoardGroup
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
Toradex
 
Kotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptxKotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptx
takshilkunadia
 
Starting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 ProcessorsStarting with OpenCV on i.MX 6 Processors
Starting with OpenCV on i.MX 6 Processors
Toradex
 
The Yocto Project
The Yocto ProjectThe Yocto Project
The Yocto Project
rossburton
 
eBPF — Divulging The Hidden Super Power.pdf
eBPF — Divulging The Hidden Super Power.pdfeBPF — Divulging The Hidden Super Power.pdf
eBPF — Divulging The Hidden Super Power.pdf
SGBSeo
 
Open frameworks 101_fitc
Open frameworks 101_fitcOpen frameworks 101_fitc
Open frameworks 101_fitc
benDesigning
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
maXbox Starter87
maXbox Starter87maXbox Starter87
maXbox Starter87
Max Kleiner
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Stéphanie Roger
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
Lee Calcote
 
Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology Introduction of eBPF - 時下最夯的Linux Technology
Introduction of eBPF - 時下最夯的Linux Technology
Jace Liang
 
Fn project quick installation guide
Fn project quick installation guideFn project quick installation guide
Fn project quick installation guide
Johan Louwers
 
Building static libraries for iOS with CocoaPods
Building static libraries for iOS with CocoaPodsBuilding static libraries for iOS with CocoaPods
Building static libraries for iOS with CocoaPods
Sigmapoint
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
linuxlab_conf
 
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
Embedded Webinar #12 “GloDroid or Boosting True Open Source Android Stack Dev...
GlobalLogic Ukraine
 
Cross-compilation native sous android
Cross-compilation native sous androidCross-compilation native sous android
Cross-compilation native sous android
Thierry Gayet
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
RuggedBoardGroup
 
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
First Steps Developing Embedded Applications using Heterogeneous Multi-core P...
Toradex
 
Kotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptxKotlin Basics & Introduction to Jetpack Compose.pptx
Kotlin Basics & Introduction to Jetpack Compose.pptx
takshilkunadia
 
Ad

More from oscon2007 (20)

J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
oscon2007
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5
oscon2007
 
Os Borger
Os BorgerOs Borger
Os Borger
oscon2007
 
Os Harkins
Os HarkinsOs Harkins
Os Harkins
oscon2007
 
Os Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman WiifmOs Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman Wiifm
oscon2007
 
Os Bunce
Os BunceOs Bunce
Os Bunce
oscon2007
 
Yuicss R7
Yuicss R7Yuicss R7
Yuicss R7
oscon2007
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Mole
oscon2007
 
Os Fogel
Os FogelOs Fogel
Os Fogel
oscon2007
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashears
oscon2007
 
Os Tucker
Os TuckerOs Tucker
Os Tucker
oscon2007
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
oscon2007
 
Os Furlong
Os FurlongOs Furlong
Os Furlong
oscon2007
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Myths
oscon2007
 
Os Kimsal
Os KimsalOs Kimsal
Os Kimsal
oscon2007
 
Os Pruett
Os PruettOs Pruett
Os Pruett
oscon2007
 
Os Alrubaie
Os AlrubaieOs Alrubaie
Os Alrubaie
oscon2007
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholistic
oscon2007
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillips
oscon2007
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdated
oscon2007
 
J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
oscon2007
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5
oscon2007
 
Os Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman WiifmOs Fitzpatrick Sussman Wiifm
Os Fitzpatrick Sussman Wiifm
oscon2007
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Mole
oscon2007
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashears
oscon2007
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
oscon2007
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Myths
oscon2007
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholistic
oscon2007
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillips
oscon2007
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdated
oscon2007
 

Recently uploaded (20)

ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 

Os Grossupdated

  • 1. OSS in Amateur Robotics Mark Gross [email_address] OSCON-07 talk based on my on-going SRS robot Magellan development experience
  • 2. SRS Robot Magellan contest Autonomous navigation to orange traffic cones in an urban park setting. grass, potholes, sidewalks curbs, trees… 1000’ approximate distance between farthest cone and start. robot < 50 pounds, fits in a 4’x4’x4’ cube. robot has fail save pause / stop mechanism. See http://www.robothon.org/robothon/robo-magellan.php for rules
  • 3. My robot’s components 16f877 PIC micro controller base SBC. Linksys NSLU2 : IXP420 computer. servos, motor controller, encoder, ultrasonic range finders, digital compass, bump sensor, safety switch, USB camera, USB hub, USB serial dongle, USB memory stick. built on a radio shack RC toy truck
  • 4. Architecture Dual SBC design PIC for low level device interface NSLU2 running Linux doing the high level control and vision processing.
  • 5. Architecture cont. The PIC talks to all the devices except the USB. motor controller, motor encoder, ultrasonic range finders, compass, servos, bump and safety switches. PIC implements RT control loop processing for speed, steering etc. PIC implements a command response protocol such that the NSLU2 can issue high level command and poll for completion over the serial port get status, track_heading, forward_turn, reverse_turn
  • 6. Architecture cont. NSLU2 running a hacked version of Slugos from the Open Embedded distribution. Includes spca5xxx camera driver Python, python serial, python image library and pyv4l Runs my magellan.py python program from a init script in rc3.d
  • 7. It’s all a Work in progress. PDXBot 2007 results : “Flash” took second place* Robot was barley ready in time and ran with some know problems. Details on robot its evolution, implementation patches and code are available at : www.thegnar.org Web site will be updated as I get ready for the Seattle robot event. There is a lot more to do  *out of 2 entrants ;)
  • 8. Back to OSS in amateur robotics PIC was programmed using JALv2, a BSD licensed compiler with a Pascal like syntax and a mixture of BSD and GPL libraries. GPL and LGPL in PIC library code is problematic for production use of such compiled code. I will not say more about this as that will be a non-amateur application. NSLU2 ran the SlugOs-image from Open Embedded. The high level logic of the robot was programmed in Python. The rest of this presentation drills down on JAL, Open embedded and python use for the application.
  • 9. JAL (smells like Pascal) Language created by Wouter van Ooijen http://www.voti.nl/jal/index_1.html in 2003 was release as GPL and a source forge community project was started. JALv2 written by Kyle York, is a technically better compiler having 2 and 4 byte integers make is very compelling. I have used both versions and like them both, but if you want multi-byte math JALv2 is the only way to go. The JALv2 compiler author is resistant to starting a SF or other community project site.
  • 10. Some Simple JAL code procedure ping is var byte temp _I2C_HW_startbit -- all sensors will respond to a ping request sent to i2c address zero _I2C_HW_put_byte(0x00) _I2C_HW_put_byte(0) -- get distance in cm.... (need to wait about 2ms/foot!) _I2C_HW_put_byte(0x51) _I2C_HW_stopbit end procedure
  • 11. JALv0.4.xx JALv0.4.xx is a GPL compiler with GPL libraries http:// sourceforge.net/projects/jal / Installation is the standard ./config, make , make install - build process. builds and runs in Linux, cygwin, mac-osx, and OS/2 Includes a test suite JALv0.4xx is a better OSS project than Jal V2 with community and SF repository This version has become stagnate.
  • 12. JALv2 (by Kyle York) http://www.casadeyork.com/jalv2/ JALv2 is BSD without library files bundled with the compiler. JALv2 is a technically better compiler smaller code supports multi-byte arithmetic Compiler is maintained by one guy, the libraries are maintained by others. No good point for users to contribute fixes to other than Yahoo group mailing list. bugs in some Library files have gone unfixed at times.
  • 13. NSLU2 and Open Embedded http://www.nslu2-linux.org/ is a project of derivative of Open Embedded. Has a nice makefile base wrapper so you don’t need to understand Bit Bake. Its got a nice community and good for root file systems that maintain the NAS functions intended for the product. After using it initially I moved on to just using OE. http://www.openembedded.org/ its pretty cool. more suited to hacking than nslu2-linux.org. Has some usability warts.
  • 14. Open Embedded Can be thought of as a bag-O-distributions. Automates tool chain build, target build and image packaging for many of the existing hackable hardware platforms available today, NSLU2, zarus, n800, x86 pc’s, iPaq’… Customizable build includes kernel and a wide assortment of components one can choose to include within a build. has a strong developer community and has good ties to the freedesktop.org, gnome, handles.org, and similar communities.
  • 15. OE architecture OE consists of 2 components Bit Bake recipe repository Bit bake is maintained in a SVN repository. The recipes are maintained in a Monotone repository.
  • 16. OE developer community Only a few key folks have check in access to the bit bake and recipe archives. bugs are identified and logged in the project bugzilla. patches and bug fixes are submitted via the bugzilla there is an active and responsive mailing list there is an active IRC channel. most OE developers are EU based Development is quite active, most of the kernels tool chains, and user mode components are current
  • 17. OE implementation from a high level Bit bake is the build engine it is implemented in Python it parses the configuration and recipe tree recursively to build a dependency cloud. The seed point for traversing the dependency cloud is determined by the command line argument given to the bit bake command. Builds are executed under a non-privileged user account. uses a utility known as fakeroot to build root file systems and device nodes.
  • 18. Recipes and Monotone developer boot straps recipe tree using a wget …OE.mnt to bring down a 100MB monotone database. then a recipe tree is checked out to bring down all the current recipes. Monotone has some of the CMS flavor of git and mercurial, but is relatively obscure and doesn’t work through proxies well Monotone also tends to need to be built from source, and depends on boost. Once the recipes are pulled down you don’t need to use monotone again. HOWTO’s exist on http://www.openembedded.org/
  • 19. Hacking OE isn’t trivial A good UI for target component and dependency browsing or customization is missing from OE. Sometimes components are available for down load temporarily. The BitBake has some implicit targets and behaviors that are hard to reverse engineer. Maintaining customizations across OE updates can is hard. Has a fair amount of wiki based documentation, but still can be a challenge for the new developer to wrap there heads around. The oe mailing list is very helpful. Helping to create better documentation for OE/BitBake is on my to do list
  • 20. Hacking tips and tricks bitbake has a number of debug and trace command line options. nohup bitbake –DDD slugos-image If doing a new build and it breaks on getting source, try again in a few days. Sometimes archives are not too reliable. Save your downloads in a up-leveled directory
  • 21. example: my slugos-image hack removing slugos NAS related cruft adding python, python libraries and USB camera driver adding and fixing up the sca5xx camera driver wedging in pyv4l component into my OE build. Much of this is document in a patch on: http://www.thegnar.org/embedded_linux/SlugOsOpenEmbedded.html
  • 22. removing NAS cruft from slugos edit conf/distro/slugos.conf remove kernel FS’s not needed remove ext2_progs remove lrzsz remove libata, pata-artop
  • 23. Adding Python with selected addons to my slugos image edit slogos.conf SLUGOS_EXTRA_RDEPENDS = &quot;${SLUGOS_STANDARD_RDEPENDS} python python-serial python-imaging&quot;
  • 24. adding sca5xx and v4l to slugos edit slugos.conf SLUGOS_STANDARD_RDEPENDS += &quot;\ +spca5xx \ +kernel-module-v4l2-common \ +kernel-module-v4l1-compat \ +kernel-module-videodev \ kernel.bbclass sca5xx driver needs to find config.h from kernel build.
  • 25. Python image library and PyV4L inclusion to my OE tree PIL built easily but the installation needed trimming as PIL includes a lot of components I didn't need and took up space on the NSLU2's 8MB of flash. PyV4L was harder needed to create a new recipe needed to hack the pyv4l tarball to build and integrate that into my down load note: pyv4l isn’t well maintained. My current implementation is a complete hack.
  • 26. pyv4l / OE details added python-pyv4l to RDEPENDS created a new python-pyv4l BB file created my a new pyv4l.tar file build was painful See documentation of what I did on my web site. updates to my web page with information on this is coming soon :)
  • 27. summary there are OSS tools to implement a wide range of robotics applications. I have only talked about what I used for my latest project. There are more tools and projects out there with high coolness levels. I didn’t even talk about other MCUs and projects The Arduino project is very cool, www.arduino.cc AVR’s are better supported by OSS tools than PIC’s. ARM-7’s are also cool, (I’m playing with an NXP2124 using the gnuarm tool chain with newlib). Open Embedded and hackable COTS devices are effective platforms for robotic application development needing more than a control loop.