MomsFriendlyRobotCompany / pycreate2

library for iRobot Create 2
https://pypi.org/project/pycreate2/
MIT License
69 stars 44 forks source link

Implementation details #9

Closed lemoneer closed 6 years ago

lemoneer commented 6 years ago

I see you used some of my python implementation of the iRobot Open Interface spec in your library, but there is quite a bit of functionality from the spec you left out. I separated my implementation into a complete implementation of the OI and a Create2 class that uses the OI implementation to implement the robot's functionality with the intent that the OI implementation may be used to create robot classes with as much or as little of the OI functionality as you needed. It would seem it wasn't quite successful as you only took some pieces of it. Would you share your use case(s) for the library with me or suggest ways my implementation would have better met your needs?

walchko commented 6 years ago

So I used this in a class I taught Spring 2018. Many students were using python for the first time so I wanted a simple way for them to interact with it. I moved to to namedtuples so they couldn't change data they received from the roomba (thinking they were doing something when they really weren't) and dumped all of the other data interface options. Since the create 2 defaults to 115k, it is more than fast enough just to grab everything they could want and still have a fast/responsive robot.

Also, I like to program and the best way to really understand things is roll up your sleeves and modify/change things to make them your own. That is the whole point of open source :smile:! Your library was fine, but mine is smaller and easier for me to maintain if something went wrong during my class.

lemoneer commented 6 years ago

I appreciate your feedback. When I first received the Create2, I implemented everything in the OI spec in case anything it contained proved useful as I was working with the robot. It is great to know how others are using the Create2. Yours is a use case I had not considered, but it makes complete sense. I will add a FriendlyRobot module the hides all the non-essential parts of the OI for those who really just want to make the thing go.