[LINUX] Control multiple robots with jupyter-lab




Python is often used as an AI development environment. Especially in the development environment, there are many people who are developing with VS-code, jupyter-lab. Another example of AI application is Robotics. Let me tell you first, *** `` Robo is the romance of the Han [man] `***.

SBC junkie

SBC is an abbreviation for Single Board Computer. I think it would be nice if you could imagine a Raspberry Pi or something like that. This is the case for me, but why don't you just buy a new one? Immediately buy it with a suitable reason such as "study" or "always touch the new SoC of Arm!". When the budget is slightly surplus at the end of the term, I feel like "Well, should I buy it !?" I'll burn the image to SD, but after that I don't need to use it. It's not too mature to buy without a slapstick, so I'll set a plausible rule for myself. "SoC and OS of 64bit or more", "size is the same as Raspberry Pi". However, for some reason, I don't put too much restrictions on my budget, and I buy a relatively high SBC. Recently, Jetson-Nano ...

Application and operation

At first, I will study Home-Automation and IoT as it is, but the proliferation of SBC is overwhelmingly faster than the introduction, and the operation can not keep up. In the end, "Why did you buy such a board?" I bought it myself ...

What is a meaningful scale?

When the PoC of a system such as IoT is successful, the second word is "Can it be scaled?" The context changes depending on the sales, the number of units introduced, the position of sales and consulting at that time, but it is your skin feeling that this word comes after PoC. For some reason, let's make your SBC meaningful when the scale comes first and "speculative execution" is done. That said, it doesn't make sense to attach only one sensor to each SBC and install it every 50 cm in the corridor, right?

So, the Robo Corps

The more fun and happy it is to build a corps. In the old days, it was the Spring and Autumn Warring States period, and in modern times it is an in-house faction. The soul is shaken when it is composed of individuals full of individuality. The Robo Corps, made up of various SBCs, can trace this context as is. Let's also attach a sensor. Infrared rays, ultraviolet rays, temperature, etc. A missile attack launched from a heavyweight robot by searching for a robot that can detect heat sources (infrared rays). It's a ring where delusions spread.


So, jupyter-lab

I finally came to jupyter-lab. I think you are more familiar with jupyter-lab than you are, so I won't explain it. Only the application example will be described briefly. In a nutshell *** `Let each robot execute the jupyter-lab service and control it with the game controller connected to the PC at hand. `*** To do this, read the input value of the game controller with the browser of FrontEnd (PC), pass the input value to the python script running on jupter-lab, and make it the operation of Robo.

Real-time control

When it comes to controlling embedded systems such as Robo, this word comes out inseparably. Don't be afraid to misunderstand, every system has a " real-time control component`` ". ``Real-time control`` means whether ``real-time property`` is established. What is ``real-time property``? *** Is it operationally permissible to execute the operation within that time? It becomes ***. This system is a triple combo that is far from real time with ``Linux, client / server, interpreter` ``.

Trade-off If the `scale` mentioned earlier is a post-PoC story, `Trade-off``` is a term used during design, development and implementation. Of course, this system also has it. A typical example is truncating an analog stick. The analog stick reading speed (Sampling-rate) and the number of events (Frequency) were too slow. I can't keep up with the movement speed of Robo and I can't control it. As a trade-off here, the only way to ensure real-timeness `` is to increase Sampling-rate and Frequency, or decrease the movement speed of Robo. The former is impossible due to the system configuration, and the latter is not interesting to use.


Thank you very much for reading the details of the project in which Chunibyo crystallized. While making the system, my delusion spread. By the way, I wrote it to let you know the beginning of the Real Tam system.

Development resources

[Build guide:] (https://gitlab.com/teamknox/groovy-quatro/-/wikis/Build-Guide:-Project-Crab-(Mecanum-Wheels-Rover)-in-Japanese) [Firmware:] (https://gitlab.com/teamknox/groovy-quatro) [Control software:] (https://gitlab.com/teamknox/q_rover/-/blob/master/teleoperationQ.ipynb) [Groovy-Quatro:] (http://www.omiya-giken.com/?page_id=3150)

Recommended Posts

Control multiple robots with jupyter-lab
Multiple selections with Jupyter
Control scripts with exceptions
Perform multiple version control of Go with anyenv + goenv
Web scraping with python + JupyterLab
Multiple regression analysis with Keras
Control error wording with nginx
Manipulate multiple proxies with Squid
I made COVID19_simulator with JupyterLab
Animate multiple graphs with matplotlib
[ev3dev × Python] Control of multiple motors
[Raspberry Pi] Stepping motor control with Raspberry Pi
Launch multiple instances with Postgresql 11.x
Scraping multiple pages with Beautiful Soup
Load multiple JavaScript files with PyWebView
Set multiple WSGIPythonPath with Apache + mod_wsgi
Post multiple Twitter images with python
Animate multiple still images with Python
Extract specific multiple columns with pandas
Switch between multiple models with M5StickV
Try frequency control simulation with Python
Extract multiple elements with Numpy array
Multiple integrals with Python and Sympy
Observe TCP congestion control with ns-3
[Tkinter] Control threads with Event object
[Python] Creating multiple windows with Tkinter
Inverted pendulum with model predictive control