The whole workspace for Team KameRider HouseKeeper General Purpose Service Robot(GPSR) Task
-
darknet_ros package
-
Code for ROS by example part 1
-
Turtlebot Arm packages
-
CMU OpenPose (Python Wrapper)
https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
(Recommand to add build options manually when build the pybind11 to choose the python2.7, because ROS does not support Python3...)
Recommand!!!
Maunally compile the openpose to set the Python Interpreter version==2.7.14(default python2)
Because ROS isn't compatible with Python3!!!
Using compile command as listed:
(1) compile pybind11(serve as the bridge between c++ codes and python codes, CMU use this to deploy the python api of OpenPose)
``` cd $(find openpose)/3rdparty/pybind11 mkdir build && cd build cmake -D PYBIND11_PYTHON_VERSION=2.7 -D PYTHON_EXECUTABLE=/usr/bin/python2.7 -D PYTHON_LIBRARY=/usr/lib/aarch64-linux-gnu/libpython2.7m.so .. make -j`nproc` ```
(2) compile OpenPose
``` cd $(find openpose) mkdir build && cd build cmake -D BUILD_CAFFE=ON -D BUILD_PYTHON=ON -D PYBIND11_PYTHON_VERSION=2.7 -D PYTHON_EXECUTABLE=/usr/bin/python2.7 -D PYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython2.7m.so .. make -j`nproc` ```
-
PocketSphinx (Python module) & pyaudio
sudo apt-get install libsound-dev swig python-pyaudio ros-kinetic-sound-play pip install pyaudio pocketsphinx git clone https://github.com/Pankaj-Baranwal/pocketsphinx
-
Turtlebot Description & Hardware:
-
kobuki base
-
kinect/hokuyo
-
astra
sudo apt-get install ros-kinetic-astra-launch ros-kinetic-astra-camera
unzip the OpenNI-Linux-x64-2.3 package
cd OpenNI-Linux-x64-2.3 sudo chmod a+x install.sh sudo ./install.sh
then installing the libuvc
git clone https://github.com/ktossell/libuvc cd libuvc mkdir build cd build cmake .. make && sudo make install
astra_launch/astra.launch needs to be modified
replace the default value of arg "camera" with "astra" to aviod two nodelet with the same name
-
turtlebot_arm
needs to update the turtlebot urdf files
After installing the rocon/kobuki/turtlebot packages
Replace the $(find turtlebot_description)/urdf/sensors/astra.urdf.xacro $(find turtlebot_description)/robots/kobuki_hexagons_kinect.urdf.xacro with the modified files
Add the hokuyo description file to $(find turtlebot_description)/urdf/sensors if necessary
Replace the $(find turtlebot_arm_description)/urdf/turtlebot_arm.urdf.xacro with the modified file
put the hokuyo.dae file into $(find turtlebot_description)/meshes/sensors
-
mic & speaker
-
Dividing the whole task into Five parts: Image Processing, Navigation, Speech Recognition & Human Robot Interaction(HRI), Arm Manipulation and Task Control Part
And I establish five packages for these five parts respectively, each package contains two ROS packages, one of them is CORE package, and the other is MESSAGE package. CORE package contains all nodes of its part, and the MESSAGE package contains the customized message files on which its part depends.
My essential idea is to seperate the General Packages and Task-Driven Packages and put them into two different ROS workspaces respectively. Consequently, We only need to replace the Task-Driven workspace when we switch to another task. ALL the General Packages like i mentioned in the Prerequirements Part will be put into a General ROS Workspace.