seed-solutions / aero-ros-pkg

AERO (SEEDNOID) ROS Package
15 stars 18 forks source link

aero-ros-pkg

Build Status

Pre-requirement

Install ROS

Install ROS kinetic [Recommended]

or

Install ROS indigo

sudo apt-get install ros-${ROS_DISTRO}-desktop-full

Setup catkin workspace

sudo apt-get install python-wstool python-catkin-tools
mkdir -p ~/ros/${ROS_DISTRO}
cd ~/ros/${ROS_DISTRO}
wstool init src
catkin init
catkin build
source ~/ros/${ROS_DISTRO}/devel/setup.bash

source setup.bash in ~/.bashrc

Please add the following line to ~/.bashrc

source ~/ros/${ROS_DISTRO}/devel/setup.bash

Install

Clone repository and Setup ROS binary packages

cd ~/ros/${ROS_DISTRO}/src
wstool set aero-ros-pkg https://github.com/seed-solutions/aero-ros-pkg.git --git
wstool up aero-ros-pkg
cd ~/ros/${ROS_DISTRO}
rosdep install -y -r --from-paths src --ignore-src

You may need sudo rosdep init and rosdep update before rosdep install. Please follow the terminal message.

Build packge

Build aero_description

cd aero-ros-pkg
catkin build aero_description
source ~/.bashrc

Setup aero_startup

In the initial stage, aero_startup is not ros package, it has no CMakeLists.txt. CMakeLists.txt and some controller modules are generated by aero_description/setup.sh. setup.sh requires robot directory as an argument e.g. setup.sh typeFCET.

roscd aero_description
./setup.sh typeF  # including catkin build aero_startup
source ~/.bashrc

If you need clean up aero_startup, please use aero_description/clean.sh.

Control AERO

Setup udev

T.B.D.

If USB connect your local PC from robot_pc,

udev_setting

First,

sudo cp ~/{your_workspace}/src/aero-ros-pkg/aero_startup/aero_hardware_interface/udev/90-aero.rules /etc/udev/rules.d

Second, please connect only the USB connector from upper_body,

udevadm info /dev/ttyUSB0 | grep "ID_SERIAL_SHORT" 

Please overwrite the displayed serial number in /etc/udev/rules.d/90-aero.rules

For example,

ATTRS {idProduct} == "6001", ATTRS {serial} == "FT98HN7S", MODE = "0403", ATTRS {idVendor} == "0403", ETR: ID_SERIAL_SHORT = FT98HN7S, 666 ", SYMLINK + =" aero_upper "

Similarly, plug and unplug USB in lower body (command confirmed)

Run controllers

roslaunch aero_startup aero_bringup.launch

If you want to move wheels, please refer aero_move_base.

View Robot Model

rosrun rviz rviz

then add RobotModel

Simulation

See aero_gazebo

MoveIt

maintenance

Samples

Build Samples

catkin build aero_samples

Run Minimum Sample

rosrun aero_samples minimum_sample_node

Control from Command Line

Move Torso

rostopic pub /lifter_controller/command trajectory_msgs/JointTrajectory "header:
  seq: 0
  stamp:
    secs: 0
    nsecs: 0
  frame_id: ''
joint_names:
- 'ankle_joint'
- 'knee_joint'
points:
- positions: [0.5, -0.5]
  velocities: [0, 0]
  accelerations: [0, 0]
  effort: [0, 0]
  time_from_start: {secs: 3, nsecs: 0}"

Move hands

## Open
rosservice call /aero_hand_controller "{hand: $(python -c 'import aero_startup.srv; print aero_startup.srv.HandControlRequest.HAND_RIGHT'), command: $(python -c 'import aero_startup.srv; print aero_startup.srv.HandControlRequest.COMMAND_UNGRASP'), power: 0, time_sec: 0}"

## Grasp
rosservice call /aero_hand_controller "{hand: $(python -c 'import aero_startup.srv; print aero_startup.srv.HandControlRequest.HAND_RIGHT'), command: $(python -c 'import aero_startup.srv; print aero_startup.srv.HandControlRequest.COMMAND_GRASP'), power: 0, time_sec: 1.0}"

## Angle
rosservice call /aero_hand_controller "{hand: $(python -c 'import aero_startup.srv; print aero_startup.srv.HandControlRequest.HAND_RIGHT'), command: $(python -c 'import aero_startup.srv; print aero_startup.srv.HandControlRequest.COMMAND_GRASP_ANGLE'), power: 0, time_sec: 1.0, larm_angle: 0.5, rarm_angle: 0.5}"

Writing Codes

see aero_samples and aero_std documentation

Build check and test by Docker

install docker https://docs.docker.com/install/linux/docker-ce/ubuntu/

build docker image under aero-ros-pkg directory

docker build -f Dockerfile.kinetic --tag ros:aero_kinetic --build-arg RUN_TESTS=true .

PS3 Joy Stick Teleop

Launch move base

roslaunch aero_startup wheel_with_static_map.launch

ps4_1 ps4_2

Usage

Teleoperate aero using ps3 controller!

Basic Mode

Button Function
0 Change to Joint Mode
1 Forward/Backward move base (with 10), Up/Down lifter (with 11)
2 Control forward/backward driving
3 Change to Basic Mode
4 Not used
5 Not used
6 Arm tuck
7 Not used
8 Not used
9 Not used
10 Move Teleop
11 Lifter Teleop
12 Not used
13 Close Right Hand
14 Open Hand
15 Close Left Hand
16 Reset Pose

Joint Mode

Button Function
0 Change to Joint Mode
1 Control Joint Angle
2 Not userd
3 Change to Basic Mode
4 Control Joint Angle
5 Control Joint Angle
6 Control Joint Angle
7 Control Joint Angle
8 Control Left Forearm
9 Control Right Forearm
10 Control Left Upper Arm
11 Control Right Upper Arm
12 Control Neck
13 Control Right Wrist
14 Control Torso
15 Control Left Wrist
16 Pair/unpair with robot