========================== Dancing with the Robot Arm ========================== .. raw:: html

Follow along: Dancing with the Robot Arm

The program launching process along with parameter settings are all simplified and set up on the Jupyter Notebook Environment.
(The Jetson Board used for these examples are => Jetson Nano)
.. raw:: html
- 05_04_dance.ipynb - | Running the cell code. | `Ctrl + Enter` - To control the robot arm from code, don't forget to shut down the docker container. See `here `_. .. thumbnail:: /_images/arm/dance1.png - Load Arm_Lib module and register the robot arm as an object .. code-block:: python import os import time from Arm_Lib import Arm_Device Arm = Arm_Device() time.sleep(.1) time_1 = 500 time_2 = 1000 time_sleep = 0.5 - Arm_serial_servo_write (motor number, angle, time) - Dance motion using servo motor angle control and while statement .. code-block:: python # Repeat robot arm dance. def main(): # Move servo to initial position. Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 500) time.sleep(1) os.system('rostopic pub -1 /play_specific std_msgs/String "data: \'/root/scripts/sensor/arm_sounds/music_cari.mp3\'"') Arm.Arm_serial_servo_write(2, 180-120, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(3, 120, time_1) time.sleep(.001) 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(.001) Arm.Arm_serial_servo_write(3, 135, time_1) time.sleep(.001) 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(.001) Arm.Arm_serial_servo_write(3, 120, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(4, 60, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(.001) 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(.001) Arm.Arm_serial_servo_write(3, 80, time_1) time.sleep(.001) 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(.001) Arm.Arm_serial_servo_write(3, 60, time_1) time.sleep(.001) 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(.001) Arm.Arm_serial_servo_write(3, 45, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(4, 45, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(2, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(.001) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 20, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(6, 150, time_1) time.sleep(.001) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(6, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 20, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(6, 150, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(6, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(1, 0, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(5, 0, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(3, 180, time_1) time.sleep(.001) 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(.001) Arm.Arm_serial_servo_write(1, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(5, 90, time_1) time.sleep(time_sleep) Arm.Arm_serial_servo_write(3, 90, time_1) time.sleep(.001) Arm.Arm_serial_servo_write(4, 90, time_1) time.sleep(time_sleep) print(" END OF LINE! ") os.system('rostopic pub -1 /play_specific std_msgs/String "data: \'stop\'"') try : main() except KeyboardInterrupt: print(" Program closed! ") pass - Remove the robot arm object. .. code-block:: python del Arm # Remove robot arm object.