Basic Operation
Please note that this instruction is written for the ROBOTIS official OpenMANIPULATOR-X package. If you are operating a home made OpenMANIPULATOR-X, make sure to configure each DYNAMIXEL as below before operating.
WARNING The gripper module(ID 15) requires Current based Position Control Mode
. Please make sure your DYNAMIXEL model supports the required Operating Mode.
FAQ
- You can configure your DYNAMIXEL using DYNAMIXEL Wizard 2.0.
- After completing the Communication Interface section, use DYNAMIXEL Wizard 2.0 to configure the DYNAMIXEL.
Launch Controller
After running this section, software controller that controls the OpenMANIPULAOTR-X will be launched and each joint of the OpenMANIPULATOR-X will be locked (Torque On).
- When operating with
U2D2
Close all terminal and enter the command below in the new terminal.$ roslaunch open_manipulator_controller open_manipulator_controller.launch
- When operating with
OpenCR
Close all terminal and enter the command below in the new terminal.$ roslaunch open_manipulator_controller open_manipulator_controller.launch usb_port:=/dev/ttyACM0 baud_rate:=1000000
WARNING :
Please check each joint position before running OpenMANIPULATOR-X. If joints are set inappropriately, OpenMANIPULATOR-X might not start operating.
The picture of OpenMANIPULATOR-X below is showing you the ideal pose of OpenMANIPULATOR-X. Please adjust each joints along with the following picture when DYNAMIXEL torque is not enabled.
Launch result on the terminal will look like below.
SUMMARY
========
PARAMETERS
* /open_manipulator/control_period: 0.01
* /open_manipulator/moveit_sample_duration: 0.05
* /open_manipulator/planning_group_name: arm
* /open_manipulator/using_moveit: False
* /open_manipulator/using_platform: True
* /rosdistro: kinetic
* /rosversion: 1.12.14
NODES
/
open_manipulator (open_manipulator_controller/open_manipulator_controller)
ROS_MASTER_URI=http://localhost:11311
process[open_manipulator-1]: started with pid [23452]
Joint Dynamixel ID : 11, Model Name : XM430-W350
Joint Dynamixel ID : 12, Model Name : XM430-W350
Joint Dynamixel ID : 13, Model Name : XM430-W350
Joint Dynamixel ID : 14, Model Name : XM430-W350
Gripper Dynamixel ID : 15, Model Name :XM430-W350
[ INFO] [1544509070.096942788]: Succeeded to init /open_manipulator
After running this section, software controller that controls the OpenMANIPULAOTR-X will be launched and each joint of the OpenMANIPULATOR-X will be locked (Torque On).
- When operating with
U2D2
Close all terminal and enter the command below in the new terminal.$ roslaunch open_manipulator_controller open_manipulator_controller.launch
- When operating with
OpenCR
Close all terminal and enter the command below in the new terminal.$ roslaunch open_manipulator_controller open_manipulator_controller.launch usb_port:=/dev/ttyACM0 baud_rate:=1000000
WARNING :
Please check each joint position before running OpenMANIPULATOR-X. If joints are set inappropriately, OpenMANIPULATOR-X might not start operating.
The picture of OpenMANIPULATOR-X below is showing you the ideal pose of OpenMANIPULATOR-X. Please adjust each joints along with the following picture when DYNAMIXEL torque is not enabled.
Launch result on the terminal will look like below.
SUMMARY
========
PARAMETERS
* /open_manipulator_controller/control_period: 0.01
* /open_manipulator_controller/using_platform: True
* /rosdistro: noetic
* /rosversion: 1.15.9
NODES
/
open_manipulator_controller (open_manipulator_controller/open_manipulator_controller)
auto-starting new master
process[master]: started with pid [5454]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to da579122-f0fa-11eb-9d7a-0790f3842b2b
process[rosout-1]: started with pid [5464]
started core service [/rosout]
process[open_manipulator_controller-2]: started with pid [5467]
port_name and baud_rate are set to /dev/ttyUSB0, 1000000
Joint Dynamixel ID : 11, Model Name : XM430-W350
Joint Dynamixel ID : 12, Model Name : XM430-W350
Joint Dynamixel ID : 13, Model Name : XM430-W350
Joint Dynamixel ID : 14, Model Name : XM430-W350
Gripper Dynamixel ID : 15, Model Name :XM430-W350
[INFO] Succeeded to init /open_manipulator_controller
After running this section, software controller that controls the OpenMANIPULAOTR-X will be launched and each joint of the OpenMANIPULATOR-X will be locked (Torque On).
- When operating with
U2D2
Close all terminal and enter the command below in the new terminal.$ ros2 launch open_manipulator_x_controller open_manipulator_x_controller.launch.py
- When operating with
OpenCR
Close all terminal and enter the command below in the new terminal.$ ros2 launch open_manipulator_x_controller open_manipulator_x_controller.launch.py usb_port:=/dev/ttyACM0
WARNING :
Please check each joint position before running OpenMANIPULATOR-X. If joints are set inappropriately, OpenMANIPULATOR-X might not start operating.
The picture of OpenMANIPULATOR-X below is showing you the ideal pose of OpenMANIPULATOR-X. Please adjust each joints along with the following picture when DYNAMIXEL torque is not enabled.
Launch result on the terminal will look like below.
port_name and baud_rate are set to /dev/ttyUSB0, 1000000
Joint Dynamixel ID : 11, Model Name : XM430-W350
Joint Dynamixel ID : 12, Model Name : XM430-W350
Joint Dynamixel ID : 13, Model Name : XM430-W350
Joint Dynamixel ID : 14, Model Name : XM430-W350
Gripper Dynamixel ID : 15, Model Name :XM430-W350
[INFO] Succeeded to Initialise OpenManipulator-X Controller
TIP:
- If you can’t load DYNAMIXEL, please check firmware to use ROBOTIS software (R+ Manager 2.0 or DYNAMIXEL Wizard 2.0)
- If you would like to change DYNAMIXEL ID, please check
open_manipulator_x.cpp
in the open_manipulator_lib folder. The default ID is 11, 12, 13, 14 for joints and 15 for the gripper
After running this section, software controller that controls the OpenMANIPULAOTR-X will be launched and each joint of the OpenMANIPULATOR-X will be locked (Torque On).
- When operating with
U2D2
Close all terminal and enter the command below in the new terminal.$ ros2 launch open_manipulator_x_controller open_manipulator_x_controller.launch.py
- When operating with
OpenCR
Close all terminal and enter the command below in the new terminal.$ ros2 launch open_manipulator_x_controller open_manipulator_x_controller.launch.py usb_port:=/dev/ttyACM0
WARNING :
Please check each joint position before running OpenMANIPULATOR-X. If joints are set inappropriately, OpenMANIPULATOR-X might not start operating.
The picture of OpenMANIPULATOR-X below is showing you the ideal pose of OpenMANIPULATOR-X. Please adjust each joints along with the following picture when DYNAMIXEL torque is not enabled.
Launch result on the terminal will look like below.
[INFO] [launch]: All log files can be found below /home/willson/.ros/log/2021-10-07-17-05-57-688562-willson-XPS-15-9560-112659
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [open_manipulator_x_controller-1]: process started with pid [112661]
[open_manipulator_x_controller-1] port_name and baud_rate are set to /dev/ttyUSB0, 1000000
[open_manipulator_x_controller-1] Joint Dynamixel ID : 11, Model Name : XM430-W350
[open_manipulator_x_controller-1] Joint Dynamixel ID : 12, Model Name : XM430-W350
[open_manipulator_x_controller-1] Joint Dynamixel ID : 13, Model Name : XM430-W350
[open_manipulator_x_controller-1] Joint Dynamixel ID : 14, Model Name : XM430-W350
[open_manipulator_x_controller-1] Gripper Dynamixel ID : 15, Model Name :XM430-W350
[open_manipulator_x_controller-1] [INFO] [1633593958.804918277] [open_manipulator_x_controller]: Succeeded to Initialise OpenManipulator-X Controller
TIP:
- If you can’t load DYNAMIXEL, please check firmware to use ROBOTIS software (R+ Manager 2.0 or DYNAMIXEL Wizard 2.0)
- If you would like to change DYNAMIXEL ID, please check
open_manipulator_x.cpp
in the open_manipulator_lib folder. The default ID is 11, 12, 13, 14 for joints and 15 for the gripper
WARNING :
Please check each joint position before running OpenMANIPULATOR-X. It might stop operation because of joint position out of range.
The picture on the below is showing you the ideal pose of OpenMANIPULATOR-X. Please adjust each joints along with the following picture when DYNAMIXEL torque isn’t enabled.
WARNING : Please refer to below default DYNAMIXEL configuration for OpenMANIPULATOR-X chain if you have a custom manipulator.
Joint | ID | Baudrate |
---|---|---|
1 | 11 | 1 Mbps |
2 | 12 | 1 Mbps |
3 | 13 | 1 Mbps |
4 | 14 | 1 Mbps |
Gripper | 15 | 1 Mbps |
WARNING : OpenCR 1.0 must be connected to OpenMANIPULATOR-X before launching Processing.
Press Reset Button
of OpenCR 1.0 to enable torque for OpenMANIPULATOR-X.
-
Connect OpenCR to PC with a micro USB cable, and connect OpenMANIPULATOR-X to OpenCR, then supply 12V Power to OpenCR as shown below.
-
Turn on the OpenCR 1.0 power switch.
-
Press the
Reset Button
of OpenCR 1.0 and check if OpenMANIPULATOR-X is torque enabled(stiff joints). -
Open the downloaded processing file in Processing IDE :
open_manipulator_processing
>Chain
>Chain.pde
.
-
Run the processing source code, and the following graphical GUI will be displayed.
FAQ
If the processing console displays an error message and the GUI does not run normally, check the following:
- Check if ControlP5 is properly installed.
- Check if the graphics driver is installed properly.
- Check if the Java library is properly installed.
Keyboard Teleoperation
Open another terminal and enter below command.
$ roslaunch open_manipulator_teleop open_manipulator_teleop_keyboard.launch
You will see below interface on the terminal window after a successful launch.
---------------------------
Control Your OpenMANIPULATOR-X!
---------------------------
w : increase x axis in task space
s : decrease x axis in task space
a : increase y axis in task space
d : decrease y axis in task space
z : increase z axis in task space
x : decrease z axis in task space
y : increase joint 1 angle
h : decrease joint 1 angle
u : increase joint 2 angle
j : decrease joint 2 angle
i : increase joint 3 angle
k : decrease joint 3 angle
o : increase joint 4 angle
l : decrease joint 4 angle
g : gripper open
f : gripper close
1 : init pose
2 : home pose
q to quit
---------------------------
Present Joint Angle J1: 0.000 J2: 0.000 J3: 0.000 J4: 0.000
Present Kinematics Position X: 0.000 Y: 0.000 Z: 0.000
---------------------------
Open another terminal and enter below command.
$ roslaunch open_manipulator_teleop open_manipulator_teleop_keyboard.launch
You will see below interface on the terminal window after a successful launch.
---------------------------
Control Your OpenMANIPULATOR-X!
---------------------------
w : increase x axis in task space
s : decrease x axis in task space
a : increase y axis in task space
d : decrease y axis in task space
z : increase z axis in task space
x : decrease z axis in task space
y : increase joint 1 angle
h : decrease joint 1 angle
u : increase joint 2 angle
j : decrease joint 2 angle
i : increase joint 3 angle
k : decrease joint 3 angle
o : increase joint 4 angle
l : decrease joint 4 angle
g : gripper open
f : gripper close
1 : init pose
2 : home pose
q to quit
---------------------------
Present Joint Angle J1: 0.000 J2: 0.000 J3: 0.000 J4: 0.000
Present Kinematics Position X: 0.000 Y: 0.000 Z: 0.000
---------------------------
Open another terminal and enter below command.
$ ros2 run open_manipulator_x_teleop open_manipulator_x_teleop_keyboard
You will see below interface on the terminal window after a successful launch.
---------------------------
Control Your OpenMANIPULATOR-X!
---------------------------
w : increase x axis in task space
s : decrease x axis in task space
a : increase y axis in task space
d : decrease y axis in task space
z : increase z axis in task space
x : decrease z axis in task space
y : increase joint 1 angle
h : decrease joint 1 angle
u : increase joint 2 angle
j : decrease joint 2 angle
i : increase joint 3 angle
k : decrease joint 3 angle
o : increase joint 4 angle
l : decrease joint 4 angle
g : gripper open
f : gripper close
1 : init pose
2 : home pose
q to quit
---------------------------
Present Joint Angle J1: 0.000 J2: 0.000 J3: 0.000 J4: 0.000
Present Kinematics Position X: 0.000 Y: 0.000 Z: 0.000
---------------------------
Open another terminal and enter below command.
$ ros2 run open_manipulator_x_teleop teleop_keyboard
You will see below interface on the terminal window after a successful launch.
Control Your OpenManipulator!
---------------------------
Task Space Control:
(Forward, X+)
W Q (Upward, Z+)
(Left, Y+) A D (Right, Y-) Z (Downward, Z-)
X
(Backward, X-)
Joint Space Control:
- Joint1 : Increase (Y), Decrease (H)
- Joint2 : Increase (U), Decrease (J)
- Joint3 : Increase (I), Decrease (K)
- Joint4 : Increase (O), Decrease (L)
- Gripper: Increase (F), Decrease (G) | Fully Open (V), Fully Close (B)
INIT : (1)
HOME : (2)
CTRL-C to quit
Joint Angle(Rad): [0.000, 0.000, 0.000, 0.000, 0.000]
Kinematics Pose(Pose X, Y, Z | Orientation W, X, Y, Z): 0.000, 0.000, 0.000 | 0.000, 0.000, 0.000, 0.000
Not supported.