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.
COLETEK PTY LTD - Everything
[ January 2013 - current ]
Full-time robotics and New Product Development for clients.
Prior 2013 COLETEK was a sole-trader causal business.
Implementing autonomous solutions
for industrial vehicles such as agriculture trucks.
NICTA (now called CSIRO Data61) -
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 starting from 1990 (9 years old)!
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 (now ROS2).
- 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),
and Francesco Vianello (+Fravia) +HCU "Search Lores" since 1995. I was
also the author of phpSite,
a PHP/MySQL framework to easily build advanced websites) started in 2004.
- 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:
apart from Linux kernel 2.4, 2.6: it was DROS
364,578 LOC (mostly a object oriented architecture) active 2002-2005
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 (gEDA, KiCAD, Eagle, Protel/Alitum, 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 (OpenSCAD, FreeCAD, Pro/E, Pro/Mechanica, Strand7, Solid Works, OnShape)
- Machining (Lathe, Mill)
- Welding (Electric Arc, Oxy/Acetylene and Tig)
- Power/Hand Tools
- Hand Skills
|