-
Notifications
You must be signed in to change notification settings - Fork 58
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
Additional demos #170
Additional demos #170
Conversation
tutorial of KDL installation and demo of Cartesian space movement based on KDL, including forward kinematics and inverse kinematics based on KDL
This demo, based on forward kinematics and inverse kinematics provided by KDL, makes the robot move in z axis in Cartesian space. About how to run this demo, please refer to 'KDL installation and demo.pdf' in the directory './lbr_demos_fri_ros2_cpp/doc/KDL installation and demo.pdf'.
The function of this node is to publish Cartesian Pose state of the robot and receive Cartesian Pose Command from other ros nodes.
This file introduces how to install KDL(kinematics and dynamics library) in our system and a demo based on it is given to make the robot run in z direction in Cartesian space.
This node publishes Cartesian Pose command.
This node, as a demo, publishes Cartesian Pose command to make the robot run in z direction in Cartesian space.
This node publishes Cartesian Pose state of the robot and receives Cartesian Pose command from other ros nodes, and transform it into joint positions based on KDL to send to the robot.
thank you again for the contribution @BoWangFromMars , will merge this into the `dev` branch and update as needed. Please open another PR if you feel like you want to amend changes.
hi @BoWangFromMars , started reformatting your PR. Would it be okay for this node to accept a |
Hello, yes, you are right. Controlling the absolute pose by 'pose' requires users to have basic knowledge of the robot, like path planning, interpolation. For example, the values of consecutive pose commands should not differ too much, and users should plan the path and interpolate the trajectory to make it smoother. In my view, even if we replace 'pose' with 'twist', we need to limit the value of 'twist' within the robot's velocity limits. To send absolute 'pose' in Cartesian space, we can calculate the corresponding joint positions based on KDL, and we can estimate the velocity of each joint motor based on (joint_position_{t+delta_t} - joint_position_{t}) / delta_t and further ensure every joint motor does not exceed its velocity limit. However, in terms of 'twist', we users can determine the velocity of robots in Cartesian space directly, we still need to transfer it to joint velocity to judge it exceed the joint motor velocity limit or not. Thus, users should always assume the responsibility of ensuring the robot work safely(within velocity limit of each joint motor) no matter which command types we use. What do you think? |
All valid points! Hadn't thought about twists require limits, too. Will think through |
okay @BoWangFromMars , formatting mostly finished. Unfortunately the intended use of this repository is less documented atm, but you can find an explanation for your demo here: this leaves me with 2 questions:
would you be interested in turning the |
Refers to #167
Cartesian pose / velocity demo
.pdf
by.rst
fileAdmittance RCM demo
Add TF for initial RCM(this would require modifications to the launch, as modifiable robot description is needed)