news    views    podcast    learn    |    about    contribute     republish     events

David Kohanbash


Homepage

My name is David Kohanbash and I am a Robotics Engineer. I love building, playing and working with Robots. I specialize in electronics and low level software. I get to play with lots of embedded computers, networking gear, sensors, motors, RF hardware, electronic design, and low level software. I also like mechanical stuff (sometimes). I have had the opportunity to work on robots for planetary exploration, farming, mining, lakes, manufacturing, and self driving cars. I have been building robots professionally since 2006 (and even longer unprofessionally). My focus is on professional robotics (as opposed to hobbyist robotics, which I also love). My blog is at robotsforroboticists.com, please check it out and say hi!



by   -   November 14, 2017

Lithium battery safety is an important issue as there are more and more reports of fires and explosions. Fires have been reported in everything from cell phones to airplanes to robots.

by   -   October 12, 2017

I had the opportunity to attend the National Robot Safety Conference for Industrial Robots today in Pittsburgh, PA (USA). Today was the first day of a three-day conference. While I mostly cover technical content on this site; I felt that this was an important conference to attend since safety and safety standards are becoming more and more important in robot system design. This conference focused specifically on industrial robots. That means the standards discussed were not directly related to self-driving cars, personal robotics, or space robots (you still don’t want to crash into a martian and start an inter-galactic war).

I was recently asked about the differences between RADAR and LIDAR. I gave the generic answer about LIDAR having higher resolution and accuracy than RADAR. And RADAR having a longer range and performing better in dust and smokey conditions. When prompted for why RADAR is less accurate and lower resolution, I sort of mumbled through a response about the wavelength. However, I did not have a good response, so this post will be my better response.

If you have always wanted to know how a SICK LIDAR worked inside, now is your chance. If you did not always want to know, this is still your chance to see. Keep reading for some cool pictures.

Set point control: Image: Wikipedia Commons

I was asked on the Robots for Roboticists forum about tuning motors and understanding Bode plots. Many motor control software packages come with tuning tools that can generate Bode plots. This post is my response to that question.

by   -   January 23, 2017
Credit: CC0 Public Domain
Credit: CC0 Public Domain

We often want to add an external hard drive to our robots in order to have a dedicated drive for data collection. Having the dedicated drive lets the primary drive remain uncluttered, have less wear-and-tear, split logging between drives for performance, and potentially be a larger spinning disk (as opposed to an expensive SSD). It is also useful when the main hard drive is read only.

cars-lines-driving-dividing

The Car Hacker’s Handbook A Guide for the Penetration Tester is a book about how to interface with cars to read from onboard systems, spoof devices, and control the vehicle on your own. I enjoyed this book, it is easily the best book I found on learning how to use a CAN bus.

by   -   September 22, 2016
TReX (Tethered Robotic Explorer). Credit: utiasASRL/YouTube
TReX (Tethered Robotic Explorer). Credit: utiasASRL/YouTube

Some people swear all tethers are bad. Some recommend attaching a tether to robots in order to provide power (to save the mass and volume of the batteries), for reliable fast communications, transfer of pressure or fluid, to track a robot’s position, or as a safety harness (in case the robot needs to be dragged out). However, before designing a tether there are several things you need to consider.

Time synchronization diagram.
Time synchronization diagram.

Time synchronization affects many robots. Robots have more computers and sensors, so keeping everything in sync is important. Trying to look through log files where all of the times are skewed is not fun and makes processing difficult. Merging sensor data together with GPS can also be disastrous if the times are offset. Further complicating time synchronization is that the robots are often not connected to the internet, so utilizing public time servers will not work.

Different wheels for robots and rovers. Credit: CC0 public domain
Different wheels for robots and rovers. Credit: CC0 public domain

In the past, we have looked at wheel design and the kinematics of skid steer and mecanum wheels. In this post, we will take a quick look at different types of mobility types (ie. wheels, tracks) and how to connect them. 

Photo: Wikipedia
Photo: Wikipedia

I am often in need of the basic kinematic motion equations for skid steer vehicles. I have also recently been working with mecanum wheeled vehicles. The skid steer equations are fairly simple and easy to find, however, I will include it in different versions and include a ROS approach. The mecanum wheel equations are harder to find and there are different versions floating around. The first version I found had a lot of trig and mostly worked. The version I present here is easier to intuitively understand and seems to work better (I don’t need a random scale factor for this version), I also include a ROS approach for them.

When building a new robot mechanical engineers always ask me: how close can different antennas be to one another? It is not uncommon to try squeezing 5+ antennas on a single robot (GPS, GPS2 for heading, RTK, joystick, e-stop, communications, etc..). So what is the proper response? The real answer is that it depends heavily on the environment.

Code review of a C++ program with an error found.
Code review of a C++ program with an error found.

I have been part of many software teams where we desired to do code reviews. In most of those cases the code reviews did not take place, or were pointless and a waste of time. So the question is: how do you effectively conduct peer reviews in order to improve the quality of your systems?

I found this book, Peer Reviews in Software: A Practical Guide by Karl E. Wiegers. This book was recommended to me, and having “practical guide” in the title caught my attention —  I have reviewed other books that claimed practical, but were not. Hopefully this book will help provide me (and you) with tools for conducting valuable code reviews.

Mastering ROS for Robotics Programming is a good book that will help you learn ROS and take advantage of some of the powerful nodes (programs) that are out there. The book covers both a 7 DOF robot arm and a differential drive robot throughout the different chapters.

If you have several devices that are all using USB, it can be difficult to know which one is which. The traditional answer to telling your various USB devices apart is to use udev rules, but there are alternatives for times when udev isn’t working as expected.