Tuesday, February 23, 2010

Catching up

Last week was spent getting a journal paper revision done by the deadline. The paper (which is double-spaced) is 57 pages. That was a lot of work; I'm guessing ~25 typeset pages, or 3 normal journal papers. I wish I could somehow get that much credit for finally publishing this one. The editor indicated that, pending revisions suggested by the reviewers, they will accept our paper. Praise the Lord.

Lessons learned:
  • When I'm busy, I should add a vacation message saying I'll only respond to urgent e-mails.
  • I discovered TexWorks, which is a great way to work on Latex documents.
Today's list:
  1. Clean my office
  2. Go through e-mail
  3. Work on review paper copyright stuff
  4. Withdraw my paper to Russia, since I'll be in Florida for the summer
  5. Work on a revised interval analysis paper
  6. Work on p14p. I have so many ideas; I just want to implement them!

Friday, February 12, 2010

Fun links

My inbox is growing, so I need to spend time to day thinning it out. Ouch.

Luxury cars run on 20+ million lines of code. Wow.

A student built a neat hexapod. According to the story, parts came from Crust Crawler Robotics, though I can't find them on that web site. It's powered by an on-board Intel Atom packaged as the Fit-PC2. Very impressive! Here's the video:

It looks like some research groups are making progress on the nanocam featured in Alex's body book!

Here's another video showing applications of that idea. It's a year old, but still seems like a simulation.

My list:
  • Cal Dan Stutts
  • Create test 2 for Micro
  • Work on paper review
  • Work on review paper revision
  • Write recommendations
  • Make SECON hotel reservations

Thursday, February 11, 2010

Weekly meeting agenda

Weekly meeting:

  1. Group lunch - Friday at 11:30?
  2. Task list - review and update.
  3. Review and update group policies - place dates for future sessions.
  4. Neat movie found by Krishna
  5. Research update
    1. Dr. Jones
      1. p14p - Progress; Doxygen support added.
      2. Funding - Air Force Summer Faculty Fellowship Program, Eglin AFB
      3. Funding - Time to make a movie!
      4. Funding - Looking into contacts for CUDA / ERDC work. Need to contact Dr. Ed Luke, who may have some expertise.
      5. Research - Another journal paper accepted. Revisions due on the accepted review paper.

Tuesday, February 9, 2010

Today's list

Looking around a bit more at the AVR community, it seems that WinAVR is the most common choice that many use to write C code for the AVR. However, there's not IDE; instead, it uses makefiles. Ouch. Not a good choice for teaching.

I recently did a voice-over for a simulation Buddy produced which shows the behavior of a fiddle string. I found this behavior complex and fascinating. Buddy's working on a version which will show the string in 3-D; below is a 2-D slice. Using Camtasia made is so easy to quickly record this.

I spend some time yesterday evening creating my new personal home page on the web, since my old home page is years out of date. It's fairly simple, but at least a start.

I felt like a kid in a candy store yesterday while order parts for the Summer Bridge program. I hadn't realized that Pololu (named after a valley in Hawaii) offered some many nice robotics parts. I'm also glad I could finally get the order placed; it took a while, but I think I found most of what I need.

Little did I know, but the first annual National Robotics Week will be held from April 10-18!

Today's plan:
  1. I still need to update the Micro libs with the bug fix.
  2. Spend a small amount of time on p14p. My plan is to put small but steady amounts of time in, since I can't afford to spend a lot of time on it.
  3. E-mail as always. I'm mostly caught up, with just a few items to take care of.
  4. Call Dan Stutts to finish our earlier conversation. Though not pressing; I can also do that on Wednesday.
  5. Research -- I need to review a paper, revise two papers.
  6. Funding. I really need to do this, but with other deadlines looming it's not looking like I'll make much progress. Perhaps I can put together one slide or make some other small quanta of progress.
  7. Type in corrected Micro grades.
  8. Clean up. My office is a dump. Update: better now.

Monday, February 8, 2010


Thank you for taking the time to look at my blog! Here's a brief introduction to who I am.

My research interests include robotics, real-time control-system implementation, rapid prototyping for real-time systems, and modeling and analysis of mechatronic systems; for more information, see my professional page. On a more personal note, my wife keeps all our family's photos on her blog. My profile gives a few more tidbits of information about me, while my old personal web page contains outdated information.

I'm a Christian and find I enjoy teaching both in the classroom and outside, primarily by leading a Sunday School class at Emmanuel Baptist Church. I serve as the faculty sponsor for Phase 2, a discipleship-focused ministry for college students.

