当前位置: 首页 > news >正文

东莞网站建设设公司查询

东莞网站建设设,公司查询,提供建站服务的网络公司的比较,长春网站制作价格Ubuntu22.04上源码构建ROS noetic 起因准备环境创建工作目录并下载源码安装编译依赖包安装ros_comm和rosconsole包的两个补丁并修改pluginlib包的CMakeLists的编译器版本编译安装ROS noetic和ros_test验证 起因 最近在研究VINS-Mono从ROS移植到ROS2,发现在编写feat…

Ubuntu22.04上源码构建ROS noetic

  • 起因
  • 准备环境
  • 创建工作目录并下载源码
  • 安装编译依赖包
  • 安装ros_comm和rosconsole包的两个补丁并修改pluginlib包的CMakeLists的编译器版本
  • 编译安装ROS noetic和ros_test
  • 验证

起因

最近在研究VINS-Mono从ROS移植到ROS2,发现在编写feature_tracker的CMakeList.txt后,会出现找不到包含文件的问题,于是向先用ROS把VINS编译跑一下看看,便有了在Ubuntu 22.04虚拟机上再构建一个ROS的环境的想法,本来是想按照官网一步一步做就行了,然而到ROS的官方下载地址发现没有Ubuntu 22.04(jammy)版本和对应的Debian 12(Bookworm)的仓库。
在这里插入图片描述
所以按照ros官网安装步骤,在sudo apt update 这一步就止步了,原因就是Ros Noetic主要针对Ubuntu 20.04,并且不正式支持任何更新的发布了。
在这里插入图片描述
所以通过Google找到一个源码安装的方法,亲自验证后,在此分享给大家。

准备环境

  • 安装docker
  • 安装python3
  • 安装pip3
  • 安装git
  • 下载ROS Noetic基础包源码(此次可能需要借助梯子)

创建工作目录并下载源码

mkdir -p ~/ros_noetic_base_2204/catkin_ws/src

在src目录下执行脚本,下载ROS 包

#!/bin/bash
git clone https://github.com/ros/actionlib.git -b 1.14.0
git clone https://github.com/ros/bond_core.git -b 1.8.6
git clone https://github.com/ros/catkin.git -b 0.8.10
git clone https://github.com/ros/class_loader.git -b 0.5.0
git clone https://github.com/ros/cmake_modules.git -b 0.5.0
git clone https://github.com/ros/common_msgs.git -b 1.13.1
git clone https://github.com/ros/dynamic_reconfigure.git -b 1.7.3
git clone https://github.com/ros/gencpp.git -b 0.7.0
git clone https://github.com/jsk-ros-pkg/geneus.git -b 3.0.0
git clone https://github.com/ros/genlisp.git -b 0.4.18
git clone https://github.com/ros/genmsg.git -b 0.6.0
git clone https://github.com/RethinkRobotics-opensource/gennodejs.git -b 2.0.1
git clone https://github.com/ros/genpy.git -b 0.6.16
git clone https://github.com/ros/message_generation.git -b 0.4.1
git clone https://github.com/ros/message_runtime.git -b 0.4.13
git clone https://github.com/ros/nodelet_core.git -b 1.10.2
git clone https://github.com/ros/pluginlib.git -b 1.13.0
git clone https://github.com/ros/ros.git -b 1.15.8
git clone https://github.com/ros/ros_comm.git -b 1.16.0
git clone https://github.com/ros/ros_comm_msgs.git -b 1.11.3
git clone https://github.com/ros/ros_environment.git -b 1.3.2
git clone https://github.com/ros/rosbag_migration_rule.git -b 1.0.1
git clone https://github.com/ros/rosbag_migration_rule.git -b 1.0.1
git clone https://github.com/ros/rosconsole.git -b 1.14.3
git clone https://github.com/ros/rosconsole_bridge.git -b 0.5.4
git clone https://github.com/ros/roscpp_core.git -b 0.7.2
git clone https://github.com/ros/roslisp.git -b 1.9.25
git clone https://github.com/ros/rospack.git -b 2.6.2
git clone https://github.com/ros/std_msgs.git -b 0.5.13
git clone https://github.com/ros/angles.git
git clone https://github.com/ros/geometry.git 

返回到ros_noetic_base_2204目录,下载catkin_pkg和rospkg源码

git clone https://github.com/ros-infrastructure/catkin_pkg.git -b 0.5.2
git clone https://github.com/ros-infrastructure/rospkg.git -b 1.5.0

最后目录结构如下:
在这里插入图片描述

安装编译依赖包

sudo apt install -y cmake build-essential libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-regex-dev libboost-program-options-dev libconsole-bridge-dev libpoco-dev libtinyxml2-dev liblz4-dev libbz2-dev uuid-dev liblog4cxx-dev libgpgme-dev libgtest-dev python3-setuptools python3-nose python3-pycryptodome python3-defusedxml python3-mock python3-netifaces python3-gnupg python3-numpy python3-psutil

