Warning
Important Notice: The DynaArm is currently a prototype and not ready for commercial use. It is intended solely for research and development purposes. Users are responsible for ensuring safe operation during its use.
Robot Usage
This section provides instructions for operating the DynaArm, including preparation, startup, basic commands, and shutdown procedures.
System Startup
Mount the Robot:
Ensure the DynaArm is securely mounted on a stable and solid base. This prevents unwanted movement during operation.
The mounting position must ensure the robot cannot fall over during use.
Ethercat Connection:
Verify that the Ethercat cable is securely connected to the Controller PC.
Check for any loose connections or damaged cables.
Inspect All Cables:
Confirm that all cables are correctly connected and show no signs of damage.
Replace any damaged cables before proceeding.
Connect and Power On:
Attach the power supply to the DynaArm.
- Power on the system and observe the indicator lights for diagnostics:
Normal Operation: Indicator lights blink in a steady sequence.
Error Detected: Lights may blink rapidly or remain solid. Refer to the troubleshooting section for details.
Note
The DynaArm may move slightly when activating. Ensure the workspace is clear of obstructions.
Commands
This section provides essential commands for operating the DynaArm in both mock and real hardware modes.
Start the Robot
If you have downloaded the dynaarm_examples repository, you can start the robot in mocked mode or in real mode. In both modes, the robot launches into freeze control.
Note
Ensure that your workspace is sourced before running the robot commands.
Mock Mode
Start the robot with mocked hardware:
ros2 launch dynaarm_single_example mock.launch.py
Real Hardware
Start the robot with real hardware:
ros2 launch dynaarm_single_example real.launch.py ethercat_bus:=enp86s0
Arguments (Mock & Real)
- gui - flag to enable joint_state_publisher_gui.
Valid choices: True, False
Default: True
- dof - select the desired degrees of freedom (DoF).
Valid choices: 1, 2, 3, 4, 5, 6
Default: 6
- covers - show or hide the covers of the robot.
Default: False
- version - select the desired version of the robot.
Valid choices: arowna4, baracuda12
Default: baracuda12
Arguments (Real Only)
- ethercat_bus - select your connected interface
Default: enp86s0
Monitor System Status
Check the status of the DynaArm, including joint positions
ros2 topic echo /dynaarm_status_controller/state
Freedrive
To freely move the robot around, activate the freedrive_controller, ensuring that any conflicting controllers, such as the freeze_controller, are deactivated:
ros2 control switch_controllers --activate freedrive_controller --deactivate freeze_controller
Once enabled, you can manually move the robot by guiding it with your hands.
Move to Predefined Positions
Two predefined positions are available:
Home Position: Moves the robot to its 0 / home position.
Sleep Position: Moves the robot to a safe shutdown position.
To move the robot to the predefined positions, the freeze_controller must be deactivated. Any other controller may remain active. The joint_trajectory_controller will be automatically activated when the movement command is issued. Once the movement is complete, the previously active controller will be reactivated. To move the robot to the predefined positions, two topics are provided: /move_home and /move_sleep. Each topic accepts a std_msgs/msg/Bool message to trigger the movement.
Here are example commands to move the robot to the predefined positions:
ros2 topic pub /move_home std_msgs/msg/Bool "{data: true}"
ros2 topic pub /move_sleep std_msgs/msg/Bool "{data: true}"
Here are example commands to stop the robot from moving to the predefined positions:
ros2 topic pub /move_home std_msgs/msg/Bool "{data: false}"
ros2 topic pub /move_sleep std_msgs/msg/Bool "{data: false}"
Control with a Gamepad
With the gamepad interface active, you can control the robot’s movement and trigger special actions using the mapped buttons and joysticks.
Control |
Function |
Description |
---|---|---|
L1 / Left Shoulder |
E-Stop |
Press to enter freeze mode. |
Unfreeze |
Hold for ~3s to exit freeze mode |
|
Works even if the gamepad interface is not running. |
||
R1 / Right Shoulder |
Deadman Switch |
Hold to execute anything. |
Menu / Start |
Switch Controller |
Hold deadman, press to switch controllers. |
Triangle / Y |
Move Home |
Moves the robot to its 0 / home position. |
Circle / B |
Move Sleep |
Moves the robot to a safe shutdown position. |
Safety
Press the E-Stop button at any time to immediately freeze the robot. Hold it for ~3 seconds to exit freeze mode and resume operation.
The E-Stop function is always available, even if the gamepad interface is not running.
To move the robot, always hold the Deadman Switch.
Launching the Gamepad Interface:
ros2 run dynaarm_gamepad_interface gamepad_interface
Switch controllers:
To switch between controllers (Joint Trajectory / Freedrive), hold the Deadman Switch and press the Switch Controller button.
The following functions are available:
Control |
Name |
Description |
---|---|---|
Left Joystick X-Axis |
shoulder_rotation |
Moves the first joint |
Left Joystick Y-Axis |
shoulder_flexion |
Moves the second joint |
Right Joystick Y-Axis |
elbow_flexion |
Moves the third joint |
Right Joystick X-Axis |
forearm_rotation |
Moves the fourth joint |
L2 / Left Trigger |
wrist_flexion |
Moves the fifth joint into negative rotation |
R2 / Right Trigger |
wrist_flexion |
Moves the fifth joint into positive rotation |
Left Joystick Press |
wrist_rotation |
Moves the sixth joint into negative rotation |
Right Joystick Press |
wrist_rotation |
Moves the sixth joint into positive rotation |
Shutdown Procedure
Prepare the Robot:
Move the DynaArm to a defined position where it cannot fall over when powered off.
If possible, physically support the arm or secure it in a safe position.
Terminate the DynaArm Software:
Shut down the dynaarm software by terminating the process (e.g., pressing Ctrl+C once).
Important: Avoid pressing Ctrl+C multiple times, as it may disrupt the Ethercat communication improperly.
Power Off the System:
Once the software is safely shut down, disconnect the power supply from the DynaArm.
Ensure the system is fully powered off before handling the robot further.
Warning
The DynaArm may fall if these steps are not followed carefully. Always secure the robot before shutting down the system.