Lab5 » Historia » Wersja 4
Wersja 3 (Dawid Seredyński, 2018-06-13 19:06) → Wersja 4/8 (Dawid Seredyński, 2018-06-13 21:33)
h1. Lab 5: Inverse kinematics
h2. Scope:
This laboratory consist of two parts:
* A short introduction.
* Writing your own ROS package.
h2. The task:
* Develop the system from the previous laboratory by either copying the package or modyfying it.
* Create ROS node Tworzymy węzeł IKIN that calculates inverse kinematics (IK) of the manipulator. rozwiązujący kinematykę odwrotną manipulatora, na którym dotychczas pracowaliśmy,
* Create an analytical algorithm for IK without use of Tworzymy algorytm analityczny bez użycia numerycznych algorytmów KDL.
* Ignore orientation of the end effector. In this task, only position (translation) is relevant. Przy wyznaczaniu położenia stawów nie trzeba uwzględniać orientacji końcówki. Interesuje nas tylko osiąganie zadanego położenia (translacji).
* The node should use the same ROS parameters as previously implemented node DKIN. Węzeł IKIN powinien korzystać z parametrów zdefiniowanych w rosparam w tym samym miejscu co dla tworzonego wcześniej węzła DKIN
* Commands for Rozkazy dla węzła IKIN should be read from the node that interpolates trajectory in operational space. mają pochodzić z węzła interpolacji trajektorii w przestrzeni operacyjnej,
* The calculated joint position should be sent to robot_state_publisher. Wyznaczone położenie stawów przesyłamy do robot_state_publisher,
* If IK cannot be solved, the node Jeżeli wyznaczenie położenia nie jest możliwe, węzeł IKIN does not publish new position and it sends error information to nie publikuje nowej pozycji zadanej oraz sygnalizuje błąd w ROS log. log
* Compare two positions in RVIZ: Porównujemy w RVIZ, dwie pozycje:
* The one calculated by the node that interpolates trajectory in operational space. Wyznaczoną przez węzeł interpolacji trajektorii w przestrzeni operacyjnej,
* Position calculated by Pochodzącą z robot_state_publisher.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/182/lab5-scheme-a.png!
* Send a number of commands to operational space interpolation node and check if they are executed properly. Wysyłamy szereg rozkazów dla węzła interpolacji trajektorii w przestrzeni operacyjnej sprawdzając poprawność wykonania zadania,
* In particular, the node W szczególności zadajemy z węzła ocmd commands motion of the end effector that follows rectangle and ellipse shape. Each motion should be executed periodically. The trajectory should be visualized as a streak in RVIZ. ruch końcówki po prostokącie i elipsie. Ruch ma wykonywać się cyklicznie. Trajektoria ma pozostawiać ślad w postaci smugi.
* Set such physical parameters of the manipulator (e.g. lengths of links) that the desired example motion is possible. Należy tak dobrać długości członów i postać narzędzia, żeby ruch był wykonalny dla pewnych przykładowych trajektorii.
* Each example motion should be executed successfully for any initial configuration of the robot. Ruch powinien wykonywać się poprawnie niezależnie od tego jaka będzie początkowa konfiguracja robota (położenie stawów).
* You can set the initial position using the method from the previous laboratory (i.e. interpolation in joint space). Początkową konfigurację można zadawać korzystając ze struktury systemu z poprzedniego zadania (interpolacji w przestrzeni złącz).
* Uwaga na wybór właściwego rozwiązania zadania odwrotnej kinematyki podczas interpolacji w przestrzeni operacyjnej, tak żeby nie wykonywać gwałtownych zmian położeń złącz.
* Nie należy wprowadzać sztucznych ograniczeń zakresu ruchu w przestrzeni konfiguracyjnej, tak aby nie było konieczności wyboru jednego z kilku rozwiązań kinematyki odwrotnej.
* W wersji rozszerzonej:
* należy uwzględnić ograniczenia kinematyki odwrotnej co do przestrzeni roboczej manipulatora.
* W szczególności jeżeli wyznaczenie położenia nie jest możliwe, węzeł liczący kinematykę odwrotną nie powinien publikować nowych pozycji zadanych oraz ma sygnalizować błąd w ROS log
* W ramach repozytorium na serwerze GitHub z własnym pakietem dodajemy wiki z opisem plików źródłowych, instrukcją jak uruchomić system opisany w pliku roslaunch oraz przebiegiem testów.
* Uczulam na właściwe udokumentowanie struktury systemu z oznaczeniem, gdzie są tematy, a gdzie zdalne wywoływanie procedur.
* Przebiegi zmiennych z rqt_plot powinny potwierdzić zgodność pozycji końcówki robota z poszczególnych potoków przetwarzania pozycji zadanej przez interpolator (z użyciem odwrotnej kinematyki i bez).
* Use separate roslaunch files for:
* roscore and RVIZ (it should be running until URDF file is modified).
* The rest of the system.
* Test the system and show it to the tutor.
h2. Scope:
This laboratory consist of two parts:
* A short introduction.
* Writing your own ROS package.
h2. The task:
* Develop the system from the previous laboratory by either copying the package or modyfying it.
* Create ROS node Tworzymy węzeł IKIN that calculates inverse kinematics (IK) of the manipulator. rozwiązujący kinematykę odwrotną manipulatora, na którym dotychczas pracowaliśmy,
* Create an analytical algorithm for IK without use of Tworzymy algorytm analityczny bez użycia numerycznych algorytmów KDL.
* Ignore orientation of the end effector. In this task, only position (translation) is relevant. Przy wyznaczaniu położenia stawów nie trzeba uwzględniać orientacji końcówki. Interesuje nas tylko osiąganie zadanego położenia (translacji).
* The node should use the same ROS parameters as previously implemented node DKIN. Węzeł IKIN powinien korzystać z parametrów zdefiniowanych w rosparam w tym samym miejscu co dla tworzonego wcześniej węzła DKIN
* Commands for Rozkazy dla węzła IKIN should be read from the node that interpolates trajectory in operational space. mają pochodzić z węzła interpolacji trajektorii w przestrzeni operacyjnej,
* The calculated joint position should be sent to robot_state_publisher. Wyznaczone położenie stawów przesyłamy do robot_state_publisher,
* If IK cannot be solved, the node Jeżeli wyznaczenie położenia nie jest możliwe, węzeł IKIN does not publish new position and it sends error information to nie publikuje nowej pozycji zadanej oraz sygnalizuje błąd w ROS log. log
* Compare two positions in RVIZ: Porównujemy w RVIZ, dwie pozycje:
* The one calculated by the node that interpolates trajectory in operational space. Wyznaczoną przez węzeł interpolacji trajektorii w przestrzeni operacyjnej,
* Position calculated by Pochodzącą z robot_state_publisher.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/182/lab5-scheme-a.png!
* Send a number of commands to operational space interpolation node and check if they are executed properly. Wysyłamy szereg rozkazów dla węzła interpolacji trajektorii w przestrzeni operacyjnej sprawdzając poprawność wykonania zadania,
* In particular, the node W szczególności zadajemy z węzła ocmd commands motion of the end effector that follows rectangle and ellipse shape. Each motion should be executed periodically. The trajectory should be visualized as a streak in RVIZ. ruch końcówki po prostokącie i elipsie. Ruch ma wykonywać się cyklicznie. Trajektoria ma pozostawiać ślad w postaci smugi.
* Set such physical parameters of the manipulator (e.g. lengths of links) that the desired example motion is possible. Należy tak dobrać długości członów i postać narzędzia, żeby ruch był wykonalny dla pewnych przykładowych trajektorii.
* Each example motion should be executed successfully for any initial configuration of the robot. Ruch powinien wykonywać się poprawnie niezależnie od tego jaka będzie początkowa konfiguracja robota (położenie stawów).
* You can set the initial position using the method from the previous laboratory (i.e. interpolation in joint space). Początkową konfigurację można zadawać korzystając ze struktury systemu z poprzedniego zadania (interpolacji w przestrzeni złącz).
* Uwaga na wybór właściwego rozwiązania zadania odwrotnej kinematyki podczas interpolacji w przestrzeni operacyjnej, tak żeby nie wykonywać gwałtownych zmian położeń złącz.
* Nie należy wprowadzać sztucznych ograniczeń zakresu ruchu w przestrzeni konfiguracyjnej, tak aby nie było konieczności wyboru jednego z kilku rozwiązań kinematyki odwrotnej.
* W wersji rozszerzonej:
* należy uwzględnić ograniczenia kinematyki odwrotnej co do przestrzeni roboczej manipulatora.
* W szczególności jeżeli wyznaczenie położenia nie jest możliwe, węzeł liczący kinematykę odwrotną nie powinien publikować nowych pozycji zadanych oraz ma sygnalizować błąd w ROS log
* W ramach repozytorium na serwerze GitHub z własnym pakietem dodajemy wiki z opisem plików źródłowych, instrukcją jak uruchomić system opisany w pliku roslaunch oraz przebiegiem testów.
* Uczulam na właściwe udokumentowanie struktury systemu z oznaczeniem, gdzie są tematy, a gdzie zdalne wywoływanie procedur.
* Przebiegi zmiennych z rqt_plot powinny potwierdzić zgodność pozycji końcówki robota z poszczególnych potoków przetwarzania pozycji zadanej przez interpolator (z użyciem odwrotnej kinematyki i bez).
* Use separate roslaunch files for:
* roscore and RVIZ (it should be running until URDF file is modified).
* The rest of the system.
* Test the system and show it to the tutor.