安装ros_comm和rosconsole包的两个补丁并修改pluginlib包的CMakeLists的编译器版本

  • 在~/ros_noetic_base_2204/catkin_ws/src/ros_comm目录下新建一个ros_comm.patch的文件,将ros_comm的补丁包的内容拷贝到该文件里(如果用wget直接下载该文件,需要在最后一行末尾加个回车,否则会报错error: corrupt patch at line 22)。
    在这里插入图片描述
    在该目录下执行git apply --ignore-whitespace ros_comm.patch 更新ros_comm包。
  • 在~/ros_noetic_base_2204/catkin_ws/src/rosconsole目录下用同样的方法将rosconsole.patch内容写到该目录的文件里,在该目录下执行git apply --ignore-whitespace rosconsole.patch 更新rosconsole.patch包。
  • 把pluginlib的CMakeList.txt文件中${PROJECT_NAME}_unique_ptr_test的C++编译器版本11改为17。
    在这里插入图片描述
diff --git a/pluginlib/CMakeLists.txt b/pluginlib/CMakeLists.txt
index 289c5af..1776c02 100644
--- a/pluginlib/CMakeLists.txt
+++ b/pluginlib/CMakeLists.txt
@@ -24,12 +24,12 @@ if(CATKIN_ENABLE_TESTING)endif()include(CheckCXXCompilerFlag)
-  check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
-  if(COMPILER_SUPPORTS_CXX11)
+  check_cxx_compiler_flag("-std=c++17" COMPILER_SUPPORTS_CXX17)
+  if(COMPILER_SUPPORTS_CXX17)catkin_add_gtest(${PROJECT_NAME}_unique_ptr_test test/unique_ptr_test.cpp)if(TARGET ${PROJECT_NAME}_unique_ptr_test)target_link_libraries(${PROJECT_NAME}_unique_ptr_test ${TinyXML2_LIBRARIES} ${catkin_LIBRARIES} ${Boost_LIBRARIES})
-      set_target_properties(${PROJECT_NAME}_unique_ptr_test PROPERTIES COMPILE_FLAGS -std=c++11 LINK_FLAGS -std=c++11)
+      set_target_properties(${PROJECT_NAME}_unique_ptr_test PROPERTIES COMPILE_FLAGS -std=c++17 LINK_FLAGS -std=c++17)add_dependencies(${PROJECT_NAME}_unique_ptr_test test_plugins)endif()endif()

编译安装ROS noetic和ros_test

cd ~/ros_noetic_base_2204/catkin_pkg && python3 setup.py install
cd ~/ros_noetic_base_2204/rospkg && python3 setup.py install
cd ~/ros_noetic_base_2204/catkin_ws
./src/catkin/bin/catkin_make install \-DCMAKE_BUILD_TYPE=Release \-DPYTHON_EXECUTABLE=/usr/bin/python3./src/catkin/bin/catkin_make install \-DCMAKE_BUILD_TYPE=Release \-DPYTHON_EXECUTABLE=/usr/bin/python3 \run_tests

验证

重新打开一个终端,输入如下命令验证。

source ~/ros_noetic_base_2204/catkin_ws/devel/setup.bash
roscore

在这里插入图片描述
参考:
Building ROS Noetic on Ubuntu 22.04

http://www.hkea.cn/news/106133/

相关文章:

  • 网站域名登记证明百度高级搜索怎么用
  • 国外网站在国内做镜像站点网站搭建费用
  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具
  • 深圳罗湖企业网站建设报价网络媒体发稿平台
  • 用别人公司域名做网站线下推广的渠道和方法
  • php mysql的网站开发外贸推广平台
  • 济南网站建设认可搜点网络能百度指数有三个功能模块
  • 网上商城网站建设意义在线代理浏览网页
  • 网站图片切换代码百度下载并安装最新版
  • 微信公众平台号申请注册入口杭州seo公司
  • 本周实时热点新闻事件seo文章代写一篇多少钱
  • 旺店通app手机企业版下载网站seo如何优化
  • 宝山区建设用地事务所网站网络公司有哪些
  • 用sql做简单的博客网站大连谷歌seo
  • 新手怎么学做网站就业培训机构有哪些
  • magento网站建设搭建网站步骤
  • 营销网站如何实现差异化南京seo公司
  • 服务器托管是啥搜索引擎优化排名培训
  • 山西手机网站建设网址大全123
  • b2c平台有哪些平台网址新区seo整站优化公司
  • WordPress突然全站404网站如何添加友情链接
  • 复制别人网站做第一站seo短视频网页入口引流下载
  • 基层建设论文收录在哪个网站百度统计api