Skip to content

Commit

Permalink
first commit for the installers
Browse files Browse the repository at this point in the history
  • Loading branch information
YaominJun committed Nov 10, 2020
1 parent 562085d commit 99c13d8
Show file tree
Hide file tree
Showing 7 changed files with 225 additions and 0 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "ipopt_install"]
path = ipopt_install
url = https://github.com/YaominJun/ipopt_install.git
42 changes: 42 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,44 @@
# installers_plan
the dependance install for the motion planning algorithm

##1.编译
###(1)grid_map_core
Could not find a package configuration file provided by "grid_map_core"
with any of the following names:
grid_map_coreConfig.cmake
grid_map_core-config.cmake
解决办法:
安装:
sudo apt-get update
sudo apt-get -y install ros-kinetic-pcl-ros ros-kinetic-costmap-2d ros-kinetic-grid-map
###(2)ceres求解器
fatal error: ceres/ceres.h: 没有那个文件或目录
解决办法:
bash ./installers_plan/install_ceres.sh
###(3)IPOPT求解器
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPkgConfig.cmake:532 (_pkg_check_modules_internal)
cmake/FindIPOPT.cmake:3 (pkg_check_modules)
CMakeLists.txt:24 (find_package)
解决办法:
先安装cppad:bash ./installers_plan/install_cppad.sh
再安装ipopt:bash ./ipopt_install/install_ipopt.bash
如果编译执行时遇到:/user/bin/ld: 找不到 -lgfortran
解决办法:
打开终端 -> locate gfortran.so -> sudo cp 含有gfortran.so的目录/该文件gfortran.so /user/local/lib
原因:[]()[找不到软链接原因](https://blog.csdn.net/weixin_43723326/article/details/103427351)[]()[找不到软链接](https://www.cnblogs.com/feifanrensheng/p/10039959.html) 系统的默认搜索依赖库路径为,/usr/local/lib。
###(4)benchmark
Could not find a package configuration file provided by "benchmark" with
any of the following names:
benchmarkConfig.cmake
benchmark-config.cmake
解决办法:
bash ./installers_plan/install_googlebenchmark.sh
###(5)rosparam handler
Could not find a package configuration file provided by "rosparam_handler"
with any of the following names:
rosparam_handlerConfig.cmake
rosparam_handler-config.cmake
解决办法:
bash ./installers_plan/install_rosparem_handler.sh
50 changes: 50 additions & 0 deletions install_ceres.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/bin/bash
set -e # exit on first error
UBUNTU_VERSION=`lsb_release --release | cut -f2`
SRC_PATH="/tmp"
CERES_VERSION=1.12.0

main(){
if [ $UBUNTU_VERSION == "16.04" ]; then
install_dependencies
install_ceres_solver
fi
}

install_dependencies() {
sudo apt-get update -qq
sudo apt-get install -qq -y cmake \
libgoogle-glog-dev \
libatlas-base-dev \
libeigen3-dev \
libsuitesparse-dev
}


install_ceres_solver() {
cd $SRC_PATH
# clone ceres-solver if directory does not already exist, or pull
if [ ! -d ceres-solver ]; then
git clone https://github.com/ceres-solver/ceres-solver.git
else
cd ceres-solver
git checkout master
git pull
cd ..
fi

# go into ceres-solver repo and prepare for build
cd ceres-solver
git checkout tags/${CERES_VERSION}
mkdir -p build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..

# compile and install
make -j$(nproc) 2>&1 | grep ...
sudo make install
}


# MAIN
main
43 changes: 43 additions & 0 deletions install_cppad.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash
set -e

main()
{
install_apt_pkgs
install_cppad
}

install_apt_pkgs() {
sudo apt-get update
sudo apt-get -y install cmake g++
}

install_cppad()
{
echo "Prepare to install CppAD ..."
CppAD="cppad"
VERSION="20180000.0"
CppAD_URL="http://www.coin-or.org/download/source/CppAD/$CppAD-$VERSION.gpl.tgz"
TEMP_DIR=$(mktemp -d)
CPPADDIR="$TEMP_DIR/$CppAD-$VERSION"
#sudo apt-get -qq install cmake
if ( ls /usr/include | grep cppad );then
echo "cppad is already installed......"
else
cd $TEMP_DIR
wget $CppAD_URL
tar -xf $CppAD-$VERSION.gpl.tgz
rm -f $CppAD-$VERSION.gpl.tgz
mkdir -p $CppAD-$VERSION/build
cd $CppAD-$VERSION/build
cmake \
-D cppad_cxx_flags="-Wall -ansi -pedantic-errors -std=c++11 -Wshadow" \
..
sudo make install
echo "CppAD installed successfully"
cd $TEMP_DIR
rm -rf $CppAD-$VERSION
fi
}

main
43 changes: 43 additions & 0 deletions install_googlebenchmark.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash
set -e # exit on first error
UBUNTU_VERSION=`lsb_release --release | cut -f2`
SRC_PATH="/tmp"
GOOGLE_BENCHMARK_VERSION=v1.5.2

main(){
if [ $UBUNTU_VERSION == "16.04" ]; then
install_google_benchmark
fi
}

install_google_benchmark() {
cd $SRC_PATH
# clone google-benchmark if directory does not already exist, or pull
if [ ! -d benchmark ]; then
git clone https://github.com/google/benchmark.git
git clone https://github.com/google/googletest.git benchmark/googletest
else
cd benchmark
git checkout master
git pull
cd ..
fi

# go into benchmark repo and prepare for build
cd benchmark
git checkout tags/${GOOGLE_BENCHMARK_VERSION}

# compile and install
cmake -E make_directory "build"
cmake -E chdir "build" cmake -DCMAKE_BUILD_TYPE=Release ../
cmake --build "build" --config Release

#test if it's successfully
#cmake -E chdir "build" ctest --build-config Release

echo "benchmark has been installed successfully if there's no error"
}


# MAIN
main
43 changes: 43 additions & 0 deletions install_rosparem_handler.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/bash
set -e # exit on first error
UBUNTU_VERSION=`lsb_release --release | cut -f2`
SRC_PATH="../ivrc_ws/src/"
PARAMHANDLER_VERSION=0.1.3

main(){
if [ $UBUNTU_VERSION == "16.04" ]; then
install_rosparam_handler
fi
}

install_rosparam_handler() {
cd $SRC_PATH
# clone ceres-solver if directory does not already exist, or pull
if [ ! -d rosparam_handler ]; then
git clone https://github.com/cbandera/rosparam_handler.git
else
cd rosparam_handler
git checkout master
git pull
cd ..
fi

# go into ceres-solver repo and prepare for build
cd rosparam_handler/
git checkout master
git checkout tags/${PARAMHANDLER_VERSION}
mkdir -p build
cd build

cmake -DBUILD_SHARED_LIBS=ON ..


# compile and install
make -j$(nproc) 2>&1 | grep ...
sudo make install

}


# MAIN
main
1 change: 1 addition & 0 deletions ipopt_install
Submodule ipopt_install added at 156662

0 comments on commit 99c13d8

Please sign in to comment.