Robotics Graduate for hire
The MathWorks Inc.,
Robotics Development Intern, May-August 2015
PROJECTS :
-
MATLAB GUI as a ROS interface for a differential drive robot / simulator
-
Deployable stand-alone code generation of Mobile Robotics Algorithms
-
Simulink code generation for transformation utilities of Robotics algorithms in
MATLAB Function Blocks
MATLAB Graphical User Interface
I was responsible for developing a MATLAB GUI as an interface for any ROS enabled differential
drive robot as a ramp-up activity. The GUI had the feature of keyboard tele-op with the tele-op buttons,
also gives out the pose and orientation of the robot, map of the world and robot state representation
along with the laser scan data and the camera data. The data exchange between the GUI and the robot is
with ROS subscribers and publishers.
Subscribers :
• '/scan' topic – For laser scan data
• '/odom' topic – For robot state
• '/camera/rgb/image_raw' – For camera data
Publisher :
• '/mobile_base/commands/velocity' – To send the tele-op commands
Code Generation of Mobile Robotics Algorithms
I worked on the development of deployable C/C++ code generation of mobile robotics algorithms
Binary Occupancy Grid (BOG) and Probabilistic Road Maps (PRM) (partially). The BOG and PRM
classes, were not code generation compatible. There were few support issues like inputParser class was
not supported, function handles were not recognized, error generation should be different , input
validation function should be separate, mixin classes cannot be inherited and so on. My task was to re-
write the entire class using eml_functions , which are specifically for embedded targets that supports
stand-alone C/C++ code generation . Further, I tested the entire class by writing a unit test class.
Simulink code generation for transformation utilities
The Robotics algorithms uses several built-in transformation utilities like angdiff( ), rotm2eul( ) and so
on. There are 23 utility function which were needed to be used in Simulink model as MATLAB
Function Blocks and the generate C/C++ codes. I wrote a test class where I check the correctness of
Simulink Code generated output in different targets with the normal simulation output. I investigated
the test harness for MATLAB Function blocks and performed the following test cases:
-
Simulink code generation in Embedded Real Time target (ert.tlc) o/p Vs Simulink Simulation o/p
-
Simulink code generation in Generic Real Time target (grt.tlc) o/p Vs Simulink Simulation o/p
-
Simulink code generation o/p numerically qualified with MATLAB Function o/p