The Delta Robot taken into account is depicted as in the figure. Its four geometric parameters needed to perform the kinematics of the robot are set here. If you change them, remember to build again the package to make the modification effective.
The base_link and end_effector reference systems follow the configuration depicted in the figure below. The XY-plane containing the base platform is at z=0
.
The executable would create:
- A ROS2 Publisher of JointState msg onto delta_robot/desired_joint_state topic
- A ROS2 Subscriber of Vector3 msg onto delta_robot/desired_position topic
- A ROS2 Subscriber of JointState msg onto delta_robot/joint_states topic
When the executable is run, it starts listening to the delta_robot/desired_position topic which stands for the cartesian position of the end-effector the user could set. If an inputs arrives on that topic the inverse kinematics is performed and subsequentally, the corresponding angles of the motorized joints are published to the delta_robot/desired_joint_state topic. The Subscriber to delta_robot/joint_states listens to the joints state feedback, e.g. coming from a simulation (useful when the plotting is activated)
To run the executable:
cd ros2_ws
source install/setup.bash
ros2 run delta_robot deltaKinematics
In order to send the Cartesian position of the end-effector:
ros2 topic pub /delta_robot/desired_position geometry_msgs/msg/Vector3 "{x: 0.0, y: 0.0, z: -0.40}"
Clone the repository inside your ROS2 workspace and build the package:
cd ros2_ws/src
git clone https://github.com/danielemorra98/delta_robot_ROS2.git
colcon build --packages-select delta_robot