# Inverse Kinematics Tutorial & Workshop Recording

**URL:** <https://forum.hello-robot.com/t/inverse-kinematics-tutorial-workshop-recording/639>\
**Category:** Knowledge Base\
**Created:** [March 19, 2023, 10:01am UTC](https://forum.hello-robot.com/t/inverse-kinematics-tutorial-workshop-recording/639 "2023-03-19T10:01:51Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![bshah](https://yyz2.discourse-cdn.com/flex030/user_avatar/forum.hello-robot.com/bshah/32/55_2.png) [@bshah](https://forum.hello-robot.com/u/bshah)\
**Post date:** [April 10, 2023, 6:34am UTC](https://forum.hello-robot.com/t/inverse-kinematics-tutorial-workshop-recording/639/4 "2023-04-10T06:34:50Z")

</div>

Hey @arjung, glad to hear you found it helpful! That’s a good question. The IK tutorial actually includes forward kinematics. Set everything up the same way as in the tutorial, and you can do FK using:

```auto
chain.forward_kinematics(q)

```

ROS has its own way of doing FK through a library called TF2. If you’re using ROS, check out this example:

> [@Rospy for tf and stretch\_body](https://forum.hello-robot.com/t/rospy-for-tf-and-stretch-body/565/6):
>
> Got it, below is an example that moves the arm to 0.5m while using tf at the same time to output the end effector position. However, I don’t use robot.arm.move\_to() in my example because it’s a Stretch Body method which will conflict with Stretch ROS. Instead, I use HelloNode.move\_to\_pose() which is part of Stretch ROS. If interested, I can explain why the difference matters. Before running the following, perform a git update on Stretch ROS using: roscd stretch\_core && git pull, and launch Stre…

---

_[View the full topic](https://forum.hello-robot.com/t/inverse-kinematics-tutorial-workshop-recording/639)._
