Welcome to DOFBOT-JetsonNANO 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