-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature moteus controller #4
Conversation
Dobrze by ybło, gdybyś w Pull Requeście umieszczał też informację którego Issuesa on dotyczy? Wtedy w twoim issue pojawi się komentarz pokazujący, że pojawił się pull request. Ułatwi to nawigację. |
Wydaje mi się ze to jest problem z tym ze w asyncio odpala sie event loop, a w rclpy.spin() executor i się blokują Generalnie jak czytam to ludzie mają problemy z rosem 2 + asyncio Moze jakos inaczej zeobic to asynchroniczne wywoływanie |
Nie wiem czy rozwiązałam ten problem o który chodziło, ale node się uruchamia, oraz odpala się za pomocoą ros2 run |
Muszę was pochwalić, dokładnie tak wyobrażam sobie współpracę nad tymi samymi pull requestami |
Rozbiłem działanie ROSa i asynchroniczne sterowanie moteusami na osobne wątki. Silnik działa, da się go sterować wysyłając wiadomości na topic |
from meldog_interfaces.msg import MultiMoteusControl | ||
from meldog_interfaces.msg import MultiMoteusState | ||
from meldog_interfaces.msg import MoteusState | ||
from meldog_interfaces.msg import MoteusControl |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Możesz to zaimportować w jednej linijce podając klasy po przecinkach
from cośtam import Wiadomosc1, Wiadomosc2, etc.
…cle trajectory_generator
@BartlomiejK2 Czemu wrzuciłeś tutaj losowe pliki .csv? |
@pktiuk Jeżeli chodzi o csvki, to były one zrobione do testów skoków nogi. Już wtedy wiedziałem, że ten package nie przyda się w przyszłości, to wrzucałem na szybko do niego. Myślę, że można to mergować, jak zacznę nowy sterownik to zrobię osobnego pulla. |
Cześć @BartlomiejK2
Jeśli ten kod jest niepotrzebny to wrzuć go na jakiegoś innego brancha i tyle. Nie powinien on być widoczny na branchu na którym obecnie pracujesz, ponieważ zaśmieca on projekt i utrudnia w rozeznaniu się po projekcie. Po to jest git, aby ogarniać rzeczy archiwalne. Jeśli ten kod ma być nieużywany to nie wiem, czy warto go mergować (no chyba, że jednak ma być on używany dopóki nie przepiszecie całości na C++)
No fajnie, że zostały zrobione do testów nogi, ale czy ktoś po tobie też będzie używać tych plików i nie będzie ich zmieniał co chwilę? |
Kod może się przydać w przyszłości dla testów jednej nogi, nowy kod będzie raczej przygotowany stricte pod całego robota.
To są pliki których nie powinno się edytować, sterownik do skoków je tylko zczytuję. Jeżeli ktoś będzie chciał w przyszłości testować ponownie skoki to albo musi mieć te csvki, albo sam wygenerować z mojego skryptu matlabowego. |
W takim razie można zrobić paczkę wskazującą na to, że służy tylko do testów i opisać ją dokładnie w README.
W takim razie to rzeczywiście warto te pliki zostawić. Wygląda na to, że masz tutaj wszystko przemyślane nie mam więcej uwag co do zawartości. |
Dodano:
Node do sterowania kilkoma moteusami naraz:
src/meldog_brigde/meldog_bridge/multi_moteus_controller
Publisher: "multi_moteus_state" - wysyła aktualną listę danych o moteusach (MultiMoteusState)
Subscriber: "multi_moteus_control" - otrzymuje dla każdego moteusa dane (MultiMoteusControl)
Parametr: number_of_moteuses - liczba moteusy
Nowa paczka dla autorskich interface'ów do meldoga:
src/meldog_interfaces
msg:
MultiMoteusState:
MoteusState [ ] state_array
MultiMoteusControl:
MoteusControl [ ] control_array
MoteusState:
float32 position
float32 velocity
float32 torque
float32 q_current
float32 d_current
MoteusControl:
float32 desired_position
float32 desired_velocity
float32 feedforward_torque
srv:
MultiMoteusActive:
bool [ ] active
"---"
bool [ ] success
TODO: Zrobić serwis umożliwiający wyłączenie/zatrzymanie wybranych moteusów