Quantcast
Viewing all articles
Browse latest Browse all 81

Using 6 Tic controllers with ticcmd - optimization questions

Hi everyone,

i have revived a project that i begun some years ago. I have a 3d printed Moveo with 6 axis. i am using 6 tic T500 to control 6 stepper motors of various sizes.

i am using python to read and write positions and status between redis and ticcmd.

i use subprocess in python:
The first instance sends the reset timeout command every 0.5 seconds.
The second instance reads ticcmd -s to get current position and velocity every 0.2 seconds.
The third instance writes position values to the tic, everytime the value for an axis changes in its corresponding redis topic.

at first i tried to make only one python program that controls all 6 tic controllers but that introduced alot of latency. Then i reduced the program to handle only one tic controller, and instead started 6 separate python programs. That has less latency but alot more CPU load.

Where should i best optimize ?
is the latency coming from python (i expect) or from ticcmd?
is ticcmd started only once and communicating with the tic controllers each one at a time ? or are there more instances running at the same time (i was not able to observe that in htop)?
what is the best way to read the tic status very often ? (the current position display in the ticgui is very fast, how does it work?)

the goal of all of this is that i would like to use the moveo with Ros Moveit - i have already some work done like urdf file and configuraton, but i need to make a driver for Ros2 control or at least a wrapper of some kind. i found some older projects on github that used an arduino mega and ramps, and tried that and it worked a little but not very satisfying. i think this could be a cool use case for the tic controllers.

kind regards
fenrelot

3 posts - 2 participants

Read full topic


Viewing all articles
Browse latest Browse all 81

Trending Articles