diff --git a/cpp/WheeledRobot.cpp b/cpp/WheeledRobot.cpp
new file mode 100644
index 0000000..84921cf
--- /dev/null
+++ b/cpp/WheeledRobot.cpp
@@ -0,0 +1,65 @@
+/**
+*
+* \mainpage BreezySLAM: Simple, efficient SLAM in C++
+*
+* WheeledRobot.cpp - C++ code for WheeledRobot class
+*
+* Copyright (C) 2014 Simon D. Levy
+
+* This code is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation, either version 3 of the
+* License, or (at your option) any later version.
+*
+* This code is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public License
+* along with this code. If not, see .
+*/
+
+#include
+#include
+
+#include
+#include
+using namespace std;
+
+#include "WheeledRobot.hpp"
+#include "Velocities.hpp"
+
+Velocities
+WheeledRobot::computeVelocities(
+ double timestamp,
+ double left_wheel_odometry,
+ double right_wheel_odometry)
+{
+ Velocities velocities;
+
+ double timestamp_seconds_curr, left_wheel_degrees_curr, right_wheel_degrees_curr;
+
+ this->extractOdometry(timestamp, left_wheel_odometry, right_wheel_odometry,
+ timestamp_seconds_curr, left_wheel_degrees_curr, right_wheel_degrees_curr);
+
+ if (this->timestamp_seconds_prev > 0)
+ {
+ double left_diff_degrees = left_wheel_degrees_curr - this->left_wheel_degrees_prev;
+ double right_diff_degrees = right_wheel_degrees_curr - this->right_wheel_degrees_prev;
+
+ velocities.dxy_mm = this->wheel_radius_mm * (radians(left_diff_degrees) + radians(right_diff_degrees));
+
+ velocities.dtheta_degrees = this->wheel_radius_mm / this->half_axle_length_mm *
+ (right_diff_degrees - left_diff_degrees);
+
+ velocities.dt_seconds = timestamp_seconds_curr - timestamp_seconds_prev;
+ }
+
+ // Store current odometry for next time
+ this->timestamp_seconds_prev = timestamp_seconds_curr;
+ this->left_wheel_degrees_prev = left_wheel_degrees_curr;
+ this->right_wheel_degrees_prev = right_wheel_degrees_curr;
+
+ return velocities;
+}