ubuntu 22.04源码装ros1 noetic
源码工程连接(代码部分的调整已经修改):/download/zyh821351004/88729016
文章目录
- ubuntu 22.04源码装ros1 noetic
- 1. 安装依赖
- 2. 更换rosdep相关的rep链接
- 3. 安装 rosdep
- 4. 创建工作空间下载源码并安装
- 5. 编译代码
- 5.1 修复rosconsole* log相关问题**error**
- 5.3 python-sip配置相关
- 5.4 *std::share_mutex* 相关 c++11 与c++17
- 5.5 opencv库的安装
- 5.6 assimp 库安装
- 5.7 ogre库的安装
- 5.8 ogre库中class Vector3 传统问题
- 6. 安装版
- 24.04
参考链接
/Meltwin/fe2c15a5d7e6a8795911907f627255e0
1. 安装依赖
sudo apt-get install python3-rosdep python3-rosinstall-generator python3-vcstools python3-vcstool build-essential
2. 更换rosdep相关的rep链接
( 如果用下载好的源码,rosdep的配置看似可以忽略)
参考:/zyh821351004/article/details/135519444?spm=1001.2014.3001.5501
mkdir -p ~/.ros/rosdep
cd ~/.ros/rosdep
~/.ros/rosdep$ git clone git@:ros/
cat rosdep//
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/ osx
# generic
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/
gbpdistro file:///home/robot/.ros/rosdep/rosdistro/releases/ fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro instead
sudo gedit /etc/ros/rosdep//
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/ osx
# generic
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/
yaml file:///home/robot/.ros/rosdep/rosdistro/rosdep/
gbpdistro file:///home/robot/.ros/rosdep/rosdistro/releases/ fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro instead
sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py
#DEFAULT_SOURCES_LIST_URL = '/ros/rosdistro/master/rosdep//'
DEFAULT_SOURCES_LIST_URL = 'file:///home/robot/.ros/rosdep/rosdistro/rosdep//'
sudo gedit /usr/lib/python3/dist-packages/rosdep2/
#REP3_TARGETS_URL = '/ros/rosdistro/master/releases/'
REP3_TARGETS_URL = 'file:///home/robot/.ros/rosdep/rosdistro/releases/'
sudo gedit /usr/lib/python3/dist-packages/rosdistro/init.py
#DEFAULT_INDEX_URL = '/ros/rosdistro/master/'
DEFAULT_INDEX_URL = 'file:///home/robot/.ros/rosdep/rosdistro/'
sudo rm /etc/ros/rosdep//
sudo rosdep init
rosdep update
3. 安装 rosdep
sudo rosdep init
rosdep update
4. 创建工作空间下载源码并安装
mkdir ./noetic_ws
cd ./noetic_ws
rosinstall_generator desktop --rosdistro noetic --deps --tar >
mkdir ./src
vcs import --input ./src
rosdep install --from-paths ./src --ignore-packages-from-source --rosdistro noetic -y
等待下载完成
备份打包源码 ****_下载:
737行
类似:
- tar:
local-name: actionlib/actionlib
uri: /ros-gbp/actionlib-release/archive/release/noetic/actionlib/1.14.
version: actionlib-release-release-noetic-actionlib-1.14.0-1
- tar:
local-name: angles
uri: /ros-gbp/geometry_angles_utils-release/archive/release/noetic/angles/1.9.
version: geometry_angles_utils-release-release-noetic-angles-1.9.13-1
/opt/ros/noetic_ws/src$ ls
actionlib metapackages rqt_moveit
angles navigation_msgs rqt_msg
bond_core nodelet_core rqt_nav_view
catkin pluginlib rqt_plot
class_loader python_qt_binding rqt_pose_view
cmake_modules qt_gui_core rqt_publisher
common_msgs qwt_dependency rqt_py_console
common_tutorials resource_retriever rqt_reconfigure
control_msgs robot_state_publisher rqt_robot_dashboard
diagnostics ros rqt_robot_monitor
dynamic_reconfigure rosbag_migration_rule rqt_robot_plugins
executive_smach ros_comm rqt_robot_steering
filters ros_comm_msgs rqt_runtime_monitor
gencpp rosconsole rqt_rviz
geneus rosconsole_bridge rqt_service_caller
genlisp roscpp_core rqt_shell
genmsg ros_environment rqt_srv
gennodejs roslint rqt_tf_tree
genpy roslisp rqt_top
geometry rospack rqt_topic
geometry2 ros_tutorials rqt_web
geometry_tutorials rqt rviz
gl_dependency rqt_action std_msgs
image_common rqt_bag urdf
interactive_markers rqt_common_plugins urdf_tutorial
joint_state_publisher rqt_console vision_opencv
kdl_parser rqt_dep visualization_tutorials
laser_geometry rqt_graph webkit_dependency
media_export rqt_image_view xacro
message_generation rqt_launch
message_runtime rqt_logger_level
5. 编译代码
依赖库先安装
sudo apt install -y libpoco-dev ros-cmake-modules
sudo apt install -y liburdfdom-headers-dev liburdfdom-tools liburdfdom-dev
sudo apt-get install -y libbz2-dev
sudo apt-get install -y libgpgme-dev
sudo apt install -y libboost-all-dev uuid-dev python3-nose google-mock libgtest-dev libbz2-dev libgpgme-dev libssl-dev python3-coverage libboost-program-options-dev python3-psutil python3-opengl python3-pygraphviz python3-pydot qt5-qmake sbcl libapr1-dev libaprutil1-dev libboost-regex-dev liblog4cxx-dev python3-matplotlib libpyside2-dev libshiboken2-dev pyqt5-dev python3-pyqt5 python3-sip-dev shiboken2 lm-sensors graphviz python3-paramiko python3-pycryptodome python3-gnupg python3-defusedxml libcurl4-openssl-dev libpoco-dev libogre-1.9-dev libassimp-dev libogre-1.9.0v5 libyaml-cpp-dev libgl1-mesa-dev libglu1-mesa-dev libqt5opengl5 libqt5opengl5-dev libopencv-dev python3-opencv python3-pykdl tango-icon-theme liborocos-kdl-dev libtinyxml-dev libtinyxml2-dev liburdfdom-headers-dev python3-numpy python3-empy libboost-filesystem-dev libboost-thread-dev python3-pygraphviz python3-pygraphviz python3-mock libboost-date-time-dev libboost-system-dev liburdfdom-dev libboost-chrono-dev libboost-dev libqt5core5a libqt5gui5 libqt5widgets5 qtbase5-dev libconsole-bridge-dev liblz4-dev exfatprogs
./src/catkin/bin/catkin_make_isolated -DCMAKE_BUILD_TYPE=Release
会遇到一些列报错:
5.1 修复rosconsole* log相关问题error
用rosconsole_log4cxx.cpp里面的代码全部替换源代码src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp
替代rosconsole_log4cxx.cpp
/kintzhao/3947142d3161e11e5a0c326b79e9ebdb### 5.2 qt5库相关的安装
sudo apt install libqt5widgets5 qtcreator qtbase5-dev qt5-qmake cmake
5.3 python-sip配置相关
sudo apt install sip-dev python3-sip-dev
sudo apt install python3-pyqt5 pyqt5-dev
5.4 std::share_mutex 相关 c++11 与c++17
下载 change_cpp.py 文件到ws路径下,change_cpp.py
import os
from colorama import Fore, Style
WANTED_WIDTH = 100
DISPLAY_WIDTH = min(WANTED_WIDTH, os.get_terminal_size().columns - 2)
print("┏" + "".center(DISPLAY_WIDTH, "━") + "┓")
print(f"┃{Fore.RED}" + "CMakeLists to C++17 Utils".center(DISPLAY_WIDTH, " ") + f"{Style.RESET_ALL}┃")
print(f"┃{Style.BRIGHT+ Fore.BLACK}" + "Meltwin - 2023".center(DISPLAY_WIDTH, " ") + f"{Style.RESET_ALL}┃")
print("┗" + "".center(DISPLAY_WIDTH, "━") + "┛")
print()
REPLACE_FILTER = {
"-std=c++11":"-std=c++17",
"COMPILER_SUPPORTS_CXX11": "COMPILER_SUPPORTS_CXX17",
"CMAKE_CXX_STANDARD 11": "CMAKE_CXX_STANDARD 17",
"CMAKE_CXX_STANDARD 14": "CMAKE_CXX_STANDARD 17"
}
def fix_cmakelist(cmakelist_path: str) -> None:
print(f"{Fore.YELLOW}▷ {Fore.RESET}Found {Fore.RED}{cmakelist_path}{Fore.RESET}", end=" ")
with open(cmakelist_path, "r") as handle:
data = handle.read()
# Replacing
changed = False
for key, value in REPLACE_FILTER.items():
if data.find(key) != -1:
data = data.replace(key, value)
changed = True
if changed:
with open(cmakelist_path, "w") as handle:
handle.write(data)
print(f"{Fore.GREEN}Fixed !" if changed else f"{Fore.BLUE}Nothing to change")
def walk_dir(dir: str, depth = 0) -> None:
if depth >=2:
return
for d in os.listdir(dir):
cmakelist_path = f"{dir}/{d}/"
if not os.path.isfile(cmakelist_path):
walk_dir(f"{dir}/{d}", depth+1)
else :
fix_cmakelist(cmakelist_path)
if __name__ == "__main__":
# Get all the
walk_dir("./src")
将当前src目录下工程cmake中c++17方式的调整为c++11
python3 change_cpp.py
5.5 opencv库的安装
sudo apt install libopencv-dev
5.6 assimp 库安装
sudo apt install libassimp-dev python3-pyassimp
5.7 ogre库的安装
sudo apt install libogre-1.12-dev
sudo apt install libogre1.12.10
5.8 ogre库中class Vector3 传统问题
(下载的源码已调整)
注释掉文件plant_flag_tool.h imu_visual.h 中的class Vector3 定义
gedit /opt/ros/noetic_ws/src/visualization_tutorials/rviz_plugin_tutorials/src/plant_flag_tool.h
namespace Ogre
{
class SceneNode;
//class Vector3;
}
gedit /opt/ros/noetic_ws/src/visualization_tutorials/rviz_plugin_tutorials/src/imu_visual.h
namespace Ogre
{
//class Vector3;
class Quaternion;
}
编译基本就可以通过了,一共184个包
<== Finished processing package [184 of 184]: 'xacro'
6. 安装版
当前路径安装 或 指定路径安装
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/noetic
注意:
注意:
注意:
执行build(操作5),再执行(操作6)会遇到msgs的一些依赖问题。 请删除原build_isolated和devel_isolated,整体重新运行带install
=================================
24.04
sudo apt install libqt5widgets5 qtcreator qtbase5-dev qt5-qmake cmake
sudo apt install sip-dev python3-sip-dev
sudo apt install python3-pyqt5 pyqt5-dev
sudo apt install gedit
sudo apt install libogre-1.12-dev
sudo apt install libogre1.12.10
sudo apt install libboost-dev libboost-thread-dev libpoco-dev libboost-filesystem-dev libboost-prog libboost-program-options-dev libboost-regex-dev liblog4cxx-dev libtinyxml-dev python3-nose liburdfdom-dev libgpgme-dev libboost-timer-dev libboost-python-dev
logger->forcedLog(g_level_lookup[level], str, log4cxx::spi::LocationInfo(file, file, function, line));
/votca/votca/pull/1083/commits/f4703be55622bb69bb2dcc49c3f50fdb920b7614
//#include <boost/>
#include <boost/timer/progress_display.hpp>
boost::scoped_ptr<boost::timer::progress_display> progress;