ubuntu 24.04安装ros1 noetic

为了后续能够找到安装方法,记录一下:

参考如下链接安装:

https://www.reddit.com/r/ROS/comments/158icpy/compiling_ros1_noetic_from_source_on_ubuntu_2204/

安装步骤如下:

1.获取apt 包

复制代码
sudo apt-get install python3-rosdep python3-rosinstall-generator python3-vcstools python3-vcstool build-essential

2.下载源文件

复制代码
sudo rosdep init && rosdep update

mkdir ~/ros_catkin_ws && cd ~/ros_catkin_ws

rosinstall_generator desktop --rosdistro noetic --deps --tar > noetic-desktop.rosinstall

mkdir ./src && vcs import --input noetic-desktop.rosinstall ./src

3.源文件修改

a、将源文件中所有CMakelist中编译标准改为c++ 17.

b、./src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp 文件中作如下修改:

复制代码
Line 169: logger->addAppender(std::make_shared<ROSConsoleStdioAppender>());
Line 203: return log4cxx::Logger::getLogger(name).get();
Line 219: log4cxx::spi::LoggerRepositoryPtr repo(log4cxx::Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository());
Line 355: std::shared_ptr<Log4cxxAppender> g_log4cxx_appender;
Line 359: g_log4cxx_appender = std::make_shared<Log4cxxAppender>(appender);
Line 369: g_log4cxx_appender.reset();
Line 386: std::shared_ptr<log4cxx::spi::LoggerRepository>(log4cxx::Logger::getRootLogger()->getLoggerRepository())->shutdown();

上面是参考链接给的修改内容。除了上面要修改的地方,我在编译的生活还有一个地方报错,修改成如下形式。因为我已经对文件rosconsole_log4cxx.cpp作了上面的修改,所有是不是188行不太确认了,如果报"log4cxx::spi::LocationInfo"问题,按照下面修改就可以了。

复制代码
line 188: logger->forcedLog(g_level_lookup[level], str, (file,file, function, line));

4.编译

./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release

sudo cp -r ./install_isolated /opt/ros/noetic

5.最后

我在编译时还报了一个问题,就是我之前安装的是jazzy。所以在编译时会报ros变量名不对,这时对变量名做修改就可以了。具体怎么修改,百度。

相关推荐
NPE~10 小时前
自动化工具Drissonpage 保姆级教程(含xpath语法)
运维·后端·爬虫·自动化·网络爬虫·xpath·浏览器自动化
神梦流10 小时前
GE 引擎的内存优化终局:静态生命周期分析指导下的内存分配与复用策略
linux·运维·服务器
凡人叶枫10 小时前
C++中输入、输出和文件操作详解(Linux实战版)| 从基础到项目落地,避坑指南
linux·服务器·c语言·开发语言·c++
wdfk_prog11 小时前
[Linux]学习笔记系列 -- [drivers][input]serio
linux·笔记·学习
xuhe211 小时前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
Lsir10110_11 小时前
【Linux】进程信号(下半)
linux·运维·服务器
liuniu081811 小时前
VMware虚拟机安装ubuntu2022
ubuntu·ros
skywalk816311 小时前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒11 小时前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面11 小时前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能