Install dependent packages for OpenManipulator SARA. Run the following command in a terminal window.
NOTE: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. Shortcut key for terminal is Ctrl
+Alt
+t
.
$ sudo apt-get install ros-kinetic-ros-controllers ros-kinetic-gazebo* ros-kinetic-moveit* ros-kinetic-industrial-core
$ cd ~/catkin_ws/src/
$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench.git
$ git clone https://github.com/ROBOTIS-GIT/dynamixel-workbench-msgs.git
$ git clone https://github.com/ROBOTIS-GIT/open_manipulator_msgs.git
$ git clone https://github.com/zang09/open_manipulator_friends.git
$ git clone https://github.com/zang09/open_manipulator_6dof_simulations.git
$ git clone https://github.com/zang09/open_manipulator_6dof_application.git
$ git clone https://github.com/ROBOTIS-GIT/robotis_manipulator.git
$ cd ~/catkin_ws && catkin_make
If the catkin_make command has been completed without any errors, all the preparations for using OpenManipulator SARA are done.
The Intel® RealSense™ Depth Camera D435 is a USB-powered depth camera and consists of a pair of depth sensors, RGB sensor, and infrared projector. It is ideal for makers and developers to add depth perception capability to their prototype development. The D435 is designed to best fit your prototype.
Items | Specifications |
---|---|
Use Environment | Indoor/Outdoor |
RGB Sensor Resolution and Frame Rate | 1920 x 1080 at 30 fps |
RGB Sensor FOV | 69.4°(H) x 42.5°(V) x 77°(D) (+/- 3°) |
Depth Stream Output Resolution | Up to 1280 x 720 |
Depth Stream Output Frame Rate | Up to 90 fps |
Depth Field of View (FOV) | 85.2°(H) x 58°(V) x 94°(D) (+/- 3°) |
Minimum Depth Distance (Min-Z) | 0.2m |
Maximum Range | Approx.10 meters |
Dimension | 90 mm x 25 mm x 25 mm |
Connectors | USB 3.0 Type - C |
The following commands will install relevant Intel® RealSense™ Depth Camera D435 library.
$ sudo apt-key adv --keyserver keys.gnupg.net --recv-key C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C8B3A55A6F3EFCDE
$ sudo add-apt-repository "deb http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo xenial main" -u
$ sudo apt-get install librealsense2-dev librealsense2-utils ros-kinetic-rgbd-launch
$ cd ~/catkin_ws/src
$ git clone https://github.com/intel-ros/realsense.git
$ cd ~/catkin_ws && catkin_make
Run the following command.
$ roslaunch realsense2_camera rs_camera.launch
You can use RViz or image_view to verify driver. You can select data topic name related to Intel® RealSense™ Depth Camera D435 from drop down menu at the top of the application.
$ rqt_image_view
NOTE:
- This instructions were tested on
Ubuntu 16.04
andROS Kinetic Kame
. - The
open_manipulator_perceptions
package requiresar_track_alvar
package. - Make sure to run the OpenManipulator controller instructions before running the instructions below.
If you use the ar_track_alvar
package to recognize the ar marker, print out the ar marker here.
NOTE:
-
To use the Raspberry Pi Camera V2, install it on the Remote PC
$ sudo apt-get install ros-kinetic-ar-track-alvar ros-kinetic-ar-track-alvar-msgs ros-kinetic-image-proc
$ cd ~/catkin_ws/src $ git clone https://github.com/zang09/open_manipulator_perceptions.git $ cd ~/catkin_ws && catkin_make
NOTE:
-
Realsense D435 ROS package must be installed.
$ roslaunch open_manipulator_ar_markers ar_pose.launch camera_model:=realsense_d435
Please, open the terminal window, run roscore as entering following command.
$ roscore
After run roscore, open the other terminal window and enter the following commands in the terminal.
NOTE: Choose either Controller
or Simulation Controller
to launch your controller.
$ roslaunch open_manipulator_6dof_controller open_manipulator_6dof_controller.launch
$ roslaunch open_manipulator_6dof_controller open_manipulator_6dof_controller.launch use_platform:=false
$ roslaunch open_manipulator_6dof_gazebo open_manipulator_6dof_gazebo.launch
After run controller, launch GUI program to manipulate OpenManipulator SARA.
$ roslaunch open_manipulator_6dof_control_gui open_manipulator_6dof_control_gui.launch
Run the following command to use camera.
$ roslaunch open_manipulator_ar_markers ar_pose.launch
Finally, launch the motion
node to perform the demonstration in the video.
$ roslaunch open_manipulator_motion open_manipulator_motion.launch
When you ready, click the START
button in the Motion
.
NOTE:
- This instruction has been tested on
Ubuntu 16.04
andROS Kinetic Kame
. - This instruction is supposed to be run on PC with ROS packages installed in. Please run the instruction below on your PC ROS packages installed in.
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. Shortcut key for terminal is Ctrl
+Alt
+t
.
Launch open_manipulator_6dof_teleop_keyboard
node for simple teleoperation test using the keyboard.
$ roslaunch open_manipulator_6dof_teleop open_manipulator_6dof_teleop_keyboard.launch
If the node is successfully launched, the following instruction will appeare in the terminal window.
---------------------------
Control Your OpenManipulator!
---------------------------
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
p : increase joint 5 angle
; : decrease joint 5 angle
[ : increase joint 6 angle
] : decrease joint 6 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 J5: 0.000 J6: 0.000
Present Kinematics Position X: 0.000 Y: 0.000 Z: 0.000
---------------------------
Install packages for teleoperation using PS4 joystick.
$ sudo apt-get install ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy
$ sudo pip install ds4drv
Connect PS4 joystick to the PC via Bluetooth using the following command
$ sudo ds4drv
Enter pairing mode with PS4 by pressing and holding Playstation button + share button for 10 sec. If the light on PS4 turns blue, enter the following commands in terminal and control OpenManipulator.
$ export ROS_NAMESPACE=/open_manipulator_6dof
$ roslaunch teleop_twist_joy teleop.launch
$ roslaunch open_manipulator_6dof_teleop open_manipulator_6dof_teleop_joystick.launch
Install packages for teleoperation using XBOX 360 joystick.
$ sudo apt-get install xboxdrv ros-kinetic-joy ros-kinetic-joystick-drivers ros-kinetic-teleop-twist-joy
Connect XBOX 360 joystick to the PC with Wireless Adapter or USB cable, and launch teleoperation packages for XBOX 360 joystick.
$ sudo xboxdrv --silent
$ export ROS_NAMESPACE=/open_manipulator_6dof
$ roslaunch teleop_twist_joy teleop.launch
$ roslaunch open_manipulator_6dof_teleop open_manipulator_6dof_teleop_joystick.launch
TIP: The terminal application can be found with the Ubuntu search icon on the top left corner of the screen. Shortcut key for terminal is Ctrl
+Alt
+t
.
Before you launch controller using MoveIt!, check open_manipulator_6dof_controller
launch file in open_manipulator_6dof_controller
package.
<launch>
<arg name="use_robot_name" default="open_manipulator_6dof"/>
<arg name="dynamixel_usb_port" default="/dev/ttyACM0"/>
<arg name="dynamixel_baud_rate" default="1000000"/>
<arg name="control_period" default="0.010"/>
<arg name="use_platform" default="true"/>
<arg name="use_moveit" default="false"/>
<arg name="planning_group_name" default="arm"/>
<group if="$(arg use_moveit)">
<include file="$(find open_manipulator_6dof_controller)/launch/open_manipulator_6dof_moveit.launch">
</include>
</group>
<node name="$(arg use_robot_name)" pkg="open_manipulator_6dof_controller" type="open_manipulator_6dof_controller" output="screen" args="$(arg dynamixel_usb_port) $(arg dynamixel_baud_rate)">
<param name="using_platform" value="$(arg use_platform)"/>
<param name="using_moveit" value="$(arg use_moveit)"/>
<param name="planning_group_name" value="$(arg planning_group_name)"/>
<param name="control_period" value="$(arg control_period)"/>
</node>
</launch>
After set the parameters, launch the open_manipulator_6dof_controller.
$ roslaunch open_manipulator_6dof_controller open_manipulator_6dof_controller.launch use_moveit:=true