automatically download SDKs
This commit is contained in:
@@ -70,13 +70,14 @@ def find_colored_ball(frame, hsv_lower, hsv_upper, min_radius):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
M = cv2.moments(c)
|
M = cv2.moments(c)
|
||||||
center = (M["m10"] // M["m00"], M["m01"] // M["m00"])
|
center = (int(M["m10"] / M["m00"]),int(M["m01"] // M["m00"]))
|
||||||
return center, radius
|
return center, int(radius)
|
||||||
|
|
||||||
|
|
||||||
def draw_ball_markers(frame, center, radius, history):
|
def draw_ball_markers(frame, center, radius, history):
|
||||||
# draw the enclosing circle and ball's centroid on the frame,
|
# draw the enclosing circle and ball's centroid on the frame,
|
||||||
cv2.circle(frame, center, radius, (0, 255, 255), 1)
|
if center is not None and radius is not None:
|
||||||
|
cv2.circle(frame, center, radius, (255, 255, 0), 1)
|
||||||
cv2.circle(frame, center, 5, (0, 255, 0), -1)
|
cv2.circle(frame, center, 5, (0, 255, 0), -1)
|
||||||
|
|
||||||
# loop over the set of tracked points
|
# loop over the set of tracked points
|
||||||
@@ -87,7 +88,7 @@ def draw_ball_markers(frame, center, radius, history):
|
|||||||
# otherwise, compute the thickness of the line and
|
# otherwise, compute the thickness of the line and
|
||||||
# draw the connecting lines
|
# draw the connecting lines
|
||||||
thickness = int(np.sqrt(64 / float(i + 1)) * 2.5)
|
thickness = int(np.sqrt(64 / float(i + 1)) * 2.5)
|
||||||
cv2.line(frame, history[i - 1], history[i], (0, 0, 255), thickness)
|
cv2.line(frame, history[i - 1], history[i], (0, 255, 0), thickness)
|
||||||
|
|
||||||
return frame
|
return frame
|
||||||
|
|
||||||
@@ -112,11 +113,11 @@ def nao_demo():
|
|||||||
center, radius = find_colored_ball(
|
center, radius = find_colored_ball(
|
||||||
frame, red_lower, red_upper, min_radius
|
frame, red_lower, red_upper, min_radius
|
||||||
)
|
)
|
||||||
except TypeError: # No red ball found and function returned None
|
|
||||||
history.appendleft(None)
|
|
||||||
continue
|
|
||||||
history.appendleft(center)
|
history.appendleft(center)
|
||||||
draw_ball_markers(frame, center, radius, history)
|
draw_ball_markers(frame, center, radius, history)
|
||||||
|
except TypeError: # No red ball found and function returned None
|
||||||
|
history.appendleft(None)
|
||||||
|
draw_ball_markers(frame, None, None, history)
|
||||||
|
|
||||||
# show the frame to screen
|
# show the frame to screen
|
||||||
cv2.imshow("Frame", frame)
|
cv2.imshow("Frame", frame)
|
||||||
@@ -124,6 +125,7 @@ def nao_demo():
|
|||||||
|
|
||||||
finally:
|
finally:
|
||||||
vd_proxy.unsubscribe(cam_subscriber)
|
vd_proxy.unsubscribe(cam_subscriber)
|
||||||
|
cv2.destroyAllWindows()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -1,64 +1,35 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
echo "make naqui dir"
|
# Exit immediately if something fails
|
||||||
mkdir ~/naoqi
|
set -e
|
||||||
|
|
||||||
sleep 1
|
# opt is better that $HOME imho
|
||||||
|
naoqi_root='/opt/naoqi'
|
||||||
|
pynaoqi='pynaoqi-python2.7-2.1.4.13-linux32'
|
||||||
|
cppnaoqi='naoqi-sdk-2.1.4.13-linux32'
|
||||||
|
|
||||||
echo "copy the files into the naoqi folder"
|
echo "Make NAOQi root dir"
|
||||||
#cp naoqi-sdk-2.1.4.13-linux32.tar.gz pynaoqi-python2.7-2.1.4.13-linux32.tar.gz ~/naoqi
|
sudo mkdir ${naoqi_root}
|
||||||
cp pynaoqi-python2.7-2.1.4.13-linux32.tar.gz ~/naoqi
|
cd ${naoqi_root}
|
||||||
cd ~/naoqi
|
|
||||||
|
|
||||||
sleep 1
|
echo "Get the SDKs"
|
||||||
|
sudo wget \
|
||||||
|
'https://drive.google.com/uc?export=download&id=1cZYzD_kK-Ty3n7cqYcX1M7XMOSAs899O' \
|
||||||
|
-O "pynaoqi.tar.gz"
|
||||||
|
|
||||||
echo "Extract them"
|
sudo wget \
|
||||||
#tar xzf naoqi-sdk-2.1.4.13-linux32.tar.gz
|
'https://drive.google.com/uc?export=download&id=1qmT2GiRJ5icZkWScjKqCIErIevu8fLkF' \
|
||||||
tar xzf pynaoqi-python2.7-2.1.4.13-linux32.tar.gz
|
-O "cppnaoqi.tar.gz"
|
||||||
|
|
||||||
|
sudo tar xzf cppnaoqi.tar.gz && sudo rm cppnaoqi.tar.gz
|
||||||
|
sudo tar xzf pynaoqi.tar.gz && sudo rm pynaoqi.tar.gz
|
||||||
|
|
||||||
echo "Add the NAOqi library path to PYTHONPATH"
|
echo "Add the NAOqi library path to PYTHONPATH"
|
||||||
export PYTHONPATH=~/naoqi/pynaoqi-python2.7-2.1.4.13-linux32:$PYTHONPATH
|
export PYTHONPATH="${naoqi_root}/${pynaoqi}:$PYTHONPATH"
|
||||||
|
|
||||||
echo "make this permanently available for every future terminal"
|
echo "Make this permanently available for every future terminal"
|
||||||
echo 'export PYTHONPATH=~/naoqi/pynaoqi-python2.7-2.1.4.13-linux32:$PYTHONPATH' >> ~/.bashrc
|
echo 'export PYTHONPATH="'"${naoqi_root}/${pynaoqi}"':$PYTHONPATH"' \
|
||||||
|
>>${HOME}/.profile
|
||||||
|
|
||||||
echo "install ros packages for nao"
|
echo "Install ROS packages for Nao"
|
||||||
sudo apt-get install ros-indigo-nao-robot
|
sudo apt-get install ros-indigo-nao-robot
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'''
|
|
||||||
echo "Setting up sources.list"
|
|
||||||
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
|
|
||||||
sleep 1
|
|
||||||
echo "Set up your keys"
|
|
||||||
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "Doing apt update"
|
|
||||||
sudo apt update
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "installing ros"
|
|
||||||
#sudo apt-get install ros-indigo-desktop-full
|
|
||||||
sudo apt-get install ros-indigo-desktop
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "Initialize rosdep"
|
|
||||||
sudo rosdep init
|
|
||||||
sleep 1
|
|
||||||
rosdep update
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "Environment setup"
|
|
||||||
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
|
|
||||||
sleep 1
|
|
||||||
source ~/.bashrc
|
|
||||||
|
|
||||||
sleep 1
|
|
||||||
echo "getting rosinstall"
|
|
||||||
sudo apt install python-rosinstall
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|||||||
@@ -1,35 +1,31 @@
|
|||||||
#!/bin/sh
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Exit if something fails
|
||||||
|
set -e
|
||||||
|
|
||||||
echo "Setting up sources.list"
|
echo "Setting up sources.list"
|
||||||
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
|
sudo bash -c \
|
||||||
sleep 1
|
'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" \
|
||||||
echo "Set up your keys"
|
>/etc/apt/sources.list.d/ros-latest.list'
|
||||||
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
|
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "Doing apt update"
|
echo "Set up repository keys"
|
||||||
sudo apt update
|
sudo apt-key adv \
|
||||||
sleep 1
|
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
|
||||||
|
--recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
|
||||||
|
|
||||||
echo "installing ros"
|
echo "Update packages list"
|
||||||
#sudo apt-get install ros-indigo-desktop-full
|
sudo apt-get update
|
||||||
|
|
||||||
|
echo "Install ROS"
|
||||||
sudo apt-get install ros-indigo-desktop
|
sudo apt-get install ros-indigo-desktop
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "Initialize rosdep"
|
echo "Initialize rosdep"
|
||||||
sudo rosdep init
|
sudo rosdep init
|
||||||
sleep 1
|
|
||||||
rosdep update
|
rosdep update
|
||||||
sleep 1
|
|
||||||
|
|
||||||
echo "Environment setup"
|
echo "Environment setup"
|
||||||
echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
|
echo "source /opt/ros/indigo/setup.bash" >>${HOME}/.bashrc
|
||||||
sleep 1
|
source ${HOME}/.bashrc
|
||||||
source ~/.bashrc
|
|
||||||
|
|
||||||
sleep 1
|
echo "Get rosinstall"
|
||||||
echo "getting rosinstall"
|
sudo apt-get install python-rosinstall
|
||||||
sudo apt install python-rosinstall
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
|
|||||||
Reference in New Issue
Block a user