As we all know, a radish a pit, an Ubuntu a Ros. Ubuntu15.04 should have stopped maintenance, like the previous kind of brain remnants of the installation of Ros is generally impossible, no way to compile their own!! Although can not find the great God on this aspect of the post (╯﹏╰), but the man can't easily give up!!!
Beginning of the beginning, to account for some very important things, because this ghost has been stopped maintenance, so need to modify the source, or you can not be apt to anything (change to Ali source also useless ╮(╯▽╰)╭)
Edit the original source file/etc/apt/sources.list, replace the original http://ports.ubuntu.com/ubuntu-ports all with http://old-releases.ubuntu.com/ ubuntu/, then save and sudo apt-get update
Our approach is to download the ROS package and compile it on our own board. Nonsense not much to say, on the platform:
Hardware: Firefly RK3128 (have to spray!!!!) Official online unexpectedly only 15.04 a version, think all come to gas, after-sales technical support I will not say.
Software: ROS Jade
First give the ROS website address, although the error a lot, but still want to see (especially to engage in other people did not do things).
Lazy crossing the net or see the English giddy friend, look directly below ↓
Detailed installation steps (blood vomiting process, and the line and cherish):
1. Install boost
My board is new, so first to install boost, version 1 5 4. Reference Web page.
Install dependencies First:
sudo apt-get install Mpi-default-dev
sudo apt-get install Libicu-dev
sudo apt-get install Python-dev
sudo apt-get install Libbz2-dev
Then copy the Boost_1_54_0.tar to/home and enter, unzip:
TAR-ZXVF boost_1_54_0.tar.gz
Enter BOOST_1_54_0
sudo./bootstrap.sh
sudo./b2
sudo./b2 Install
Test:
New file Test.cpp, content:
#include <iostream>
#include <boost/lexical_cast.hpp>
int main ()
{
int a = boost::lexical_cast<int> ("123456");
Std::cout << a <<std::endl;
return 0;
}
Compile:
g++ Test.cpp-o Test
Run test and the output "123456" indicates a successful installation.
2. ROS Jade Source Package download
ROS download and installation is not through git what download package, nor through the CMake instructions installed, although not understand, but it's OK to do it.
First this way (why?) Don't ask me, I don't know. ):
sudo update-locale lang=c language=c lc_all=c lc_messages=posix
Add source (official source doesn't seem to work, this is mirror):
sudo sh-c ' echo ' deb Http://ros.exbot.net/rospackage/ros/ubuntu/vivid main ">/etc/apt/sources.list.d/ Ros-latest.list '
To configure the secret key:
sudo apt-key adv--keyserver hkp://ha.pool.sks-keyservers.net:80--recv-key 421c365bd9ff1f717815a3895523baeeb01fa116
Installation dependencies:
Apt-get Install PYTHON-ROSDEP python-rosinstall-generator python-wstool python-rosinstall python-empy python-nose
And then:
sudo rosdep init
ROSDEP Update
Then to download the ROS package, we download it to ROS_CATKIN_WS (where it should be):
mkdir ~/ros_catkin_ws
CD ~/ROS_CATKIN_WS
Download the download tool First:
Rosinstall_generator desktop_full--rosdistro Jade--deps--wet-only--tar > Jade-desktop-full-wet.rosinstall
A Jade-desktop-full-wet.rosinstall script will then appear. We are downloading the ROS Deluxe version (family bucket. ):
Wstool init-j8 src Jade-desktop-full-wet.rosinstall
Time has a moment, after the emergence of a src folder, which is the download good source code. Then install dependencies:
ROSDEP Install--from-paths src--ignore-src--rosdistro jade-y
3. ROS Jade Compilation
The real compilation process that is a terrible, in order to kiss not repeat, we first install something.
First install a simple little thing, Poco library:
sudo apt-get install Libpoco-dev Libgtest-dev
And then compile boost, does anyone say that the previous one has been compiled and installed? No problem, the previous is compiled, and the default installation under/usr/local, but into/usr/local/lib, you will find no libboost_thread the beginning of a few packages.
Rest assured, this compilation we only compile Libboost_thread this part, with the front also does not conflict, enters the BOOST_1_54_0:
sudo./b2--with-thread stage cxxflags= "-std=c++11"
Then copy the Stage/lib under Libboost_thread to/usr/local/lib.
If you do not do this well, there will be no problem with the Libboost_thread library after compiling.
Next, or boost, this time need to change the source:
Edit/usr/local/include/boost/atomic/atomic.hpp, add #include <stdint.h>
Otherwise the error may be:
"/usr/local/include/boost/atomic/atomic.hpp:202:43:error:invalid type in declaration before '; ' token typedef atomic& Lt;uintptr_t> atomic_uintptr_t; "
Then, download Console_bridge, the compilation process needs to enter/usr/local download:
git clone https://github.com/ros/console_bridge.git
Then compile:
CD Console_bridge
sudo mkdir build
CD Build
sudo cmake.
sudo make
sudo make install
will be installed under/usr/lcoal, however, we install this thing also need to modify one ha:
Edit/usr/local/include/console_bridge/console.h
Replace the inside of the Console_bridge_log with log (the Match case must be marked with a check mark, meaning case-sensitive), as if altogether replaced 5, 6, 7, 8 bar, not many.
This is the Console_bridge_logwarn and other functions into the Logwarn, and the ROS source code corresponding. Otherwise compile class-loader will be reported that function Logwarn and other functions are undefined.
Finally, you can compile the following:
CD ~/ROS_CATKIN_WS
./src/catkin/bin/catkin_make_isolated--install-dcmake_build_type=release
After the compilation succeeds, set the environment variable:
SOURCE ~/ros_catkin_ws/install_isolated/setup.bash
Isn't that a few questions?! library not installed, the library version is not correct, the installation location is wrong, at most is to change a few lines of the source, what ╮(╯▽╰)╭ (i,, I will blow a NB ....) Compile this scrap did not know how long time) hard work hard again haha
ubuntu15.04 + ROS Jade