Public Data:

Popular Project Sites:

SourceForge.net Project Sites:

Luke Cole

Donate to Luke Cole
Locations of visitors to this page

Experience

Luke Cole is a member of Engineers Australia (membership # 2274590), and in 2011 was a member of the Queensland University of Technology (QUT) Engineering Course Advisory Group.

Hemisphere GPS - Robotics Engineer
[ February 2009 - January 2013 ]

Implementing autonomous solutions for industrial vehicles such as agriculture trucks.

NICTA - Research Assistant / Robotics Engineer
[ January 2004 - December 2008 ]

Designing and implementing various circuits and software for robots (e.g. InsectBot) and researching vision-based approaches for mobile robots.

LAT - Embedded Programmer / Mechatronics Engineer
[ November 2006 - February 2008 ]

Developing location aware technology for needs such as asset tags and man down systems. Work involved embedded programming, mechatronics technician and lead Linux network systems admin.

CSIRO ICT Centre - Mechatronics Engineer
[ October 2005 - May 2006 ]

Working with the "Connecting People Team" designing and implementing a video conferencing AirHockey game along with technical support during demonstrations at CeNTIE 2005 and CeBIT 2006.

Sweden Robotics Lab visit
[ July 2003 ]

Invited to Centre for Autonomous Systems, Royal Institute of Technology, Stockholm, Sweden. Developed a trivial speech recognition system in 1.5 weeks.

Seeing Machines - Causal Technician
[ July 2002 & September 2003 ]

Soldered and assembled defused IR torches for using cameras at night, during one week of July 2002. Installed car secondary power supply system for on-board car computers, during one week of September 2003.

RSISE, ANU - Technician
[ December 2000 - December 2003 ]

Working with the "Robotics System Lab" team. Implemented the hardware designs for all of the labs projects, along with the setup and maintenance of the workshop over 3 years. One major project was the development of the Smart Car research platform.

RSISE, ANU - Non-remunerate Casual Technical Assistant
[ 1998 & 1999 high school holidays ]

Working with the "Robotics System Lab" team. Designed and implemented a thruster testing unit and a leak detected circuit for the Kambara submersible robot during two separate weeks of 1998 and 1999 high school holidays.

Technical Skills

Below are outlined Luke Cole's primary technical skills.

Summary:

  • Computers: Extremely proficient with Linux/Unix command line, packages and techniques. Still prefers to use Window Maker as the window manager, along with lots of terminals running various tasks such as emacs, and/or ssh'ed into various servers for high CPU usage and/or to run Virtual Machines for different OS applications such as Xcode, Microsoft Visual Studio, SolidWorks, and Altium. This method is used due to its efficiency, reliability, power and customization for developing anything.
  • Autonomous Robot Navigation: Primary experience is indoor localisation via a particle filter and LIDAR and/or Ultrasonic/IR and/or Vision; outdoor localisation via particle filter and vision; and outdoor localisation via Kalman filter and GPS/DMU; and path planning via Vector Field Histogram; and collision avoidance via Dynamic Window Approach. Most of this work was developed from scratch for standalone R&D or Industry. However since 2011, I do most of my personal robotics R&D using ROS.
  • Computer/Machine Vision: Primary experience is with Optical Flow, Object Recognition, Face Recognition, Hough Transforms, Template Matching using either OpenCV or DROS VisLib (which I personally wrote for DROS). However since 2011, I do most of my personal computer/machine R&D using ROS.
  • Actuator/Motor Control: Primary experience is closed or open loop control of DC Motors, Servos, Linear Actuators (Mechanical and Hydraulic) via PWM and some sensor feedback.
  • Control Theory: PIDs, Cascade Control Loops, System Indentification, Modelling, etc
  • Filters: Particle Filter, Kalman Filter, Low/High Pass Filter
  • Computer Networking Programming: Berkeley Sockets, Winsocks
  • Computer IO Interfacing: Parallel Port, RS-232, RS-422, USB, I2C, PCI
  • Linux Kernel Programming: Patches, Device Drivers
  • Embedded Programming: Keil, Visual DSP, Microchip PIC, Atmel, Altera and Xilinx and was co-author and sole maintainer of PICPrg, a Linux parallel port PIC programmer
  • Web Development: LAMP, Ajax, W3C Standards, Web Spiders/Bots, jQuery (including jQuery UI and other plugins), jSON, Sencha, Long Polling (via ajax-push engines), Google Maps API, Search Engine Optimization (SEO). I was also the author of phpSite, a PHP/MySQL framework to easily build advanced websites)
  • Mobile Development: Android SDK, iOS SDK, Sencha, PhoneGap
  • Automated Hardware/Software Testing: Primary experience is to automatic check all production RF products comply with ACMA regulations ; and continuous rebooting and logging/graphing statistics for numerous production products
  • Programming Paradigms: Object Oriented, Procedural and Concurrent Programming (e.g. qt signals/slots)
  • Software Development Processes: Agile, Waterfall, XP and UML Coding standards and documentation: wiki's, Doxygen, Atlassian toolkit (JIRA, Confluence, Fisheye, Crucilbe, Bamboo)
  • Largest OpenSource software project worked: with apart from Linux kernel 2.4, 2.6: DROS 364,578 LOC (mostly a object oriented architecture)

