Oh no - nothing stopping me now... (ROS2 C++ GoPiGo3)

,

Oh no - I finished my “unofficial” C++ GoPiGo3 API to have all the capabilities of the Python gopigo3.py, so now I guess there is nothing stopping me from re-implementing the ROS2 GoPiGo3 node in C++.

I just hope there are seven pots of gold under the ROS2 rainbow I keep glimpsing in the distance.

3 Likes

Wow - that’s amazing. Fast work.
/K

2 Likes

YEAH! Amazing work!
Are you considering pushing it to the official repo? We’re kinda thin on any C/C++ support.
Microsoft gave us CSharp at one point.

2 Likes

While I tested the code reasonably well, it is not exemplary C++. I have always thought of API code as having gone through “code review by language experts”, “code review by subject experts”, and a regression test suite.

Additionally, I only tested the code on Ubuntu 22.04 which has g++ 11.3 - I do not know if the code runs on GoPiGo3 OS.

I think I understand the GoPiGo3 API pretty well, but the C++ implementation of the new functions would not pass a language review, and I didn’t create a test suite. I did test missing files, missing keys, 6 and 16 tick cases, but did not code the exception raising. The code just quietly handles the cases.

Anyone wanting to use C++ with one of the 16tick GoPiGo3 robots really needs this code, and could benefit from the example keyboard “drive example” drive.cpp,

I’ll submit an issue/pull request with my changes and you all can figure out what you want to take/do with it.

2 Likes