{"id":22419932,"url":"https://github.com/ravijo/learn_kinematics","last_synced_at":"2025-03-27T04:41:52.162Z","repository":{"id":145158796,"uuid":"59264911","full_name":"ravijo/learn_kinematics","owner":"ravijo","description":"Forward and Inverse Kinematics of Baxter Robot","archived":false,"fork":false,"pushed_at":"2024-05-07T01:53:08.000Z","size":12973,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T10:11:17.281Z","etag":null,"topics":["baxter","baxter-robot","forward-kinematics","inverse-kinematics","kinematics","robot-kinematics"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ravijo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"License","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-20T04:29:46.000Z","updated_at":"2024-05-07T01:53:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"bf921c0a-aedb-4510-be6a-bc6be34cad3e","html_url":"https://github.com/ravijo/learn_kinematics","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravijo%2Flearn_kinematics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravijo%2Flearn_kinematics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravijo%2Flearn_kinematics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ravijo%2Flearn_kinematics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ravijo","download_url":"https://codeload.github.com/ravijo/learn_kinematics/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245785711,"owners_count":20671631,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["baxter","baxter-robot","forward-kinematics","inverse-kinematics","kinematics","robot-kinematics"],"created_at":"2024-12-05T16:17:09.741Z","updated_at":"2025-03-27T04:41:52.141Z","avatar_url":"https://github.com/ravijo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# learn_kinematics\nForward and Inverse Kinematics of Baxter Robot\n\n~~**PLEASE ADD 0.01 TO Z COORDINATE BEFORE CALCULATING IK. SEE LINE 25 IN [ik_test.py](scripts/ik_test.py#L25) FOR MORE INFO**~~\n\n## Dependencies\n* ~~[moveit!](http://moveit.ros.org/)~~\n* ~~[baxter_pykdl](https://github.com/RethinkRobotics/baxter_pykdl)~~\n* [trac_ik](https://bitbucket.org/traclabs/trac_ik)\n\n## Install trac_ik\n1. Open terminal or press \u003ckbd\u003eCTRL\u003c/kbd\u003e+\u003ckbd\u003eALT\u003c/kbd\u003e+\u003ckbd\u003eT\u003c/kbd\u003e\n1. Run following command\n  ```console\n  sudo apt-get install ros-${ROS_DISTRO}-trac-ik\n  ```\n  For example, in the case of ROS Indigo, the following command is equivalent to the one above: `sudo apt-get install ros-indigo-trac-ik`\n\n## Installation\n* ~~Install baxter_pykdl package by downloading the package from [git](https://github.com/RethinkRobotics/baxter_pykdl) into the workspace src folder and running `catkin_make`.~~\n* ~~Install moveit dependecies: `sudo apt-get install ros-indigo-moveit-ros`~~\n* ~~Uncompress the downloaded trac_ik archive from the [website](https://bitbucket.org/traclabs/trac_ik)~~\n* ~~Copy all four directories *trac_ik*, *trac_ik_example*, *trac_ik_kinematics_plugin* and *trac_ik_lib* into ros workspace~~\n* ~~Run `catkin_make` command from ros workspace~~\n* ~~If the abpve command shows following error- `fatal error: nlopt.hpp: No such file or directory #include \u003cnlopt.hpp\u003e`\n please run `sudo apt-get install libnlopt-dev`~~\n* ~~Run again `catkin_make` command~~\n\n* Download or clone the repository\n* Go to the ros workspace, i.e., `cd ros_ws/`\n* Run `catkin_make`\n* If the abpve command shows following error- `fatal error: learn_kinematics/fast_kinematics_service.h: No such file or directory`, please run `catkin_make` again\n\n## Programs\n### fkin.py, ikin.py, fkin2.py\nThese programs use the baxter_pykdl package which requires the robot urdf description to perform IK or FK.\n\n*Please connect to Baxter robot or run the baxter simulator for these programs to work properly.*\n\n### fast_kinematics_pub.cpp\nThis program listen to rostopic `fast_kinematics_listener` for receiving end-effector pose from user. Later on it performs inverse kinematic analysis and publishs the result to another rostopic `fast_kinematics_publisher`\n\n### fast_kinematics_srv.cpp\nThis is a service implementaion for kinematic analysis. It creates a service `fast_kinematics_service`, which perfroms inverse kinematic analysis on request from client.\n\n## How to use\n### fast_kinematics_pub.cpp\n* First, you need to publish `std_msgs::Float64MultiArray` containing end-effector pose (position in cartesian system and orientaion in quaternion system) to the rostopic `fast_kinematics_listener` as input.\n* Now, run the subscriber and publisher by executing following command `roslaunch learn_kinematics fast_kinematics_pub.launch`\n* The output joint angles can be seen by following command `rostopic echo fast_kinematics_publisher`\n\n*You may notice some error initially, as the subscriber haven't receieved any input and publisher starts publishing default values causing this error* \n\n### fast_kinematics_srv.cpp\n* Run the service by following command `roslaunch learn_kinematics fast_kinematics_srv.launch`\n* Run the service client, which calls `fast_kinematics_service` with `learn_kinematics::fast_kinematics_service` service data type. Currently, it is done in c++ and python in following way -\n * __C++:__ Run the client by following command `rosrun learn_kinematics fast_kinematics_srv_test`\n * __Python:__ Run the client by following command `rosrun learn_kinematics fast_kinematics_srv_test.py`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravijo%2Flearn_kinematics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fravijo%2Flearn_kinematics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fravijo%2Flearn_kinematics/lists"}