Programming:

I personally like to primarily develop using Emacs under Linux. I have used IDE's such as Netbeans, Eclipse, QtCreator, MPLAB, CodeWarrior, Xcode and Microsoft Visual Studio, which can be "useful" from time to time, however one can still do it all in Emacs. IDE's can be useful when the project is OO and has many average programmers, that may come and go. But I don't believe the developing environment really matters, only progress from good/smart programmers. [ cite: "Where are the wise men?", "Emacs vs Eclipse" forum discussion, xkcd: Real Programmers ]
  • Complied: C/C++, Java, Doxygen
  • Interpreted: [tc|c|ba]sh, Expect, Perl, Python, PHP, ASP, Javascript, Gnuplot, Graphviz, Octave, Scilab, Matlab
  • Assembly: ASM (PIC, 8051), Hi-Tech PICC[18], CCS, CC5X, VHDL
  • Markup: Latex, HTML, XML, CSS
  • Database: SQL (MySQL and/or PostgreSQL)
  • Version Control: CVS, RCS, Subversion (SVN), git
  • Build Tools: GNU Make, CMake, Scons, A-A-P
  • Debugging Tools: Valgrind, GDB and IDE tools for point-break debugging such as QtCreator

Computer Security Techniques (aka Ethical Hacking):

  • Honeypots
  • IRC Bots / Botnets
  • Wireless WEP and WPA cracking (primary experience: Aircrack-ng)
  • Man-In-The-Middle Attack (primary experience: arpspoof, dnsspoof, webmitm, sshmitm)
  • Password Cracking (primary experience: crack-md5, fcrackzip, pdfcrack, medussa, john, hydra, and other personally written SSH / FTP / HTTP / Telnet / VNC brute force attack scripts using large dictionaries)
  • Tunnelling and back-connect techniques (via SSH and/or Netcat)
  • Cross-site Scripting (XSS), Remote File Intrusion (RFI), Local File Intrusion (LFI), SQL Injection
  • Firewalling (via iptables) and firewall logging (via psad and/or Snort)
  • Data Recovery
  • Vulnerability / Penetration testing (primary experience: Nmap, Nessus, Metasploit, BackTrack, Nikto, Scapy, Packit)
  • Network monitoring (primary experience: tcpdump, IPTraf, tcpick, pktstat, nast, dSniff, Ethereal, EtherApe, Htop, Netflow, fail2ban, Snort, psad)
  • Virus Detection / Protection (primary experience: ClamAV, ClamWin, Rootkit Hunter, Check Rootkit, Norton Anti-virus)
  • TCP/IP Packet Analysis, Information Gathering.

Networking:

Click Here for previous/current personal networks.
  • Linux/Windows vulnerability testing and virus detection
  • Software and hardware setup of complex high security wired/wireless topologies (e.g. design/setup of DMZ's)
  • Remote Management (via SSH, RealVNC, LogMeIn and/or PCAnywhere)
  • Setup and Management of Services:
    • Linux LDAP Server
    • Linux Exim 3.x/4.x Outgoing Mail Server (SMTP)
    • Linux Courier Incoming Mail Server (IMAP[S]/POP[S])
    • Linux Apache 1.x/2.x Web Server (HTTP[S])
    • Linux Bind 9.x Domain Name System (DNS)
    • Linux Dynamic Host Configuration Protocol (DHCP)
    • Linux SQL Database (mySQL, PostgreSQL)
    • Linux Network File System (NFS)
    • Linux Windows Networking (Samba)
    • Windows Active Directory (AD)

Operating Systems:

  • GNU/Linux (primary experience: Debian, Ubuntu, Redhat)
  • UNIX
  • Mac OSX
  • Windows, DOS
  • VirtualBox
  • VMWare

Electrical:

Click Here for some of Luke Cole's Protel circuits.
  • CAD (Protel, OrCAD)
  • Digital/Analog (and basic RF) Circuit Design
  • PCB/Veroboard Design/Implementation
  • Soldering (Surface Mount, Hole Through)
  • Special Cable Construction
  • Testing, Debugging, Repairing
  • Tricks of the Trade

Mechanical:

Click Here for some of Luke Cole's Pro/E computer models.
  • CAD (Pro/E, Pro/Mechanica, Strand7, Solid Works)
  • Machining (Lathe, Mill)
  • Welding (Electric Arc, Oxy/Acetylene and Tig)
  • Power/Hand Tools
  • Hand Skills

 

© 2000-2017 Luke Cole
All rights reserved