Forcing Python subclasses to define 'required' superclass attributes

Today I will show you a quick way of forcing any subclass of a superclass to define required attributes. I was recently writing a software for my PhD. I was developing a framework that could be useful for other programmers in the future. However, this framework is quite generic and is not implementing any case-specific or robot-specific behaviours. Therefore, I am expecting from the programmers using this framework to specify the required attributes that are too specific to go in the superclass.

Read More

Creating a custom controller plugin in OpenRAVE 0.9

I needed to write a plugin-controller for OpenRAVE to support the UR5 robot. Through this process, I have learned about how the ControllerBase class works. In this story, I would like to pass very briefly over about this. I am not going to cover specific details since I found out that some robots use different ROS messages for the joints, I will try to keep the post from a high-level where I explain how OpenRAVE treat functions and the core idea behind making such controllers for robots. I am of course referencing the original code I am hosting on GitHub at the end of the post for you to have a look if you want more detail information. This plugin was created at the Robotics Lab, School of Computing, University of Leeds.

Read More

Inverse Kinematics

I am currently dedicated to my Final Year Project, which is related to Robotics and developing a Human-Robot interaction and collaboration project. Expect many articles for the next 3-4 months on this topic. (if I have the time of course)

Read More

Haskell: Impressions!

Haskell Logo I have been, for years dedicated to imperative languages like Java, Python and C++. I haven’t heard of functional programming at all in the past. In my final year in university however, I had to choose modules, a candidate was a “Functional Programming” module taught using Haskell. In this article, I will share my impressions about Haskell from a new starter perspective.

Read More

© 2018 Rafael Papallas
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.