Lab 2: Modelling and visualization of manipulator¶
Scope¶
This laboratory consist of three parts:
- A short introduction.
- Reading and following URDF tutorials: http://wiki.ros.org/urdf/Tutorials
- Writing your own ROS package.
Detailed description for URDF tutorials:¶
- Building a Visual Robot Model with URDF from Scratch: tutorial_urdf_1.pdf
- For your convenience add your URDF files in urdf directory of package beginners_tutorials, the one created during the first laboratory.
- In next sections create new URDF files according to roslaunch files.
- The final version of r2d2 has different gripper.
- Building a Movable Robot Model with URDF: tutorial_urdf_2.pdf
- Continue creating new URDF files.
- Adding Physical and Collision Properties to a URDF Model
- You can omit this section, as we do not use model of dynamics and friction.
- Using Xacro to Clean Up a URDF File
- The practical example in this section is not working properly.
- Understanding the PR2 Robot Description
- You can omit this section.
- Create your own urdf file: tutorial_urdf_6.pdf
- Create new URDF files.
- ROS Kinetic is newer than ROS Hydro
- Parse a urdf file
- Copy URDF file from beginners_tutorials package
- Using the robot state publisher on your own robot
- This section is unclear and can be omited.
- Start using the KDL parser
- You can omit this section.
- Using urdf with robot_state_publisher
- You can omit this section.
The task:¶
- Create a new package in your repository created in the previous laboratory.
- Create a program (can be a ROS node) that calculates rotation parameters (RPY or quaternion), compatible with URDF format, from DH parameters.
- You may find KDL documentation useful: http://wiki.ros.org/kdl
- Create URDF file for a robot with given parameters expressed in Denavit-Hartenberg notation
- You can create base for the robot with arbitrarily chosen height.
- Add a tool with no internal degrees of freedom
- Parameters (e.g. length of a link) should be read from ROS parameter server
- At first, treat all joints as fixed.
- Create a roslaunch file and visualize the robot in RVIZ using robot_state_publisher.
- Create second URDF file with moveable joints
- Create second roslaunch file that runs joint_state_publisher to move joints.
- Both roslaunch files should be executed in separate terminals. The first one runs RVIZ as long as the URDF file is unchanged. The second runs the rest of the system.
- Both roslaunch files should be executed in separate terminals. The first one runs RVIZ as long as the URDF file is unchanged. The second runs the rest of the system.
- Commit and push your work to GitHub.
- Add wiki page to your repository (the documentation). The page should contain description of source files, instruction for launching and description of tests.
- Additionally, upload graph and description of structure of the system with communication mechanisms. Add a graph with structure of the manipulator.
- Describe the tests. Use tools such as rqt_plot to plot changes of some variables in ROS topics (e.g. joint state, tf).
- Test the system and show it to the tutor.