Initial Setup (firmware)

Hi there, I want to build a solo12 and before I start producing the parts and order the electronics I want to make sure I understand the software.

  1. To start, what code do I need to upload before I try running one of the examples?
  2. Is there a Library of actions that I can simply copy/paste into a new code? (for example “MoveForward()” or “TurnClockwise”)
  3. The examples that are added in the folders, do they include movement only?
  4. Can I write code in realtime or is it just writing code and then uploading it? (ex. I write in the program to move forward and the robot immediately moves forward)
  5. I noticed some of the codes are written in python and some in C++. In order for the robot to work, do I have to use both code languages simultaneously or can I use just the python code? (or just the C++ code)

Hi Han_Top,

sorry for the late reply.

What examples are you referring to?

  1. To start, what code do I need to upload before I try running one of the examples?

For controlling the robot you will need to 1) flash the micro drivers with their firmware, 2) flash the master board with its firmware and 3) have a control PC that sends commands to the master board/micro drivers to do the actual control of the robot. In our case we use a real-time enabled Linux Kernel (rt-preempt) to make sure the PC is realtime compatible.

  1. Is there a Library of actions that I can simply copy/paste into a new code? (for example “MoveForward()” or “TurnClockwise”)

There are no libraries of actions or demos to run at this point.

  1. The examples that are added in the folders, do they include movement only?

Which example folder do you mean?

  1. Can I write code in realtime or is it just writing code and then uploading it? (ex. I write in the program to move forward and the robot immediately moves forward)

There is no uploading of code. The control of the robot happens from the control PC, which then talks to the master board and udrivers via a wired connection.

  1. I noticed some of the codes are written in python and some in C++. In order for the robot to work, do I have to use both code languages simultaneously or can I use just the python code? (or just the C++ code)

The master board SDK has python wrapper code for the underlying C++ code. Therefore you can write your controller either in pure python or in pure C++ or a mixture of both (people have done all possible combinations with success).

Let me know if you have any further questions.

Best,
Julian

Hi there,
First of all thank you for replying to the questions, I hope to learn more about the code and control of the robot (already learned the mechanics and the electronics and I saved the best for last).

Secondly, Only now I noticed your question so sorry for the late reply.
The example I found are “demo_solo12.py” and “testbench_joint_calibrator.py” and their C++ equivalents.
Any more examples/demos/written code I should know about?

Hi Han_Top,

we have some more demos here: blmc_robots/demos at master · open-dynamic-robot-initiative/blmc_robots · GitHub. These are mostly C++ written ones.

Best,
Julian