Assignment for couse 'Software Architecture for Robotics' developped with EMARO lab in UNIGE, Italy.
Using Leapmotion as hand tracking sensor to control AR10 humanoid robotic hand of Active Robots
- ROS: Kinetic
- Leap SDK: 2.3.1+31549
- python: 2.7
- pyserial: 3.3
- append ENV variable PYTHONPATH with path to Leap SDK:
export PYTHONPATH=$PYTHONPATH:/leapSDK/lib:/leapSDK/lib/x64:/usr/lib/Leap
- run
catkin_make
to compile the project - you can add the user to group dialout so that the user can use the serial port without root previlage
- From Ubuntu 15.04 the upstart service system has been switched to systemd. The launch of leapd service may fail due to absence of upstart. Checkout here for further information. Instead of using service to auto-launch the daemon, you can run
sudo /usr/sbin/leapd --run
instead in a new console.
- ros_ar10_calibrate.py : calibrate the ar10 robotic hand and generate calibration file
- ros_ar10_check_calibration.py : check ar10 robotic hand calibration and calculate errors on each joint
- ros_ar10_hand_reset.py : set hand to open or close state
- ros_ar10_servo_pos_publisher.py : publish servo actual positions
- ros_ar10_servo_pos_listener.py : listen to servo actual positions
- ros_ar10_servo_pos_set_listener.py : listen to command to control servos
CMD Parameters in common:
-d DEVICE, --device DEVICE:serial device
-l, --left: use left hand
-r, --right: use right hand
ros_ar10_calibrate.py [-h] -d DEVICE (-l | -r)
ex:`rosrun ros_ar10 ros_ar10_calibrate.py -d /dev/ttyACM0 -r`
ros_ar10_check_calibration.py [-h] -d DEVICE (-l | -r)
ex: `rosrun ros_ar10 ros_ar10_check_calibration.py -d /dev/ttyACM0 -l`
ros_ar10_hand_reset.py [-h] -d DEVICE (-l | -r) (-o | -c)
-o, --open: open hand
-c, --close: close hand
ex: `rosrun ros_ar10 ros_ar10_hand_reset.py -d /dev/ttyACM0 -l -o`
ros_ar10_servo_pos_publisher.py [-h] -d DEVICE (-l | -r)
ex: `rosrun ros_ar10 ros_ar10_servo_pos_publisher.py -d /dev/ttyACM0 -l`
ros_ar10_servo_pos_listener.py [-h] (-l | -r)
ex: `rosrun ros_ar10 ros_ar10_servo_pos_set_listener.py -l`
ros_ar10_servo_pos_publisher.py [-h] -d DEVICE (-l | -r)
ex: `rosrun ros_ar10 ros_ar10_servo_pos_set_publisher.py -d /dev/ttyACM0 -l`
- ros_leap_publisher.py : publish leapmotion frame
- ros_leap_listener.py : listen to leapmotion frame
ros_leap_publisher.py
ex:`rosrun ros_leap ros_leap_publisher.py`
ros_leap_listener.py
ex:`rosrun ros_leap ros_leap_listener.py`
- rlac_mapper_calibrate.py : generate min and max calibration
- rlac_controller.py : controller to map leapmotion and ar10 robotic hand
- launch leapd daemon
- launch roscore
- calibrate two ar10 robotic hand
- calibrate rlac mapper :
rosrun rlac rlac_mapper_calibrate.py
rosrun ros_leap ros_leap_publisher.py
rosrun ros_ar10 ros_ar10_servo_pos_set_listener.py
on two serial port for left hand and right handrosrun rlac rlac_controller.py
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
- YANG Qiao yangqiao0505@me.com
- MASTROGIOVANNI Fulvio fulvio.mastrogiovanni@unige.it
- Alessandro CARFI alessandro.carfi@dibris.unige.it