RoArm-M2-S 8. Control Robotic Arm with Commands
| ||
8. Control Robotic Arm with Commands
Keep the terminal window in which the roarm_driver robotic arm driver node is running, open a new terminal and run the Launch file for command and control, this demo relies on Moveit2 for motion planning:
cd ~/roarm_ws_em0/ ros2 launch roarm_moveit_cmd command_control.launch.py
CAUTION: After executing this command, the arm will rotate (the small arm is extended directly in front and parallel to the horizontal plane), do not place fragile items around the arm and keep it away from children.
If you want to display a robotic arm in Rviz2, you can refer to 4.2 Running the Moveit2 Drag and Drop Interaction demo.
8.1 Obtain Current Position
Open the third new terminal, and enter the robotic arm ROS2 workspace to enable the node to obtain the current position:
cd ~/roarm_ws_em0/ ros2 run roarm_moveit_cmd getposecmd
Open the fourth terminal, and enter the robotic arm ROS2 workspace to invoke the service to obtain the current position:
cd ~/roarm_ws_em0/ ros2 service call /get_pose_cmd roarm_moveit/srv/GetPoseCmd
8.2 Control EoAT (End of Arm Thing) of the Robot Arm to the Specified Position
Open a new terminal, enter the workspace of the robotic arm ROS2 and start the node used for motion control (for receiving the target position):
cd ~/roarm_ws_em0/ ros2 run roarm_moveit_cmd movepointcmd
A new terminal is opened to enter the workspace of the robotic arm ROS2 and invoke the service used to control the position of the EoAT of the robotic arm:
cd ~/roarm_ws_em0/ ros2 service call /move_point_cmd roarm_moveit/srv/MovePointCmd {"x: 0.2, y: 0, z: 0"}
xyz is the coordinate of the target position of the robot arm in m. You can control the robot arm to move to the target position by calling this service.
8.3 Control the Clamp to the Specific Arc Position
Open a new terminal, enter the robotic arm ROS2 workspace, and boot the clamp movement control nodes (the target arc position to be received):
cd ~/roarm_ws_em0/ ros2 run roarm_moveit_cmd setgrippercmd
Open another new terminal, enter robotic arm ROS2 workspace, publish the data in the topic and control the position:
cd ~/roarm_ws_em0/ ros2 topic pub /gripper_cmd /gripper_cmd {"data: 0.2"}
data: are the coordinates of the target point of the clamp joint in radians.
With this functionality, you can freely control the clamp of the robotic arm to the target position.
8.4 Drawing a Circle at a Fixed Height
In Rviz2, click Add to add the RobotModel.
Select "Description Topic" in the "RobotModel" option, select "/robot_description", and then Links option shows.
In the Links option, find hand_tcp, expand it and check Show Trail for viewing the trajectory of the end joints.
Next, start the node used to draw the circle in the new terminal:
cd ~/roarm_ws_em0/ ros2 run roarm_moveit_cmd movecirclecmd
Call this service to get the robot arm to draw a circle at a specified location:
cd ~/roarm_ws_em0/ ros2 service call /move_circle_cmd roarm_moveit/srv/MoveCircleCmd {"x: 0.2,y: 0,z: 0,radius: 0.1"}
You can see the circle drawn by the robotic arm in the Rviz 2 interface.
RoArm-M2-S ROS2 Humble + Moveit2 Tutorial
- RoArm-M2-S 1. How to Install ROS2
- RoArm-M2-S 2. ROS2 Workspace Description
- RoArm-M2-S 3. Drive Nodes to Control Real-world Robotic Arm
- RoArm-M2-S 4. Drag-and-drop Interactions in Moveit2
- RoArm-M2-S 5. Control the Robotic Arm with Gamepad or Keyboard
- RoArm-M2-S 6. Using Foxglove for Web-Based Control
- RoArm-M2-S 7. Web Application Based on ROS2Web app
- RoArm-M2-S 8. Control Robotic Arm with Commands
- RoArm-M2-S 9. Combined Use
- RoArm-M2-S 10. Ubuntu 22.04 Install ROS2 Humble Tutorial