Skip to content

astraw/Flyatar

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

ROS Installation (Ubuntu):
sudo apt-get install build-essential python-yaml cmake subversion wget git-core git-gui git-doc

New Users:
mkdir ~/bin
export PATH=~/bin:$PATH

Flyatar Git Repository:
git clone git://github.com/peterpolidoro/Flyatar.git ~/git/Flyatar
cp ~/git/Flyatar/ros/rosinstall ~/bin/

ROS Installation:
rosinstall ~/ros http://ros.org/rosinstalls/cturtle_pr2all.rosinstall
source ~/ros/setup.sh

rosinstall -o ~/ros/Flyatar ~/git/Flyatar/ros/flyatar.local.rosinstall
echo "source ~/ros/Flyatar/setup.sh" >> ~/.bashrc
. ~/.bashrc

Setting Groups and Permissions:
sudo adduser $USER disk
sudo groupadd usb
sudo adduser $USER usb
sudo cp ~/git/Flyatar/ros/udevrules/99*.rules /etc/udev/rules.d/
(restart computer)

Compiling:
rosmake flyatar_avatar

Updating Ros Code:
rosinstall -u ~/ros

Updating Flyatar Code:
cd ~/git/Flyatar
git pull origin master
rosinstall -u ~/ros/Flyatar

Controlling Just the Stage:
roslaunch stage_message_interface stage_message_interface.launch
<Open new terminal>
rosmsg show stage/StageCommands
<Example: Goto position 125,125 (mm in Stage coordinates) at 50 mm/s>
rostopic pub -1 /Stage/Commands stage/StageCommands -- [125] [125] [] [] [50]
<Example: Set velocity -6,8 (mm/s in Stage coordinates)>
rostopic pub -1 /Stage/Commands stage/StageCommands -- [] [] [-6] [8] []
<Example: Set velocity -6,8 (mm/s in Stage coordinates), equivalent to setting velocity to -3,4 with velocity magitude set to 10>
rostopic pub -1 /Stage/Commands stage/StageCommands -- [] [] [-3] [4] [10]
<Example: Set velocity -6,8 (mm/s in Stage coordinates), equivalent to setting velocity to -0.6,0.8 with velocity magitude set to 10>
rostopic pub -1 /Stage/Commands stage/StageCommands -- [] [] [-0.6] [0.8] [10]
<Example: Set velocity 5,5 (mm/s in Stage coordinates) for 160 ms (16 ms for every item in list, not counting last item) then stop (0 mm/s)>
rostopic pub -1 /Stage/Commands stage/StageCommands -- [] [] [5,5,5,5,5,5,5,5,5,5,0] [5,5,5,5,5,5,5,5,5,5,0] []
<Example: Move in a square pattern at 50 mm/s>
rostopic pub -1 /Stage/Commands stage/StageCommands -- [100,150,150,100,100] [100,100,150,150,100] [] [] [50]
<Example: Move in a square pattern at varying velocities, each velocity value sets the velocity of the move to reach the cooresponding x,y position>
rostopic pub -1 /Stage/Commands stage/StageCommands -- [100,150,150,100,100] [100,100,150,150,100] [] [] [50,10,70,30,50]

Calibration:
sudo mkdir /cameras
sudo chown $USER cameras/
roslaunch camera1394v2 flyatar_camera_cal_a.launch
<open new terminal>
rosmake image_view
rosrun image_view image_view image:=camera/image_raw
<open new terminal>
rosrun dynamic_reconfigure reconfigure_gui camera1394v2_node
<adjust camera and brightness, exposure, gain, and shutter values>
<record...>
<ctrl-c to shutdown flyatar_camera_cal_a.launch>
roslaunch camera1394v2 flyatar_camera_cal_b.launch
rosdep install camera_calibration
rosmake camera_calibration
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.030 image:=/camera/image_raw camera:=/camera
<wave 30 mm checkerboard in front of camera until calibrate button activates>
<click calibrate button>
<click commit button>
mv /tmp/calibration_00305300013c2f28.yaml /cameras/basler_a622f_calibration.yaml
cp /cameras/basler_a622f_calibration.yaml /cameras/basler_a622f_rect_calibration.yaml
roslaunch camera1394v2 flyatar_camera_cal_c.launch
<open new terminal>
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.030 image:=/camera/image_rect camera:=/camera
<wave 30 mm checkerboard in front of camera until calibrate button activates>
<click calibrate button>
<click commit button>
<transfer camera calibration info from /cameras/basler_a622f_calibration.yaml 
 and /cameras/basler_a622f_rect_calibration.yaml into 
 $(find flyatar_calibration)/calibration_data/camera_calibration_data.launch by hand>
roslaunch flyatar_calibration CameraPlate.launch
<use left joystick to move green circle until centered on plate>
<use right joystick to change green circle radius until on edges of plate>
<place checkerboard on plate>
<record mask radius and camera_plate_origin info into camera_plateimage_calibration_data.launch>
<record rvec and tvec info into camera_plate_calibration_data.launch>
rm /cameras/background.png
<remove all objects from plate, next step acquires a background image>
roslaunch track_image_contours track_image_contours_view_images.launch
<place magnet on plate, check to see if contour is found properly>
<power on stage motors, wait for Coolmuscle motors to home>
roslaunch flyatar_manual joystick_control.launch
<test to make sure joystick moves stage>
roslaunch flyatar_calibration StagePlate.launch
<drive magnet around randomly all over plate until calibration values seem to converge>
<record robot_min_ecc, robot_max_ecc, robot_min_area, robot_max_area in robotimage_calibration_data.launch>
<record translation vector and quaternion info in stage_plate_calibration_data.launch>

Run in Avatar Mode:
roslaunch flyatar_avatar avatar.launch

Compiling Stage USB Device Firmware:
mkdir ~/LUFA
cd ~/LUFA
wget http://lufa-lib.googlecode.com/files/LUFA-090605.zip
unzip LUFA-090605.zip
mv LUFA\ 090605/ LUFA090605
echo "export LUFA090605=~/LUFA/LUFA090605" >> ~/.bashrc

// wget http://lufa-lib.googlecode.com/files/LUFA-100807.zip
// unzip LUFA-100807.zip
// mv LUFA\ 100807/ LUFA100807
// echo "export LUFA100807=~/LUFA/LUFA100807" >> ~/.bashrc

. ~/.bashrc
sudo apt-get install gcc-avr avr-libc
mkdir ~/TEENSY
cd ~/TEENSY
wget http://www.pjrc.com/teensy/teensy.gz
gzip -d teensy.gz
chmod 755 teensy
sudo cp ~/git/Flyatar/ros/udevrules/49-teensy.rules /etc/udev/rules.d/
cd ~/ros/Flyatar/Flyatar/ros/actuation/stage/usb_device/
make clean
make
~/TEENSY/teensy &
# Press button on teensy board
# Select hex file in ~/ros/Flyatar/Flyatar/ros/actuation/stage/usb_device/
# Press 'Program' button on Teensy GUI 
# Press 'Reboot' button on Teensy GUI 

Releases

No releases published

Packages

No packages published

Languages

  • Python 59.2%
  • C++ 32.0%
  • C 8.8%