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

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 updatemkdir ~/ros_catkin_ws && cd ~/ros_catkin_wsrosinstall_generator desktop --rosdistro noetic --deps --tar > noetic-desktop.rosinstallmkdir ./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变量名不对,这时对变量名做修改就可以了。具体怎么修改,百度。

相关文章:

  • 2022河南CCPC(前四题)
  • js中不同循环的使用以及结束循环方法
  • Spring Boot 中 MyBatis 与 Spring Data JPA 的对比介绍
  • NHANES指标推荐:FMI
  • 介词有感2
  • 数据库故障排查指南:从紧急响应到根因分析【DeepSeek创作】
  • Ulyssess Ring Attention
  • Android同屏采集并推送RTMP和启动轻量级RTSP服务技术实践
  • 深入了解Javascript局部变量
  • JavaScript运算符
  • DAY 28 类的定义和方法
  • 布隆过滤器介绍及其在大数据场景的应用
  • linux-软件的安装与部署、web应用部署到阿里云
  • 【高斯拟合最终篇】Levenberg-Marquardt(LM)算法
  • Java Records:简洁的数据建模新方式
  • 类方法_静态方法_实例方法
  • 算法:分治法
  • Python训练营打卡Day28(2025.5.17)
  • 小白学习java第19天(下):spring
  • css 中 content: “\e6d0“ 怎么变成图标的?
  • 83岁山水花鸟画家、书法家吴静山离世,系岭南画派代表人物
  • 上海国际珠宝时尚功能区未来三年如何建设?六大行动将开展
  • 白玉兰奖征片综述丨海外剧创作趋势观察:跨界·融变·共生
  • “走进书适圈”:一周城市生活
  • 特朗普称即将与伊朗达成核协议,外交部:中方愿继续发挥建设性作用
  • 再现五千多年前“古国时代”:凌家滩遗址博物馆今开馆