Skip to content

Robot Arm Attachment

Bruce Allen edited this page May 27, 2020 · 11 revisions

Conclusion: We work out how to use the Oberon7 arm on the UUV.

This page examines the following:

  • Joystick controller.
  • Robot arm.
  • Attaching the arm to the UUV.
  • Run the simulation to manipulate the arm

Joystick Controller

We start with a Logictech F310 Gamepad controller. It has 6 analog inputs and about 10 buttons. We map inputs to control joints on the UUV's arm.

The joystick plugs in using USB and is available at /dev/input/js0. In typing ls -l /dev/input/js0, we see that we might need to widen permissions by typing sudo chmod a+rw /dev/input/jsX.

From http://wiki.ros.org/joy/Tutorials/ConfiguringALinuxJoystick:

  • Start roscore
  • Somewhere type rosparam set joy_node/dev "/dev/input/js0".
  • Start joysick node: rosrun joy joy_node. Maybe disregard "force feedback" error.
  • Start rostopic: rostopic echo joy.
  • Move joystick controls to see parameters change.

We use the joy ROS joystick driver (https://docs.ros.org/api/joy/html/) joy_node node which provides message "Joy" which carries all joystick data. Joy tutorials: http://wiki.ros.org/joy/Tutorials. The first tutorial to obtain joy messages. The second tutorial consumes joy messages to produce twist messages.

Robot Arm

We need a 6 DOF manipulator.

niryo_one_ros

https://github.com/NiryoRobotics/niryo_one_ros

Katana (not available)

Not available for Melodic. Here are references.

uuv_manipulator

The uuv_manipulator repository contains several arms designed for use with uuv_simulator. These include oberon4 and oberon7. They have very little documentation but oberon7 seems to have at least 6 degrees of freedom. oberon4 may also.

It is trivial to get these attached to the rexrov system:

1 . Install uuv_simulator.

2 . Change into the src directory of the uuv_simulator workspace and clone the uuv_manipulator repository:

git clone https://github.com/uuvsimulator/uuv_manipulators.git

3 . Build your catkin workspace

cd ~/catkin_ws
catkin_make # or <catkin build>, if you are using catkin_tools

4 . Start uuv_simulator:

roslaunch uuv_gazebo_worlds ocean_waves.launch

5 . In a separate window, spawn a system with the oberon4 arm attached:

roslaunch uuv_descriptions upload_rexrov_oberon4.launch mode:=default x:=0 y:=0 z:=-20 namespace:=rexrov

or the oberon7 arm

roslaunch uuv_descriptions upload_rexrov_oberon7.launch mode:=default x:=0 y:=0 z:=-20 namespace:=rexrov

or both

roslaunch uuv_descriptions upload_rexrov_oberon_arms.launch mode:=default x:=0 y:=0 z:=-20 namespace:=rexrov

Controlling oberon4 and oberon7 with a gamepad.

Partial progress: Installing uuv_simulator makes available a number of launchers in the oberon7_control package. For example:

roslaunch oberon7_control joint_effort_controllers.launch uuv_name:=rexrov

seems promising. However, this currently results in the following errors:

[INFO] [1572461853.162561, 0.000000]: Loading controller: /rexrov/oberon7/azimuth/controller
[ERROR] [1572461873.656797, 357.492000]: Failed to load /rexrov/oberon7/azimuth/controller
[INFO] [1572461873.659567, 357.496000]: Loading controller: /rexrov/oberon7/shoulder/controller
[ERROR] [1572461874.667834, 358.502000]: Failed to load /rexrov/oberon7/shoulder/controller
[INFO] [1572461874.669778, 358.504000]: Loading controller: /rexrov/oberon7/elbow/controller
[ERROR] [1572461875.676637, 359.510000]: Failed to load /rexrov/oberon7/elbow/controller
[INFO] [1572461875.678777, 359.512000]: Loading controller: /rexrov/oberon7/roll/controller
[ERROR] [1572461876.685732, 360.518000]: Failed to load /rexrov/oberon7/roll/controller
[INFO] [1572461876.688153, 360.520000]: Loading controller: /rexrov/oberon7/pitch/controller
[ERROR] [1572461877.695606, 361.526000]: Failed to load /rexrov/oberon7/pitch/controller
[INFO] [1572461877.697557, 361.528000]: Loading controller: /rexrov/oberon7/wrist/controller
[ERROR] [1572461878.704791, 362.534000]: Failed to load /rexrov/oberon7/wrist/controller

These could be produced by a conflict with something I already have running, or by failure to correctly provide command-line options, or something else. Currently investigating.

Typing:

rosservice list

shows services including /rexrov/* services such as camera and thrusters. I expect this list should include /rexrov/oberon7/wrist/controller.

In the Gazebo GUI, in the World tab, we see Models/rexrov/oberon7 with parts including wrist_link.

Clone this wiki locally