In the ROS1 Noetic environment, an application has been implemented for the forward kinematics of a UR10 robotic arm with 6 degrees of freedom (6DOF) in the Gazebo simulation environment. The position and orientation information of the end-effector is obtained based on the angle values provided for the 6 joints of the UR10 arm.
The project utilizes the following ROS packages: geometry_msgs, roscpp, nav_msgs, std_msgs.
To install the simulation world:
git clone https://github.com/fbasatemur/ur10_kinematics.git
mkdir -p gazebo_plugins_rtg/src
cd ur10_kinematics*
mv gazebo_plugins_rtg ../gazebo_plugins_rtg/src
cd ../gazebo_plugins_rtg
rosdep install -a
catkin_make
source ~/.bashrc
cp -r src/gazebo_plugins_rtg/models/ur10 ~/.gazebo/models
source devel/setup.bash
To start the simulation world (UR10)
roslaunch gazebo_plugins_rtg ur10.launch
To install ur10_kinematics:
cd ur10_kinematics*
mkdir src
mv ur10_kinematics src
catkin_make
source devel/setup.bash
For observing the end-effector pose using forward kinematics:
rosrun ur10_kinematics forward_kinematics
To obtain the end-effector position and orientation information of the UR10 robot arm, the calculation of the homogeneous matrix between joints based on the given joint points on the left is expressed below:
The appearance of the robot arm for the given joint angles { 0.5, -0.2, 0.6, -0.6, -0.4, 0.5 }, along with the end-effector position calculated from the odometry message, is provided below.
The <3,3> region of the resulting homogeneous matrix is used for orientation, and the <3,1> region is used for position extraction.