Welcome to DOFBOT-Pi repository
7.DOFBOT dancing
Robotic Arm Dancing
I. Experimental Approach
This experiment controls the robotic arm to dance by modifying the angles of different servos and adding delay times, thereby achieving a dancing effect similar to a robotic arm.
II. Start Docker
After entering the main board desktop, open a terminal and run the following command to start the corresponding Dofbot container:
xxxxxxxxxx./Docker_Ros.sh
Then enter the following command in the Docker terminal to start jupyter-lab,
xxxxxxxxxxcdjupyter-lab --allow-root
Then enter the main board's IP address followed by :9999 in the browser,
xxxxxxxxxxIP:9999 // Example: 192.168.1.11:9999
III. Code Content
Code path: /root/Dofbot/3.ctrl_Arm/7.dance.ipynb
xxxxxxxxxx#!/usr/bin/env python3#coding=utf-8import timefrom Arm_Lib import Arm_Device# Create robotic arm objectArm = Arm_Device()time.sleep(.1)time_1 = 500time_2 = 1000time_sleep = 0.5x# Robotic arm dancing loopdef main(): # Reset servos to center position Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 500) time.sleep(1) times = 0.003 while True: Arm.Arm_serial_servo_write(2, 180-120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 60, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-135, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 135, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 45, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 120, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 60, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-80, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 80, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 80, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-60, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 60, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 60, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 180-45, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 45, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 45, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(times) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 20, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 150, time_1) time.sleep(times) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 20, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 150, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(6, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(1, 0, time_1) time.sleep(times) Arm.Arm_serial_servo_write(5, 0, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(3, 180, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 0, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(6, 180, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(6, 0, time_2) time.sleep(time_sleep) Arm.Arm_serial_servo_write(6, 90, time_2) time.sleep(times) Arm.Arm_serial_servo_write(1, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(1, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(5, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(times) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(time_sleep) print(" END OF LINE! ")try : main()except KeyboardInterrupt: print(" Program closed! ") passxxxxxxxxxxdel Arm # Release the Arm object