Test time

Today is a Micro test day. The list:
  1. Order Summer Bridge parts!
  2. Update the Micro libs with the bug fix
  3. p14p work
  4. Double-check SECON motor selection
  5. Finish and print the Micro test
  6. E-mail clean-up
  7. Call Dan Stutts
Neat stuff: Nvidia keeps coming up with amazing applications for its cards: real-time physics (including cloth!) and real-time ray tracing. They also have a scene graph language that sounds interesting!

Thursday, February 4, 2010


The plan for today:
  1. Check with Sol on the Micro parts order. Yesterday, I verified that the three power supplies he sent would work. This also means we can move to a cheaper power supply, I think.
  2. Order parts for the Summer bridge robot. In particular, I'd really like a PIC24HJ128GP502 to play with.
  3. p14p work - I figured out an important bug (building the same binary using two different versions of Python). Now, I can code on the PIC24 port and also work on Doxygen generation.
  4. Recommendation letter for Brad -- need to do that today.
  5. Weekly meeting for the robotics research group. I'd like to do a paper review, but don't have time for that today. The review is due the 22nd?, so I do need to get started.
  6. Work on the review paper. It's due the 18th, so I need to jump on it.
  7. Update the Micro libs, based on a bug report.
Weekly meeting:
  1. Group lunch - Friday at 12:30?
  2. Task list - review and update.
  3. Review and update group policies - place dates for future sessions.
  4. Neat movie found by Krishna
  5. Research update
    1. Dr. Jones
      1. p14p - Progress; working on developing hardware interface libraries.
      2. Funding - NASA pre-proposal rejected
      3. Met with the Industrial Technology group on robotics collaborations.
      4. Turned Buddy's amazing sim into a movie.

Tuesday, February 2, 2010


Last week disappeared, mainly in getting p14p up and running on the PIC. The code is now in reasonable shape; I'm doing some clean-up and documentation work before plunging into further development.

Interesting things: a HUD display on an iPhone to control a quad-rotor craft; this augmented reality idea is a great way to debug robots. I stumbled across a free book on robotics using Python running on a PC to control a robot. For embedded programming, Stack Overflow makes for interesting reading.

Things I'm working on:
  • My overflowing inbox, still containing a fair amount of mail to sort through and reply to.
  • I now have funding to build the Summer Bridge robot, so it's time to order parts!
  • The continuum review paper was accepted pending a few revisions, so I need to get started on those.
  • The limiting case paper is still languishing and needs attention. Sigh.
  • I need to write the Micro test!
  • Report lights to be replaced, arrange some tutoring, other misc stuff.
  • Write recommendations.
I'd like to also think about how to structure a Python-based PIC24 hardware library. Thoughts:
  • I'm not certain what the balance between writing in C and wrapping in Python vs. mainly writing in Python is.
    • One approach: define readBits and writeBits functions in C, then call that from Python for all hardware access. Pros: less wrapping. Cons: slower, might take too much RAM space.
    • Another approach: balance between Python and C, building Python classes on top of C functions. In essence, it's a rewrite of the existing PIC24 library plus lots of wrapping.
    • The other extreme: wrap the existing library in Python. That's a lot of wrap with little Python structure to help.
  • All the peripherals on all chip variants keep the same address in memory; duplicated peripherals have the same basic layout repeated at an offset. I'd like to take advantage of this by writing a function which can operate on any port instead of duplicating a function multiple times for each port.
  • Port configuration needs the most redesign, since it's implemented as hundreds of C functions and macros. Thoughts:
    • Create a digitalPins class. The constructor takes parameters of port, firstBit, numBits, isInput, isOpenDrain, isPullup and sets bits accordingly, issuing an error if the requested resources don't exist (on a nonexistant port or bit, a port with no pullup ability).
      • This requires writes to PCFG, ODBC, TRIS, CNxPUE. What't the best way to keep a table of PCFG, CNxPUE mappings?
      • Does it make sense to also provide a read back of these bits? I've never needed to do that in all my coding. In particular, reading back PCFG, CNxPUE bits through their mapping to port/pin combos would be complex. Probably not.
      • Should this function also make sure no peripheral output pin is mapped to the pin? That's definitely additional complexity. I'm not sure how much.
    • Override read and write: if the pins are all outputs, send writes to LAT, otherwise to PORT. Provide read access to PORT, LAT and write access to either PORT or LAT.
      • Question: should each read/write check to make sure the port is still correctly configured? That means reading back PCFG bits, which is painful. Probably not.