Robotics Library for Processing

I am a robotics student and enthusiast and a big fan of Processing. I always wanted a Robotics library for Processing and thought that the easy and powerful visualization capabilities, portability, ease of use and simple Arduino like architecture would work out great for Robotics for both Graphical Simulation and Control. During my undergrad final year project I developed an Autonomous Mobile Robotics testbed in Processing that included a system for centralized control of multiple autonomous mobile robots. It had a lot of reusable functionality related to computer vision, visualization, communication, AI, HRI, guidance, navigation and control. There was also a simple graphical simulator for mobile robots. That system was used in several future projects by my juniors and projects done using it won 1st prizes at several national and international project competitions. Robotics is one of the most popular and important R&D areas of modern age. Its also a great tool to facilitate STEM education so now I want to make a full-fledge simple and easy to use robotics library for Processing that could help people get started with Robotics algorithms and make it easy and fun. The library will be initially focused on autonomous mobile vehicles. Following would be the components of the library that I have in mind:

Graphical Simulator: Simulation is very important in robotics as it is not always feasible to test everything directly on hardware. This module would be an easy to use interactive graphical simulator that would allow users to implement robotics algorithm in a easy and systematic way and test them. It would allow users to visually create environment and configure things.

Algorithm Simulation Examples: There are many algorithms related to guidance, navigation and control of mobile robots which are very common and important in robotics. This module would include examples of these algorithms implemented on the Simulators to help students in understanding them. These algorithms may include Localization algorithms like Particle Filter, Kalman Filter, Monte Carlo Localization, Path Planning algorithms like A*, RRT*, CPP and Dynamic Programming, Path Smoothing, SLAM, Control algorithms like PID, and Fuzzy Control and Multi-Agent swarm robotics algorithms like flocking and leader following.

Robot Controlling System: This module will allow actual control of robot by sending controlling signals to it and and fetching sensor data from it using simple wired or wireless serial communication or existing Firmata library for Arduino. It would be able to do centralised control of robot from a PC but the recent compatibility of Processing with Raspberry Pi would make it's use as a complete on-board robot control system possible too. This module would use the simulator's resources and codes for the algorithms. This module will also have computer vision and human robot interaction related algorithms and may use and build up upon the OpenCV for Processing, SimpleOpenNI and OpenKinect libraries. It would have good visualisation capabilities. There will be examples of using it which may include scenarios like maze solving robot, line follower robot, gesture controlled robot and human/object follower robot etc.

I want opinion about this project. I am also confused about whether to use Processing Java or Processing Python. Java version has more support but Python is simpler and more popular in Robotics community.

Comments

  • From what I understand how Python Mode works is that it runs on Jython. So if you make your library in Java, it can actually be used in both Java mode and Python mode. (I don't think there is a way to write a library for Processing in native Python at the moment.)

  • Ok thanx for the answer. I haven't experimented much with Python mode yet. I got it now and will use Java if I get to work on it.

Sign In or Register to comment.