Skip to content

zang09/open_manipulator_6dof_application

Repository files navigation

Open_manipulator_6dof_application

Videos related to open_manipulator_6dof_application

How to launch demonstration?

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.

Overview

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.

Specifications

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

Installation

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

Execution

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

Reference

NOTE:

  • This instructions were tested on Ubuntu 16.04 and ROS Kinetic Kame.
  • The open_manipulator_perceptions package requires ar_track_alvar package.
  • Make sure to run the OpenManipulator controller instructions before running the instructions below.

Downlaods AR Marker

If you use the ar_track_alvar package to recognize the ar marker, print out the ar marker here.

Installation

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

Execution

[Realsense D435]

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.

1.1. Controller

$ roslaunch open_manipulator_6dof_controller open_manipulator_6dof_controller.launch

1.2. Simulation Controller

$ 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 and ROS 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

About

ROBOTIS Intern Project 'OPENMANIPULATOR SARA'

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published