Projekt

Ogólne

Profil

Lab3 » Historia » Wersja 5

Wersja 4 (Dawid Seredyński, 2018-06-13 17:08) → Wersja 5/8 (Dawid Seredyński, 2018-06-13 17:22)

h1. Lab 3: Forward 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.
* Using C++ or Python create a ROS node NONKDL_DKIN that calculates forward kinematics of manipulator using analytical method (without KDL).

* The node gets current position of joints from joint_state_publisher node.
* The result (i.e. position of end effector of type geometry_msgs/PoseStamped) should be published on ROS topic and visualized in RVIZ.
* Do not interpolate movement.
* Please refer to RVIZ documentation http://wiki.ros.org/rviz/Tutorials
* Read parameters (e.g. lengths of links) from ROS parameter server.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/203/lab3-scheme-a.png(graph a: ROS nodes for ANRO laboratory 3)!
* Create a second node KDL_DKIN that uses KDL, with the same functionality as NONKDL_DKIN.

* Connect it to existing nodes in place of NONKDL_DKIN.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/204/lab3-scheme-b.png(graph b: ROS nodes for ANRO laboratory 3)!
* Test the results in RVIZ. Compare nodes NONKDL_DKIN and KDL_DKIN with using data from generated by robot_state_publisher.


* Check if the calculated pose is the same as the pose calculated by robot_state_publisher. ROS tf. Compare the both poses in RVIZ.
* All three nodes that calculate forward kinematics should publish to different topics. Warto zwrócić uwagę, że wszystkie 3 węzły obliczające prostą kinematykę powinny publikować na oddzielnych tematach, choć dwa z nich korzystają z tego samego typu wiadomości.
* Reference frames of the end effector should coincide. Set different visualization parameters (e.g. width, length of arrows) to see them all. Układy współrzędnych związane z końcówką mogą (a nawet powinny) być zgodne co do położenia i orientacji. Warto manipulować parametrami ich wyświetlania (długością i grubością strzałek) tak, żeby były widoczne i się nie przysłaniały.
* The documentation of tests should be supplemented with plots of end effector position calculated using different methods and plots of configuration space position. Testy uzupełniamy wydrukami położenia w przestrzenie konfiguracyjnej i operacyjnej. Testy te tradycyjnie należy zamieścić w dokumentacji.
!https://www.robotyka.ia.pw.edu.pl/redmine/attachments/download/205/lab3-scheme-c.png(graph c: ROS nodes for ANRO laboratory 3)!
* Joint limist should be taken into account.

W rozszerzonym wariancie zadania należy uwzględnić ograniczenia kinematyki co do zakresu ruchu stawów.
* If joint position is outside limits, the pose of end effector should not be published and error should be published to w szczególności jeżeli wyznaczenie położenia nie jest możliwe, węzły liczące kinematykę nie powinny publikować nowych pozycji zadanych oraz mają sygnalizować błąd w ROS log. log
* Add W ramach repozytorium na serwerze GitHub z własnym pakietem dodajemy wiki page to your repository (the documentation). The page should contain description of source files, instruction for launching and description of tests. z opisem plików źródłowych, instrukcją jak uruchomić system opisany w pliku roslaunch oraz przebiegiem testów.
* Use separate roslaunch files for:
*
Podczas pracy z systemem właściwe jest wydzielenie pliku roslaunch, który będzie uruchamiany jako pierwszy w dedykowanej konsoli włączając roscore and RVIZ (it should be running until URDF file is modified). oraz RVIZ. Ta część systemu zasadniczo nie powinna być wyłączana, o ile nie jest modyfikowany plik URDF.
* The rest of the system. Pozostała część systemu sterowania powinna być uruchamiana w oddzielnym pliku roslaunch.
* Test the Testujemy system and show it to the tutor. i przedstawiamy prowadzącemu do oceny.